版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統(tǒng)。</p><p
2、> 出租車計價器是單片機的一種典型應用?;趩纹瑱C的計價器是由單片機和外部電路組成。包括檢測模塊,控制模塊,人機模塊。里程檢測模塊由外加脈沖模擬車輪轉速,控制模塊包括AT89C52單片機和AT24C02,人機模塊包括獨立鍵盤和數碼管動態(tài)顯示。</p><p><b> 系統(tǒng)性能指標:</b></p><p><b> 1.脈沖模擬轉速;</
3、b></p><p> 2.顯示當前單價、行駛里程和總金額;</p><p> 3.里程精確到0.1公里。</p><p><b> 4.切換顯示。</b></p><p> 關鍵詞:AT89C52,脈沖,中斷,計費,動態(tài)顯示</p><p><b> 目 錄</b
4、></p><p><b> 概 述1</b></p><p> 一、系統(tǒng)工作原理2</p><p> 1.1功能要求2</p><p> 1.2基本原理2</p><p><b> 二、硬件設計3</b></p><p&g
5、t; 2.1 單片機最小系統(tǒng)單元3</p><p> 2.2 掉電存儲單元6</p><p> 2.3 鍵盤調整單元6</p><p> 2.4 顯示單元7</p><p><b> 三、 軟件設計9</b></p><p> 3.1 系統(tǒng)主程序9</p>&
6、lt;p> 3.2 里程計數中斷程序10</p><p> 3.3 中途等待中斷程序10</p><p> 3.4 計算程序10</p><p> 3.5 顯示程序11</p><p> 3.6 鍵盤程序11</p><p> 四、 調試改進過程及運行結果分析11</p>&
7、lt;p> 4.1 動態(tài)掃描的調試和分析11</p><p> 4.2 按鍵查詢功能的實現(xiàn)11</p><p> 4.3 外部中斷的實現(xiàn)11</p><p> 4.4 計價器系統(tǒng)的仿真12</p><p><b> 五、總 結14</b></p><p><b&g
8、t; 六、參考文獻15</b></p><p> 附 錄C 系統(tǒng)源程序16</p><p><b> 概 述 </b></p><p> 隨著城市建設日益加快,象征著城市面貌的出租車行業(yè)也將加速發(fā)展?,F(xiàn)在各大中城市出租車行業(yè)都已普及自動計價器,所以計價器技術的發(fā)展有很好的前景。盡管小城市尚未普及,但計價器的普及也是毫無
9、疑問的,所以未來汽車計價器的市場還是十分有潛力的。</p><p> 基于單片機AT89C52設計的出租車計價器不僅可方便的用軟件代替硬件,降低成本,具備一般計價器的計算里程和顯示總金額的功能,還具備了掉電保持,白天、夜晚單價切換,并且還可很方便的擴展為速度測試儀,具有很好市場前景。因此本課題基于單片機設計出租車計費系統(tǒng)具有非常重要的意義。</p><p><b> 本課題功
10、能要求</b></p><p> 1. 設計一個出租車計價器,并利用脈沖信號模擬車輪轉動和單片機內集成的計數器測試出出租車運行里程。</p><p> 2、3公里以內起步價5元,超過3公里每1公里1.8元。</p><p> 3、功能按鍵,顯示單價、公里數和總費用。</p><p> 4、有完整的軟件仿真結果和硬件電路,并
11、用Protel設計系統(tǒng)原理圖。</p><p><b> 擴展要求:</b></p><p> 1、低速時進入等待計時狀態(tài),等待計時超過5分鐘后,每分鐘0.9元。</p><p><b> 2、夜班加價功能。</b></p><p><b> 一、 系統(tǒng)工作原理</b>
12、</p><p><b> 1.1功能要求</b></p><p> 出租車計價器是根據乘客乘坐汽車行駛距離和等候時間的多少進行計價的,并在行駛中同步顯示本次消費、運行里程、運行單價以及等待時間等信息。從起步開始,當汽車行駛里程未滿3公里時,均按起步價計算。超過3公里后,實現(xiàn)每1公里單價收費,中間遇到暫停時,計程數不再增加,開始計時收費,計程收費和計時收費的和便構
13、成了一位乘客的車費。同時,白天和夜晚價格不同,可以進行切換。白天單價、夜晚單價、等待單價和起步價格都可通過獨立鍵盤進行調節(jié)。(默認起步價為5元/3公里,里程單價白天為1.8元/公里,夜晚為2.8元/公里,等待計時單價為0.9元/1分鐘)</p><p> 為提高計時、計價精度,確保乘客對自己消費的知情權,出租車計價器應做到里程數精確到0.1公里,同時為減少司機朋友來回調整單價以及停車后需重設單價的麻煩,計價器應
14、具有掉電保持功能,即當重新啟動后維持原有數值(包括總金額、等待時間、行駛里程、單價)不變,直至強制按下清零鍵,計價器顯示起步價(剛起步時對應總金額)、運行單價,為下一次計價做準備。</p><p><b> 1.2 基本原理</b></p><p> 計價器系統(tǒng)主要由五部分組成:分別為脈沖模擬里程檢測單元、AT89C52單片機、外擴串行EEPROM-AT24C02
15、、獨立鍵盤和數碼管顯示。</p><p> 通過脈沖模擬車速,每輸入一個脈沖相當于增加0.1公里的路程,停止脈沖輸入相當于汽車停止進入等待狀態(tài)。輸入的脈沖由單片機進行處理計費,相關數據進行總的消費金額的計算:當里程小于3公里時,總金額=起步價+等待時間*等待單價;當里程大于3公里時,總金額=起步價+(里程-3)*運行單價+等待時間*等待單價;計算好的金額、等待時間、里程和單價等數據信息都可實時地顯示在數碼管上。
16、其中,等待時間可根據是否有脈沖輸出加以判斷,如可設定等待時基為5s,在5s后仍無脈沖輸出便認為進入等待時間,并由單片機AT89C52內部計時器對其進行計時。</p><p> 獨立鍵盤可以調整單價等相關數據,當按下某按鍵,會給單片機相應端口一低電平信號,單片機會通過循環(huán)掃描檢測到此信號,并根據預先設置好的程序做出相應的處理;調整好的數據存儲到EEPROM中,掉電后可以使該數據不丟失,下次得電后直接從EEPROM
17、-AT24C02中讀到單片機,并通過數碼管實時顯示。系統(tǒng)結構圖如圖1-1所示。</p><p><b> 二、硬件設計</b></p><p> 2.1 單片機最小系統(tǒng)單元</p><p> 主控機系統(tǒng)采用AT89C52單片機,其最小系統(tǒng)包括復位電路和晶振電路,以及P0口接入的10K的上拉電阻便構成了AT89C52 單片機工作所需的最簡外
18、圍電路。單片機最小系統(tǒng)電路圖如圖2-1所示</p><p> 圖2-1 單片機最小系統(tǒng)</p><p><b> 1、復位電路</b></p><p> 單片機在啟動運行時都需要進行復位操作,以便使CPU和系統(tǒng)中的其它部件都處于某一確定的初始狀態(tài),并從這個狀態(tài)開始工作。AT89C52單片機有一個引腳RST,它是施密特觸發(fā)器的輸入端,其輸出
19、端接復位電路的輸入。</p><p> 復位信號是高電平有效,其有效時間應持續(xù)24個振蕩脈沖周期(即二個機器周期)以上。</p><p> 復位有電復位和手動復位兩種。手動復位有電平方式和脈沖方式兩種。本次設計中,為方便操作,采用手動復位的電平復位。其復位電路如下表示:復位電路連接圖如圖2-2所示:</p><p> 圖2-2 復位電路連接圖</p>
20、;<p> 圖為80C51型單片機上電手動復位電路。RC構成微分電路在接電瞬間,產生一個微分脈沖,其寬度若大于2個機器周期,80C51型單片機將復位。為保證微分脈沖寬度足夠大,RC時間常數應大于2個機器周期。一般取10Uf電容、10k電阻。</p><p><b> 2、時鐘電路</b></p><p> 時鐘電路如圖2-4所示:</p>
21、;<p><b> 圖2-4 時鐘電路</b></p><p> 時鐘電路產生的振蕩脈沖經過觸發(fā)器進行二分頻之后,才能為單片機的時鐘脈沖信號。振蕩頻率取決于石英晶體的振蕩頻率,頻率范圍可取1.2MHz—12MHz。C3、C4主要起頻率微調和穩(wěn)定作用,電容值可取5~30pF。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機運行也就快,但反過來運行速度快對存儲器的速度要求就高,對印
22、刷電路板的工藝要求也高(線間寄生電容要小)。在本次設計中,選取晶振頻率為12MHz,C1和C2的值均為33uF。</p><p> 2.2 掉電存儲單元</p><p> AT24C02的作用是在電源斷開的時候,存儲當前設定的總金額,等待時間,運行里程以及單價等信息。AT24C02 是Ateml公司的2KB的電可擦除存儲芯片,引腳配置如圖2-5所示。</p><p&
23、gt; 圖2-5 AT24C02引腳配置圖</p><p> 圖中R4、R5 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗。由于AT24C02的數據線和地址線是復用的,采用串口的方式傳送數據,只用兩根線SCL(時鐘脈沖)和SDA(數據/地址)與單片機P3.6和P3.7口連接,每當設定一次單價,系統(tǒng)就調用存儲程序,將單價信息保存在芯片內;當系統(tǒng)重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,
24、讀到緩存單元中,供主程序使用。</p><p> 2.3 鍵盤調整單元</p><p> 當單價等信息需要進行修改時,就要用到鍵盤。由于調節(jié)信息不多,故采用5個獨立鍵盤即可,分別實現(xiàn)清零、切換、增大、減小和功能等作用。電路原理如圖2-6所示。</p><p> 圖2-6鍵盤調整單元接線圖</p><p> 圖中,鍵盤從上至下依次為:&
25、lt;/p><p> S0:接P1.0口,對上一次的計費進行清零,為下次載客做準備;</p><p> S1:接P1.1口,通過對功能鍵S3按下次數的計數,實現(xiàn)單價數據的增大;</p><p> S2:接P1.2口,通過對功能鍵S3按下次數的計數,實現(xiàn)單價數據的減小;</p><p> S3:接P1.3口,按1次,進入調整白天單價;按2次
26、,進入調整夜晚單價;按3次,進入調整等待單價;按4次,進入調整起步價;按5次,返回。</p><p> S4: 實現(xiàn)白天單價和夜晚單價的切換。</p><p> 需要注意的時,當按鍵按下和釋放的瞬間都有抖動現(xiàn)象,一般來說,抖動的時間長短與鍵盤的機械特性有關,大約為5-10ms [5] 。所以在實際編程時一定要注意鍵盤的去抖動。鍵盤去抖動有專用的延時電路,也有專門的延時芯片,也可以用軟件
27、去抖,考慮到電路的難易程度,從簡化硬件的角度,本次設計采用軟件去抖動,用一個短延時程序,進行鍵盤去抖操作。</p><p><b> 2.4 顯示單元</b></p><p> 顯示單元由兩個4位8段共陽數碼管組成,電路連接時,公共端接高電平,因此我們需要點亮哪個發(fā)光二極管只需給哪個二極管陰極送低電平,并采用動態(tài)掃描進行顯示。前三個數碼管分別接P2.0、P2.1和
28、P2.2,用于顯示總金額;第四個接P2.3 ,顯示等待時間;第五個和第六個數碼管分別接P2.4和P2.5,用于顯示里程,由于需精確到小數位,故最多只能顯示9.9公里,但經過添加溢出指示,可計到20公里,在現(xiàn)實中已基本夠用;后面兩個數碼管分別接P2.6和P2.7,用于顯示單價。由于溢出指示是采用發(fā)光二極管是否點亮表示,故必須選好參數以確保發(fā)光二極管正常工作。根據元件手冊(也可用萬用表測量)查得,發(fā)光二極管點亮時壓降為1.7V,點亮電流為3
29、-20mA,取導通電流為5mA,所以限流電阻可選擇為(5-1.7)/5=660,故可選擇限流電阻值510Ω。</p><p> 由于數碼管內部二極管點亮時需要5mA以上的電流,而單片機的輸出電流還不到1mA,所以數碼管與單片機連接時需加驅動電路,可以使用上拉電阻的方法,也可以使用專門的驅動芯片,考慮到復用單片機I/O接口,節(jié)省單片機I/O資源,此次設計采用74HC573鎖存器,其輸出電流較大,電路接口簡單且可直
30、接驅動數碼管顯示。。數碼管動態(tài)顯示電路如圖2-7所示。</p><p> 圖2-7 數碼管動態(tài)顯示電路</p><p><b> 三、軟件設計</b></p><p><b> 3.1 系統(tǒng)主程序</b></p><p> 在主程序模塊中,需要完成對各參量和接口的初始化、出租車起步價和單價的
31、初始化以及中斷、計算、循環(huán)等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計價等不同的操作。</p><p> 當出租車運行后,就啟動計價器,根據里程寄存器中的內容計算和判斷行駛里程是否已超過起步價公里數。若已超過,則根據里程值、每公里的單價值和起步價來計算出當前的總金額,并將結果存于總金額寄
32、存器中;中途等待時,無脈沖輸入,不產生中斷,當時間超過等待設定值時,開始進行計時,并把等待金額加到總金額里,然后將總金額、里程、等待時間和單價送數碼管顯示出來。程序流程如圖3-1所示。</p><p> 圖3-1 主程序流程圖</p><p> 3.2 里程計數中斷程序</p><p> 每當按鍵輸入一個脈沖(低電平信號),單片機定時器0(工作在計數模式)就對
33、其計數一次,相應的變量設為inter就自加1,并對自身產生清零操作,同時進入里程計數中斷服務程序中,里程變量加1,總金額根據此時所設單價做出相應的變化。</p><p> 3.3 中途等待中斷程序</p><p> 在中途等待中斷程序中,定時器1每50ms計一次數,每計夠100次(5sec),便將當前里程值送入某個緩存變量,與前一個5秒的值進行比較,如果兩者相同,則表明外部沒有輸出信號
34、,認為出租車停了下來,進入等待計時,計時中間變量dd自加1,計夠12次為一分鐘,dd自清零,同時根據所設的等待單價刷新總金額。</p><p><b> 3.4 計算程序</b></p><p> 計算程序根據里程數分別進入不同的計算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價+(里程-3)*單價+等待時間*等待單價;否則,執(zhí)行公式:總金額=起步價+等待時
35、間*等待單價。程序流程圖如圖3-2所示。</p><p> 圖3-2 計算程序流程圖</p><p><b> 3.5 顯示程序</b></p><p> 由于8位數碼管所有段選皆有8位的P0口進行控制,因此,在每一瞬間,8位LED會顯示同一個數字。要想每位顯示不同的字符,就必須采用動態(tài)掃描的方法輪流點亮各位LED,即在每一時刻只使某一位
36、顯示字符。在此瞬間,段選控制I/O口輸出相應字符段選碼(字符碼),而位選則控制I/O口在該顯示的位送入選通電平,以保證該位顯示顯示相應字符。如此循環(huán)操作,使每位分時顯示該位應該顯示的字符 。</p><p> 在本次設計中顯示程序利用延時程序,每隔5ms刷新一次,相應的數碼管點亮,顯示一位數據,利用主函數內的循環(huán),實現(xiàn)動態(tài)掃描顯示,同時根據數碼管余輝和人眼暫留現(xiàn)象,給人看上去每個數碼管總是在亮,以實現(xiàn)動態(tài)顯示
37、。</p><p><b> 3.6 鍵盤程序</b></p><p> 鍵盤采用查詢的方式,放在主程序中,當有按鍵按下的時候,在相應I/O口產生一次低電平,當單片機查詢出該低電平后便轉入進行處理,處理結束返回</p><p> 四、調試改進過程及運行結果分析</p><p> 4.1 動態(tài)掃描的調試和分析<
38、;/p><p> 動態(tài)掃描是單片機編程中最基本的知識,對其原理有比較清晰的掌握,本次用的是C語言編程。第一次在程序中把段碼和位碼順序送反,結果是只有在延時時間較長時才能顯示正常,當然這樣的結果是沒有靜態(tài)的效果。</p><p> 4.2 按鍵查詢功能的實現(xiàn)</p><p> 按鍵查詢比較容易實現(xiàn),只要注意1. 按鍵結束后注意退出按鍵處理;2.不要陷入死循環(huán),即避免
39、顯示一個數據后退不出來;3.在做實際鍵盤時要注意按下去抖和釋放去抖。</p><p> 4.3 外部中斷的實現(xiàn)</p><p> 程序完成好,外部中斷一直不能起不到作用,采用的單片機內部模擬脈沖卻可以實現(xiàn)效果,經過分析是把外部中斷0和1兩種方式搞混了,仔細修改程序后,實現(xiàn)了功能,由外部輸入低電平信號作為模擬車速的脈沖信號。</p><p> 4.4 計費器系統(tǒng)
40、的仿真</p><p> 當各個子模塊都實現(xiàn)后,聯(lián)調則主要是看當把他們融合在一起時是否會有時序上的沖突,以及可能存在的分析不周全的地方。調試完成后在Proteus 7.5 上仿真結果如圖4-1,4-2,4-3,4-4所示。</p><p> 圖4-1里程無溢出時小于三公里仿真結果</p><p> 圖4-2里程無溢出時大于三公里仿真結果</p>
41、<p> 圖4-3 里程小于三公里時等待計費仿真結果</p><p><b> 五、總 結</b></p><p> 經過近兩周的設計,在老師和同學的幫助下,全面實現(xiàn)了預先設定的計價器應具有的功能,且滿足了所有設計指標。</p><p> 1. 能準確顯示出租車運行里程;</p><p> 2. 實
42、現(xiàn)了單價可調,里程精確到0.1公里,并可以對等待時間進行計時;</p><p> 3.通過EEPROM-AT24C02對存儲空間進行了擴展,使其具備掉電存儲功能。</p><p> 4. 有完整的軟件仿真結果和硬件電路,并用Protel設計出了系統(tǒng)原理圖,制作了電路板。</p><p> 通過對基于Proteus 7.5的仿真和實際電路的測試結果分析,表明用此
43、方法設計的計價器。實現(xiàn)了單價可調,掉電保持,計程精度達到0.1公里,此外還增加了等待計時功能,白天夜晚單價自動切換,并且能實時顯示總金額,等待時間,運行里程,運行單價等詳細信息;且能很方便的在不改變硬件電路的情況下通過改變軟件實現(xiàn)計價精度的提高,進行功能上的擴展,如可把現(xiàn)有的計價器轉變?yōu)橛嬎倨?,完善的功能使得基于AT89C52單片機的出租車計價器的通用性和實用性有著無可比擬的優(yōu)勢,具有很高的現(xiàn)實意義和很好的市場前景。</p>
44、<p> 回想這兩周的課程設計,感慨頗多?。睦碚摰綄嵺`,學到了很多東西,對以前所學過的知識進行了鞏固,也對書本上沒有的東西進行了了解。這次課程設計使得我們深刻體會到理論聯(lián)系實踐的重要性。只有當一個人把所學的理論用于實踐的時候才真正體現(xiàn)了價值。</p><p> 在此次設計中遇到了諸多問題,畢竟是第一次做,而且當初學習單片機等專業(yè)選修課的時候也沒學多牢固,以至于連簡單的管腳圖,一些元器件的使用方
45、法也要上網查。對于編寫程序的過程亦是如此,由于自身條件有限,剛開始編的程序下載到單片機以后一直都不工作,到最后我們只有向軟件學習好的同學請教,終于把程序問題解決了 。</p><p> 這次課程設計順利結束了,雖然中間遇到過那么多問題,但是在古老師的指導和劉同學的幫助下終于引刃而解了。再次感謝給過我們幫助的老師和同學們!</p><p><b> 參考文獻</b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車計價器課程設計
- 出租車計價器課程設計
- 出租車計價器課程設計
- 課程設計---出租車計價器設計
- 課程設計--出租車計價器設計
- 出租車計價器設計課程設計
- 課程設計---出租車計價器設計
- 出租車計價器課程設計報告
- 出租車計價器課程設計論文
- 硬件課程設計----出租車計價器
- eda課程設計--出租車計價器
- eda課程設計--出租車計價器
- 接口課程設計---出租車計價器
- 課程設計---出租車計價器的設計
- 課程設計--出租車計價器的設計
- 硬件課程設計--出租車計價器系統(tǒng)
- eda課程設計報告---出租車計價器
- eda課程設計報告--出租車計價器
- arm出租車計價器系統(tǒng)課程設計
- 硬件課程設計報告--出租車計價器
評論
0/150
提交評論