Termalni pisač često se naziva prijemnim pisačem. Široko se koristi u restoranima, bankomatima, trgovinama i mnogim drugim mjestima na kojima su potrebni računi ili računi. To je isplativo rješenje i vrlo je zgodno za upotrebu s korisničke i razvojne strane. Termalni pisač koristi poseban postupak ispisa koji koristi termokromni papir ili termo papir za ispis. Glava pisača zagrijava se na određenoj temperaturi da prilikom prelaska termalnog papira s glave za ispis papirna obloga postane crna u područjima gdje se glava pisača zagrijava.
U ovom ćemo uputstvu povezati termalni pisač CSN A1 s široko korištenim PIC mikrokontrolerom PIC16F877A. Ovdje je u ovom projektu termalni pisač povezan preko PIC16F877A i taktilni prekidač koristi se za pokretanje ispisa. LED za obavijesti također se koristi za obavještavanje o statusu ispisa. Svijetlit će samo kad se ispisuje.
Specifikacija pisača i veze
Koristimo termalni printer CSN A1 tvrtke Cashino, koji je dostupan lako i cijena nije previsoka.

Ako specifikaciju vidimo na njenoj službenoj web stranici, vidjet ćemo tablicu koja sadrži detaljne specifikacije -

Na stražnjoj strani pisača vidjet ćemo sljedeću vezu -

TTL konektor pruža Rx Tx vezu za komunikaciju s jedinicom mikrokontrolera. Za komunikaciju s pisačem možemo koristiti i protokol RS232. Priključak za napajanje služi za napajanje pisača, a gumb služi za testiranje pisača. Kad se pisač napaja, ako pritisnemo gumb za samoispitivanje, pisač će ispisati list na kojem će se ispisati specifikacije i uzorci. Ovdje je list samoispitivanja-

Kao što vidimo, pisač koristi 9600 brzina prijenosa za komunikaciju s jedinicom mikrokontrolera. Pisač može ispisivati ASCII znakove. Komunikacija je vrlo jednostavna, sve možemo ispisati jednostavnim korištenjem UART-a, prenoseći niz ili znak.
Pisač treba napajanje od 5V 2A za grijanje glave pisača. To je nedostatak termalnog pisača jer uzima veliku struju opterećenja tijekom postupka ispisa.
Preduvjeti
Da bismo napravili sljedeći projekt, trebaju nam sljedeće stvari: -
- Breadboard
- Spojite žice
- PIC16F877A
- 2kom 33pF kondenzator s keramičkim diskom
- Otpornik 680R
- Bilo koja boja
- Taktilni prekidač
- 2kom otpornici 4.7k
- Termalni printer CSN A1 s papirnatom rolom
- 5V 2A nazivna jedinica za napajanje.
Kružni dijagram i objašnjenje
Shema za upravljanje pisačem s PIC mikrokontrolerom data je u nastavku:

Ovdje koristimo PIC16F877A kao jedinicu mikrokontrolera. Otpor od 4,7 k koristi se za spajanje MCLR pina na napajanje od 5 V. Također smo spojili vanjski oscilator od 20 MHz s kondenzatorima od 33 pF za satni signal. LED za obavijesti povezan je preko porta RB2 s otpornikom za ograničenje struje 680R. Sklopka Taktilna je spojen preko RB0 pin kada se pritisne gumb će pružiti logika visoka inače pin će dobiti Logic nisko od 4.7k otpornika.
Pisač CSN A1 povezan je unakrsnom konfiguracijom, pin za prijenos mikrokontrolera povezan je s primalnom iglom pisača. Pisač se također povezao s napajanjem od 5 V i GND.
Konstruirali smo krug u ploči i isprobali ga.


Objašnjenje koda
Kôd je prilično jednostavan za razumijevanje. Kompletni kod za povezivanje termalnog pisača s PIC16F877A dan je na kraju članka. Kao i uvijek, prvo moramo postaviti konfiguracijske bitove u PIC mikrokontroleru.
// PIC16F877A Postavke konfiguracijskog bita // Izjave o konfiguraciji izvorne crte 'C' // CONFIG #pragma config FOSC = HS // Bitovi za odabir oscilatora (HS oscilator) #pragma config WDTE = OFF // Bit za omogućavanje nadzornika vremena (WDT onemogućen) # pragma config PWRTE = OFF // Bit za uključivanje i isključivanje timera (PWRT onemogućen) #pragma config BOREN = ON // Bit za omogućavanje resetiranja Brown-out (omogućen BOR) #pragma config LVP = OFF // Niskonaponski (pojedinačno napajanje)) Bit za omogućavanje serijskog programiranja u krugu (pin RB3 / PGM ima PGM funkciju; omogućeno je programiranje niskog napona) #pragma config CPD = OFF // Bit zaštite podataka EEPROM memorijskog koda (zaštita podataka EEPROM koda isključena) #pragma config WRT = OFF // Flash programiranje bita Omogući bitove (isključiti zaštitu; u cijelu memoriju programa može se upisati EECON kontrola) #pragma config CP = OFF // Flash program za zaštitu zaštitnog koda memorije (zaštita koda isključena)
Nakon toga definirali smo makronaredbe povezane sa hardverom sustava i koristili zaglavnu datoteku eusart1.h za kontrolu hardvera povezanu s eusartom. UART je konfiguriran na brzini od 9600 Baud unutar datoteke zaglavlja.
#include
U glavnoj funkciji prvo smo provjerili 'pritiskanje gumba', a također smo koristili taktike prekidanja prekidača kako bismo uklonili kvarove na prekidaču. Stvorili smo izraz if za uvjet "pritisnut gumb". Prvo će led zasvijetliti, a UART će ispisati žice. Prilagođene linije mogu se generirati unutar naredbe if i mogu se ispisati kao niz.
void glavna (void) { system_init (); while (1) { if (printer_sw == 1) {// prekidač je pritisnut __delay_ms (50); // odgađanje otkazivanja ako je (printer_sw == 1) {// prekidač i dalje pritisnut message_led = 1; put_string ("Pozdrav! \ n \ r"); // Ispis na termalni printer __delay_ms (50); put_string ("Vodič za termalni pisač. \ n \ r"); __zakašnjenje_ms (50); put_string ("Sažetak kruga. \ n \ r"); __zakašnjenje_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string ("Hvala"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); obavijest_led = 0; } } } }
Kompletni kod i radni video prikazan je u nastavku.
