基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)

上傳人:2127513****773577... 文檔編號(hào):67026194 上傳時(shí)間:2022-03-30 格式:DOC 頁(yè)數(shù):45 大?。?32.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共45頁(yè)
基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共45頁(yè)
基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共45頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于單片機(jī)微型打印機(jī)系統(tǒng)控制設(shè)計(jì)(45頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單基片機(jī)的微型打印機(jī)的設(shè)計(jì)摘 要目前,電子領(lǐng)域正向著數(shù)字化、信息化、微型化發(fā)展。打印機(jī)作為數(shù)字輸出設(shè)備之一也朝著多功能、高性能的方向發(fā)展。微型打印機(jī)是電子信息領(lǐng)域一種很重要的輸出設(shè)備。本文設(shè)計(jì)的主要目的是運(yùn)用單片機(jī)來(lái)控制微型打印機(jī)來(lái)實(shí)現(xiàn)打印的目的。本設(shè)計(jì)基于榮達(dá)RD-E系列微型打印機(jī),以單片機(jī)P80C51以核心元件,輔以必要的外圍電路(包括實(shí)時(shí)時(shí)鐘電路、溫度傳感器和液晶顯示模塊、按鍵、打印機(jī)),采用并行接口技術(shù),同時(shí)通過(guò)液晶顯示器顯示打印的數(shù)字和文字信息。可以實(shí)現(xiàn)打印一段固定的文字和單個(gè)任意的數(shù)字,同時(shí)把打印的內(nèi)容顯示在液晶屏上。本文主要用溫度傳感器測(cè)量溫度,再通

2、過(guò)單片機(jī)控制熱敏電阻打印機(jī)打印出小票,設(shè)計(jì)了時(shí)鐘接口電路,打印機(jī)接口電路,溫度傳感器接口電路和液晶顯示接口電路。再輔助軟件設(shè)計(jì)來(lái)進(jìn)行調(diào)試。關(guān) 鍵 詞:打印機(jī),單片機(jī),液晶顯示器,DS1302時(shí)鐘BASED 0N A SINGLE SUBSTRATE MACHINE DESIGNED FOR MICRO PRINTERABSTRACTAt present, the electronics field is developing towards digitalization, information, miniaturation. Printer, as one of the digital ou

3、tput devices are also moving into the direction of multi-function, high performance. The micro printer.It is a kind of important electronic information field output device.Design is the main purpose of this article is to use single-chip microcomputer to control the micro printer for printing purpose

4、s. This design based on RD - E series micro printer, P80C51 MCU core components, supplemented by the necessary peripheral circuit (including real time clock circuit, temperature sensor and LCD display module, keys, printer), USES the parallel interface technology, at the same time, through the LCD d

5、isplay to print Numbers and text messages. Can achieve print a fixed text and a single arbitrary Numbers, and at the same time to print the contents of the display on the LCD screen. Temperature is measured in this paper, with a temperature sensor, and controlled by single chip thermal resistor prin

6、ter to print out receipts, designs the interface circuit, clock printer interface circuit and temperature sensor interface circuit and LCD interface circuit. Auxiliary software designed to debug.KEY WORDS:printers, microcontroller, liquid crystal display, DS1302 clock 目 錄 專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)前 言近年,隨著社會(huì)的發(fā)展生活日新月異

7、。人們的工作的也很繁雜,各種大大小小的公司都得到了很大的發(fā)展,公司在日常發(fā)展中難免需要打印各種各樣的文件和資料,所 以各種各樣的打印機(jī)也得到很好的應(yīng)用,但許多打印機(jī)成本都很高,體積也比較大,而且性能以及其他的一些都不是很好,所以人們開(kāi)始研究新型的微型打印機(jī),微型打印機(jī)已經(jīng)走進(jìn)我們的生活中來(lái)了,它跟以往的大型打印進(jìn)來(lái)說(shuō),最大的優(yōu)點(diǎn)就是體積小,節(jié)約了空間,而且外觀優(yōu)美,性能可觀,而且價(jià)格相對(duì)以往的來(lái)說(shuō)會(huì)便宜許多,性?xún)r(jià)比很高,其特有的多份拷貝、復(fù)寫(xiě)打印和連續(xù)打印功能,使許多專(zhuān)業(yè)打印領(lǐng)域?qū)ζ淝橛歇?dú)鐘。它越來(lái)越趨向于被設(shè)計(jì)成各種各樣的專(zhuān)業(yè)類(lèi)型,用以打印各類(lèi)專(zhuān)業(yè)性較強(qiáng)的報(bào)表、存折、發(fā)票、車(chē)票、卡片等輸出介

8、質(zhì)。所以微型打印機(jī)的前景相當(dāng)可觀。 從1946年日本大和公司(即現(xiàn)在的EPSON公司)研制出第一臺(tái)微型打印機(jī)開(kāi)始,微型打印機(jī)如今已有60年的歷史。在這60年里,微型打印機(jī)技術(shù)獲得了突飛猛進(jìn)的發(fā)展。從最初的點(diǎn)陣式打印方式,已經(jīng)擴(kuò)展到現(xiàn)今的近10種微型打印方式,包括梭式打印、9針擊打、24針擊打、噴墨打印、熱敏打印等。其產(chǎn)品種類(lèi)也百花齊放,包括工業(yè)儀器、商場(chǎng)POS、醫(yī)院收費(fèi)、話(huà)費(fèi)清單、餐廳、銀行、加油站、路橋收費(fèi)等領(lǐng)域都會(huì)有它的身影。目前,在國(guó)內(nèi)微打市場(chǎng)上主要有EPSON、STAR、SAMSUNG等國(guó)際品牌和實(shí)達(dá)、公達(dá)、博施等國(guó)內(nèi)品牌。其配套的設(shè)備主要有:收款機(jī)、觸摸POS終端、電腦等多項(xiàng)設(shè)備幾乎

9、所有需要打印的地方。本課題以單片機(jī)為核心,設(shè)計(jì)和微型打印機(jī)的接口電路,編寫(xiě)微型打印機(jī)驅(qū)動(dòng)程序,實(shí)現(xiàn)特定信息的打印輸出。首先系統(tǒng)硬件部分選用MCS-51單片機(jī)系列,顯示器部分由液顯示編寫(xiě)驅(qū)動(dòng)程序用keil,打印格式是由打印機(jī)芯片用電磁鐵打針,再用按鍵的方式按打印格式輸出。第1章 系統(tǒng)總體設(shè)計(jì)1.1總體設(shè)計(jì)框圖基于單片機(jī)的微型打印機(jī)的設(shè)計(jì)的總體設(shè)計(jì)框圖,如圖1-1圖1-1總體設(shè)計(jì)框圖1.2 系統(tǒng)功能簡(jiǎn)介1、溫度傳感器測(cè)量的當(dāng)前溫度值,通過(guò)主控制器在液晶屏上顯示當(dāng)前溫度和時(shí)間。2、按鍵操作可以決定微型打印機(jī)的開(kāi)始,即按鍵后打印機(jī)開(kāi)始打印。第2章 系統(tǒng)硬件設(shè)計(jì)2.1 主控制器部分的設(shè)計(jì)2.1.1主控芯

10、片的選擇 P80C51基于80C51內(nèi)核采用高密度CMOS技術(shù)設(shè)計(jì)制造,包含中央處理單元、片內(nèi)4k程序存儲(chǔ)器,128字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM、32個(gè)雙向輸入/輸出(I/O)口、3個(gè)16位定時(shí)/計(jì)數(shù)器和6個(gè)中斷源,4層優(yōu)先級(jí)中斷嵌套結(jié)構(gòu),可用于多機(jī)通信的串行I/O口,I/O擴(kuò)展或全雙工UART,片內(nèi)時(shí)鐘振蕩電路。此外,P80C51采用低功耗靜態(tài)設(shè)計(jì),寬工作電壓范圍(2.7-5.5V),寬工作頻率(可為0Hz),兩種軟件方式選擇電源空閑和掉電模式??臻e模式下,凍結(jié)CPU而RAM定時(shí)器、串行口和中斷系統(tǒng)維持其功能。由于是靜態(tài)設(shè)計(jì)。所以掉電模式下,時(shí)鐘振蕩停止,RAM數(shù)據(jù)會(huì)得以保存,停止芯片內(nèi)其它功能

11、。CPU喚醒后,從時(shí)鐘斷點(diǎn)處恢復(fù)執(zhí)行程序。其引腳及各引腳功能如下圖2-12-1引腳圖單片機(jī)的40個(gè)引腳大致可分為4類(lèi):電源、時(shí)鐘、控制和I/O引腳。 電源: VCC - 芯片電源,接+5V; VSS - 接地端; 時(shí)鐘: XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 控制線(xiàn):控制線(xiàn)共有4根, ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖 ALE功能:用來(lái)鎖存P0口送出的低8位地址 PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 PSEN:外ROM讀選通信號(hào)。 RST/VPD:復(fù)位/備用電源。 RST(Reset)功能:復(fù)位信號(hào)輸入端。

12、 VPD功能:在Vcc掉電情況下,接備用電源。 EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。 EA功能:內(nèi)外ROM選擇端。b)Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 I/O線(xiàn)80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線(xiàn))。(b)單片機(jī)接口電路如圖2-2圖2-2單片機(jī)接口電路2.1.2復(fù)位電路在P80C51單片機(jī)中的振蕩器運(yùn)行時(shí),RST非引腳上保持到少2個(gè)機(jī)器周期的高電平輸入信號(hào),復(fù)位過(guò)程即可完成。根據(jù)此原理,本設(shè)計(jì)采用上系統(tǒng)的實(shí)用性。本設(shè)計(jì)的具體復(fù)

13、如下圖2-3。圖2-3 復(fù)位電路2.1.3 晶振電路P80C51在工作時(shí)需要外部提供時(shí)鐘信號(hào),因此,本設(shè)計(jì)選擇在其18腳19腳之間接上12MHz的晶振,為單片機(jī)提供1s的機(jī)器振蕩周期。其電路連接圖如圖所示。在圖中,電容器C3、C4起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在2050pF。晶振電路圖如下圖2-4。圖2-4晶振電路圖2.2 顯示系統(tǒng)的設(shè)計(jì)2.2.1 顯示系統(tǒng)的方案的選擇方案 1 :用數(shù)碼管或點(diǎn)陣LED 顯示。方案 2 :用液晶1602 顯示。方案 3 :用液晶12864 顯示。時(shí)鐘和溫度的顯示可以用數(shù)碼管或LED,而且價(jià)格便宜。但是數(shù)碼管的只能顯示簡(jiǎn)單的設(shè)計(jì)的系統(tǒng),與我們?cè)O(shè)計(jì)要求

14、也不相符。有很多東西需要顯示,還是用顯示功能更好的液晶顯示器比較好,它能顯示更多的數(shù)據(jù),用1602液晶顯示數(shù)據(jù)有限,1602不能夠顯示指針時(shí)鐘,只能夠顯示一些基本的西文字符,顯示數(shù)據(jù)的可讀性不好,用可以顯示漢字的 12864液晶顯示器還可以增加顯示信息的可讀性,用12864 的繪圖功能即可繪制出指針時(shí)鐘的框架,至于指針的轉(zhuǎn)動(dòng)則才12864 加 ds1302同步控制,讓人看起來(lái)會(huì)很方便。雖然它們?cè)趦r(jià)格上差距很大,但是1602不能夠?qū)崿F(xiàn)我們的要求,12864.是我們唯一的選擇。2.2.2 12864F 簡(jiǎn)介帶中文字庫(kù)的128X64是一種具有4 位/8 位并行、2 線(xiàn)或 3 線(xiàn)串行多種接口方式,內(nèi)部

15、含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864, 內(nèi)置 8192 個(gè) 16*16 點(diǎn)漢字,和128 個(gè)16*8 點(diǎn) ASCII 字符集.利用該模塊靈活的接口方式和單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8 4 行 1616 點(diǎn)陣的漢字. 也可完成圖形顯示. 低電壓低功耗是其顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類(lèi)型的圖形點(diǎn)陣液晶示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。2.2.3 12864F 引腳說(shuō)明管腳號(hào)管腳名電平管腳功能描述1VSS0V電源地2VCC3 .0+5V電源正3V0-對(duì)比

16、度(亮度)調(diào)整4RS(CS)H/LRS=“H”, 表示 DB7DB0 為顯示數(shù)據(jù)RS=“L”, 表示 DB7DB0 為顯示指令數(shù)據(jù)5R/W(SIDH/LR/W=“H”,E=“H”, 數(shù)據(jù)被讀到DB7DB0 R/W=“L”,E=“HL”, DB7DB0 的數(shù)據(jù)被寫(xiě)到IR或 DR6E(SCLK)H/L使能信號(hào)7DB0H/L三數(shù)據(jù)線(xiàn)8DB1H/L三數(shù)據(jù)線(xiàn)9DB2H/L三數(shù)據(jù)線(xiàn)10DB3H/L三數(shù)據(jù)線(xiàn)11DB4H/L三態(tài)數(shù)據(jù)線(xiàn)12DB5H/L三態(tài)數(shù)據(jù)線(xiàn)13DB6H/L三態(tài)數(shù)據(jù)線(xiàn)14DB7H/L三態(tài)數(shù)據(jù)線(xiàn)15PSBH/LH:8 位或 4 位并口方式,L:串口方式(見(jiàn)注釋 1 )16NC-空腳17/RES

17、ET H/LH/L復(fù)位端,低電平有效(見(jiàn)注釋2 )18VOUT - LCD- LCD驅(qū)動(dòng)電壓輸出端19AVDD背光源正端(+5V)(見(jiàn)注釋3 )20KVSS背光源負(fù)端(見(jiàn)注釋3 )2.2.4 12864F 液晶顯示電路圖2-5 液晶顯示電路圖設(shè)計(jì)中采用 LCD12864液晶顯示。它一般串口、并口兩種方式顯示, 而我們一般采用并口顯示。12864的 4 、5 、6 、15、17 腳分別與單片機(jī) 的 P3.0 P3.4 相連。714 腳與單片機(jī)的P0 口相連。1 、20 號(hào)腳接地,2 號(hào)腳接電源,19 號(hào)腳背光燈正端串一個(gè)電阻與電源相連,電阻起限流 的作用,我們?nèi)?R=10K。3 號(hào)腳是對(duì)比度(亮

18、度)調(diào)整,這里要用一個(gè) 滑動(dòng)變阻器來(lái)調(diào)整亮度,這里我們?nèi)‰娢黄鞔笮?0K。 2.3 溫度系統(tǒng)設(shè)計(jì)2.3.1 方案的選擇方案 1 :用熱敏電阻等測(cè)溫元件測(cè)出電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度。需要比較 多的外部元件(A/D 轉(zhuǎn)換)支持,且硬件電路復(fù)雜,制作成本相對(duì)較高。 方案 2 :用 DS18B20直接測(cè)溫。DS18B20 溫度傳感器是美國(guó)DALLAS半導(dǎo) 體公司最新推出的一種改進(jìn)型智能溫度傳感器,它能直接讀出被測(cè)溫度, 并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。經(jīng)比較,我們選擇方案2 。溫度實(shí)現(xiàn)只能通過(guò)外部的溫度傳感器來(lái)實(shí)現(xiàn)。經(jīng)上網(wǎng)查閱及市場(chǎng)考察,DS18b20體積小,只有3 只

19、腳,電路接法簡(jiǎn)單。內(nèi)部含有寄存器為 我們?cè)O(shè)計(jì)實(shí)現(xiàn)上下限報(bào)警功能提供保障。精度為0 .5C,也符合我們?cè)O(shè) 計(jì)的要求。 DS18B20 也是我們通常使用的型號(hào),因此溫度傳感器 用DS18B20。2.3.2 溫度芯片的選擇溫度實(shí)現(xiàn)只能通過(guò)外部的溫度傳感器來(lái)實(shí)現(xiàn)。經(jīng)上網(wǎng)查閱資料及市場(chǎng)考察,DS18b20體積小,只有 3 只腳,電路接法簡(jiǎn)單。它能夠直接讀出被測(cè)溫度。內(nèi)部含有寄存器為我們?cè)O(shè)計(jì)實(shí)現(xiàn)上下限報(bào)警功能提供保障。用戶(hù)可定義的非易失性溫度報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;精度為0 .5C,也符合我們?cè)O(shè)計(jì)的要求。DS18B20也是我們通常使用的型號(hào),因此溫度傳感器用

20、 DS18B20。2.3.2 DS18B20內(nèi)部結(jié)構(gòu)描述DS18B20 溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM 和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM 的結(jié)構(gòu)為8個(gè)字節(jié)的 存儲(chǔ)器,結(jié)構(gòu)如圖 4 .1 所示。頭兩個(gè)字節(jié)包含測(cè)得的溫度信息,第三和 第四字節(jié)是TH 和 TL 的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第五個(gè)字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如圖4 .2 所示。低5 位一直為1 ,TM 是測(cè)試模式位,用于設(shè)置DS18B20 在工作模式還是在測(cè)試模式。表2.1

21、高速暫存 RAM 結(jié)構(gòu)圖溫度LSB1 字節(jié)溫度MSB2 字節(jié)TH用戶(hù)字節(jié) 13 字節(jié)TL用戶(hù)字節(jié) 24 字節(jié)TH 用戶(hù)字節(jié) 1配置寄存器5 字節(jié)TL 用戶(hù)字節(jié) 2保留6 字節(jié)保留7字節(jié)EEROM保留8 字節(jié)CRC9字節(jié)表2.2 配置寄存器TMR1R0111112.3.3 DS18b20溫度系統(tǒng)電路圖2-6溫度接口電路圖2.4 時(shí)鐘系統(tǒng)電路設(shè)計(jì)2.4 .1 時(shí)鐘芯片選擇 我們采用具有涓細(xì)電流充電能力的低功耗實(shí)時(shí)時(shí)鐘電路DS1302。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。它采用主電源和備用電源雙電源供電。它的工作電壓范 圍2 .05.5V,在 2 .2V 時(shí),小于

22、 300nA。它內(nèi)部含有31個(gè)字節(jié)的靜態(tài)RAM,可提供用戶(hù)訪(fǎng)問(wèn)。DS1302可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),可以達(dá)到我們?cè)O(shè)計(jì)的基本的要求。內(nèi)部的寄存器為我們調(diào)時(shí),鬧鐘定時(shí)提供了寄存空間。備用用電源也實(shí)現(xiàn)了當(dāng)系統(tǒng)斷電后,時(shí)鐘仍然可以保持。而且 它是串行接口,與單片機(jī)通信所需要的接口少。不像 DS12887等芯片并行通信需要很多IO 口。2.4 .2 DS1302管腳及寄存器說(shuō)明DS1302的引腳排列Vcc1 為后備電源,VCC2 為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。當(dāng) Vcc2 大于Vcc10 .2V

23、時(shí),Vcc2 給 DS1302供電。當(dāng) Vcc2 小于 Vcc1時(shí),DS1302由 Vcc1 供電。因此,我們 vcc1 用 3V 的紐扣電池作為備用電源,vcc2 用系統(tǒng)電源作為主電源。X1 和 X2 是振蕩源,外接 32.768kHz晶振。RST 是復(fù)位/ 片選線(xiàn),通過(guò)把RST 輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST 輸入有兩種功能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302進(jìn)行操作。如果在傳送過(guò)程中RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O

24、 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2 .5V 之前,RST 必須保持低電平。只有在SCLK 為低電平時(shí),才能將RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端( 雙向) 。SCLK 為時(shí)鐘輸入端。DS1302的寄存器說(shuō)明DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD 碼形式。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM 相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。DS1302與 RAM 相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM 單元,共 3 1個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令

25、控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM 寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字 為FEH(寫(xiě)) 、FFH(讀)。2.4 .3 DS1302時(shí)鐘電路圖2-7 時(shí)鐘接口電路圖2.5 鍵盤(pán)只需要選擇一個(gè)開(kāi)始打印鍵接口電路圖2-8 按鍵接口電路圖2.6 微型打印機(jī)2.6.1 特點(diǎn)與性能RD-E 型熱敏微型打印機(jī)專(zhuān)為儀器儀表面板安裝而設(shè)計(jì),采用獨(dú)特的面板式嵌入結(jié)構(gòu),便可將整個(gè)打印機(jī)固定在儀表面板上。RD-E 型為前面板易上紙結(jié)構(gòu)設(shè)計(jì),擁有多項(xiàng)專(zhuān)利技術(shù),實(shí)現(xiàn)打印機(jī)上紙變革。E 型殼體超小、超薄,外觀精巧;安裝開(kāi)孔尺寸僅為 76mm76mm

26、, 深度僅:45mm;但可容納直徑為 33mm 的打印紙卷。控制板為防塵設(shè)計(jì)安裝,采用原裝進(jìn)口打印頭有效確保打印效果與打印機(jī)的使用壽命。2.7 打印機(jī)接口電路圖2-9 打印機(jī)接口電路圖2.8硬件原理圖圖2-10 硬件原理圖第3章 軟件設(shè)計(jì)3.1并口連接方式例程#include#include#includebit STB=P1.1;sbit BUSY=P1.0;/*并口打印子程序*/void pprint(unsigned char ch) while(BUSY) ; P0=ch; STB=0; _nop_(); _nop_(); STB=1;sbit STB=P1.1;sbit BUSY=P

27、1.0;/*主函數(shù)*/main()int i;char ch=北京榮達(dá)測(cè)試程序; pprint(0x1b);pprint(0x38);pprint(0x00); /調(diào)用漢字出庫(kù)指令for(i=0;istrlen(ch);i+)pprint(chi);pprint(0x0d);/回車(chē)3.2 按鍵接口設(shè)計(jì)#include /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義sbit KEY=P33; /定義按鍵輸入端口sbit LED=P12; /定義led輸出端口/*- 主函數(shù)-*/void main (void) KEY=1; /按鍵輸入端口電平置高while (1) /主循環(huán) i

28、f(!KEY) /如果檢測(cè)到低電平,說(shuō)明按鍵按下 LED=0; else LED=1; /這里使用if判斷,如果按鍵按下led點(diǎn)亮,否則熄滅 /上述4句可以用一句替代 LED=KEY; /主循環(huán)中添加其他需要一直工作的程序 3.3 12864,DS1302,DS18B20的接口程序/*程序名稱(chēng): 時(shí)鐘+溫度通過(guò) LCD12864 顯示 默認(rèn)時(shí)間: 從 12:00 開(kāi)始版本: VER1.0適用板本: PL-51 學(xué)習(xí)板*/*頭文件*/ #include #include #define uint unsigned int #define uchar unsigned char #define N

29、op() _nop_() #define _Nop() _nop_()/*引腳端口定義*/sbit LCD12864_RS_PORT= P24; /*LCD12864 引腳定義*/sbit LCD12864_RW_PORT = P265;sbit LCD12864_E_PORT= P26;#define LCD12864_DA_PORT P0/sbit dula=P23;/數(shù)碼管的段選信號(hào)sbit wela=P22; /數(shù)碼管的位選信號(hào)void delay1 (void)/關(guān)閉數(shù)碼管延時(shí)程序int k;for (k=0; k0; i -)T_IO = ACC0;/*相當(dāng)于匯編中的 RRC */

30、T_CLK = 1;T_CLK = 0;ACC = ACC 1;/*函 數(shù) 名:RTOutputByte()功能:實(shí)時(shí)時(shí)鐘讀取一字節(jié) 說(shuō)明:從 DS1302 讀取 1Byte 數(shù)據(jù) (內(nèi)部函數(shù))入口參數(shù):無(wú) 返 回 值:ACC*/uchar RTOutputByte(void)uchar i; for(i=8; i0; i -)ACC = ACC 1;/*相當(dāng)于匯編中的 RRC */ ACC7 = T_IO;T_CLK = 1;T_CLK = 0;return(ACC);/*函 數(shù) 名:W1302()功能:往 DS1302 寫(xiě)入數(shù)據(jù) 說(shuō)明:先寫(xiě)地址,后寫(xiě)命令/數(shù)據(jù) (內(nèi)部函數(shù)) 調(diào)用:RTIn

31、putByte() , RTOutputByte() 入口參數(shù):ucAddr: DS1302 地址, ucData: 要寫(xiě)的數(shù)據(jù) 返 回 值:無(wú)*/void W1302(uchar ucAddr, uchar ucDa)T_RST = 0;T_CLK = 0;T_RST = 1;RTInputByte(ucAddr);/* 地址,命令 */RTInputByte(ucDa);/* 寫(xiě) 1Byte 數(shù)據(jù)*/T_CLK = 1;T_RST = 0;/*函 數(shù) 名:R1302()功能:讀取 DS1302 某地址的數(shù)據(jù) 說(shuō)明:先寫(xiě)地址,后讀命令/數(shù)據(jù) (內(nèi)部函數(shù))調(diào)用:RTInputByte() ,

32、RTOutputByte() 入口參數(shù):ucAddr: DS1302 地址 返 回 值:ucData :讀取的數(shù)據(jù)*/uchar R1302(uchar ucAddr)uchar ucData;T_RST = 0;T_CLK = 0;T_RST = 1;RTInputByte(ucAddr);/* 地址,命令 */ucData = RTOutputByte();/* 讀 1Byte 數(shù)據(jù) */T_CLK = 1;T_RST = 0;return(ucData); /* 函 數(shù) 名:Set1302()功能:設(shè)置初始時(shí)間 說(shuō)明:先寫(xiě)地址,后讀命令/數(shù)據(jù)(寄存器多字節(jié)方式) 調(diào)用:W1302() 入

33、口參數(shù):pClock: 設(shè)置時(shí)鐘數(shù)據(jù)地址 格式為: 秒 分 時(shí) 日 月 星期 年7Byte (BCD 碼)1B 1B 1B 1B 1B 1B 1B返 回 值:無(wú)*/void Set1302(uchar *pClock)uchar i;uchar ucAddr = 0x80; EA = 0;W1302(0x8e,0x00); /* 控制命令,WP=0,寫(xiě)操作*/ for(i =7; i0; i -)W1302(ucAddr,*pClock); /* 秒 分 時(shí) 日 月 星期 年 */ pClock+;ucAddr +=2;W1302(0x8e,0x80); /* 控制命令,WP=1,寫(xiě)保護(hù)*/

34、EA = 1;/*函 數(shù) 名:Get1302()功能:讀取 DS1302 當(dāng)前時(shí)間 說(shuō)明: 調(diào)用:R1302() 入口參數(shù):ucCurtime: 保存當(dāng)前時(shí)間地址。當(dāng)前時(shí)間格式為: 秒 分 時(shí) 日 月 星期 年7Byte (BCD 碼) 1B 1B 1B 1B 1B 1B 1B返 回 值:無(wú)*/void Get1302(uchar ucCurtime)uchar i;uchar ucAddr = 0x81; EA = 0;for (i=0; i0;i-)DQ = 0; / 給脈沖信號(hào) dat=1;DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0x80; delay(4);return

35、(dat);/寫(xiě)一個(gè)字節(jié)void WriteOneChar(unsigned char dat)uchar i=0;for (i=8; i0; i -) DQ = 0;DQ = dat&0x01; delay(5);DQ = 1; dat=1; /讀取溫度uint ReadTemperature()uchar a=0; uchar b=0; uint t=0; float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20();WriteOneChar(0x

36、CC); /跳過(guò)讀序號(hào)列號(hào)的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就是溫度 a=ReadOneChar();b=ReadOneChar();t=b;t=8;t=t|a;tt=t*0.0625; /將溫度的高位與低位合并 t= tt*10+0.5; /對(duì)結(jié)果進(jìn)行 4 舍 5 入 return(t);/以上是 DS18B20 驅(qū)動(dòng)程序/以下是 LCD12864 驅(qū)動(dòng)程序/void LCD12864_WaitIdle() /LCD12864 忙 信號(hào)檢測(cè)LCD12864_DA_PORT = 0xff; LCD12864_RS_PORT = 0;

37、 LCD12864_RW_PORT = 1; LCD12864_E_PORT = 1;while(LCD12864_DA_PORT&0x80)=1); /*等待 BF 不為 1*/ LCD12864_E_PORT = 0;void LCD12864_COM_Write( uchar com_da) /* 檢測(cè)忙信號(hào)寫(xiě)入命令字com_da 為待寫(xiě)入的命令字*/LCD12864_WaitIdle(); LCD12864_RS_PORT = 0; LCD12864_RW_PORT = 0; LCD12864_DA_PORT = com_da; LCD12864_E_PORT = 1;Nop();No

38、p();Nop();Nop(); Nop();Nop();Nop();Nop(); LCD12864_E_PORT = 0;void LCD12864_NoWaitIdle_COM_Write(uchar com_da) /* 不檢測(cè)忙信號(hào)寫(xiě)入命令字com_da 為待寫(xiě)入的命令字*/LCD12864_RS_PORT = 0;LCD12864_RW_PORT = 0; LCD12864_DA_PORT = com_da; LCD12864_E_PORT = 1;Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop(); LCD12864_E_PORT = 0

39、;void LCD12864_Data_Write(uchar da) /* 數(shù)據(jù)寫(xiě)入da 為待寫(xiě)入的 8 位數(shù)據(jù)*/LCD12864_WaitIdle(); /*檢測(cè)忙信號(hào)*/ LCD12864_RS_PORT = 1; LCD12864_RW_PORT = 0; LCD12864_DA_PORT = da; LCD12864_E_PORT = 1;Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop(); LCD12864_E_PORT = 0;void lcd_delay_ms(uchar x)/*1MS 為單位的延時(shí)程序,不準(zhǔn)確*/uchar j;

40、 while(x-) for(j=0;j=8)|(ypos=4) ) return; /*X 位置超出顯示范圍退出*/ if(ypos=0) xy_pos = 0x80 + xpos;else if(ypos=1) xy_pos = 0x90 + xpos; /*計(jì)算轉(zhuǎn)換地址*/ else if(ypos=2) xy_pos = 0x88 + xpos;else if(ypos=3) xy_pos = 0x98 + xpos; LCD12864_COM_Write(xy_pos); /*寫(xiě)地址*/ lcd_delay_ms(1);LCD12864_Data_Write(daH); /*寫(xiě)高八位

41、數(shù)據(jù)*/ lcd_delay_ms(1);LCD12864_Data_Write(daL); /*寫(xiě)低八位數(shù)據(jù)*/ lcd_delay_ms(1);/以上是 LCD12864 驅(qū)動(dòng)程序/ /*1MS 為單位的延時(shí)程序*/ void delay_1ms(uchar x)uchar j; while(x-)for(j=0;j125;j+);void main()uchar i;uint temp_buff;LCD12864_Reset(); /*LCD 初始化*/P0=0X00;/關(guān)掉數(shù)碼管的信號(hào)。阻止數(shù)碼管受到 P0 口信號(hào)的影響。 dula=1;wela=0;delay1();dula=0;w

42、ela=0;delay1();/LCD12864_DA_PORT = 0xff; /*釋放 P0 端口*/ Set1302(time_data_buff); /*設(shè)置時(shí)間*/ while(1)for(i=0;i8;i+) LCD12864_HAIZI_WRITE(i,0,hanzi_buff1i*2,hanzi_buff1i*2+1); /*顯示年月日*/for(i=0;i8;i+) LCD12864_HAIZI_WRITE(i,1,hanzi_buff2i*2,hanzi_buff2i*2+1); /*顯示星期*/for(i=0;i8;i+) LCD12864_HAIZI_WRITE(i,2

43、,hanzi_buff3i*2,hanzi_buff3i*2+1); /*顯示時(shí)間*/for(i=0;i8;i+) LCD12864_HAIZI_WRITE(i,3,hanzi_buff4i*2,hanzi_buff4i*2+1); /*顯示溫度*/temp_buff = Read Temperature(); /*讀取溫度*/hanzi_buff410 = mun_to_chartemp_buff/100; /*填充溫度到緩存*/ hanzi_buff411 = mun_to_chartemp_buff%100/10;hanzi_buff413 = mun_to_chartemp_buff%

44、10; Get1302(time_data_buff);hanzi_buff12 = mun_to_chartime_data_buff6/0x10; hanzi_buff13 = mun_to_chartime_data_buff6%0x10; /*年*/ hanzi_buff16 = mun_to_chartime_data_buff4/0x10; hanzi_buff17 = mun_to_chartime_data_buff4%0x10; /*月*/ hanzi_buff110 = mun_to_chartime_data_buff3/0x10; hanzi_buff111 = mun

45、_to_chartime_data_buff3%0x10; /*日*/ hanzi_buff34 = mun_to_chartime_data_buff2/0x10; hanzi_buff35 = mun_to_chartime_data_buff2%0x10; /*時(shí)*/ hanzi_buff37 = mun_to_chartime_data_buff1/0x10; hanzi_buff38 = mun_to_chartime_data_buff1%0x10; /*分*/ hanzi_buff310 = mun_to_chartime_data_buff0/0x10; hanzi_buff3

46、11 = mun_to_chartime_data_buff0%0x10; /*秒*/ i=time_data_buff5%0x10;if(i=7)hanzi_buff210 = Week7_to_char0 ; hanzi_buff211 = Week7_to_char1; /*星期日*/else if(i=1)hanzi_buff210 = Week1_to_char0 ; hanzi_buff211 = Week1_to_char1; /*星期一*/else if(i=2)hanzi_buff210 = Week2_to_char0 ; hanzi_buff211 = Week2_to_

47、char1; /*星期二*/else if(i=3)hanzi_buff210 = Week3_to_char0 ; hanzi_buff211 = Week3_to_char1; /*星期三*/else if(i=4)hanzi_buff210 = Week4_to_char0 ; hanzi_buff211 = Week4_to_char1; /*星期四*/else if(i=5)hanzi_buff210 = Week5_to_char0 ; hanzi_buff211 = Week5_to_char1; /*星期五*/else if(i=6)hanzi_buff210 = Week6_to_char0 ; hanzi_buff211 = Week6_to_char1; /*星期六*/delay_1ms(200); delay_1ms(200); delay_1ms(200);結(jié)論本文詳細(xì)介紹了應(yīng)用P80C51單片機(jī)控制微型打印機(jī)實(shí)現(xiàn)打印輸出的硬件設(shè)計(jì)及軟件設(shè)計(jì)。經(jīng)過(guò)測(cè)試表明,利用設(shè)計(jì)能夠?qū)崿F(xiàn)數(shù)據(jù)打印,并且能夠通過(guò)串口通信實(shí)現(xiàn)對(duì)打印機(jī)輸出的控制,打印結(jié)果正確無(wú)

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!