出租車計價器設(shè)計與制作
設(shè)計并制作一臺出租車計價器。調(diào)試時采用10Hz方波信號模擬,每個方波代表10m。基本要求:
(1)不同情況具有不同的收費(fèi)標(biāo)準(zhǔn)
白天 1元/公里 晚上 2元/ 公里 途中等待(30s)1元/30s
(2)數(shù)據(jù)輸出(6位LED數(shù)碼管顯示)
單價輸出2位 路途輸出2位 總金額輸出2位
(3)按鍵(3個)
啟動計價開關(guān) 數(shù)據(jù)復(fù)位(清零) 白天/晚上轉(zhuǎn)換
3.4.1模塊1:系統(tǒng)設(shè)計
(1)分析任務(wù)要求,寫出系統(tǒng)整體設(shè)計思路
通過分析,需要實(shí)現(xiàn)四個主要的功能模塊,分別為脈沖計數(shù)模塊、定時器計時模塊、按鍵的處理以及數(shù)碼管動態(tài)掃描等功能。
定時器計時模塊主要完成途中等待(即沒有脈沖來時)30秒的計時。在啟動鍵按下后,定時器就不停的計時,只要有脈沖來就將計時的值清除為零。如果沒有脈沖來,當(dāng)計時超過30秒時,相應(yīng)的總金額要按照收費(fèi)標(biāo)準(zhǔn)計價。
中斷的管理:盡管中斷有嵌套以及優(yōu)先級的功能,但是由于定時器已經(jīng)使用一個了中斷資源,脈沖檢測不宜再采用中斷方式,而是采用查詢方式。由于需要不停的要清除30秒的計時,因此,脈沖的計數(shù)不采用定時器的計數(shù)方式。
啟動鍵觸發(fā)定時器開始工作,而定時器的運(yùn)行可以作為脈沖計數(shù)的標(biāo)志,只要定時器計時在運(yùn)行,每來一個中斷都應(yīng)該計數(shù)。
主程序完成鍵盤的掃描和按鍵的處理,查詢脈沖產(chǎn)生的中斷,并完成脈沖的計數(shù)。每個脈沖代表10米,則當(dāng)計數(shù)到100時表示1千米的距離,相應(yīng)的總金額要按照收費(fèi)標(biāo)準(zhǔn)計價
(2)選擇單片機(jī)型號和所需外圍器件型號,設(shè)計單片機(jī)硬件電路原理圖
采用MCS51系列單片機(jī)At89S51作為主控制器,外圍電路器件包括數(shù)碼管驅(qū)動、獨(dú)立式鍵盤、復(fù)位電路等。硬件電路原理圖如圖3-9所示。
數(shù)碼管驅(qū)動采用2個四聯(lián)共陰極數(shù)碼管顯示,由于單片機(jī)驅(qū)動能力有限,采用74HC244作為數(shù)碼管的驅(qū)動。在74HC244的7段碼輸出線上串聯(lián)100歐姆電阻起限流作用。
獨(dú)立式按鍵使用上提拉電路連接,在沒有鍵按下時,輸出高電平。P0口用于輸出7段LED共陰極顯示代碼,P2口用于輸出低電平有效的位選碼。0~9的7段LED共陰極顯示代碼:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH。
(3)分析軟件任務(wù)要求,寫出程序設(shè)計思路,分配單片機(jī)內(nèi)部資源,畫出程序流程圖
軟件的任務(wù)要求包括定時器的設(shè)置、按鍵的掃描、按鍵的功能處理、脈沖的計數(shù)、路途等待超30秒的計時以及總金額的計算等。
程序設(shè)計的思路:使用中斷方式對定時器的溢出進(jìn)行計數(shù)實(shí)現(xiàn)30秒的計時。主程序采用查詢外部中斷標(biāo)志實(shí)現(xiàn)脈沖的計數(shù),由于每個脈沖代表10m,因此,當(dāng)脈沖計數(shù)超過100時,計價器按照收費(fèi)標(biāo)準(zhǔn)計價。主程序在初始化變量和定時器參數(shù)設(shè)置之后,進(jìn)入一個循環(huán)結(jié)構(gòu),循環(huán)掃描鍵盤、查詢脈沖的中斷、數(shù)碼管的動態(tài)掃描等功能,當(dāng)脈沖的中斷標(biāo)志被查詢到,若路途等待時間未超30秒時,要及時將路途等待時間的值清除為零。主程序的流程圖如圖3-12所示。
圖3-12 出租車計價器的主程序流程圖
評論