0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用熱敏打印機(jī)連接PIC16F877A并使用輕觸開(kāi)關(guān)實(shí)現(xiàn)打印的教程

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:蘇拉夫·古普塔 ? 2022-11-04 15:10 ? 次閱讀

熱敏打印機(jī)通常稱(chēng)為收據(jù)打印機(jī)。它廣泛用于餐館,自動(dòng)取款機(jī),商店和許多其他需要收據(jù)或賬單的地方。這是一個(gè)具有成本效益的解決方案,從用戶和開(kāi)發(fā)人員的角度來(lái)看都非常方便。熱敏打印機(jī)使用特殊的打印工藝,使用熱致變色紙或熱敏紙進(jìn)行打印。打印機(jī)頭在一定溫度下加熱,當(dāng)熱敏紙從打印頭通過(guò)時(shí),紙張涂層在打印頭被加熱的區(qū)域變黑。

在本教程中,我們將熱敏打印機(jī) CSN A1 與廣泛使用的 PIC 微控制器 PIC16F877A 連接。在本項(xiàng)目中,熱敏打印機(jī)連接在PIC16F877A上,并使用輕觸開(kāi)關(guān)開(kāi)始打印。通知 LED 還用于通知打印狀態(tài)。僅當(dāng)打印活動(dòng)正在進(jìn)行時(shí),它才會(huì)發(fā)光。

打印機(jī)規(guī)格和連接

我們正在使用Cashino的CSN A1熱敏打印機(jī),它很容易獲得,價(jià)格也不太高。

pYYBAGNkutGAKOo4AABotX8_zzQ545.jpg

如果我們?cè)谄涔俜骄W(wǎng)站上看到該規(guī)范,我們將看到一個(gè)提供詳細(xì)規(guī)格的表格-

pYYBAGNkutOAS1edAAA3kisNJI0528.png

在打印機(jī)的背面,我們將看到以下連接-

poYBAGNkuteAfW9OAACMMP8QHWQ619.jpg

TTL 連接器提供 Rx Tx 連接以與微控制器單元通信。我們還可以使用RS232協(xié)議與打印機(jī)通信。電源連接器用于為打印機(jī)供電,按鈕用于打印機(jī)測(cè)試。打印機(jī)通電時(shí),如果我們按下自檢按鈕,打印機(jī)將打印一張紙,其中將打印規(guī)格和樣品行。這是自測(cè)表-

pYYBAGNkutiAPEbDAABHQmKb_0A440.jpg

正如我們所看到的,打印機(jī)使用9600波特率與微控制器單元通信。打印機(jī)可以打印 ASCII 字符。通信非常簡(jiǎn)單,我們可以通過(guò)簡(jiǎn)單地使用UART,傳輸字符串或字符來(lái)打印任何東西。

打印機(jī)需要5V 2A電源來(lái)加熱打印機(jī)頭。這是熱敏打印機(jī)的缺點(diǎn),因?yàn)樗诖蛴∵^(guò)程中需要巨大的負(fù)載電流

先決條件

要進(jìn)行以下項(xiàng)目,我們需要以下東西:-

面包板

連接電線

PIC16F877A

2個(gè)33pF陶瓷盤(pán)式電容器

680R電阻

任何顏色的指示燈

輕觸開(kāi)關(guān)

2個(gè)4.7K電阻器

帶紙卷的熱敏打印機(jī) CSN A1

5V 2A 額定電源單元。

電路圖及說(shuō)明

使用PIC微控制器控制打印機(jī)的原理圖如下:

pYYBAGNkuVeAZaHVAAFvamRqknw435.png

這里我們使用PIC16F877A作為微控制器單元。一個(gè) 4.7k 電阻用于將 MCLR 引腳連接到 5V 電源。我們還將一個(gè) 20 MHz 的外部振蕩器與用于時(shí)鐘信號(hào)的 33pF 電容器連接起來(lái)。通知LED 通過(guò) 680R LED 限流電阻器連接在 RB2 端口上。按下按鈕時(shí),輕觸開(kāi)關(guān)連接在RB0引腳上,它將提供邏輯高電平,否則引腳將通過(guò)4.7k電阻接收邏輯低電平。

打印機(jī)CSN A1使用交叉配置連接,微控制器傳輸引腳與打印機(jī)的接收引腳連接。打印機(jī)還與 5V 和 GND 電源連接。

我們?cè)谠囼?yàn)板中構(gòu)建電路并對(duì)其進(jìn)行了測(cè)試。

pYYBAGNkutqAI0IxAADGvIEVqC8990.jpg

poYBAGNkutyAK7fMAAB9shhSX00946.jpg

代碼說(shuō)明

代碼非常簡(jiǎn)單易懂。文章末尾給出了將熱敏打印機(jī)與PIC16F877A接口的完整代碼。與往常一樣,我們首先需要在PIC微控制器中設(shè)置配置位。

// PIC16F877A Configuration Bit Settings

// 'C' source line config statements

// CONFIG

#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)

#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)

#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)

#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)

#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled)

#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)

#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)

#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)

之后,我們定義了與系統(tǒng)硬件相關(guān)的宏,并使用 eusart1.h 頭文件進(jìn)行與 eusart相關(guān)的硬件控制。UART 在頭文件中配置為 9600 波特率。

#include

#include "supporting_cfileeusart1.h"

/*

* System hardware related macros

*/

#define _XTAL_FREQ 200000000 //Crystal Frequency, used in delay routine

#define printer_sw PORTBbits.RB0 //this macro is for defining the printing switch

#define notification_led PORTBbits.RB2

void system_init(void);

在主函數(shù)中,我們首先檢查了“按鈕按下”,并使用了開(kāi)關(guān)去抖動(dòng)策略來(lái)消除開(kāi)關(guān)故障。我們?yōu)椤鞍粹o按下”條件創(chuàng)建了一個(gè) if 語(yǔ)句。首先,LED 將發(fā)光,UART 將打印字符串。自定義行可以在 if 語(yǔ)句內(nèi)生成,并且可以打印為字符串。

void main(void) {

system_init();

while(1){

if(printer_sw == 1){ //switch is pressed

__delay_ms(50); // debounce delay

if (printer_sw == 1){ // switch is still pressed

notification_led = 1;

put_string("Hello! nr");//Print to Thermal printer

__delay_ms(50);

put_string("Thermal Printer Tutorial.nr");

__delay_ms(50);

put_string("Circuit Digest. nr");

__delay_ms(50);

put_string ("nr");

put_string ("nr");

put_string ("nr");

put_string ("---------------------------- n r");

put_string ("Thank You");

put_string ("nr");

put_string ("nr");

put_string ("nr");

notification_led = 0;

}

}

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7394

    瀏覽量

    150622
  • PIC16F877A
    +關(guān)注

    關(guān)注

    2

    文章

    43

    瀏覽量

    21752
  • 熱敏打印機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    45

    瀏覽量

    12070
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    熱敏小票打印機(jī)的原理介紹

    本帖最后由 微笑的魚(yú)020 于 2016-5-25 16:57 編輯 熱敏小票打印機(jī)為何物 熱敏小票打印機(jī)其實(shí)是小票
    發(fā)表于 05-25 16:47

    熱敏打印機(jī)的設(shè)計(jì)

    想自己設(shè)計(jì)一個(gè)簡(jiǎn)單的熱敏打印機(jī),現(xiàn)有LPC1114板一塊,熱敏打印機(jī)芯一個(gè),控制程序該如何編寫(xiě)?哪位大神能指點(diǎn)一下?????
    發(fā)表于 04-18 16:17

    基于飛思卡爾微型熱敏打印機(jī)的設(shè)計(jì)與實(shí)現(xiàn)

    循環(huán)移位8位,移入熱敏打印頭內(nèi)部的移位寄存器中,實(shí)現(xiàn)了數(shù)據(jù)的加載。 5 軟件設(shè)計(jì) 本熱敏打印機(jī)的軟件設(shè)計(jì)主要是通過(guò)RS-232通信模塊接收由
    發(fā)表于 12-03 15:30

    pic16f877a中文資料pdf

    pic16f877a中文資料
    發(fā)表于 07-15 13:20 ?4548次下載
    <b class='flag-5'>pic16f877a</b>中文資料pdf

    什么是熱敏打印機(jī)

    什么是熱敏打印機(jī) 熱敏打印機(jī)圖片 熱敏打印機(jī)的原理是,在淡色材料上(通
    發(fā)表于 10-13 09:19 ?5498次閱讀

    視頻打印機(jī)熱敏頭/灰度

    視頻打印機(jī)熱敏頭/灰度        視頻打印機(jī)熱敏
    發(fā)表于 12-31 10:23 ?1249次閱讀

    熱敏打印頭開(kāi)發(fā)打印機(jī)實(shí)例

    微型熱敏打印頭對(duì)打印時(shí)序和溫度要求較高,本文選用FTP-628系列熱敏打印頭開(kāi)展打印機(jī)研發(fā)工作。
    發(fā)表于 12-19 11:12 ?1.3w次閱讀
    <b class='flag-5'>熱敏</b><b class='flag-5'>打印</b>頭開(kāi)發(fā)<b class='flag-5'>打印機(jī)</b>實(shí)例

    熱敏打印機(jī)工作原理

    熱敏打印機(jī)的工作原理是打印頭上安裝有半導(dǎo)體加熱元件,打印頭加熱接觸熱敏
    發(fā)表于 12-19 14:23 ?242次下載
    <b class='flag-5'>熱敏</b><b class='flag-5'>打印機(jī)</b>工作原理

    PIC16F877A串口發(fā)送查詢方式

    PIC16F877A串口發(fā)送,查詢方式,就為了調(diào)出這個(gè)費(fèi)了我一天時(shí)間,原來(lái)是串口芯片電壓?jiǎn)栴},現(xiàn)總結(jié)如下
    發(fā)表于 09-01 11:03 ?10次下載
    <b class='flag-5'>PIC16F877A</b>串口發(fā)送查詢方式

    PIC16F877A串口芯片電壓?jiǎn)栴}

    PIC16F877A串口發(fā)送,查詢方式,就為了調(diào)出這個(gè)費(fèi)了我一天時(shí)間,原來(lái)是串口芯片電壓?jiǎn)栴},現(xiàn)總結(jié)如下
    發(fā)表于 09-01 11:15 ?9次下載
    <b class='flag-5'>PIC16F877A</b>串口芯片電壓?jiǎn)栴}

    熱敏打印機(jī)的工作原理是什么?

    熱敏打印機(jī)應(yīng)用十分廣泛,但工作原理卻不是每個(gè)人都清楚的。熱敏打印機(jī)熱敏紙配合能夠解決我們?nèi)粘?b class='flag-5'>打印
    發(fā)表于 03-18 16:41 ?1.8w次閱讀

    PIC16F877A開(kāi)發(fā)板 數(shù)碼管動(dòng)態(tài)掃描實(shí)驗(yàn)

    //****************電子園PIC16F877A開(kāi)發(fā)板 數(shù)碼管動(dòng)態(tài)掃描實(shí)驗(yàn)****************//////mcu: PIC16F877A 4MHz //2010年12月
    發(fā)表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開(kāi)發(fā)板 數(shù)碼管動(dòng)態(tài)掃描實(shí)驗(yàn)

    PIC16F877A開(kāi)發(fā)板 普通IO驅(qū)動(dòng)74595實(shí)驗(yàn)

    //*****************電子園PIC16F877A開(kāi)發(fā)板 普通IO驅(qū)動(dòng)74595實(shí)驗(yàn)***************////PIC16F877A 實(shí)驗(yàn)板////mcu
    發(fā)表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開(kāi)發(fā)板 普通IO驅(qū)動(dòng)74595實(shí)驗(yàn)

    PIC16F877A開(kāi)發(fā)板原理圖

    PIC16F877A開(kāi)發(fā)板原理圖免費(fèi)下載。
    發(fā)表于 03-21 15:47 ?12次下載

    熱敏打印機(jī)的設(shè)計(jì)實(shí)現(xiàn)

    熱敏打印機(jī)是一種通過(guò)對(duì)熱敏紙加熱之后顯示文字或圖案的打印機(jī)。
    的頭像 發(fā)表于 07-21 14:32 ?3645次閱讀
    <b class='flag-5'>熱敏</b><b class='flag-5'>打印機(jī)</b>的設(shè)計(jì)<b class='flag-5'>實(shí)現(xiàn)</b>