Термални штампач се често назива пријемним штампачем. Широко се користи у ресторанима, банкоматима, продавницама и многим другим местима на којима су потребни рачуни или рачуни. То је исплативо решење и врло је згодно за употребу како са корисничке, тако и са стране програмера. Термални штампач користи посебан поступак штампе који користи термохромни папир или термо папир за штампу. Глава штампача се загрева на одређеној температури да када термални папир пређе са главе штампача, облога папира поцрни на местима где се глава штампача загрева.
У овом упутству ћемо повезати термални штампач ЦСН А1 са широко коришћеним ПИЦ микроконтролером ПИЦ16Ф877А. Овде је у овом пројекту термални штампач повезан преко ПИЦ16Ф877А и тактилни прекидач се користи за покретање штампе. ЛЕД за обавештавање се такође користи за обавештавање о статусу штампања. Сјајиће само када се одвија штампарска активност.
Спецификација штампача и везе
Користимо ЦСН А1 термални штампач компаније Цасхино, који је лако доступан и цена није превисока.
Ако спецификацију видимо на њеној званичној веб страници, видећемо табелу која садржи детаљне спецификације -
На задњој страни штампача видећемо следећу везу -
ТТЛ конектор обезбеђује Рк Тк везу за комуникацију са јединицом микроконтролера. Такође можемо да користимо протокол РС232 за комуникацију са штампачем. Конектор за напајање служи за напајање штампача, а дугме се користи за тестирање штампача. Када се штампач напаја, ако притиснемо дугме за самотестирање, штампач ће одштампати лист на коме ће се одштампати спецификације и узорци линија. Ево листа самотестирања-
Као што видимо, штампач користи 9600 бауд брзина за комуникацију са јединицом микроконтролера. Штампач може да штампа АСЦИИ знакове. Комуникација је врло једноставна, можемо штампати било шта једноставним коришћењем УАРТ-а, преносећи низ или знак.
Штампачу је потребно напајање од 5В 2А за загревање главе штампача. Ово је недостатак термалног штампача јер узима велику струју оптерећења током процеса штампања.
Предуслови
Да бисмо направили следећи пројекат, потребне су нам следеће ствари: -
- Бреадбоард
- Прикључите жице
- ПИЦ16Ф877А
- 2ком 33пФ керамички кондензатор диска
- 680Р отпорник
- Било која боја
- Тактилни прекидач
- 2ком 4.7к отпорници
- Термални штампач ЦСН А1 са ролном папира
- Јединица за напајање снаге 5В 2А.
Шема и објашњење
Шема управљања штампачем са ПИЦ микроконтролером дата је у наставку:
Овде користимо ПИЦ16Ф877А као јединицу микроконтролера. Отпорник од 4.7к користи се за повезивање МЦЛР пина на напајање од 5В. Такође смо повезали спољни осцилатор од 20 МХз са кондензаторима од 33 пФ за тактни сигнал. ЛЕД за обавештавање повезан је преко порта РБ2 са отпорником за ограничавање струје 680Р. Прекидач Тактилно је повезан преко РБ0 пин када се притисне тастер ће обезбедити логика висок супротном пин добиће Логиц ниском нивоу од 4.7К отпорник.
Штампач ЦСН А1 повезан је унакрсном конфигурацијом, пин за пренос микроконтролера повезан је са пријемном иглом штампача. Штампач се такође повезао са 5В и ГНД напајањем.
Конструисали смо круг у плочи и тестирали га.
Објашњење кода
Шифра је прилично једноставна за разумевање. Комплетни код за повезивање термалног штампача са ПИЦ16Ф877А дат је на крају чланка. Као и увек, прво морамо да поставимо конфигурационе битове у ПИЦ микроконтролеру.
// ПИЦ16Ф877А конфигурације Бит Поставке // цонфиг изјаве извор линија 'Ц' // КОНФИГ # Прагма конфиг ФОСЦ = Хс // осцилатор за избор бита (силвер осцилатор) # Прагма конфиг ВДТЕ = ОН // Данние тајмер Укључи мало (ВДТ инвалидитетом) # прагма цонфиг ПВРТЕ = ОФФ // Бит за укључивање тајмера за укључивање (ПВРТ онемогућен) #прагма цонфиг БОРЕН = ОН // Бров-оут Ресетовање Омогућити бит (омогућен БОР) #прагма цонфиг ЛВП = ОФФ // Нисконапонски (појединачно напајање)) Бит за омогућавање серијског програмирања у кругу (пин РБ3 / ПГМ има ПГМ функцију; омогућено је програмирање ниског напона) #прагма цонфиг ЦПД = ОФФ // Бит ЕЕПРОМ меморијског кода за заштиту (заштита података ЕЕПРОМ кода искључена) #прагма цонфиг ВРТ = ОФФ // Фласх програмирање меморије бита Омогући битове (искључити заштиту; сва програмска меморија може се уписати помоћу ЕЕЦОН контроле) #прагма цонфиг ЦП = ОФФ // Фласх програм Фласх бит заштите кода (заштита кода искључена)
Након тога, дефинисали смо макрое системског хардвера и користили заглавну датотеку еусарт1.х за контролу хардвера повезану са еусартом. УАРТ је конфигурисан на брзини од 9600 Бауд унутар заглавне датотеке.
#инцлуде
У главној функцији, прво смо проверили „притискање тастера“, а такође смо користили тактику пребацивања прекидача да бисмо елиминисали кварове на прекидачу. Направили смо израз иф за стање „притиснуто дугме“. Прво ће ЛЕД засветлети, а УАРТ ће одштампати жице. Прилагођене линије могу се генерисати унутар наредбе иф и могу се исписати као низ.
воид маин (воид) { систем_инит (); вхиле (1) { иф (принтер_св == 1) {// прекидач је притиснут __делаи_мс (50); // одлагање дебоунце-а ако је (принтер_св == 1) {// прекидач и даље притиснут нотифицатион_лед = 1; пут_стринг ("Здраво! \ н \ р"); // Штампање на термални штампач __делаи_мс (50); пут_стринг ("Водич за термални штампач. \ н \ р"); __делаи_мс (50); пут_стринг ("Цирцуит Дигест. \ н \ р"); __делаи_мс (50); пут_стринг ("\ н \ р"); пут_стринг ("\ н \ р"); пут_стринг ("\ н \ р"); пут_стринг ("---------------------------- \ н \ р"); пут_стринг ("Хвала"); пут_стринг ("\ н \ р"); пут_стринг ("\ н \ р"); пут_стринг ("\ н \ р"); нотифицатион_лед = 0; } } } }
Комплетни код и радни видео дати су у наставку.