【正文】
理器的控制系統(tǒng)。它主要實現(xiàn)對整個系統(tǒng)的控制管理,完成數(shù)據(jù)的處理等。該模塊使用單片機(jī)8051,128字節(jié)的內(nèi)部RAM數(shù)據(jù)存儲器,2個16位定時器/計數(shù)器,一個串行口,5個中斷源、2個中斷優(yōu)先級,~12MHZ。由于其內(nèi)部沒有程序存儲器,內(nèi)部數(shù)據(jù)存儲器容量不夠,必須外部擴(kuò)展程序存儲器和數(shù)據(jù)存儲器。,能同時驅(qū)動八位共陰式數(shù)碼管的智能顯示驅(qū)動芯片,該芯片同時還可以連接多達(dá)64鍵的強(qiáng)大鍵盤矩陣,單片即可完成LED顯示,鍵盤接口的全部功能,它是單片機(jī)應(yīng)用系統(tǒng)中常用的一種外圍接口電路。本機(jī)用HD7279管理16個鍵和八位數(shù)碼管。出租車計價是根據(jù)車所行駛的路程以及乘客乘車的時間段綜合決定的。出租車行駛總路程可以通過車輪的周長乘以車輪旋轉(zhuǎn)圈數(shù)得到,即可計算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。在本次課程設(shè)計中采用555多諧振蕩電路輸出脈沖模仿出租車計價器計量車輪旋轉(zhuǎn)的圈數(shù)。信號源輸出電脈沖,輸出標(biāo)準(zhǔn)脈沖信號。輸出的脈沖信號被接入到8051單片機(jī)系統(tǒng)中,通過計算接收到的脈沖個數(shù),計算出當(dāng)前所行駛的路程。同時,根據(jù)不同的收費標(biāo)準(zhǔn),選擇相應(yīng)的起步價、單價等收費標(biāo)準(zhǔn)進(jìn)行顯示。HD7279管理鍵盤和數(shù)碼顯示,通過鍵盤能夠?qū)崿F(xiàn)啟動、暫停、停止計價器、切換顯示當(dāng)前的行駛里程和需支付的車費,還能夠?qū)蝺r、起步價、起步公里進(jìn)行金額調(diào)整的顯示。第3章 硬件電路方案設(shè)計采用數(shù)字電路控制,其原理如圖所示。采用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實現(xiàn)計價,但是考慮到這種電路過于簡單,性能不夠穩(wěn)定,而且不能調(diào)節(jié)單價,也不能根據(jù)用戶要求計費保準(zhǔn),電路不夠?qū)嵱?。:金額顯示單價顯示電源電路及保護(hù)電路里程傳感器移位寄存器電路以8051為核心的微處理系統(tǒng),信號源輸出矩形脈沖,經(jīng)過放大整形電路,輸出標(biāo)準(zhǔn)脈沖信號。在處理鍵盤和顯示部分中使用芯片7279處理。用555定時器構(gòu)成的多諧振蕩器電路模擬出租車正在行進(jìn)中。本電路設(shè)計的計價器不但能實現(xiàn)基本的計價,而且還能根據(jù)用戶需求來調(diào)節(jié)單價。單片機(jī)計算總價的公式為:總價=起步價+單價*(總里程起步里程)。AT89C51作為一個單片微型計算系統(tǒng),靈活性高,其強(qiáng)大的控制處理功能和可擴(kuò)展功能為設(shè)計電路提供了很好的選擇。通過比較以上兩種方案,方案二有較大的活動空間,不但能實現(xiàn)所有要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級,所以我們采用第二種方案。 、參數(shù)計算和器件選擇 8051單片機(jī)模塊是以8051作為微處理器的控制系統(tǒng)。它主要實現(xiàn)對整個系統(tǒng)的控制管理,完成數(shù)據(jù)的處理等。該模塊使用單片機(jī)805數(shù)據(jù)存儲器611程序存儲器2712地址鎖存器74LS3774LS138譯碼器等芯片構(gòu)成單片機(jī)的基本系統(tǒng)。本系統(tǒng)在設(shè)計中,通過輸入外部信號作為T0計數(shù),完成數(shù)據(jù)處理。本次設(shè)計中使用的微處理系統(tǒng)是以8051為核心的最小開發(fā)系統(tǒng)板,。、顯示接口7279鍵盤、顯示接口HD7279A是一片具串行接口的,可同時驅(qū)動8位共陰式數(shù)碼管的智能顯示驅(qū)動芯片,該芯片同時還可以連接多達(dá)64鍵的鍵盤矩陣,單片即可完成LED顯示,鍵盤接口的全部功能。HD7279主要特性有:(1)串行接口,無需外圍元件可直接驅(qū)動LED。(2)各位獨立控制譯碼/不譯碼及消隱和閃爍屬性。(3)(循環(huán))左移/(循環(huán))右移指令。(4)具有段尋址指令,方便控制獨立LED。(5)64鍵鍵盤控制器,內(nèi)含去抖動電路。 。 7279鍵盤、顯示接口電路 555多諧振蕩電路:圖中電容C、電阻R1和R2作為振蕩器的定時元件,決定著輸出矩形波正、負(fù)脈沖的寬度。定時器的觸發(fā)輸入端(2腳)和閥值輸入端(6腳)與電容相連;集電極開路輸出端(7腳)接RR2相連處,用以控制電容C的充、放電;外界控制輸入端(5腳)。 555多諧振蕩電路 其中振蕩周期T=T1+T2=(R1+2R2)C,振蕩頻率f=1/T。正向脈沖寬度T1與振蕩周期T之比稱矩形波的占空比D =(R1+R2)/(R1+2R2),若使R2R1,則D≈1/2,即輸出信號的正負(fù)向脈沖寬度相等的矩形波(方波)。在設(shè)計的具體方案中將R1和R2使用100K電位器,使得輸出的方波占空比可調(diào)。 本系統(tǒng)硬件電路可分為脈沖信號模塊、微處理系統(tǒng)模塊、鍵盤顯示模塊。下面對這幾個模塊進(jìn)行介紹?! 。{(diào)整至50%的占空比,為8051輸出一個標(biāo)準(zhǔn)的方波,頻率為100HZ。利用中斷程序,每記100次脈沖,就算出租車走了一公里,進(jìn)行計價。,實現(xiàn)出租車的基本功能。通過T0中斷來進(jìn)行里程計數(shù),、CLK、DATA、KEY控制鍵盤顯示模塊。,該芯片同時還可以連接多達(dá)64鍵的鍵盤矩陣,可以配合單片即可完成LED顯示,鍵盤接口的全部功能。方便用戶的操作。第四章 系統(tǒng)軟件設(shè)計 本系統(tǒng)的軟件設(shè)計主要可分為主程序模塊、定時計數(shù)中斷程序、里程計數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序、鍵盤服務(wù)程序六大模塊。下面對各部分模塊作介紹。,需要完成對各接口芯片的初始化、出租車起價和單價的初始化、中斷向量的設(shè)計以及開中斷、循環(huán)等待等工作。并設(shè)計相應(yīng)標(biāo)志位及對它們進(jìn)行初始化。,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。并調(diào)用顯示子程序顯示總金額或總路程。,鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。,里程單價和起步公里的提高要求,特地設(shè)置了三個查表地址,分別是存放里程單價、起步價和起步公里的范圍數(shù)值。當(dāng)需要調(diào)整這三個值時,可以通過查表程序來調(diào)用這三個參數(shù)的范圍值,實現(xiàn)顯示里程單價、起步價和起步公里的調(diào)整價格,但是不能將調(diào)整好的參數(shù)代入價格計價程序進(jìn)行計價。本設(shè)計通過讀8051芯片的T0口的輸入脈沖數(shù)目來確定里程,為了便于計算,規(guī)定T0口來1個脈沖為1米(即車輪周長)。程序運行時,先通過鍵掃程序判斷是否開始啟動TO計里程。在這里程序中設(shè)定開始運行顯示HELLO??;設(shè)定S0為啟動鍵、S1為單價顯示鍵、S2鍵為起步公里顯示鍵、S3為起步價顯示鍵、S4鍵為復(fù)位鍵、S5鍵為切換顯示總金額、總路程鍵。在鍵掃描之后,調(diào)用計數(shù)子程序,T0口第一次接收累積到100個脈沖后,主程序進(jìn)入T0中斷,開始根據(jù)單價進(jìn)行加價。為使出租車計價器能夠切換顯示總金額、總路程問題,在程序中設(shè)置了顯示切換鍵S5,按下此鍵能顯示總路程,再按一次顯示總金額。當(dāng)再次有乘客上車時,司機(jī)可按下S4鍵(復(fù)位鍵),所有計數(shù)內(nèi)存單元清零,程序重新運行。此外為使起步價,起步公里和單價能夠調(diào)整,本程序增加6個鍵:起步價調(diào)整鍵:S6和S7;起步公里調(diào)整鍵:S11和S10;單價調(diào)整鍵:S15和S14。另外增加等待的時候切換成等待時間換算成公里數(shù)以及特殊情況下暫停,對應(yīng)該功能增加兩個鍵:S12等待,S13暫停。 7279鍵盤功能設(shè)計 單價顯示起步價顯示啟動出租車計價器起步公里顯示單價減一起步公里減一暫停起步公里加一復(fù)位路程金額切換起步價減一單價加一起步價加一等待 30H,31H起步價存儲單元32H,33H起步公里存儲單元34H,35H單價存儲單元36H,37H,38H總路程存儲單元39H,3AH,3BH總金額存儲單元50H,51H,52H,53H,54H,55H,56H,57H,58H,59H顯示緩沖區(qū)00H標(biāo)志位切換顯示總金額和總路程表 關(guān)鍵字介紹 MAIN主程序KEY1讀鍵值子程序STFS發(fā)送一字節(jié)子程序STJS接收一字節(jié)子程序DTRHD7279顯示子程序LUC定時器0中斷子程序BEGHD7279初始化子程序TAB0“0”到“9”字形表TAB1“0.”到“9.”字形表TAB2其它所用到的功能顯示字形表TABR鍵值表T0口8051芯片脈沖輸入口表 關(guān)鍵字介紹程序開始運行時對存儲區(qū)及7279初始化,對計數(shù)器T0初始化,判斷是否有按鍵按下,無鍵按下,重新進(jìn)行鍵盤掃描;有鍵按下,判斷是哪個鍵按下,并進(jìn)行相應(yīng)的操作。開始7279初始化,各單元初始化T0初始化,計數(shù),中斷允許初始值送顯緩區(qū)調(diào)顯示子程序并調(diào)鍵掃描程序有鍵按下求鍵號并保存啟動鍵S0?T0計數(shù)切換鍵S5?起步價調(diào)整調(diào)整公里數(shù)調(diào)整單價調(diào)整調(diào)整復(fù)位鍵?調(diào)整調(diào)整等待計時 N Y Y N N 切換顯示總金額、總路程N N N Y N N N N N Y N 主程序流程圖,一直加下去,若總路程超過起步公里數(shù)時。圖 中斷程序框圖。 顯示子程序框圖