版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計任務(wù)書</b></p><p> 學(xué)生姓名: xxx 專業(yè): 信息處理與自動化 </p><p> 班級: 自動化0901 指導(dǎo)教師 xxx </p><p> 題 目: 基于單片機(jī)的出租車計價器的設(shè)計</p>
2、;<p> 運用所學(xué)的單片機(jī)原理與接口技術(shù)知識和數(shù)字電路知識;</p><p> 51單片機(jī)應(yīng)用開發(fā)系統(tǒng)一套;</p><p> PC機(jī)及相關(guān)應(yīng)用軟件。</p><p> 要求完成的主要任務(wù):</p><p> 以目前生活中正在使用的出租車計價器為原型進(jìn)行設(shè)計,要求具有按時間和里程綜合計算車價的功能,能顯示時間、里程、
3、單價、總車價等相關(guān)信息。</p><p> 完成出租車計價器的設(shè)計和調(diào)試。 </p><p> 撰寫課程設(shè)計說明書,說明書使用A4打印紙計算機(jī)打印,用Protel等繪圖軟件繪制電子線路圖紙。</p><p><b> 時間安排:</b></p><p> 第1周 下達(dá)課程設(shè)計任務(wù)書和日程安排,調(diào)研和查找資料,
4、明確設(shè)計任務(wù)要求;</p><p> 第2周 完成方案論證、總體設(shè)計和硬件設(shè)計;</p><p> 第3周 完成軟件設(shè)計和程序的編寫; </p><p> 第4周 調(diào)試硬件系統(tǒng)和軟件程序,完成整個系統(tǒng)的設(shè)計和調(diào)試;</p><p> 第5周 結(jié)果分析整理、撰寫課程設(shè)計報告,驗收和答辯。</p><p><
5、b> 摘 要</b></p><p> 出租車計價器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計價器無論是對廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,汽車計價器的研究也是十分有一個應(yīng)用價值的。 而采用模擬電路和數(shù)字電路設(shè)計的計價器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試,對于模式的切換需要用
6、到機(jī)械開關(guān),機(jī)械開關(guān)時間久了會造成接觸不良,功能不易實現(xiàn)。而采用單片機(jī)進(jìn)行的設(shè)計,相對來說功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎膶崿F(xiàn)設(shè)計要求,且靈活性強(qiáng),可以通過軟件編程來完成更多的附加功能。針對計費模式的切換,通過軟件編程就可以輕易而舉的實現(xiàn)。避免了機(jī)械開關(guān)帶來的不穩(wěn)定因素。另外在本方案中那個使用了點陣的液晶,可以實現(xiàn)更加友好的使用界面。數(shù)據(jù)信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根據(jù)不同的公司客戶使
7、用不同的局面。</p><p> 關(guān)鍵詞:出租車計價器 單片機(jī) 控制</p><p><b> Abstract</b></p><p> Taximeter is both passengers and drivers of the transaction criteria, it is the taxi industry
8、an important symbol, a taxi is the most important tools. It relates to the interests of both transactions. Has a good performance regardless of the meter is a vast number of taxi drivers or passengers are very necessary.
9、 Therefore, the car meter is also very much a study of value. The use of analog circuits and digital circuit design of the meter as a whole circuit of a larger scale, using the device, a</p><p> Keywords: T
10、aximeter 89 C51 MCU control</p><p><b> 目 錄</b></p><p><b> 1 緒論6</b></p><p><b> 2 方案設(shè)計7</b></p><p><b> 2.1功能要求7<
11、/b></p><p><b> 2.2方案論證7</b></p><p> 3 系統(tǒng)硬件的設(shè)計9</p><p> 3.1 AT89S52結(jié)構(gòu)及其功能9</p><p> 3.2 LM358結(jié)構(gòu)及其功能14</p><p><b> 4 單元電路15</
12、b></p><p> 4.1 按鍵模塊15</p><p> 4.2 顯示模塊15</p><p> 4.3 信號采集電路17</p><p> 4.4 整體電路18</p><p> 5 系統(tǒng)軟件的設(shè)計19</p><p> 5.1 初始化程序19</p
13、><p> 5.2 主程序19</p><p><b> 6 調(diào)試分析21</b></p><p><b> 7 結(jié)論22</b></p><p><b> 8 致謝23</b></p><p><b> 參考文獻(xiàn)23</
14、b></p><p><b> 附錄24</b></p><p><b> 1 緒論</b></p><p> 步入21世紀(jì),出租車已經(jīng)廣泛地出現(xiàn)在我們周圍。隨著人們生活水平的不斷提高,出租車的使用頻率也越來越高,出租車行業(yè)也以高質(zhì)量的服務(wù)給人們帶來了出行的享受。但是由于行業(yè)的特殊性,出租車行業(yè)總存在著買糾紛
15、,困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一矛盾的最好方法就是改良計價器,用更加精良的計價器來為乘客提供更加方便快捷的服務(wù)。 30年前,我國出現(xiàn)了出租車,但是由于當(dāng)時的經(jīng)濟(jì)水平,出租車并沒有普遍在我們生活中出現(xiàn)。隨著改革開放的深入,出租車行業(yè)的發(fā)展勢頭已十分突出。如今出租車在我國的交通運輸中承擔(dān)著重要的角色,出租車計價器是出租車上必不可少的重要儀器,它是負(fù)責(zé)出租車營運收費的專用智能化儀表。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為
16、城市的窗口,象征著一個城市的文明程度。 我們都知道,只要出租車開動,隨著行駛里程的增加,就會看到汽車前面的計價器里程數(shù)字顯示的讀數(shù)從零逐漸增大,而當(dāng)行駛到某一值時(如5KM)計費數(shù)字顯示開始從起步價(如10元)增加。當(dāng)出租車到達(dá)某地需要在那里等候時,司機(jī)只要按一下“計時”鍵,每等候一定時間,計費顯示就增加一個該收的等候費用。汽車?yán)^續(xù)行駛時,停止計算等</p><p><b> 2 方案設(shè)計
17、</b></p><p><b> 2.1功能要求</b></p><p> 利用單片機(jī)的軟件編寫功能,實現(xiàn)以5.0元為起步價,根據(jù)所行駛的距離進(jìn)行計價,區(qū)分白天和晚上不同計價,以及采用數(shù)碼管顯示里程數(shù)、起步價、單價、總價及時間。</p><p><b> 2.2方案論證</b></p>&
18、lt;p> 方案一:采用數(shù)字電路控制。其原理方框圖如圖2-1所示。采用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實現(xiàn)計價,但是考慮到這種電路過于簡單,性能不夠穩(wěn)定,故障率高,難調(diào)試,而且電路不夠?qū)嵱谩?lt;/p><p> 圖2-1 數(shù)字電路方案</p><p> 方案二:采用單片機(jī)控制。利用單片機(jī)豐富的IO端口,及其控制的靈活性,實現(xiàn)基本的里程計價功能,途中等待等
19、不同功能。在整個項目設(shè)計開發(fā)過程中,先根據(jù)控制系統(tǒng)要求設(shè)計整個電路的原理圖,PCB電路圖繪制,軟件編程,再通過仿真器對系統(tǒng)硬件和軟件調(diào)試,最后將調(diào)試成功的程序固化到單片機(jī)中本設(shè)計利用單片機(jī)豐富的I/O端口,及其控制的靈活性實現(xiàn)基本的里程計價功能和價格調(diào)整,時鐘顯示功能等等。</p><p> 最后,通過比較以上兩種方案,單片機(jī)方案有較大的活動空間,不但能實現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能靈活性較強(qiáng),還
20、可以通過軟件編程來完成更多的附加功能,而且還可以方便的對系統(tǒng)進(jìn)行升級,所以我們采用后一種方案。</p><p> 圖2-2 系統(tǒng)方框圖</p><p><b> 3 系統(tǒng)硬件的設(shè)計</b></p><p> 3.1 AT89C51結(jié)構(gòu)及其功能</p><p> 3.11 AT89C51結(jié)構(gòu)</p>
21、<p> 圖3-1 AT89S52結(jié)構(gòu)</p><p> 3.12 AT89C51主要性能</p><p> 與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲器、 1000次擦寫周期、 全靜態(tài)操作:0Hz~33Hz、三級加密程序存儲器 、32個可編程I/O口線、三個16位定時器/計數(shù)器八個中斷源 、全雙工UART串行通道、 低功耗空閑和掉電模式、掉電后中斷可
22、喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標(biāo)識符。</p><p> 3.13功能特性描述</p><p> AT89C51 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8
23、 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作
24、,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89C52 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為</p><p> 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。 </p
25、><p> 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.2分別作定時器/
26、計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 引腳號第二功能 P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) </p><p> P1.5 MOSI(在系統(tǒng)編程用) </p><p>
27、 P1.6 MISO(在系統(tǒng)編程用) </p><p> P1.7 SCK(在系統(tǒng)編程用) </p><p> P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存
28、儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 </p><p> 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個
29、TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。 端口引腳第二功能</p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(
30、串行輸出口)</p><p> P3.2 INTO(外中斷0)</p><p> P3.3 INT1(外中斷1)</p><p> P3.4 TO(定時/計數(shù)器0)</p><p> P3.5 T1(定時/計數(shù)器1)</p><p> P3.6 WR(外部數(shù)據(jù)存儲器寫選通)</p><p&
31、gt; P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。</p><p> RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將是單片機(jī)復(fù)位。</p><p> ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的
32、低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p> 對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p> 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MO
33、VX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p> EA/VPP——
34、外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。</p><p> FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。
35、</p><p> 3.2 LM358結(jié)構(gòu)及其功能</p><p> 3.21 LM358結(jié)構(gòu)</p><p> 圖3-2 LM358結(jié)構(gòu)</p><p> 3.22 LM358功能特點</p><p> 1.內(nèi)部頻率補(bǔ)償2.低輸入偏流3.低輸入失調(diào)電壓和失調(diào)電流4.共模輸入電壓范圍寬,包括接地5.差
36、模輸入電壓范圍寬,等于電源電壓范圍6.直流電壓增益高(約100dB) 7.單位增益頻帶寬(約1MHz) 8.電源電壓范圍寬:單電源(3—30V);9.雙電源(±1.5 一±15V)10.低功耗電流,適合于電池供電11.輸出電壓擺幅大(0 至Vcc-1.5V)</p><p><b> 4 單元電路</b></p><p><b
37、> 4.1 按鍵模塊</b></p><p> 這個模塊的作用是調(diào)試單價、起步價及時間的。其中模式1中的轉(zhuǎn)換鍵是轉(zhuǎn)換單價、起步價及時間,模式2中的轉(zhuǎn)換鍵是轉(zhuǎn)換時間的時與分。圖如下。</p><p><b> 圖4-1 按鍵模塊</b></p><p><b> 4.2 顯示模塊</b></p
38、><p> 這個部分是用數(shù)碼管顯示顯示里程、單價、起步價及時間。根據(jù)不同的要求和實踐中的方便應(yīng)用等結(jié)合,其中起步價和總價錢在同一個數(shù)碼管里顯示,總價是在起步價上再根據(jù)單價往上面加。如圖4-2所示。</p><p><b> 圖4-2 顯示模塊</b></p><p> 4.3 信號采集電路</p><p> 該電路
39、是用于車輪轉(zhuǎn)過次數(shù)的信息收集,通過車輪轉(zhuǎn)過的次數(shù)來計算行駛路程。在此,我用的是秒脈沖信號代替霍爾傳感器的信息采集。如圖4-3所示。</p><p> 圖4-3 信號采集信息</p><p><b> 4.4 整體電路</b></p><p> 本設(shè)計以AT89C51單片機(jī)為核心,采用LED數(shù)碼管實時顯示實際計得的價錢,以秒脈沖作為基本行程
40、信息的采集工具,此系統(tǒng)硬件設(shè)計簡單,主要通過軟件編程,實現(xiàn)工作狀態(tài)的定義和等待情況的處理,系統(tǒng)另外還留有P1.2~P1.7以及P2.3~P2.7口的全部資源,使得系統(tǒng)具有一定的可升級性和可擴(kuò)展性。</p><p> 圖4-4 系統(tǒng)電路圖</p><p><b> 5 系統(tǒng)軟件的設(shè)計</b></p><p><b> 5.1 初始
41、化程序</b></p><p> 系統(tǒng)上電時,初始化程序?qū)1~R5儲存單元清0.</p><p><b> 5.2 主程序</b></p><p> 主程序中通過循環(huán)在車輪計數(shù)中,車輪每轉(zhuǎn)過1周調(diào)用計數(shù)子程序?qū)τ嫈?shù)器加1。通過計數(shù)器中的累加值,判斷數(shù)值并調(diào)用顯示。通過顯示器顯示時間,路程,單價和總的金額。且計數(shù)子程序是通過對
42、工作寄存器的循環(huán)累加實現(xiàn)的。</p><p> 秒定時子程序通過20循環(huán)調(diào)用定時器的50毫秒定時實現(xiàn),對應(yīng)調(diào)用相應(yīng)子程序。</p><p> 碼管顯示子程序通過動態(tài)掃描實現(xiàn)。</p><p> 毫秒定時是通過軟件延時來實現(xiàn)的。</p><p> 系統(tǒng)初始化后,判斷是否進(jìn)行車輪計數(shù),若沒有進(jìn)行車輪計數(shù)則返回初始化,若進(jìn)行車輪計數(shù),則由計
43、數(shù)器加1,然后判斷計數(shù)器是否加到20,若不到20,則由數(shù)碼管顯示,若到了20則由到20方式處理,最后由數(shù)碼管顯示計算的價錢。</p><p> 圖5-1 主程序流程圖</p><p><b> 6 調(diào)試分析</b></p><p> 采用KeilC51編譯器進(jìn)行源程序編譯及仿真調(diào)試如下圖:</p><p> 且
44、在常溫下,實驗室里面,起步價為5元的情況下,測得的若干組數(shù)據(jù)用于與理論數(shù)據(jù)對比分析,如下圖表所示:</p><p> 經(jīng)分析上圖所示的數(shù)據(jù)可以看到測試值于理論值之間的差距均<1(元)。綜上所述可以看出該設(shè)計基本穩(wěn)定,精確。</p><p><b> 7 結(jié)論</b></p><p> 經(jīng)過這幾個個月來不懈的努力與奮斗,我終于在老師
45、的指導(dǎo)下完成了我的畢業(yè)設(shè)計,雖然它還有諸多需要完善的地方,但是拿著這件設(shè)計,我仍然有止不住的興奮。高興之余,我仍需深思:</p><p> 這件作品雖能初步解決出租車計算價錢的問題,但它仍有它的局限性,首先它不能自動調(diào)整黑天和白夜的單價轉(zhuǎn)換,這個功能我需要以后的設(shè)計中努力完善,另外,如果配上語音效果那就更方便了司機(jī)和乘客,更加顯的人性化和快捷化。</p><p> 通過這次設(shè)計,我最大
46、的收獲就是自己的動手能力和獨立解決問題的能力得到了很大的提高。雖然遇到了不少困難,但當(dāng)我通過查資料和翻閱書籍的同時也學(xué)到了不少的知識,擴(kuò)大了知識面,提高了知識水平經(jīng)過單元設(shè)計和系統(tǒng)設(shè)計鞏固了以前所學(xué)的專業(yè)知識,從方案形成到準(zhǔn)備電路圖,到軟件設(shè)計,到聯(lián)機(jī)調(diào)試……每一個小小的步驟,我都得到了很好的鍛煉。我學(xué)會了怎樣有效的收集整合資料;我學(xué)會了怎樣細(xì)心地檢查電路;我學(xué)會了怎樣虛心地尋求幫助;我學(xué)會了……我也明白了,很多書本上的東西光靠趴在書本
47、上學(xué)是學(xué)不到其中的精髓的,我們必須親自去試著實踐了,親自去經(jīng)歷失敗了才能對它們真正的掌握。理論必須聯(lián)系實際,而實踐試檢驗真理的唯一標(biāo)準(zhǔn),我真正的懂得了這句話的真諦。在我以后的工作和生活中,我從此可以汲取很多經(jīng)驗,凡事都要自己去動下手,去實踐一下,遇到困難,要有耐心,有信心,有細(xì)心,有恒心,有虛心,只有這樣,我才會在逆境中不斷前進(jìn)。</p><p><b> 8 致謝</b></p&
48、gt;<p> 首先我要特別感謝我的指導(dǎo)老師,不管在選題階段,還是在設(shè)計階段,在制作階段,正是他給予我不斷的指導(dǎo)與鼓勵,我才能順利地完成我的畢業(yè)設(shè)計,他那種對待學(xué)生和藹親切,對待工作一絲不茍的品質(zhì)和精神值得我們每一個人學(xué)習(xí)。借此機(jī)會,向我的指導(dǎo)老師周老師表示衷心的感謝。然后我要感謝我的同學(xué),在軟件設(shè)計和聯(lián)機(jī)調(diào)試過程遇到困難時,正是由于同學(xué)們的幫助我才能順利的克服困難,我畢業(yè)設(shè)計的完成離不開同學(xué)們的幫助。</p>
49、;<p> 最后通過這次設(shè)計不僅增強(qiáng)了自己的動腦能力和動手能力,也提高了我的思考問題,分析問題,解決問題的能力,通過這次設(shè)計我也看到了自己的不足,當(dāng)然我也會努力提高自己,為將來的工作打好最堅實的基礎(chǔ)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]張友德.趙志英.涂時亮.單片微型機(jī)原理應(yīng)用與實驗 上海:復(fù)旦大學(xué)出版社2005.
50、12 全書</p><p> [2] 徐光翔.單片機(jī)原理接口及應(yīng)用 南京大學(xué)出版社 [3] 張淑清等. 單片微型計算機(jī)接口技術(shù)及其應(yīng)用 北京:國防工業(yè)出版社 [4] 王曉君等. MCS-51及兼容單片機(jī)原理與選型 北京:電子工業(yè)出版社</p><p><b> 附錄</b></p><p><b>
51、參考程序</b></p><p> #include "AT89X52.h"</p><p> #include "intrins.h"</p><p> #define uchar unsigned char</p><p> #define uint unsigned int &
52、lt;/p><p> code uchar duanma[]={0x3f,0x06,0x5b,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};</p><p> code uchar weima[]={0xef,0xdf,0xbf,0x7f};</p><p> code uchar weima1[]={0xef,0xdf,0xbf,0x7
53、f};</p><p> code uchar ss[]={0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff};</p><p> code uchar sj[]={0xbf,0x7f};</p><p> uchar shuju[10];</p><p> uchar shuju1[10];</p
54、><p> uchar miao,fen,shi,danjia=0;</p><p> uint licheng=0;</p><p> uint jiner=0;</p><p> uchar qibujia=50,count1=0;</p><p> uchar k=0,zc1,zc2;</p>
55、<p> #include "key.h"</p><p> #include "hc595.h"</p><p> void int0()interrupt 0</p><p><b> {</b></p><p><b> EA=0;</b
56、></p><p> count1++; </p><p> if(count1==100)</p><p> { count1=0;</p><p> licheng++;</p><p><b> }</b></p><p><b> EA
57、=1;</b></p><p><b> }</b></p><p> void time0()interrupt 1</p><p><b> {</b></p><p> static uchar kkk=0;</p><p> TH0= TL0=
58、0XFA;</p><p><b> HC595();</b></p><p><b> if(kkk<8)</b></p><p><b> {</b></p><p> P2=0XFF&ss[kkk];</p><p>&l
59、t;b> P2_2=1;</b></p><p><b> P2_0=1;</b></p><p> if(kkk==2||kkk==6)</p><p> P0=duanma[shuju1[kkk]]|0x80;</p><p> else P0=duanma[shuju1[kkk]];&l
60、t;/p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> P2_2=0;</b></p><p><b> P2_0=0;&l
61、t;/b></p><p><b> P2_4=1;</b></p><p> if(kkk==8)</p><p><b> {</b></p><p><b> P2_3=0;</b></p><p><b> P2_4=1
62、;</b></p><p> P0=duanma[shuju[kkk-2]]|0X80;</p><p><b> }</b></p><p> if(kkk==9)</p><p><b> {P0=0X00;</b></p><p><b>
63、 P2_3=1;</b></p><p><b> P2_4=0;</b></p><p> P0=duanma[shuju[kkk-2]];</p><p><b> }</b></p><p><b> }</b></p><p&g
64、t;<b> kkk++;</b></p><p> if(kkk==10)</p><p><b> {kkk=0;}</b></p><p><b> }</b></p><p> void time1()interrupt 3</p><p&
65、gt;<b> {</b></p><p> static unsigned char i=0,aa=0;</p><p> uchar jj=0;</p><p> TH1=(65535-5001)/256;</p><p> TL1=(65535-5001)%256;</p><p>
66、;<b> i++; </b></p><p><b> aa++;</b></p><p> if(aa==100)</p><p><b> {aa=0;</b></p><p> P1_4=~P1_4;</p><p><b>
67、 }</b></p><p> if(i==200)</p><p><b> {i=0;</b></p><p><b> miao++;</b></p><p> if(miao==60)</p><p><b> {</b>
68、</p><p><b> miao=0;</b></p><p><b> fen++;</b></p><p> if(fen==60)</p><p><b> {</b></p><p><b> fen=0;</b&g
69、t;</p><p><b> shi++;</b></p><p> if(shi==24)</p><p><b> shi=0;</b></p><p><b> }</b></p><p><b> }</b>&
70、lt;/p><p><b> }</b></p><p><b> }</b></p><p> void init()</p><p><b> {</b></p><p> TMOD=0X11;</p><p><
71、b> TR1=1;</b></p><p><b> ET1=1;</b></p><p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p><b> PT1=1;</b></
72、p><p><b> PX0=1;</b></p><p><b> PT0=0;</b></p><p><b> IT0=1;</b></p><p><b> EX0=1;</b></p><p> EA=1;P2_3=
73、1;P2_4=1;</p><p> TH0= TL0=0XF0;</p><p> TH1=(65535-5000)/256;</p><p> TL1=(65535-5000)%256;</p><p> danjia=18;</p><p><b> }</b></p>
74、<p> void main()</p><p><b> {</b></p><p> uint temp=0;</p><p><b> init();</b></p><p><b> while(1)</b></p><p&g
75、t;<b> {</b></p><p><b> key();</b></p><p> shuju[1]=fen/10;</p><p> shuju[0]=fen%10;</p><p> shuju[3]=shi/10;</p><p> shuju[2]
76、=shi%10; </p><p> //shuju[5]=miao/10;</p><p> //shuju[4]=miao%10;</p><p> shuju[6]=danjia/10;</p><p> shuju[7]=danjia%10;</p><p> shuju1[0]=licheng/10
77、00;</p><p> shuju1[1]=(licheng%1000)/100;</p><p> shuju1[2]=(((licheng%1000)%100)/10);</p><p> shuju1[3]=licheng%10;</p><p> temp=licheng;</p><p> if(
78、temp>=10)</p><p><b> {</b></p><p> if(temp%10==0)</p><p> jiner=(((licheng/10-1)*danjia))+qibujia;//整數(shù)里程數(shù)計費</p><p> else jiner=(((licheng/10)*danjia)
79、)+qibujia;//不足一公里算一公里計費</p><p><b> }</b></p><p> else jiner=qibujia; //起步價</p><p> shuju1[4]=jiner/1000;</p><p> shuju1[5]=(jiner%1000)/100;</p>
80、<p> shuju1[6]=(((jiner%1000)%100)/10);</p><p> shuju1[7]=jiner%10;</p><p><b> P2_2=0;</b></p><p><b> }</b></p><p><b> }</b&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的出租車計價器設(shè)計畢業(yè)論文
- 基于單片機(jī)的出租車計價器設(shè)計【畢業(yè)論文】
- 畢業(yè)論文---基于單片機(jī)的出租車計價器的設(shè)計
- 畢業(yè)論文(設(shè)計)基于單片機(jī)的出租車計價器的設(shè)計
- 基于單片機(jī)的出租車計價器設(shè)計
- 基于單片機(jī)的出租車計價器
- 畢業(yè)論文-- 基于單片機(jī)的出租車計價器軟件設(shè)計
- 基于單片機(jī)的出租車計價器畢業(yè)設(shè)計
- 基于單片機(jī)的出租車計價器畢業(yè)設(shè)計
- 基于單片機(jī)的出租車計價器畢業(yè)設(shè)計
- 基于單片機(jī)的出租車計價器設(shè)計畢業(yè)設(shè)計論文
- 基于單片機(jī)的出租車計價器設(shè)計畢業(yè)設(shè)計論文
- 基于51單片機(jī)的出租車計價器畢業(yè)設(shè)計論文
- 基于51單片機(jī)的出租車計價器設(shè)計
- 畢業(yè)設(shè)計(論文)基于單片機(jī)的出租車計價器的設(shè)計
- 畢業(yè)設(shè)計---基于單片機(jī)的出租車計價器系統(tǒng)
- 單片機(jī)課程設(shè)計論文---出租車計價器
- 畢業(yè)設(shè)計---基于單片機(jī)的出租車計價器的設(shè)計
- 基于單片機(jī)的出租車計價器的設(shè)計【畢業(yè)設(shè)計】
- 基于單片機(jī)控制的的出租車計價器設(shè)計
評論
0/150
提交評論