- Spausdintuvo specifikacija ir jungtys
- Būtinos sąlygos
- Grandinės schema ir paaiškinimas
- Kodo paaiškinimas
Terminis spausdintuvas dažnai vadinamas kvito spausdintuvu. Jis plačiai naudojamas restoranuose, bankomatuose, parduotuvėse ir daugelyje kitų vietų, kur reikalingi kvitai ar sąskaitos. Tai ekonomiškas sprendimas, kurį labai patogu naudoti tiek iš vartotojo, tiek iš kūrėjo pusės. Terminiame spausdintuve naudojamas specialus spausdinimo procesas, kurio spausdinimui naudojamas termochrominis arba terminis popierius. Spausdintuvo galvutė kaitinama esant tam tikrai temperatūrai, kad, kai šiluminis popierius praeina iš spausdinimo galvutės, popieriaus danga tampa juoda tose vietose, kur kaitinama spausdintuvo galvutė.
Šioje pamokoje susiesime šilumos spausdintuvą CSN A1 su plačiai naudojamu PIC mikrovaldikliu PIC16F877A. Šiame projekte terminis spausdintuvas prijungtas prie PIC16F877A ir spausdinimo pradžiai naudojamas lytėjimo jungiklis. Pranešimo LED taip pat naudojamas pranešti apie spausdinimo būseną. Jis švytės tik tada, kai bus vykdoma spausdinimo veikla.
Spausdintuvo specifikacija ir jungtys
Mes naudojame „ Cashino“ CSN A1 terminį spausdintuvą, kurį galima lengvai įsigyti, o kaina nėra per didelė.
Jei pamatysime specifikaciją jos oficialioje svetainėje, pamatysime lentelę, kurioje pateikiamos išsamios specifikacijos -
Galinėje spausdintuvo pusėje pamatysime tokį ryšį-
TTL jungtis suteikia „Rx Tx“ ryšį, kad būtų galima bendrauti su mikrovaldiklio bloku. Mes taip pat galime naudoti RS232 protokolą, kad galėtume bendrauti su spausdintuvu. Maitinimo jungtis skirta spausdintuvui maitinti, o mygtukas naudojamas spausdintuvo bandymams atlikti. Kai spausdintuvas maitinamas, paspausdami savikontrolės mygtuką, spausdintuvas išspausdins lapą, kuriame bus spausdinamos specifikacijos ir pavyzdžių eilutės. Čia yra savitikros lapas
Kaip matome, spausdintuvas naudoja 9600 perdavimo spartą ryšiui su mikrovaldiklio bloku palaikyti. Spausdintuvas gali spausdinti ASCII simbolius. Bendravimas yra labai lengvas, mes galime atsispausdinti bet ką paprasčiausiai naudodami UART, perduodami eilutę ar simbolį.
Spausdintuvui reikia 5V 2A maitinimo šaltinio, kad šildytų spausdintuvo galvutę. Tai yra terminio spausdintuvo trūkumas, nes spausdinimo metu jis užima didžiulę apkrovos srovę.
Būtinos sąlygos
Norėdami sukurti šį projektą, mums reikia šių dalykų: -
- Bandomoji Lenta
- Prijunkite laidus
- PIC16F877A
- 2vnt. 33pF keraminis diskinis kondensatorius
- 680R rezistorius
- Bet kokia spalva vedė
- Lytėjimo jungiklis
- 2vnt 4.7k rezistoriai
- Terminis spausdintuvas CSN A1 su popieriaus ritiniu
- 5V 2A vardinis maitinimo blokas.
Grandinės schema ir paaiškinimas
Žemiau pateikiama spausdintuvo valdymo su PIC mikrovaldikliu schema:
Čia mes naudojame PIC16F877A kaip mikrovaldiklio bloką. 4.7k rezistorius naudojamas prijungti MCLR kaištį prie 5V maitinimo šaltinio. Mes taip pat prijungėme išorinį 20 MHz osciliatorių su 33pF kondensatoriais laikrodžio signalui. Pranešimo šviesos diodas yra prijungtas per RB2 prievadą su 680R nukreiptu srovės ribotuvu. Paspaudus mygtuką, „ Tactile“ jungiklis yra sujungtas per RB0 kaištį, jis suteiks „ Logic High“, kitaip kaištis gaus „ Logic Low“ pagal 4,7 k rezistorių.
Spausdintuvo CSN A1 prijungtas naudojant kryžminę konfigūraciją, mikrovaldiklio perdavimo smeigtukas sujungtas su spausdintuvo gavimo kaiščiu. Spausdintuvas taip pat prijungtas prie 5 V ir GND maitinimo šaltinio.
Mes sukonstravome grandinę duonos lentoje ir išbandėme.
Kodo paaiškinimas
Kodas suprantamas gana paprastai. Pilnas terminio spausdintuvo sąsajos su PIC16F877A kodas pateikiamas straipsnio pabaigoje. Kaip visada, pirmiausia turime nustatyti konfigūracijos bitus PIC mikrovaldiklyje.
// PIC16F877A konfigūracijos bitų nustatymai // „C“ šaltinio eilutės konfigūracijos teiginiai // CONFIG #pragma config FOSC = HS // Osciliatoriaus pasirinkimo bitai (HS osciliatorius) #pragma config WDTE = OFF // Watchdog Timer Įjungti bitą (WDT išjungtas) # pragma config PWRTE = OFF // Įjungimo laikmatis Įgalinti bitą (PWRT išjungtas) #pragma config BOREN = Įjungtas // Brown-out Reset Įjungti bitą (įjungtas BOR) #pragma config LVP = OFF // Žemos įtampos (vieno maitinimo šaltinis)) In-Circuit Serial Programming Enable bit (RB3 / PGM kaištei yra PGM funkcija; įjungtas žemos įtampos programavimas) #pragma config CPD = OFF // duomenų EEPROM atminties kodo apsaugos bitas (duomenų EEPROM kodo apsauga išjungta) #pragma config WRT = IŠJUNGTAS // „Flash“ programos atminties įrašymas Įgalinti bitus (Rašymo apsauga išjungta; visa programos atmintis gali būti įrašyta EECON valdymu) #pragma config CP = IŠJUNGTAS // „Flash“ programos atminties kodo apsaugos bitas (kodo apsauga išjungta)
Po to mes nustatėme su aparatūra susijusias makrokomandas ir naudojome eusart1.h antraštės failą su eusart susijusiai aparatinei įrangai valdyti. UART yra sukonfigūruotas 9600 perdavimo sparta antraštės faile.
# įtraukti
Į pagrindinį funkcijos, pirmiausia patikrino 'mygtuką, paspauskite "taip pat naudojamas jungiklis debounce taktika pašalinti jungiklis trikdžių. Mes sukūrėme sąlygą „mygtukas paspaustas“, jei sakinys Pirmiausia šviečia lemputė, o UART atspausdins stygas. „Custom“ eilutės gali būti sugeneruotos „if“ sakinio viduje ir gali būti atspausdintos kaip eilutė.
void main (void) { system_init (); while (1) { if (printer_sw == 1) {// jungiklis nuspaustas __delay_ms (50); // atšaukimo delsa, jei (printer_sw == 1) {// jungiklis vis dar paspaustas pranešimas_led = 1; put_string ("Sveiki! \ n \ r"); // Spausdinti terminiu spausdintuvu __delay_ms (50); put_string ("Terminio spausdintuvo pamoka. \ n \ r"); __delay_ms (50); put_string ("Grandinės santrauka. \ n \ r"); __delay_ms (50); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("---------------------------- \ n \ r"); put_string („Ačiū“); put_string ("\ n \ r"); put_string ("\ n \ r"); put_string ("\ n \ r"); pranešimo_led = 0; } } } }
Visas kodas ir veikiantis vaizdo įrašas pateikiami žemiau.