Založen: Jul 01, 2005 Příspěvky: 2031 Bydliště: zbídačený kraj
Zaslal: so říjen 20 2007, 15:37 Předmět: Procesory PIC a tisk na tiskárnu přes LPT
Zdravím,
Mám takový teoretický dotaz.
Zkoušel jste někdo tisknout z procesoru PIC přes LPT port na jehličkové tiskárny nebo termotiskárny? Je to vůbec reálné, případně byly by nějaké odkazy na tuto problematiku?
Zamýšlel jsem tisknout z malého terminálu samolepící štítky s pořadovým pětimístným číslem a PICka by mi do toho zapojení "seděla". Postisku tlačítka by se přičetla jednička a soubor znaků pro tisk (v ASCII) by se odeslal na tiskárnu přes LPT. Tak nějak bych si to představoval. _________________ *****
někde na webu by měl být ke stažení disassemblovaný výpis ROM Didaktiku Gama a tam je rutina pro Z80 pro obsluhu tiskárny s rozhraním Centronics, asi by se z toho dalo inspirovat. Vešlo se to do pár stovek bajtů.
Založen: Dec 03, 2004 Příspěvky: 441 Bydliště: Krnov
Zaslal: ne říjen 21 2007, 7:40 Předmět:
záléží taky co budeš chtít tisknout ! text půjde podle textovéch sad v dané tiskarně asi to bude docela jednoduché už si to moc nepamatuji ale odešleš esc sekvenci ve které nastavýš tiskárnu do text režimu - zvolíš typ písma a způsob pohybu vozíku uzavřeš inicializaci a začneš sypat text s příslušným generováním konce řádku . U grafiky je to podobné jen se místo typu nastavuje hustota dpi a místo dat tam pošleš 0101 podle toho jak má zrovna tisknout a opět přeskok na další řádek . je dobré projít protokol k tiskárnám - v zásedě takto budeš moci tisknout i Hp s plc3 ten protokol je obdobný jako pro jehličkové. Ruina pro centronix je tady http://www.piclist.com/techref/microchip/Centronix.htm ale zbytek asi musíš nastudovat sám
Založen: Jul 01, 2005 Příspěvky: 2031 Bydliště: zbídačený kraj
Zaslal: ne říjen 21 2007, 12:18 Předmět:
Tak jsem si k tomu stáhl PDFka z hw.cz a nějaký scripta + něco z www.piclist.com/techref/microchip/ .
Zkusím se tím prokousat, snad se v tom "neutopím".
eljaro: potřebuju vytisknout 5-místné číslo, data (formát), co chci poslat na tiskárnu, mám. Co hledám, je způsob jak to dostat z PICky do tiskárny přes LPT -> v podstatě rutinu.
citace:
Sorry to all you MPLAB users that it is in Parallax code.
Založen: Dec 03, 2004 Příspěvky: 441 Bydliště: Krnov
Zaslal: po říjen 22 2007, 19:30 Předmět:
ten paralax nebude takové terno jen přepsat to jejich cje a podobné zkratky to nebude žádná hruza jinak je to zdroják joko každý jiný ta syntaxe je podobná jako u u atmelů tak to jen porovnat a aplikovat do mplabu
Já bych to řešil tak,že bych tu konkrétní tiskárnu připojil k PC.Naladil vše tak aby to tisklo tak jak chci.Programově odchytil data.Nasledně bych zjišťoval rychlosti a vše ostatní kolem toho.
To by nebylo účelné. Komunikace s běžnou tiskárnou je velmi primitivní a je dokonale popsána. Odeslat pár znaků je triviální úloha. Pro základní komunikaci je třeba 9 výstupních bitů a 1-2 vstupní.
Odešlu na výstup jeden byte dat a potvrdím ho signálem STROBE.
A čekám, až mi tiskárna potvrdí přijetí dat signálem ACKNLQ (nebo BUSY). Pak odesílám další byte. Ostatní signály mohu ignorovat.
Napsat rutinu pro tohle je otázkou několika řádků kódu. A pokud nechci tisknout obrázky, tak daty budou přímo ASCII kódy číslic. Nevím co řešíte.
Mimochodem, spoustu jehličkových tiskáren lze při zapnutí kombinací tlačítek převést do módu, kdy tiskárna tiskne hexa číslice všech kódů, které dostává. Pro ladění to není k zahození.
Založen: Jul 01, 2005 Příspěvky: 2031 Bydliště: zbídačený kraj
Zaslal: ne říjen 28 2007, 11:04 Předmět:
Jak tím listuju, tak by to mělo jít jednoduše, na http://lpt.hw.cz/ je to pěkně popsané. Až mi přijdou objednané součástky, tak se do toho pustím. _________________ *****
Založen: Jul 01, 2005 Příspěvky: 2031 Bydliště: zbídačený kraj
Zaslal: so listopad 24 2007, 0:39 Předmět:
Tak jsem se k tomu konečně dostal a funguje to.
zapojení:
kód:
; PIC16F628 a krystal 4,00MHz
;
;**************************************************************************
;* PIC16F628 *
;* --------\/-------- *
;* vstup nACK -|RA2 RA1|- výstup STROBE *
;* vstup ERROR -|RA3 RA0|- vstup BUSY *
;* tlacitko -|RA4ck osc1|- \ Krystal 4,00MHz *
;* +5V -|MCLR osc2|- / *
;* 0V -|Vss Vdd|- +5V *
;* data bit 0 -|RB0/INT PGD/RB7|- data bit 7 *
;* data bit 1 -|RB1 PGC/RB6|- data bit 6 *
;* data bit 2 -|RB2 RB5|- data bit 5 *
;* data bit 3 -|RB3 RB4|- data bit 4 *
;* ------------------ *
;* *
;**************************************************************************
Hexa kód znaku, který chci tisknout. vždy připravím do W a potom zvolám tuto rutinu:
kód:
odesli movwf PORTB ;přesuň data na port
btfsc PORTA,0 ;kontrola BUSY, jestli je v 0
goto $-1 ;není v 0 -> vrať se
bcf PORTA,1 ;je v 0, shoď STROBE
nop
nop
nop
nop
nop
bsf PORTA,1 ;nahoď STROBE
btfss PORTA,2 ;kontrola nACK, jestli je v 1
goto $-1 ;není v 1 -> vrať se
return ;je v 1, návrat pro další znak
Jen mi pořád vrtá hlavou, jestli správně kontroluji signál nACK, tedy ve správný okamžik. Jestli ho nekontroluji ještě předtím, než přejde do nuly, ale když jsem to zkoušel jako posloupnost nejdřive 0, pak 1, tak to netisklo. Signál ERROR zatím nevyužívám. To dodělám, až zase budu mít čas si s tím "hrát".
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.