Procesory PIC a tisk na tiskárnu přes LPT
Moderátor: Moderátoři
-
- Příspěvky: 2031
- Registrován: 01 črc 2005, 02:00
- Bydliště: zbídačený kraj
- Kontaktovat uživatele:
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.
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.
*****
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
-
- Příspěvky: 2031
- Registrován: 01 črc 2005, 02:00
- Bydliště: zbídačený kraj
- Kontaktovat uživatele:
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.
Zatím díky za odpovědi.
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.
Ouu, Parallax, ja něpanimaju.Sorry to all you MPLAB users that it is in Parallax code.
Zatím díky za odpovědi.
*****
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í.
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í.
-
- Příspěvky: 2031
- Registrován: 01 črc 2005, 02:00
- Bydliště: zbídačený kraj
- Kontaktovat uživatele:
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.
*****
-
- Příspěvky: 2031
- Registrován: 01 črc 2005, 02:00
- Bydliště: zbídačený kraj
- Kontaktovat uživatele:
Tak jsem se k tomu konečně dostal a funguje to.
zapojení:
Hexa kód znaku, který chci tisknout. vždy připravím do W a potom zvolám tuto rutinu:
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".
zapojení:
Kód: Vybrat vše
; 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 *
;* ------------------ *
;* *
;**************************************************************************
Kód: Vybrat vše
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
- Přílohy
-
- cmdfig1.jpg
- komunikace v SPP módu - lpt.hw.cz
- (11.98 KiB) Staženo 65 x
*****