久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)控制微型打印機(jī)

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2007年06月25日   【字體:

1引言

由于常用的微型針式打印機(jī)的速度慢,噪聲大,無(wú)法滿足某些場(chǎng)合的需要。微型熱敏打印機(jī)具有打印速度快、噪音低、可靠性高、字跡清晰、機(jī)頭小而輕等優(yōu)點(diǎn),可滿足各種場(chǎng)合的打印要求,因此得到廣泛應(yīng)用。筆者在汽車行駛記錄儀的開(kāi)發(fā)過(guò)程中,根據(jù)廠家要求,選用較為先進(jìn)的熱敏打印機(jī)作為打印設(shè)備。但微型熱敏打印頭對(duì)打印時(shí)序和溫度要求較高,一旦控制不當(dāng)極易造成打印頭燒毀。因此,在有合理的硬件設(shè)計(jì)的基礎(chǔ)上,軟件設(shè)計(jì)也十分重要。本文使用某些軟件設(shè)計(jì)替代了部分硬件電路,使打印機(jī)的控制電路得到了簡(jiǎn)化。

摘要:介紹了基于89S51單片機(jī)的微型熱敏打印機(jī)的組成,分析了打印原理,詳細(xì)給出了整體流程以及各個(gè)功能模塊的軟件設(shè)計(jì)。熱敏打印頭采用I/O口模擬串行數(shù)據(jù)傳輸實(shí)現(xiàn)數(shù)據(jù)加載。設(shè)計(jì)的微型熱敏打印機(jī)運(yùn)用于實(shí)際,取得了良好的效果。
關(guān)鍵詞:熱敏打印機(jī) 過(guò)熱保護(hù) 步進(jìn)電機(jī) 數(shù)據(jù)加載

2 打印原理

選用的FTP-628作為熱敏打印頭。該熱敏打印頭點(diǎn)結(jié)構(gòu)384點(diǎn)/行,水平方向點(diǎn)密度:8點(diǎn)/mm,垂直方向行間距:8點(diǎn)/mm。有效打印寬度48mm。打印速度最大為60mm/秒[1]

要打印的數(shù)據(jù)在時(shí)鐘CLK的配合下,經(jīng)由數(shù)據(jù)輸入腳DI移到熱敏機(jī)芯內(nèi)部的移位寄存器中。經(jīng)384個(gè)時(shí)鐘周期,一行384位數(shù)據(jù)全部移到移位寄存器后,鎖存端的鎖存信號(hào)/LAT由CPU置低,移位寄存器的數(shù)據(jù)被鎖存到鎖存器。然后熱敏頭加熱控制信號(hào)STB產(chǎn)生高電平,此時(shí)根據(jù)384點(diǎn)輸入的DI數(shù)據(jù)是1或者是0決定發(fā)熱元件是否發(fā)熱,由此在熱敏紙上產(chǎn)生要打印的點(diǎn)行。

3 系統(tǒng)整體框圖

本文介紹的微型熱敏打印機(jī)由主控芯片、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、熱敏打印頭過(guò)熱保護(hù)模塊、熱敏打印頭缺紙檢測(cè)模塊、RS-232通信模塊、供電模塊等部分組成。其中步進(jìn)電機(jī)驅(qū)動(dòng)模塊負(fù)責(zé)控制打印紙走紙及走紙速度;熱敏打印頭過(guò)熱保護(hù)模塊防止熱敏打印頭溫度過(guò)高損壞;熱敏打印頭缺紙檢測(cè)電路完成熱敏打印頭是否有紙檢測(cè);RS-232通信模塊實(shí)現(xiàn)打印機(jī)與上位機(jī)之間的通信;供電模塊給控制電路及熱敏打印頭供電。根據(jù)實(shí)際需要,考慮成本,選擇89S51單片機(jī)作為主控芯片[2]。如圖1,給出了主控芯片與各個(gè)模塊之間的接口功能設(shè)計(jì)。

圖1  主控芯片與功能模塊的接口設(shè)計(jì)

4 系統(tǒng)軟件設(shè)計(jì)

4.1 整體流程


    如圖2,給出了整個(gè)系統(tǒng)工作的軟件流程圖。本熱敏打印機(jī)的軟件設(shè)計(jì)主要是通過(guò)RS-232通信模塊接收由主機(jī)傳來(lái)的數(shù)據(jù)。當(dāng)接收到數(shù)據(jù)時(shí),首先要判斷是命令字還是字符 數(shù)據(jù)。如果是命令字,則打印機(jī)按照命令動(dòng)作;如果判斷為字符數(shù)據(jù),則從字庫(kù)中提取字符點(diǎn)陣,按行打印,走紙。

圖2  系統(tǒng)工作流程圖

4.2 數(shù)據(jù)加載與印字

將內(nèi)存緩沖區(qū)的數(shù)據(jù)輸出到熱敏打印頭的移位寄存器中,可以通過(guò)硬件方式和軟件移位的方式實(shí)現(xiàn)[3]。本打印機(jī)實(shí)現(xiàn)方案采用的是后者。一般情況下,軟件移位是由I/O口模擬串行數(shù)據(jù)傳輸時(shí)序。圖3為I/O口實(shí)現(xiàn)數(shù)據(jù)移位流程圖。P1.0口模擬時(shí)鐘CLOCK,P1.1口在CLOCK的配合下輸出數(shù)據(jù)DATA,輸出數(shù)據(jù)到熱敏打印頭內(nèi)部的移位寄存器中。

P2[0:5]分別與打印頭內(nèi)部的加熱選通信號(hào)STB[0:5]相連接。當(dāng)數(shù)據(jù)全部移入到移位寄存器后,對(duì)STB[0:5]操作,加熱印字。由于熱敏打印機(jī)是通過(guò)打印頭加熱后在熱敏打印紙上灼燒印字,所以,加熱時(shí)間的長(zhǎng)短決定了印字的清晰與快慢。因此,根據(jù)實(shí)際情況,合理的設(shè)計(jì)加熱時(shí)間對(duì)于實(shí)現(xiàn)熱敏打印機(jī)的高質(zhì)量打印十分重要。

圖3  I/O口實(shí)現(xiàn)數(shù)據(jù)移位流程圖

4.3 步進(jìn)電機(jī)走紙及驅(qū)動(dòng)

圖4  I/O口模擬輸出PWM的時(shí)序圖


設(shè)計(jì)的熱敏打印機(jī)內(nèi)部的二相四拍步進(jìn)電機(jī)控制打印頭的走紙及走紙速度。由2路I/O口模擬2路PWM輸出,再經(jīng)過(guò)兩個(gè)非門,將輸出的2路模擬PWM波形轉(zhuǎn)換為4路,輸入步進(jìn)電機(jī)驅(qū)動(dòng)器,驅(qū)動(dòng)步進(jìn)電機(jī)[4]。圖4為P1.2與P1.3口模擬輸出PWM的時(shí)序圖。在一個(gè)周期內(nèi),P1.2較P1.3延時(shí)3/4個(gè)周期。

4.4 保護(hù)與中斷

熱敏打印頭加熱時(shí)間一般為1ms,連續(xù)加熱超過(guò)1s后,很容易燒毀、損壞熱敏頭,所以實(shí)際的熱敏打印機(jī)必須對(duì)熱敏打印頭添加過(guò)熱保護(hù)電路。當(dāng)熱敏打印頭溫度過(guò)高時(shí),過(guò)熱保護(hù)模塊輸出一個(gè)低電平到/INT0腳,使打印機(jī)進(jìn)入中斷[3]。圖5為過(guò)熱保護(hù)中斷流程圖。進(jìn)入中斷后,主控芯片斷開(kāi)熱敏打印頭加熱供電控制繼電器,停止熱敏打印頭的加熱供電,并暫停其他動(dòng)作。當(dāng)熱敏打印頭溫度降低后,則過(guò)熱保護(hù)模塊輸出一個(gè)高電平到/INT0腳,此時(shí),打印機(jī)延時(shí)一段時(shí)間后出中斷。

熱敏打印頭內(nèi)部用光電繼電器作為傳感器,檢測(cè)打印頭是否有紙。當(dāng)熱敏打印頭無(wú)紙時(shí),傳感器中的發(fā)光二極管發(fā)出的光束無(wú)法經(jīng)由打印紙反射到光敏三極管上,光敏三極管由此而無(wú)法導(dǎo)通,經(jīng)過(guò)外部電路后,/INT1為低電平,進(jìn)入中斷。反之,/INT1為高電平,工作正常。其中斷流程與過(guò)熱保護(hù)中斷類似。

圖5  過(guò)熱保護(hù)中斷流程圖

4.5 字符庫(kù)的構(gòu)造與提取

由于本打印機(jī)是應(yīng)用于汽車行駛記錄儀的專用打印機(jī),按照汽車行駛記錄儀的要求,約需使用100個(gè)左右的漢字以及26個(gè)大寫英文字母以及10個(gè)阿拉伯?dāng)?shù)字,為降低字庫(kù)對(duì)硬件存儲(chǔ)空間的要求,采用自定義的字符庫(kù)。另外,自定義的字符庫(kù)靈活性較強(qiáng),在自定義字庫(kù)中,這樣既可以在同等打印寬度的情況下實(shí)現(xiàn)靈活打印,也可以使打印出來(lái)的字符效果美觀。提取字符點(diǎn)陣時(shí),首先判斷字符類型,再尋得要打印字符的首地址,按照該字符的點(diǎn)陣規(guī)范,從字庫(kù)中取出打印點(diǎn)陣放入緩沖區(qū),進(jìn)而加載,并打印。

5 結(jié)束語(yǔ)

    本文使用軟件實(shí)現(xiàn)了熱敏打印機(jī)的運(yùn)行控制。實(shí)驗(yàn)證明,微型熱敏打印機(jī)在實(shí)時(shí)性要求不高的諸多場(chǎng)合能正常運(yùn)行,驗(yàn)證了設(shè)計(jì)方案的合理性。而對(duì)于實(shí)時(shí)性要求高、成本并不敏感的打印環(huán)境,則應(yīng)該引入實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)對(duì)打印機(jī)的實(shí)時(shí)操作。

本文創(chuàng)新點(diǎn):為簡(jiǎn)化硬件電路,采用軟件移位實(shí)現(xiàn)數(shù)據(jù)加載,通過(guò)軟件產(chǎn)生步進(jìn)電機(jī)所需的 PWM驅(qū)動(dòng)信號(hào);為減小打印機(jī)對(duì)存儲(chǔ)空間的需求,針對(duì)汽車行駛記錄儀使用字符少的特點(diǎn),設(shè)計(jì)了自定義的字符庫(kù)。

 

下面還介紹一個(gè)

 :在分析M-164微型打印機(jī)控打原理的基礎(chǔ)上,設(shè)計(jì)了以89C52為核心的漢字微型打印機(jī),介紹了主要的硬件構(gòu)成及主要的控打軟件。這種微型打印機(jī)是儀器儀表的重要輸出設(shè)備。
    關(guān)鍵詞:?jiǎn)纹瑱C(jī);打印控制;并行接口;存貯器


1  
  由于單片機(jī)具有簡(jiǎn)單實(shí)用、高可靠性、良好的性能價(jià)格比以及體積小等優(yōu)點(diǎn),已經(jīng)在各個(gè)技術(shù)領(lǐng)域得到了迅猛發(fā)展。本文著重介紹89C52對(duì)并行接口的微型打印機(jī)的控制,以便更好地了解和掌握單片機(jī)對(duì)外部接口的一般和一些特殊功能的應(yīng)用。
2 控制打印原理
  89C52單片機(jī)執(zhí)行程序存貯器中的程序,控制電機(jī)帶動(dòng)滑槽輪及蝸桿轉(zhuǎn)動(dòng)[1],使打印機(jī)的機(jī)頭滑架左右移動(dòng),從而不斷改變同一點(diǎn)行上的打點(diǎn)位置。蝸桿的轉(zhuǎn)動(dòng)一方面通過(guò)凸輪帶動(dòng)走紙機(jī)構(gòu)實(shí)行走紙,另一方面驅(qū)動(dòng)色帶移動(dòng)。電機(jī)轉(zhuǎn)動(dòng)時(shí)感應(yīng)線圈有一個(gè)3 V的正弦信號(hào),經(jīng)過(guò)整形電路后成為方波,此方波輸入到89C52,經(jīng)過(guò)89C52相應(yīng)的指令檢測(cè)此方波的變化時(shí)刻(從上升沿變到下降沿或者從下降沿變到上升沿時(shí)刻),在方波變化時(shí)刻使打印機(jī)的相應(yīng)打針進(jìn)行沖打,完成打印任務(wù),同時(shí)由這個(gè)方波的變化確保各打印點(diǎn)之間的距離相等。當(dāng)機(jī)頭滑架到達(dá)最左邊時(shí),磁鐵使干簧管閉合,這時(shí)單片機(jī)送出一負(fù)脈沖作為行同步信號(hào),使每行打印時(shí)在最左端對(duì)齊。
3 硬件組成
3.1 驅(qū)動(dòng)電路
  用89C52的P1口的P10~P14分別控制打印機(jī)的電機(jī)及打印針頭,P3.3控制干簧繼電開(kāi)關(guān),當(dāng)滑架到達(dá)最左端時(shí),電機(jī)每轉(zhuǎn)一圈,干簧繼電開(kāi)關(guān)閉合一次,P3.3就接地一次發(fā)出一負(fù)脈沖作為同步信號(hào),以保證打印時(shí)每行在最左端對(duì)齊。在以前眾多微型打印機(jī)中,由于應(yīng)用三極管的拉電流,當(dāng)單片機(jī)上電復(fù)位時(shí)P1口的初始狀態(tài)為輸入方式,所以P10~P17均為高電平,如果沒(méi)有一個(gè)非門[2],則單片機(jī)上電復(fù)位時(shí)就會(huì)使組成功率放大器(由2個(gè)NPN管構(gòu)成)的三極管導(dǎo)通,從而使電機(jī)轉(zhuǎn)動(dòng)和4個(gè)打針同時(shí)通電,這是不允許的。在這里使用灌電流足以驅(qū)動(dòng)電機(jī)和打針,故不需非門,如圖1所示。
  電機(jī)轉(zhuǎn)動(dòng)時(shí),感應(yīng)線圈輸出幅值為3 V的正弦波,經(jīng)10,11兩端子送出到晶體管整形為方波后送入P3.4,P3.4檢測(cè)此方波作為打印同步信號(hào),以確保打印點(diǎn)之間距離相等。4只打針循環(huán)同步情況如圖2所示。由圖2可知:A,C打針是在方波下降到來(lái)時(shí)刻沖打,B,D打針在方波上升到來(lái)時(shí)沖打。
  4只打針A,B,C,D在滑架上從左到右水平安裝,間隔24個(gè)點(diǎn)位。在打印每行96個(gè)點(diǎn)時(shí),他們同時(shí)移動(dòng)。次序依次通電激勵(lì),每打1點(diǎn),滑架右移1/4點(diǎn)位,4只打針打完正好移動(dòng)1個(gè)點(diǎn)位。沖打1點(diǎn)行,滑架連續(xù)移動(dòng)24點(diǎn)位。沖打順序如圖3所示。

  打印機(jī)工作時(shí)的程序如下:


3.2 基本系統(tǒng)
  由于微型打印機(jī)的打印緩沖區(qū)一次可快速裝入240個(gè)代碼,如全部為漢字,則要占用RAM為240×32=7 650個(gè)字節(jié),顯然89C52內(nèi)的256 B[3]RAM明顯不夠,所以要外掛1片數(shù)據(jù)存貯器(這里用的是6116)才能滿足要求。基于這些,他的基本系統(tǒng)由89C52芯片,27C040(27C040并不是作為程序存貯器使用,而是用來(lái)存放字庫(kù)、字符),數(shù)據(jù)存貯器(6116)構(gòu)成,如圖4所示。

  由于27C040只有1片,所以其片選線與地址鎖存器(74LS373)的片選線均直接接地。同時(shí)外接的27C040的地址線A0~A7由P0口通過(guò)地址鎖存器提供,A8~A15由P2口提供,A16~A18由P1.5~P1.7提供。而數(shù)據(jù)存貯器(6116)片選端CE是由89C52的P2.7控制的,當(dāng)P2.7=0時(shí)則選中6116,此時(shí)89C52的P2.0~P2.2輸出6116所需的高位地址,P0口輸出6116的低8位地址鎖存在鎖存器74LS373中。若是讀6116,則P0口變?yōu)檩斎敕绞剑赗D為低電平時(shí),選通6116,此時(shí)6116中相應(yīng)的數(shù)據(jù)出現(xiàn)在P0口,再由CPU讀入累加器A中。若是寫,則P0口為輸出,當(dāng)為低電平時(shí),將累加器A中出現(xiàn)在P0口上的數(shù)據(jù)寫入6116。
3.3 89C52對(duì)打印機(jī)聯(lián)絡(luò)信號(hào)的控制
3.3.1 打印機(jī)的聯(lián)絡(luò)信號(hào)
  打印機(jī)的聯(lián)絡(luò)信號(hào)有,BUSY。
  :數(shù)據(jù)選通觸發(fā)脈沖,輸入。此信號(hào)上升沿時(shí)數(shù)據(jù)線上8位數(shù)據(jù)被打印機(jī)讀入機(jī)內(nèi)鎖存。
    :回答脈沖,輸出。當(dāng)其為“低”電平時(shí)表示數(shù)據(jù)已被接收而且打印機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)。
  BUSY:“忙”信號(hào),為狀態(tài)輸出線,當(dāng)打印機(jī)在打印字符、執(zhí)行命令期間BUSY=1,表示打印機(jī)處于“忙”狀態(tài),這時(shí)打印機(jī)通知主機(jī),他處于“忙”之中而不能接收數(shù)據(jù),此時(shí)主機(jī)不能使用信號(hào)向打印機(jī)送入新的數(shù)據(jù)字節(jié)。當(dāng)打印機(jī)打完一個(gè)字符后,BUSY=0,同時(shí)他產(chǎn)生信號(hào)通知主機(jī),準(zhǔn)備接收下一個(gè)數(shù)據(jù),當(dāng)主機(jī)接收到BUSY=0時(shí),主機(jī)向打印接口輸出1 B到D0~D7,并發(fā)出低電平信號(hào),當(dāng)打印機(jī)收到STB低電平信號(hào)后,單片機(jī)在其上升沿時(shí)讀入數(shù)據(jù)。其時(shí)序圖[4]如圖5所示。

3.3.2 89C52對(duì)聯(lián)絡(luò)信號(hào)實(shí)施控制的電路電路圖如圖6所示。
  上電復(fù)位時(shí)D觸發(fā)器(U1)的Q輸出端為1,無(wú)論P(yáng)3.0為何值,經(jīng)過(guò)“或”門(6)后,BUSY=1,不接收數(shù)據(jù)。
    當(dāng)89C52的P2.7=0時(shí),即有6116(數(shù)據(jù)存貯器)的CE為低電平,表示選中了6116,由圖3可知當(dāng)P2.7=0時(shí),經(jīng)過(guò)反相器(3)再經(jīng)過(guò)“或”門(8),此時(shí)無(wú)論P(yáng)3.7為何值74ALS374的片選端CE總為高電
平,即沒(méi)有選中,這樣就保證了外部的數(shù)據(jù)與數(shù)據(jù)存貯器的數(shù)據(jù)分別進(jìn)行傳輸與接收而不至發(fā)生混亂。從上面的分析,當(dāng)P2.7=0時(shí),表示選中了6116,而沒(méi)
有選中74ALS374,此時(shí)主機(jī)不應(yīng)有數(shù)據(jù)送入打印機(jī),即有BUSY=`,=1,下面來(lái)看是否滿足這點(diǎn):當(dāng)P2.7=0時(shí),經(jīng)過(guò)反相器(3)一路經(jīng)D觸發(fā)器(U2)的Q輸出為1即=1,另一路經(jīng)過(guò)“或”門(8),
這時(shí)無(wú)論P(yáng)3.7為何值,輸出總為1,再經(jīng)D觸發(fā)器(U1)的Q輸出也為1,經(jīng)“或”門(6)后,BUSY=1,顯然滿足要求。

  當(dāng)P2.7=1時(shí),通過(guò)“非”門(3)后變?yōu)?,若此時(shí)單片機(jī)準(zhǔn)備讀取數(shù)據(jù)(即P3.7=0),他們經(jīng)過(guò)“或”門(8)后,一路到74ALS374的片選端(CE),一路到D觸發(fā)器(U1)的清除端,使D觸發(fā)器的Q輸出端為0,即有74ALS374(CLK)為0,表示74ALS374的D0-D7端已有數(shù)據(jù)(同時(shí),即P3.5=1,,這樣通過(guò)檢測(cè)單片機(jī)的P3.5就可知道是否有數(shù)據(jù)輸入),此時(shí)若89C52的P3.0=0,經(jīng)過(guò)“或”門(6)后輸出為0,即BUSY=0,又由于P2.7經(jīng)過(guò)“非”門(3)后為0,他輸出到D觸發(fā)器(U2)的D端,當(dāng)P3.6()從低電平變?yōu)楦唠娖綍r(shí)使D觸發(fā)器(U2)的Q輸出端為0即=0,這時(shí)當(dāng)主機(jī)發(fā)出脈沖時(shí),在脈沖上升沿到來(lái)時(shí)打印機(jī)開(kāi)始從74ALS374中讀入數(shù)據(jù)。
4 軟件設(shè)計(jì)
  系統(tǒng)控制軟件主要包括:主程序、打印機(jī)是否在線的子程序、判斷是何種機(jī)型的子程序、判斷滑架到達(dá)最左端的子程序、讀取數(shù)據(jù)的子程序和走紙與打印的子程序等,其主程序流程框圖如圖7所示,其他子程序由于篇幅所限,在此不再詳細(xì)介紹。

關(guān)閉窗口
主站蜘蛛池模板: 一区二区三区视频 | 久久精品二区 | 日本中文字幕视频 | 欧美a在线 | 国产精品电影在线观看 | 国产日韩欧美 | 国户精品久久久久久久久久久不卡 | 欧美一区二区三区在线观看 | 久久国产精品久久久久久 | 欧美日韩国产一区二区三区 | 国产蜜臀 | 国产精品a久久久久 | 作爱视频免费观看 | 日韩一区二区三区在线 | 中文字幕在线观看日韩 | av中文字幕在线 | 在线国产中文字幕 | 国产精品欧美一区二区 | 黄视频免费在线 | 免费看黄视频网站 | 欧美国产亚洲一区二区 | 日韩精品在线免费观看 | 国产一区二区在线播放 | 国产第1页| 婷婷久久一区 | 91麻豆精品国产91久久久久久 | 精品久久国产 | 97国产精品视频人人做人人爱 | 狠狠av| 三级成人片 | 国产伦精品一区二区三区照片91 | 欧美成人猛片aaaaaaa | 国产精品免费看 | www.日本三级 | av网站免费观看 | 国产精品精品视频一区二区三区 | 日韩欧美在 | 久热免费在线 | 中文字幕在线看人 | 日本大片在线播放 | 日本精品一区二区三区四区 |