孔令榮 王昊
摘 要: 出租車計(jì)費(fèi)器以單片機(jī)AT89C51為主控制模塊采集時(shí)鐘芯片DS1302的時(shí)間數(shù)據(jù),以顯示系統(tǒng)時(shí)間;以脈沖信號(hào)模擬的A44E傳感器采集的車輪轉(zhuǎn)動(dòng)數(shù)據(jù)脈沖信號(hào)作為計(jì)費(fèi)依據(jù);用以T6963C為驅(qū)動(dòng)的液晶顯示器LM3229作為顯示模塊,實(shí)現(xiàn)時(shí)間、金額、單價(jià)等信息的顯示。以獨(dú)立按鍵實(shí)現(xiàn)對(duì)該系統(tǒng)的控制,按鍵有計(jì)費(fèi)開始、計(jì)費(fèi)停止、時(shí)間調(diào)整、單價(jià)調(diào)整、計(jì)費(fèi)方式的切換等。
關(guān)鍵詞: T6963C; 單片機(jī)AT89C51; 計(jì)費(fèi)器; 脈沖信號(hào)
中圖分類號(hào): TN873?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)17?0144?04
Abstract: The taxi charging device taking single?chip microcomputer AT89C51 as its main controller is studied in this paper. It gets time information from the clock chip DS1302 to display the system time. The count is realized by the wheel rotation data pulse simulated the pulse signal and collected by the A44E sensor as billing basis. The liquid crystal display LM3229 driven by T6963C is adopted as the display module to display information of time, total sum and unit price. The independent keyboards are used to control the system. The keyboards have the switch functions of billing begin, billing stop, time adjustment, unit price adjustment and billing mode.
Keywords: T6963C; single?chip microcontroller AT89C51; charging device; puls signal
1 研究背景及意義
出租車計(jì)費(fèi)器是人們在日常出行時(shí)經(jīng)常遇到的電子計(jì)費(fèi)裝置,是和人們的日常生活聯(lián)系很緊密的設(shè)備,給人們的生活帶來很大方便。出租車計(jì)費(fèi)器就是用單片機(jī)實(shí)現(xiàn)智能化路程計(jì)算和對(duì)應(yīng)路程金額計(jì)算的智能裝置。首先用傳感器采集車輪轉(zhuǎn)動(dòng)數(shù)據(jù),然后用固定的程序計(jì)算出行駛里程和對(duì)應(yīng)的消費(fèi)金額,通過液晶顯示屏顯示出信息。本系統(tǒng)中應(yīng)用獨(dú)立按鍵進(jìn)行人機(jī)信息交換,實(shí)現(xiàn)單價(jià)的設(shè)置、時(shí)間的校正、計(jì)費(fèi)方式的切換和復(fù)位功能。
2 硬件電路設(shè)計(jì)
硬件電路設(shè)計(jì)部分主要有AT89C51單片機(jī)及最小系統(tǒng)設(shè)計(jì)、LCM3229大屏幕液晶顯示模塊設(shè)計(jì)、鍵盤電路設(shè)計(jì)、時(shí)鐘電路設(shè)計(jì),傳感器電路設(shè)計(jì)等,總體電路原理框圖如圖1所示。
總系統(tǒng)工作原理:單片機(jī)執(zhí)行完主程序后在一條指令處循環(huán)跳轉(zhuǎn),等待中斷。時(shí)間信號(hào)采集、行駛里程計(jì)算、按鍵工作均是由各個(gè)模塊產(chǎn)生的中斷請(qǐng)求信號(hào)進(jìn)入中斷程序來完成的。
(1) 應(yīng)用計(jì)時(shí)/計(jì)數(shù)器T0計(jì)數(shù)確定的值,產(chǎn)生中斷請(qǐng)求信號(hào),單片機(jī)跳轉(zhuǎn)到內(nèi)部中斷0程序段。該程序段實(shí)現(xiàn)單片機(jī)從DS1302中對(duì)時(shí)間數(shù)據(jù)的讀取,并分離數(shù)據(jù)的個(gè)位和十位,最后調(diào)用顯示子程序?qū)?shù)據(jù)寫入LCD顯存中實(shí)現(xiàn)時(shí)間的顯示。
(2) 用計(jì)時(shí)/計(jì)數(shù)器T1統(tǒng)計(jì)由A44E采集的因車輪轉(zhuǎn)動(dòng)而產(chǎn)生的電脈沖,當(dāng)計(jì)數(shù)到一定數(shù)目后產(chǎn)生中斷請(qǐng)求信號(hào),單片機(jī)跳轉(zhuǎn)到內(nèi)部中斷1程序段。該程序段實(shí)現(xiàn)里程和金額的計(jì)算,最后調(diào)用顯示子程序?qū)⒔痤~和里程等數(shù)據(jù)寫入LCD顯存中,實(shí)現(xiàn)里程和金額的顯示。在計(jì)費(fèi)模式下時(shí),鍵盤功能有開始計(jì)費(fèi)、結(jié)束計(jì)費(fèi)、計(jì)費(fèi)模式切換、復(fù)位四個(gè)功能。按鍵中斷入口是外部中斷1的程序入口,進(jìn)入該程序后依次掃描4個(gè)按鍵端口P1.0,P1.1,P1.4,P1.5,4個(gè)按鍵中有1個(gè)按下去就跳轉(zhuǎn)到對(duì)應(yīng)程序段實(shí)現(xiàn)對(duì)應(yīng)功能。在設(shè)置模式下時(shí),其基本原理和在計(jì)費(fèi)模式下的鍵盤工作原理基本相同,只不過在計(jì)費(fèi)模式時(shí)按鍵功能完成后,單片機(jī)就跳出中斷程序,返回主程序;而在設(shè)置模式時(shí),單片機(jī)不會(huì)自動(dòng)跳回主程序,只有“確定”鍵按下去后單片機(jī)才可以從中斷程序跳回主程序。
2.1 AT89C51單片機(jī)
AT89C51的主要性能是與51系列單片機(jī)兼容,具有如下特點(diǎn):片內(nèi)有4 KB可編程閃爍存儲(chǔ)器;存儲(chǔ)器可循環(huán)寫入/擦除1 000次;數(shù)據(jù)可保留10年;程序存儲(chǔ)器具有三級(jí)加密保護(hù);128 B內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。AT89C51可降至0 Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式;空閑模式,CPU暫停工作,但允許RAM、定時(shí)/計(jì)數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作;掉電模式保存RAM中的數(shù)據(jù),但振蕩器停止工作并禁止其他所有部件工作,直到下一個(gè)硬件復(fù)位。
2.2 T6963C和LM3229
在液晶顯示方案選擇中,本設(shè)計(jì)選擇了由T6963C驅(qū)動(dòng)的LM3229,單片機(jī)與圖形液晶顯示器之間采用直接訪問方式。P0口與AT89C51的數(shù)據(jù)端相連接,實(shí)現(xiàn)數(shù)據(jù)和控制命令的傳送,同時(shí)可以作為地址的第8位使用;P2口的P2.0與P2.1分別與AT89C51的[C/D]和[CE]相連接,P2.0實(shí)現(xiàn)傳送命令與數(shù)據(jù)的選擇,P2.1經(jīng)反相器作為使能信號(hào)與AT89C51的[CE]相連接。例如,8100代表傳送的是命令,8000代表傳送的是數(shù)據(jù)。這種直接相連的方法可以使編程簡單。
LM3229的其他控制端口按照如下連接:VSS接地;VDD接5 V直流電源;[V0]是背光調(diào)節(jié)端,接一個(gè)10 kΩ的滑線變阻器,電阻兩端分別接-18~5 V的電源;[RST]是復(fù)位端,通過10 kΩ電阻和0.1 μF電容上電自動(dòng)復(fù)位。其余端口全部接地。液晶顯示電路圖如圖2所示。
T6963C是顯示電路的核心控制部件。單片機(jī)將命令和數(shù)據(jù)寫入T6963C中,通過讀取8 KB顯示RAM,控制行列驅(qū)動(dòng)電路,最后將數(shù)據(jù)顯示在液晶屏上。8 KB RAM分為文本顯示區(qū)、圖像顯示區(qū)、CGRAM區(qū)及文本屬性區(qū),均是可以通過單片機(jī)人為定義的各區(qū)首地址。文本區(qū)和圖像區(qū)的首地址對(duì)應(yīng)液晶顯示的左上角,將數(shù)據(jù)寫入顯示區(qū)內(nèi)就會(huì)在液晶顯示屏上的對(duì)應(yīng)區(qū)上顯示出目標(biāo)內(nèi)容。本系統(tǒng)中采用了圖像顯示方式,其顯示核心思路是:將每一個(gè)字節(jié)寫入顯存內(nèi),在對(duì)應(yīng)位置顯示出信息;將漢字、字符、數(shù)字等要顯示的內(nèi)容用取模軟件ZIMO221進(jìn)行取模(取模就是將漢字、字符、數(shù)據(jù)分塊成對(duì)應(yīng)字節(jié)區(qū)域),通過單片機(jī)控制T6963C將字模數(shù)據(jù)依次寫入顯示區(qū)域,就可以顯示了。在本系統(tǒng)中,要顯示大號(hào)數(shù)字,只有采用圖像顯示方式才能實(shí)現(xiàn)。
T6963C的控制線有FSI,F(xiàn)S0,[RESET,][C/D,][CE,][RD,][WR。]FSI和FS0是字體選擇端,共有4種字體提供選擇,其對(duì)應(yīng)關(guān)系是:FS1和FS0取值為11,10,01,00時(shí)對(duì)應(yīng)字體分別為5×8,6×8,7×8,8×8。當(dāng)以文本方式顯示時(shí),顯存中的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)顯示屏上1個(gè)8×8點(diǎn)陣;當(dāng)以圖形方式顯示時(shí),顯存中所放的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)于顯示屏上1個(gè)8×1點(diǎn)陣,即1行8個(gè)點(diǎn),這正是可以顯示大號(hào)字符的原理所在。[RESET]是復(fù)位端,低電平有效;[C/D]是命令/數(shù)據(jù)選擇端,高電平時(shí)對(duì)應(yīng)D0~D7,傳送控制命令,低電平時(shí)對(duì)應(yīng)D0~D7,傳送數(shù)據(jù);[CE]是片選信號(hào)端,低電平時(shí)該片T6963C可以正常工作。[RD]是讀屏控制端,低電平有效;[WR]是寫控制端,低電平有效。
T6936C的外部RAM主要用來存儲(chǔ)顯示數(shù)據(jù)。T6963C的外部顯示地址與屏幕上的對(duì)應(yīng)關(guān)系可以人為定義,在單片機(jī)主程序中可以指定。圖形顯示方式的編址方式見表1。
表1中,GH是用戶通過程序定義的圖形顯示區(qū)首地址;GA是字符寬度;CL為列數(shù)-1;m為點(diǎn)行數(shù)-1。在程序中設(shè)定GH,GA和m,CL的值后,即可計(jì)算出圖形顯示區(qū)的地址。
2.3 時(shí)鐘電路
由DS1302實(shí)時(shí)時(shí)鐘/日歷電路提供年、月、周、時(shí)、分、秒的信息,閏年天數(shù)和每月天數(shù)可自動(dòng)調(diào)整。DS1302是DALLAS生產(chǎn)的涓流充電時(shí)鐘芯片,時(shí)鐘操作可通過AM/PM指示決定采用24或12小時(shí)模式。單片機(jī)與DS1302之間的通信方式采用簡單的串行口方式,僅需用3個(gè)口線:I/O(數(shù)據(jù)線);SCLK(串行時(shí)鐘);RES(復(fù)位端)。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信,31個(gè)字節(jié)的RAM可以存儲(chǔ)保護(hù)設(shè)置的單價(jià)數(shù)據(jù),預(yù)防掉電時(shí)數(shù)據(jù)丟失。DS1302有內(nèi)部備用電源,在正常通電時(shí)進(jìn)行充電,而且DS1302工作功耗很低,故斷電后它可以由內(nèi)部電源維持運(yùn)行很長時(shí)間。
2.4 鍵盤電路
中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。當(dāng)無按鍵按下時(shí),CPU執(zhí)行正常工作程序;有按鍵按下時(shí),CPU會(huì)立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個(gè)按鍵被按下,然后執(zhí)行該鍵的功能子程序。這種工作方式克服了可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個(gè)中斷資源。本次設(shè)計(jì)采用中斷控制方式鍵盤,該智能計(jì)費(fèi)系統(tǒng)設(shè)置6個(gè)按鍵,其中4個(gè)鍵有復(fù)用功能:K1:Up/計(jì)費(fèi);K2:Dn/結(jié)束;K3:設(shè)置;K4:確定;K5:切換/R;K6:復(fù)位/L。具體連接方式如圖3所示。
2.5 霍爾傳感器電路
本系統(tǒng)用霍爾傳感器件A44E采集車輪的轉(zhuǎn)動(dòng)信息,產(chǎn)生電脈沖供單片機(jī)進(jìn)行計(jì)數(shù)。將A44E安裝到出租車車輪處,車輪每轉(zhuǎn)動(dòng)一圈,磁鐵經(jīng)過A44E一次,A44E的第3腳就輸出1個(gè)脈沖信號(hào);作為單片機(jī)AT89C51的計(jì)時(shí)/計(jì)數(shù)器1的計(jì)數(shù)脈沖信號(hào),從P3.2口輸入;單片機(jī)統(tǒng)計(jì)脈沖信號(hào)的個(gè)數(shù),當(dāng)計(jì)數(shù)到一定數(shù)目后產(chǎn)生內(nèi)部中斷1,單片機(jī)就跳轉(zhuǎn)到對(duì)應(yīng)子程序;根據(jù)脈沖個(gè)數(shù)和車輪周長計(jì)算出里程,并根據(jù)里程計(jì)算出對(duì)應(yīng)的消費(fèi)金額。
3 軟件程序設(shè)計(jì)
系統(tǒng)軟件主要由主程序、時(shí)鐘程序模塊、鍵盤程序模塊、金額里程處理程序模塊、顯示程序模塊等組成。
主程序主要完成液晶顯示器初始化、初始界面信息顯示等功能,并一直在循環(huán)跳轉(zhuǎn)等待各種中斷;時(shí)鐘程序模塊主要完成時(shí)鐘芯片數(shù)據(jù)的讀取和寫入,是一個(gè)內(nèi)部中斷子程序;鍵盤程序模塊主要完成按鍵功能的控制,是一個(gè)外部中斷子程序;金額里程處理程序模塊主要完成里程和金額的處理,也是一個(gè)內(nèi)部中斷子程序;顯示模塊主要完成各種信息的顯示以供讀取,是單片機(jī)必須調(diào)用以顯示信息的子程序。
4 電路調(diào)試與結(jié)論
以AT89C51單片機(jī)為核心開發(fā)的出租車計(jì)價(jià)器裝置,以霍爾傳感器A44E作為里程監(jiān)測裝置,以大屏幕液晶LM3229作為顯示裝置;設(shè)計(jì)信號(hào)采集、鍵盤和LCD顯示接口電路;編寫系統(tǒng)軟件程序,實(shí)現(xiàn)了時(shí)間、金額、單價(jià)等信息的顯示。以獨(dú)立按鍵實(shí)現(xiàn)對(duì)該系統(tǒng)的控制,按鍵有計(jì)費(fèi)開始、計(jì)費(fèi)停止、時(shí)間調(diào)整、單價(jià)調(diào)整、計(jì)費(fèi)方式的切換等。液晶顯示屏的顯示效果如圖7和圖8所示,顯示畫面具有內(nèi)容豐富,條理清晰等特點(diǎn),具有良好的市場應(yīng)用前景。
參考文獻(xiàn)
[1] 李建忠.單片機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2008.
[2] 張友德.單片微型計(jì)算機(jī)原理應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2003.
[3] 張洪潤,馬平安,張亞凡.單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[4] 何立民.單片機(jī)系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990.
[5] 沙占友,王彥朋,孟志永.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[6] 吳金戌.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[7] 陳金平.電子系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.
[8] 高峰.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:科學(xué)出版社,2003.
[9] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航天航天大學(xué)出版社,1999.
[10] 賀哲榮.51系列單片機(jī)實(shí)用編程[M].北京:中國電力出版社,2011.
LM3229的其他控制端口按照如下連接:VSS接地;VDD接5 V直流電源;[V0]是背光調(diào)節(jié)端,接一個(gè)10 kΩ的滑線變阻器,電阻兩端分別接-18~5 V的電源;[RST]是復(fù)位端,通過10 kΩ電阻和0.1 μF電容上電自動(dòng)復(fù)位。其余端口全部接地。液晶顯示電路圖如圖2所示。
T6963C是顯示電路的核心控制部件。單片機(jī)將命令和數(shù)據(jù)寫入T6963C中,通過讀取8 KB顯示RAM,控制行列驅(qū)動(dòng)電路,最后將數(shù)據(jù)顯示在液晶屏上。8 KB RAM分為文本顯示區(qū)、圖像顯示區(qū)、CGRAM區(qū)及文本屬性區(qū),均是可以通過單片機(jī)人為定義的各區(qū)首地址。文本區(qū)和圖像區(qū)的首地址對(duì)應(yīng)液晶顯示的左上角,將數(shù)據(jù)寫入顯示區(qū)內(nèi)就會(huì)在液晶顯示屏上的對(duì)應(yīng)區(qū)上顯示出目標(biāo)內(nèi)容。本系統(tǒng)中采用了圖像顯示方式,其顯示核心思路是:將每一個(gè)字節(jié)寫入顯存內(nèi),在對(duì)應(yīng)位置顯示出信息;將漢字、字符、數(shù)字等要顯示的內(nèi)容用取模軟件ZIMO221進(jìn)行取模(取模就是將漢字、字符、數(shù)據(jù)分塊成對(duì)應(yīng)字節(jié)區(qū)域),通過單片機(jī)控制T6963C將字模數(shù)據(jù)依次寫入顯示區(qū)域,就可以顯示了。在本系統(tǒng)中,要顯示大號(hào)數(shù)字,只有采用圖像顯示方式才能實(shí)現(xiàn)。
T6963C的控制線有FSI,F(xiàn)S0,[RESET,][C/D,][CE,][RD,][WR。]FSI和FS0是字體選擇端,共有4種字體提供選擇,其對(duì)應(yīng)關(guān)系是:FS1和FS0取值為11,10,01,00時(shí)對(duì)應(yīng)字體分別為5×8,6×8,7×8,8×8。當(dāng)以文本方式顯示時(shí),顯存中的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)顯示屏上1個(gè)8×8點(diǎn)陣;當(dāng)以圖形方式顯示時(shí),顯存中所放的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)于顯示屏上1個(gè)8×1點(diǎn)陣,即1行8個(gè)點(diǎn),這正是可以顯示大號(hào)字符的原理所在。[RESET]是復(fù)位端,低電平有效;[C/D]是命令/數(shù)據(jù)選擇端,高電平時(shí)對(duì)應(yīng)D0~D7,傳送控制命令,低電平時(shí)對(duì)應(yīng)D0~D7,傳送數(shù)據(jù);[CE]是片選信號(hào)端,低電平時(shí)該片T6963C可以正常工作。[RD]是讀屏控制端,低電平有效;[WR]是寫控制端,低電平有效。
T6936C的外部RAM主要用來存儲(chǔ)顯示數(shù)據(jù)。T6963C的外部顯示地址與屏幕上的對(duì)應(yīng)關(guān)系可以人為定義,在單片機(jī)主程序中可以指定。圖形顯示方式的編址方式見表1。
表1中,GH是用戶通過程序定義的圖形顯示區(qū)首地址;GA是字符寬度;CL為列數(shù)-1;m為點(diǎn)行數(shù)-1。在程序中設(shè)定GH,GA和m,CL的值后,即可計(jì)算出圖形顯示區(qū)的地址。
2.3 時(shí)鐘電路
由DS1302實(shí)時(shí)時(shí)鐘/日歷電路提供年、月、周、時(shí)、分、秒的信息,閏年天數(shù)和每月天數(shù)可自動(dòng)調(diào)整。DS1302是DALLAS生產(chǎn)的涓流充電時(shí)鐘芯片,時(shí)鐘操作可通過AM/PM指示決定采用24或12小時(shí)模式。單片機(jī)與DS1302之間的通信方式采用簡單的串行口方式,僅需用3個(gè)口線:I/O(數(shù)據(jù)線);SCLK(串行時(shí)鐘);RES(復(fù)位端)。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信,31個(gè)字節(jié)的RAM可以存儲(chǔ)保護(hù)設(shè)置的單價(jià)數(shù)據(jù),預(yù)防掉電時(shí)數(shù)據(jù)丟失。DS1302有內(nèi)部備用電源,在正常通電時(shí)進(jìn)行充電,而且DS1302工作功耗很低,故斷電后它可以由內(nèi)部電源維持運(yùn)行很長時(shí)間。
2.4 鍵盤電路
中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。當(dāng)無按鍵按下時(shí),CPU執(zhí)行正常工作程序;有按鍵按下時(shí),CPU會(huì)立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個(gè)按鍵被按下,然后執(zhí)行該鍵的功能子程序。這種工作方式克服了可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個(gè)中斷資源。本次設(shè)計(jì)采用中斷控制方式鍵盤,該智能計(jì)費(fèi)系統(tǒng)設(shè)置6個(gè)按鍵,其中4個(gè)鍵有復(fù)用功能:K1:Up/計(jì)費(fèi);K2:Dn/結(jié)束;K3:設(shè)置;K4:確定;K5:切換/R;K6:復(fù)位/L。具體連接方式如圖3所示。
2.5 霍爾傳感器電路
本系統(tǒng)用霍爾傳感器件A44E采集車輪的轉(zhuǎn)動(dòng)信息,產(chǎn)生電脈沖供單片機(jī)進(jìn)行計(jì)數(shù)。將A44E安裝到出租車車輪處,車輪每轉(zhuǎn)動(dòng)一圈,磁鐵經(jīng)過A44E一次,A44E的第3腳就輸出1個(gè)脈沖信號(hào);作為單片機(jī)AT89C51的計(jì)時(shí)/計(jì)數(shù)器1的計(jì)數(shù)脈沖信號(hào),從P3.2口輸入;單片機(jī)統(tǒng)計(jì)脈沖信號(hào)的個(gè)數(shù),當(dāng)計(jì)數(shù)到一定數(shù)目后產(chǎn)生內(nèi)部中斷1,單片機(jī)就跳轉(zhuǎn)到對(duì)應(yīng)子程序;根據(jù)脈沖個(gè)數(shù)和車輪周長計(jì)算出里程,并根據(jù)里程計(jì)算出對(duì)應(yīng)的消費(fèi)金額。
3 軟件程序設(shè)計(jì)
系統(tǒng)軟件主要由主程序、時(shí)鐘程序模塊、鍵盤程序模塊、金額里程處理程序模塊、顯示程序模塊等組成。
主程序主要完成液晶顯示器初始化、初始界面信息顯示等功能,并一直在循環(huán)跳轉(zhuǎn)等待各種中斷;時(shí)鐘程序模塊主要完成時(shí)鐘芯片數(shù)據(jù)的讀取和寫入,是一個(gè)內(nèi)部中斷子程序;鍵盤程序模塊主要完成按鍵功能的控制,是一個(gè)外部中斷子程序;金額里程處理程序模塊主要完成里程和金額的處理,也是一個(gè)內(nèi)部中斷子程序;顯示模塊主要完成各種信息的顯示以供讀取,是單片機(jī)必須調(diào)用以顯示信息的子程序。
4 電路調(diào)試與結(jié)論
以AT89C51單片機(jī)為核心開發(fā)的出租車計(jì)價(jià)器裝置,以霍爾傳感器A44E作為里程監(jiān)測裝置,以大屏幕液晶LM3229作為顯示裝置;設(shè)計(jì)信號(hào)采集、鍵盤和LCD顯示接口電路;編寫系統(tǒng)軟件程序,實(shí)現(xiàn)了時(shí)間、金額、單價(jià)等信息的顯示。以獨(dú)立按鍵實(shí)現(xiàn)對(duì)該系統(tǒng)的控制,按鍵有計(jì)費(fèi)開始、計(jì)費(fèi)停止、時(shí)間調(diào)整、單價(jià)調(diào)整、計(jì)費(fèi)方式的切換等。液晶顯示屏的顯示效果如圖7和圖8所示,顯示畫面具有內(nèi)容豐富,條理清晰等特點(diǎn),具有良好的市場應(yīng)用前景。
參考文獻(xiàn)
[1] 李建忠.單片機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2008.
[2] 張友德.單片微型計(jì)算機(jī)原理應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2003.
[3] 張洪潤,馬平安,張亞凡.單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[4] 何立民.單片機(jī)系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990.
[5] 沙占友,王彥朋,孟志永.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[6] 吳金戌.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[7] 陳金平.電子系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.
[8] 高峰.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:科學(xué)出版社,2003.
[9] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航天航天大學(xué)出版社,1999.
[10] 賀哲榮.51系列單片機(jī)實(shí)用編程[M].北京:中國電力出版社,2011.
LM3229的其他控制端口按照如下連接:VSS接地;VDD接5 V直流電源;[V0]是背光調(diào)節(jié)端,接一個(gè)10 kΩ的滑線變阻器,電阻兩端分別接-18~5 V的電源;[RST]是復(fù)位端,通過10 kΩ電阻和0.1 μF電容上電自動(dòng)復(fù)位。其余端口全部接地。液晶顯示電路圖如圖2所示。
T6963C是顯示電路的核心控制部件。單片機(jī)將命令和數(shù)據(jù)寫入T6963C中,通過讀取8 KB顯示RAM,控制行列驅(qū)動(dòng)電路,最后將數(shù)據(jù)顯示在液晶屏上。8 KB RAM分為文本顯示區(qū)、圖像顯示區(qū)、CGRAM區(qū)及文本屬性區(qū),均是可以通過單片機(jī)人為定義的各區(qū)首地址。文本區(qū)和圖像區(qū)的首地址對(duì)應(yīng)液晶顯示的左上角,將數(shù)據(jù)寫入顯示區(qū)內(nèi)就會(huì)在液晶顯示屏上的對(duì)應(yīng)區(qū)上顯示出目標(biāo)內(nèi)容。本系統(tǒng)中采用了圖像顯示方式,其顯示核心思路是:將每一個(gè)字節(jié)寫入顯存內(nèi),在對(duì)應(yīng)位置顯示出信息;將漢字、字符、數(shù)字等要顯示的內(nèi)容用取模軟件ZIMO221進(jìn)行取模(取模就是將漢字、字符、數(shù)據(jù)分塊成對(duì)應(yīng)字節(jié)區(qū)域),通過單片機(jī)控制T6963C將字模數(shù)據(jù)依次寫入顯示區(qū)域,就可以顯示了。在本系統(tǒng)中,要顯示大號(hào)數(shù)字,只有采用圖像顯示方式才能實(shí)現(xiàn)。
T6963C的控制線有FSI,F(xiàn)S0,[RESET,][C/D,][CE,][RD,][WR。]FSI和FS0是字體選擇端,共有4種字體提供選擇,其對(duì)應(yīng)關(guān)系是:FS1和FS0取值為11,10,01,00時(shí)對(duì)應(yīng)字體分別為5×8,6×8,7×8,8×8。當(dāng)以文本方式顯示時(shí),顯存中的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)顯示屏上1個(gè)8×8點(diǎn)陣;當(dāng)以圖形方式顯示時(shí),顯存中所放的顯示數(shù)據(jù),1個(gè)字節(jié)對(duì)應(yīng)于顯示屏上1個(gè)8×1點(diǎn)陣,即1行8個(gè)點(diǎn),這正是可以顯示大號(hào)字符的原理所在。[RESET]是復(fù)位端,低電平有效;[C/D]是命令/數(shù)據(jù)選擇端,高電平時(shí)對(duì)應(yīng)D0~D7,傳送控制命令,低電平時(shí)對(duì)應(yīng)D0~D7,傳送數(shù)據(jù);[CE]是片選信號(hào)端,低電平時(shí)該片T6963C可以正常工作。[RD]是讀屏控制端,低電平有效;[WR]是寫控制端,低電平有效。
T6936C的外部RAM主要用來存儲(chǔ)顯示數(shù)據(jù)。T6963C的外部顯示地址與屏幕上的對(duì)應(yīng)關(guān)系可以人為定義,在單片機(jī)主程序中可以指定。圖形顯示方式的編址方式見表1。
表1中,GH是用戶通過程序定義的圖形顯示區(qū)首地址;GA是字符寬度;CL為列數(shù)-1;m為點(diǎn)行數(shù)-1。在程序中設(shè)定GH,GA和m,CL的值后,即可計(jì)算出圖形顯示區(qū)的地址。
2.3 時(shí)鐘電路
由DS1302實(shí)時(shí)時(shí)鐘/日歷電路提供年、月、周、時(shí)、分、秒的信息,閏年天數(shù)和每月天數(shù)可自動(dòng)調(diào)整。DS1302是DALLAS生產(chǎn)的涓流充電時(shí)鐘芯片,時(shí)鐘操作可通過AM/PM指示決定采用24或12小時(shí)模式。單片機(jī)與DS1302之間的通信方式采用簡單的串行口方式,僅需用3個(gè)口線:I/O(數(shù)據(jù)線);SCLK(串行時(shí)鐘);RES(復(fù)位端)。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信,31個(gè)字節(jié)的RAM可以存儲(chǔ)保護(hù)設(shè)置的單價(jià)數(shù)據(jù),預(yù)防掉電時(shí)數(shù)據(jù)丟失。DS1302有內(nèi)部備用電源,在正常通電時(shí)進(jìn)行充電,而且DS1302工作功耗很低,故斷電后它可以由內(nèi)部電源維持運(yùn)行很長時(shí)間。
2.4 鍵盤電路
中斷控制方式是利用外部中斷源,響應(yīng)鍵輸入信號(hào)。當(dāng)無按鍵按下時(shí),CPU執(zhí)行正常工作程序;有按鍵按下時(shí),CPU會(huì)立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個(gè)按鍵被按下,然后執(zhí)行該鍵的功能子程序。這種工作方式克服了可能產(chǎn)生的空掃描和不能及時(shí)響應(yīng)鍵輸入的缺點(diǎn),既能及時(shí)處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個(gè)中斷資源。本次設(shè)計(jì)采用中斷控制方式鍵盤,該智能計(jì)費(fèi)系統(tǒng)設(shè)置6個(gè)按鍵,其中4個(gè)鍵有復(fù)用功能:K1:Up/計(jì)費(fèi);K2:Dn/結(jié)束;K3:設(shè)置;K4:確定;K5:切換/R;K6:復(fù)位/L。具體連接方式如圖3所示。
2.5 霍爾傳感器電路
本系統(tǒng)用霍爾傳感器件A44E采集車輪的轉(zhuǎn)動(dòng)信息,產(chǎn)生電脈沖供單片機(jī)進(jìn)行計(jì)數(shù)。將A44E安裝到出租車車輪處,車輪每轉(zhuǎn)動(dòng)一圈,磁鐵經(jīng)過A44E一次,A44E的第3腳就輸出1個(gè)脈沖信號(hào);作為單片機(jī)AT89C51的計(jì)時(shí)/計(jì)數(shù)器1的計(jì)數(shù)脈沖信號(hào),從P3.2口輸入;單片機(jī)統(tǒng)計(jì)脈沖信號(hào)的個(gè)數(shù),當(dāng)計(jì)數(shù)到一定數(shù)目后產(chǎn)生內(nèi)部中斷1,單片機(jī)就跳轉(zhuǎn)到對(duì)應(yīng)子程序;根據(jù)脈沖個(gè)數(shù)和車輪周長計(jì)算出里程,并根據(jù)里程計(jì)算出對(duì)應(yīng)的消費(fèi)金額。
3 軟件程序設(shè)計(jì)
系統(tǒng)軟件主要由主程序、時(shí)鐘程序模塊、鍵盤程序模塊、金額里程處理程序模塊、顯示程序模塊等組成。
主程序主要完成液晶顯示器初始化、初始界面信息顯示等功能,并一直在循環(huán)跳轉(zhuǎn)等待各種中斷;時(shí)鐘程序模塊主要完成時(shí)鐘芯片數(shù)據(jù)的讀取和寫入,是一個(gè)內(nèi)部中斷子程序;鍵盤程序模塊主要完成按鍵功能的控制,是一個(gè)外部中斷子程序;金額里程處理程序模塊主要完成里程和金額的處理,也是一個(gè)內(nèi)部中斷子程序;顯示模塊主要完成各種信息的顯示以供讀取,是單片機(jī)必須調(diào)用以顯示信息的子程序。
4 電路調(diào)試與結(jié)論
以AT89C51單片機(jī)為核心開發(fā)的出租車計(jì)價(jià)器裝置,以霍爾傳感器A44E作為里程監(jiān)測裝置,以大屏幕液晶LM3229作為顯示裝置;設(shè)計(jì)信號(hào)采集、鍵盤和LCD顯示接口電路;編寫系統(tǒng)軟件程序,實(shí)現(xiàn)了時(shí)間、金額、單價(jià)等信息的顯示。以獨(dú)立按鍵實(shí)現(xiàn)對(duì)該系統(tǒng)的控制,按鍵有計(jì)費(fèi)開始、計(jì)費(fèi)停止、時(shí)間調(diào)整、單價(jià)調(diào)整、計(jì)費(fèi)方式的切換等。液晶顯示屏的顯示效果如圖7和圖8所示,顯示畫面具有內(nèi)容豐富,條理清晰等特點(diǎn),具有良好的市場應(yīng)用前景。
參考文獻(xiàn)
[1] 李建忠.單片機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2008.
[2] 張友德.單片微型計(jì)算機(jī)原理應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2003.
[3] 張洪潤,馬平安,張亞凡.單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[4] 何立民.單片機(jī)系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990.
[5] 沙占友,王彥朋,孟志永.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[6] 吳金戌.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[7] 陳金平.電子系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.
[8] 高峰.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:科學(xué)出版社,2003.
[9] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航天航天大學(xué)出版社,1999.
[10] 賀哲榮.51系列單片機(jī)實(shí)用編程[M].北京:中國電力出版社,2011.