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