




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)應(yīng)用與仿真訓(xùn)練設(shè)計(jì)報(bào)告出租車計(jì)價(jià)器設(shè)計(jì)姓名學(xué)號:專業(yè)班級:指導(dǎo)老師:所在學(xué)院:2012 年 6 月 25 日摘要本設(shè)計(jì)用直流電機(jī)轉(zhuǎn)動模擬出租車車輪轉(zhuǎn)動,實(shí)現(xiàn)出租車多功能地計(jì)價(jià)功能.設(shè)計(jì)采用AT89S52單片機(jī)為主控芯片,用光電對管檢測電機(jī)轉(zhuǎn)盤轉(zhuǎn)速,采用24C02芯片為系統(tǒng)在掉電時(shí)路程、錢數(shù)等重要信息提供存儲保護(hù),采用兩個(gè)四位8 段共陰數(shù)碼管顯示里程、總價(jià)格和等待時(shí)間等信息.本設(shè)計(jì)可以實(shí)現(xiàn)單雙程設(shè)置、系統(tǒng)暫停、空車指示、信息顯示、掉電保護(hù)等功能 .出租車計(jì)價(jià)是根據(jù)車所行駛地路程以及乘客乘車地方式綜合決定地.出租車行駛總路程可以通過車輪地周長乘車輪旋轉(zhuǎn)圈數(shù)得到.即可計(jì)算得到車輪旋轉(zhuǎn)幾周出租車
2、能行駛一公里地路程.使用光電對管能方便地計(jì)量車輪旋轉(zhuǎn)地圈數(shù),輸出地脈沖信號被接入到AT89S52單片機(jī)系統(tǒng)中,通過計(jì)算接收到地脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行駛地路程,并且可以計(jì)算實(shí)時(shí)地速度.與此同時(shí),根據(jù)不同地收費(fèi)標(biāo)準(zhǔn)計(jì)算收費(fèi).通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動、暫停、停止計(jì)價(jià)器、設(shè)置單返程等.關(guān)鍵字:出租車計(jì)價(jià)器,AT89S52,24C02光電對管AbstractThis design with DC motor to rotate the analog taxi wheels turning, multi-purpose taxi pricing function. Design using AT8
3、9S52 MCU for master chip with a photoelectric tube test motor turntable speed, AT24C02 chip to make the system power-down distance, money and other important information on the storage protection, the use of two four-segment common cathode digital display tube mileage, the total price and waiting ti
4、me information. This design enables single and double-way set, system halted, empty instructions, information display, power-down protection and other functions.The taxi meter according to the distance traveled by the vehicle and passengers ride the decision. Taxi driving the total distance by the c
5、ircumference of the wheel drive wheel rotation laps. Can be calculated by the wheel rotation a few weeks a taxi to travel one kilometer away. The use of opto-the number of turns of the tube can be easily measured wheel rotation, the output pulse signal is connected to the microcontroller AT89S52 sys
6、tem, calculated by computing the number of pulses received, the current driving distance, and can calculate the real-time speed .At the same time, the charge will be calculated according to the different charges. Able to achievea round trip via the keyboard settings, start, pause, stop the meter, se
7、t the single return.Key words: Meter, AT89S52,AT24C02,Photoelectric tube目錄1 概述12 系統(tǒng)總體方案及硬件設(shè)計(jì)22.1 系統(tǒng)總體方案22.2 硬件電路設(shè)計(jì)單元22.2.1 電源電路單元22.2.2 系統(tǒng)控制單元32.2.3 驅(qū)動電路單元62.2.4 信號檢測單元72.2.5 顯示單元82.2.6 數(shù)據(jù)存儲單元93 軟件設(shè)計(jì)103.1 軟件設(shè)計(jì)流程圖103.2 計(jì)算模塊113.3 鍵盤掃描113.4 顯示程序113.5 PWM 波地生成113.6 速度檢測123.7 程序源代碼124 Proteus 軟件仿真135 課程設(shè)
8、計(jì)體會146 主要參考文獻(xiàn)16致謝17附1 程序源代碼18附2 系統(tǒng)原理圖331 概述出租車計(jì)價(jià)器是乘客與司機(jī)雙方地交易準(zhǔn)則,它是出租車行業(yè)發(fā)展地重要標(biāo)志.它關(guān)系著交易雙方地利益,具有良好性能地計(jì)價(jià)器無論是對廣大出租車司機(jī)朋友還是乘客來說都是很必要地.因此,汽車計(jì)價(jià)器地研究也是十分有應(yīng)用價(jià)值和現(xiàn)實(shí)意義地.出租車計(jì)價(jià)是根據(jù)車所行駛地路程以及乘客乘車地方式綜合決定地.出租車行駛總路程可以通過車輪地周長乘車輪旋轉(zhuǎn)圈數(shù)得到.即可計(jì)算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里地路程.使用霍爾傳感器方便地計(jì)量車輪旋轉(zhuǎn)地圈數(shù).輸出地脈沖信號被接入到AT89S52單片機(jī)系統(tǒng)中,通過計(jì)算接收到地脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行
9、駛地路程,并且可以計(jì)算實(shí)時(shí)地速度,在速度低于5 公里每小時(shí)是進(jìn)入等待計(jì)費(fèi).于此同時(shí),根據(jù)不同地收費(fèi)標(biāo)準(zhǔn),通過選擇相應(yīng)地起步價(jià)、單價(jià)等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)算.通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動、暫停、停止計(jì)價(jià)器以及切換顯示當(dāng)前地行駛里程和需支付地車費(fèi).本設(shè)計(jì)硬件電路分為六個(gè)單元:電源電路單元,系統(tǒng)控制單元,驅(qū)動電路單元,信號檢測單元,顯示單元和數(shù)據(jù)存儲單元.軟件系統(tǒng)分為五個(gè)大地模塊為:總初始化模塊,按鍵掃描模塊 ,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊.其中 ,鍵盤掃描和數(shù)碼管顯示采用查詢方式 , 轉(zhuǎn)速信號接收與等待記時(shí)采用中斷方式. 這些軟硬件系統(tǒng)構(gòu)成了最終地設(shè)計(jì).2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1
10、 系統(tǒng)總體方案本設(shè)計(jì)以AT89S52單片機(jī)為中央控制芯片,通過按鍵控制實(shí)現(xiàn)計(jì)價(jià)器地啟動、停止、暫停、等待時(shí)間顯示、單返程等功能;因?yàn)閱纹瑱C(jī)地I/O 無法直接驅(qū)動直流電機(jī)轉(zhuǎn)動,所以通過 L298N 為驅(qū)動芯片驅(qū)動電路來驅(qū)動直流電機(jī)轉(zhuǎn)動;通過光電對管檢測直流電機(jī)地轉(zhuǎn)速,并利用電壓比較器將整理后地信號送給給單片機(jī);通過數(shù)碼管來顯示里程、總價(jià)格、等待時(shí)間等信息;通過AT24C02 來存儲信息,防止系統(tǒng)掉電信息丟失.系統(tǒng)設(shè)計(jì)總框圖,如圖 2.1 所示.圖 2.1 系統(tǒng)設(shè)計(jì)總框圖2.2 硬件電路設(shè)計(jì)單元本設(shè)計(jì)硬件電路分為六個(gè)單元:電源電路單元,系統(tǒng)控制單元,驅(qū)動電路單元,信號檢測單元,顯示單元和數(shù)據(jù)存儲單
11、元.2.2.1 電源電路單元電源是由7805 芯片 ,變壓器和整流橋組成地一個(gè)5V 穩(wěn)壓電源.變壓器將220V 交流電轉(zhuǎn)變?yōu)?12V 交流電,經(jīng)過整流橋和濾波電容后變?yōu)橹绷?經(jīng)過 7805 芯片后輸出5V 穩(wěn)壓電源.電源電路原理圖,如圖 2.2 所示 .圖 2.2 電源電路原理圖2.2.2 系統(tǒng)控制單元系統(tǒng)控制單元主要有單片機(jī)最小系統(tǒng)和獨(dú)立按鍵組成.2.2.2.1 單片機(jī)最小系統(tǒng)單片機(jī)采用了 Atmel公司生產(chǎn)地 AT89S52單片機(jī),它含有256字節(jié)數(shù)據(jù)存儲器,內(nèi)置8K 地電可擦除FLASH ROM可重復(fù)編程,大小滿足主控機(jī)軟件系統(tǒng)設(shè)計(jì) .AT89S52芯片地主要引腳功能分別為:VCC 電源
12、電壓.GND 接地 .RST復(fù)位輸入.當(dāng)RST變?yōu)楦唠娖讲⒈3?2個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位.WDT溢出將 使該引腳輸出高電平 ,設(shè)置 SFR AUXR地DISRTO位(地址 8EH)可打開或關(guān)閉該功 能.DISKRTOi缺省為RESET俞出高電平打開狀態(tài).ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許地輸出電平用于鎖存地址地地位字節(jié).在 FLASH 編程期間,此引腳用于輸入編程脈沖.在平時(shí),ALE 端以不變地頻率周期輸出正脈沖信號,此頻率為振蕩器頻率地1/6.因此它可用作對外部輸出地脈沖或用于定時(shí)目地.然而要注意地是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE 脈沖.如想禁止ALE 地
13、輸出可在SFR8EH地址上置0.此時(shí),ALE只有在執(zhí)行 MOVX,MOVC指令是ALE才起作用.另外,該引腳被 略微拉高.如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效.XTAL1 反向振蕩放大器地輸入及內(nèi)部時(shí)鐘工作電路地輸入XTAL2 來自反向振蕩放大器地輸出.P0 口:一組8 位漏極開路型雙向I/O 口 .也即地址/數(shù)據(jù)總線復(fù)用口.作為輸出口用時(shí),每位能驅(qū)動8 個(gè) TTL 邏輯門電路,對端口寫“ 1可作為高阻抗輸入端用”.在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻.在Flash編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),
14、輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻.P1 口:一個(gè)帶內(nèi)部上拉電阻地8 位雙向 I/O 口 ,P1 地輸出緩沖級可驅(qū)動(吸收或輸出電流) 4 個(gè) TTL 邏輯門電路.對端口寫“ 1通過內(nèi)部地上”拉電,阻把端口拉到高電平,此時(shí)可作輸入口.作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流.Flash編程和程序校驗(yàn)期間,P1接收低8位地址.P2 口:一個(gè)帶內(nèi)部上拉電阻地8 位雙向 I/O 口 .P1 地輸出緩沖級可驅(qū)動(吸收或輸出電流) 4 個(gè) TTL 邏輯門電路.對端口寫“ 1通過內(nèi)部地上拉電阻把端口,拉到高電平”,此時(shí)可作輸入口.作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻
15、,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流 .在訪問外部程序存儲器或16 位地址地外部數(shù)據(jù)存儲器時(shí),P2 口送出高8 位地址數(shù)據(jù).在訪問 8 位地址地外部數(shù)據(jù)存儲器時(shí),P2 口線上地內(nèi)容在整個(gè)訪問期間不改變.Flash 編程和程序校驗(yàn)期間,P2亦接收低8位地址.P3 口:一個(gè)帶內(nèi)部上拉電阻地8 位雙向 I/O 口 .P3 地輸出緩沖級可驅(qū)動(吸收或輸出電流) 4 個(gè) TTL 邏輯門電路.對 P3 口寫 “ 1時(shí)” ,它們被內(nèi)部地上拉電阻把拉到高電并可作輸入端口.作輸入端口使用時(shí),被外部拉低地P3 口將用上拉電阻輸出電流.P3 口除了作為一般地I/O 口線外,還作特殊功能口 .P3 口地第二功能引
16、腳分配如下:P3.0: RXD串行通信輸入.P3.1: TXD,串行通彳t輸出.P3.2: INT0,外部中斷0輸入.P3.3: INT1,外部中斷1輸入.P3.4: T0,計(jì)時(shí)計(jì)數(shù)器0輸入.P35 T1,計(jì)時(shí)計(jì)數(shù)器1輸入.P3.6: WR:外部數(shù)據(jù)存儲器地寫入信號.P3.7: RD外部數(shù)據(jù)存儲器地讀取信號.單片機(jī)最小系統(tǒng)原理圖,如圖2.3 所示 .圖 2.3 單片機(jī)最小系統(tǒng)原理圖2.2.2.2 獨(dú)立按鍵本設(shè)計(jì)按照功能要求設(shè)置了六個(gè)按鍵.按鍵接線圖,如圖 2.4 所示.按鍵功能分別為:key。:系統(tǒng)啟動,用來啟動計(jì)價(jià)器,使計(jì)價(jià)器開始工作;keyl:系統(tǒng)停止/復(fù)位,用來關(guān)閉計(jì)價(jià)器,是計(jì)價(jià)器停止工
17、作并復(fù)位;key2:單程雙程,用來設(shè)置是單程計(jì)費(fèi)還是往返計(jì)費(fèi);key3:系統(tǒng)暫停,用來將整個(gè)計(jì)費(fèi)系統(tǒng)暫停;key4:等待時(shí)間顯示,當(dāng)按下不放時(shí)圖2.4按鍵接線圖數(shù)碼管為顯示等待地時(shí)間.Key5:調(diào)速按鈕,用來調(diào)整電機(jī)地轉(zhuǎn)速,使測試時(shí)可控制電機(jī)轉(zhuǎn)速.2.2.3 驅(qū)動電路單元LM298N是SGS公司地產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動電路.是一種二相和四相電機(jī)地專用驅(qū)動器,即內(nèi)含二個(gè)H 橋地高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL 邏輯電平信號,可驅(qū)動46V、 2A 一下地電機(jī).LM298N 地管腳圖,如圖 2.5 所示.通過單片機(jī)地I/O 輸入改變芯片控制端地電平,即可以對電機(jī)進(jìn)行正反轉(zhuǎn),停止地操作
18、,LM298N 地邏輯功能表,如圖2.6 所示 .圖 2.5 LM298N 地管腳圖圖 2.6 LM298N 地邏輯功能表LM298N 有兩路電源分別為邏輯電源和動力電源,圖中 6V 為邏輯電源,12V 為動力電源.J4接入邏輯電源,J6接入動力電源,J1與J2分別為單片機(jī)控制兩個(gè)電機(jī)地輸入端,J3與J5分別與兩個(gè)電極地正負(fù)極相連.ENA與ENB直接接入AVR單片機(jī)地PWM輸出口;控制電機(jī)地正反轉(zhuǎn)通過 J1與J2兩個(gè)接口,控制電機(jī)地轉(zhuǎn)速地通過ENA和ENB地口輸入地 PWM波地占空比.由于我們使用地電機(jī)是線圈式地,在從運(yùn)行狀態(tài)突然轉(zhuǎn)換到停止?fàn)顟B(tài)和從順時(shí)針狀態(tài)突然轉(zhuǎn)換到逆時(shí)針狀態(tài)時(shí)會形成很大地反
19、向電流,在電路中加入二極管地作用就是在產(chǎn)生反向電流地時(shí)候進(jìn)行泄流,保護(hù)芯片地安全.LM298N 電機(jī)驅(qū)動原理圖,如圖2.7 所示 .圖 2.7 LM298N 電機(jī)驅(qū)動原理圖2.2.4 信號檢測單元電機(jī)轉(zhuǎn)速地檢測模塊是由對射式光電傳感器及其配套電路組成地,對射式光電傳感器原理圖,如圖2.8所示 .對射式光電傳感器由紅外發(fā)光二極管與光敏三極管組成,主要檢測發(fā)射管與接收管之間有無物體存在.如上圖所示,當(dāng)發(fā)射管與接收管之間沒有物體存在時(shí),光敏三極管接收到紅外光后導(dǎo)通,out 輸出低電平。當(dāng)發(fā)射管與接收管之間有物體存在時(shí),光敏三極管無法接收到足夠地強(qiáng)地紅外光所以截止,out 輸出高電平.但是上述電路存在
20、缺陷,當(dāng)直流電機(jī)高速旋轉(zhuǎn)時(shí),out 輸出地信號就容易失真,很難被單片機(jī)檢測識別.為了能夠讓單片機(jī)準(zhǔn)確識別光電傳感器輸出地信號,需在傳感器地輸出端連接一個(gè)比較器.電壓比較器可以看作是放大倍數(shù)接近“無窮大 ”地運(yùn)算放大器.電壓比較器地功能:比較兩個(gè)電壓地大小用輸出電壓地高或低電平,表示兩個(gè)輸入電壓地大小關(guān)系:當(dāng) ” ”輸入端電壓高于 ” ”輸入端時(shí),電壓比較器輸出為高電平;當(dāng)” ”輸入端電壓低于” ”輸入端時(shí),電壓比較器輸出為低電平.LM393 是雙電壓比較器集成電路圖 2.8 對射式光電傳感器原理圖圖 2.9 LM393 引腳圖速度檢測電路原理圖,如圖2.10 所示.由原理圖可知, 當(dāng)發(fā)射管與接
21、收管之間沒有物體存在時(shí),光敏三極管接收到紅外光后導(dǎo)通,out 輸出高電平。當(dāng)發(fā)射管與接收管之間有物體存在時(shí) , 光敏三極管無法接收到足夠地強(qiáng)地紅外光所以截止,out 輸出低電平.經(jīng)過整理后地電路能輸出比較標(biāo)準(zhǔn)地高低電平信號,很容易被單片機(jī)識別.圖 2.10速度檢測電路原理圖2.2.5 顯示單元2.2.5.1 數(shù)碼管顯示顯示單元采用兩個(gè)四位8 段數(shù)碼管顯示信息,一組顯示金額,另一組顯示路程配合按鍵來切換顯示.用鎖存器來驅(qū)動數(shù)碼管顯示,數(shù)據(jù)位連接單片機(jī)P0 口 ,片選端和段選端分別用單片機(jī)地P2.6和P2.7端口 .如圖2.11所示為數(shù)碼管顯示接線圖.圖 2.11 數(shù)碼管顯示接線圖2.2.5.2
22、LED 指示燈本設(shè)計(jì)按照功能要求設(shè)置了五個(gè)LED燈.接線圖如圖2.12所示.各個(gè)LED燈地功能分別為:DS0:等待指示燈,車速小于5Km/h時(shí)指示燈亮;DS1:暫停指示燈,當(dāng)暫停鍵按下,計(jì)價(jià)器暫停計(jì)價(jià)時(shí)亮;DS2:空車指示,當(dāng)計(jì)價(jià)器停止工作也就是空車時(shí),此指示燈亮;DS3:啟動指示燈,當(dāng)按下啟動鍵,計(jì)價(jià)器開始計(jì)價(jià)時(shí)亮;DS4:單雙程指示燈,默認(rèn)為單程,當(dāng)選 圖2.12 LED指示燈接線圖 擇雙程時(shí)亮.2.2.6 數(shù)據(jù)存儲單元本設(shè)計(jì)使用了 24C02作為外部存儲芯片.24C02是串行2K地EEPROM是基于I2C-BUS地存儲器件,遵循二線制協(xié)議,具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點(diǎn).計(jì)價(jià)
23、器能將里程和總價(jià)格實(shí)時(shí)地存儲到24C02 中 ,當(dāng)計(jì)價(jià)器因掉電停止工作,24C02 會存儲掉電前一刻地?cái)?shù)據(jù),使系統(tǒng)從新上電時(shí)能夠恢復(fù)里程和總價(jià)格.當(dāng)計(jì)價(jià)器是被手動正常停止時(shí),將會對24C02 相應(yīng)地地址寫0,以使下次啟動時(shí),計(jì)價(jià)器從初始化數(shù)據(jù)開始計(jì)價(jià).24C02 地接線圖,如圖2.13 所示.圖 2.13 24C02 地接線圖3 軟件設(shè)計(jì)3.1 軟件設(shè)計(jì)流程圖軟件系統(tǒng)可以大致分為幾個(gè)大地模塊為:初始化模塊,按鍵掃描模塊,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊,IIC 總線通信模塊等.其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式 , 轉(zhuǎn)速信號接收采用中斷方式. 軟件設(shè)計(jì)流程圖,如圖3.1 所示
24、.圖 3.1 軟件設(shè)計(jì)流程圖3.2 計(jì)算模塊計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同地計(jì)算公式.如果里程大于3 公里 ,則執(zhí)行公式:總金額 起步價(jià)+(里程-3) *單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額起步價(jià)+等待時(shí)間 * 等待單價(jià).對于速度地判斷及等待時(shí)間地記錄采用定時(shí)器零中斷,設(shè)定 10ms 一個(gè)中斷,然后判斷車速 , 小于5 公里/ 小時(shí)時(shí), 則開始記錄等待時(shí)間.3.3 鍵盤掃描鍵盤掃描才用查詢方式,當(dāng)有按鍵按下時(shí)就對相應(yīng)地標(biāo)志進(jìn)行取反,或調(diào)用其他子函數(shù),在消抖過程中,這里將數(shù)碼管顯示程序潛入以保證顯示地穩(wěn)定.3.4 顯示程序顯示程序利用主函數(shù)內(nèi)地循環(huán),實(shí)現(xiàn)動態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余
25、輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示3.5 PWM 波地生成在 AT89 系列單片機(jī)中,由于沒有PWM 控制器,要輸出PWM 信號就需通過軟件地方式在 I/O 口上模擬PWM 地輸出 .PWM 軟件設(shè)計(jì)一般可以利用軟件延時(shí)地方式或利用單片機(jī)內(nèi)部地定時(shí)器/計(jì)數(shù)器作為時(shí)鐘信號.本設(shè)計(jì)是利用軟件延時(shí)獲得PWM 信號地,在軟件中設(shè)計(jì)一個(gè)基準(zhǔn)地軟件延時(shí)程序,通過反復(fù)調(diào)用這個(gè)延時(shí)程序,從而獲得不同地時(shí)間長度,為了電機(jī)速度穩(wěn)定,我們選擇使用同周期,不同占空比地PWM 進(jìn)行調(diào)速.若頻率為1kHZ,則每個(gè)方波地周期為 1ms,占空比從0變化到100%,最小地變化量為10%, 即高電平維持時(shí)間地最小值是100us,所以
26、只要設(shè)計(jì)出100us地延時(shí)程序作為基準(zhǔn)即可 .具體程序如下:#define uchar unsigned charsbit PWM P3A4。/定義PWM 輸出口為P3.4void PWMout uchar q / 生成同周期地PWM 波PWM 1 。delay q 。PWM 0。delay 10-q 。void delay uchar a /100us 延時(shí)函數(shù)uchar b。for 。 a 0。 a-for b 29。b 0。b-_nop_ 。_nop_ 。3.6 速度檢測經(jīng)檢測模塊得到地信號輸入到單片機(jī)內(nèi),因?yàn)檩斎氲厥堑碗娖叫盘?所以我把信號輸入到了中斷 0 端口 ,每接收一個(gè)低電平信號
27、程序就會進(jìn)入中斷函數(shù)里面,中斷 0 函數(shù)如下:void int0 interrupt 0sudu+。這樣就完成了速度測量3.7 程序源代碼程序源代碼見附錄2.4 Proteus 軟件仿真將整個(gè)系統(tǒng)原理圖在Proteus 連接好后,下載如編寫好地程序仿真如下:如圖4.1 顯示地狀態(tài)設(shè)置為:單程,車速大于5km/h, 當(dāng)路程等于40.4km 時(shí)地顯示情況.圖 4.1 Proteus 軟件仿真圖5 課程設(shè)計(jì)體會本次單片機(jī)課程設(shè)計(jì),我們選地題目是出租車計(jì)價(jià)器地設(shè)計(jì).通過仿真、焊接、調(diào)試等不斷地努力,我們地出租車計(jì)價(jià)器實(shí)現(xiàn)了基本要求地全部功能和發(fā)揮部分地部分功能.比如能顯示里程、金額數(shù)、總等待時(shí)間,可設(shè)
28、定單程價(jià)格和雙程價(jià)格,按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢鍵,可顯示總等待時(shí)間,空車指示、信息存儲等.經(jīng)過這些天有關(guān)于出租車計(jì)價(jià)器地課程設(shè)計(jì),使我們對MCS-51 系列單片機(jī)地應(yīng)用有了更深地了解.從前地學(xué)習(xí)過程過于浮淺,只是流于表面地理解,而現(xiàn)在要做課程設(shè)計(jì),就不得不要求我們對所用到地知識有更深層次地理解.因?yàn)檎n程設(shè)計(jì)地內(nèi)容比及書本中地理論知識而言 , 更接近于現(xiàn)實(shí)生活, 而理論到實(shí)踐地轉(zhuǎn)化往往是一個(gè)艱難地過程, 它猶如一只攔路虎,橫更在我們地面前.但是我們毫不畏懼,因?yàn)槲覀兿嘈盼覀兡苄?事情并不總是a name=baidusnap0/a一帆/B風(fēng)順地,我們總會遇到困難和險(xiǎn)阻.在此次課程設(shè)計(jì)地過
29、程中,我們碰到了許多地問題.比如,對于數(shù)碼管動態(tài)掃描顯示和鍵盤地延時(shí)防抖地綜合編程不能較好地解決;對于代碼地前后順序及調(diào)用掌握得還不夠好;對于一些相關(guān)地應(yīng)用軟件KEIL、 PROTEUS、 Altium esigner 沒能熟練掌握.當(dāng)然,問題并不可怕,只要我們懷著一顆不服輸?shù)匦?勇往直前,那么勝利將不會離我們太遠(yuǎn).通過上網(wǎng)查找資料、與同學(xué)老師交流、小組成員間地討論、不斷實(shí)踐與探索,我們總能找到解決問題地方法,最后得到良好地效果.通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要地,只有理論知識是遠(yuǎn)遠(yuǎn)不夠地 ,只有把所學(xué)地理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高
30、自己地實(shí)際動手能力和獨(dú)立思考地能力.同時(shí)在設(shè)計(jì)地過程中發(fā)現(xiàn)了自己地不足之處,對以前所學(xué)過地知識理解得不夠深刻,掌握得不夠牢固.總之,本次課程設(shè)計(jì)讓我們更加深刻地掌握了MCS-51 系列單片機(jī)地工作原理和編程語言 , 更加熟練地掌握了KEIL、 PROTEUS、 Altium designer 等專業(yè)軟件地使用,熟悉了產(chǎn)品開發(fā)地大致流程,深刻地體會到了團(tuán)隊(duì)協(xié)作精神地重要性,培養(yǎng)了我們發(fā)現(xiàn)問題、獨(dú)立思考問題、多種途徑解決問題地能力,鍛煉并提高了了我們地動手實(shí)踐能力和理論與實(shí)踐相結(jié)合地能力.我以后做一個(gè)動手能力強(qiáng)地大學(xué)生.致謝在課程設(shè)計(jì)即將完成之際,我想向給予我?guī)椭椭С值厝吮硎局孕牡馗兄x!感謝高老
31、師和王老師給我們提供這次難得地課程設(shè)計(jì)機(jī)會,讓我們有機(jī)會把理論得以應(yīng)用到實(shí)踐上.感謝我們地指導(dǎo)老師王莉,課程設(shè)計(jì)是在老師地親切關(guān)懷和悉心指導(dǎo)下完成地.嚴(yán)肅地科學(xué)態(tài)度 ,嚴(yán)謹(jǐn)?shù)刂螌W(xué)精神,精益求精地工作作風(fēng),深深地感染和激勵(lì)著我.老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時(shí)還在思想、上給我以無微不至地關(guān)懷,在此謹(jǐn)向老師致以誠摯地謝意和崇高地敬意.我還要感謝在一起愉快地度過地同學(xué)們,正是由于你們地幫助和支持,我才能克服一個(gè)一個(gè)地困難和疑惑,直至本文地順利完成.最后,再次對關(guān)心、幫助我地老師和同學(xué)表示衷心地感謝!#include/ 頭文件#include#include/IIC 總線通信#include/ 數(shù)
32、碼管顯示#define uint unsigned int#define uchar unsigned charsbit key0 P1A0Osbit keyl Pil。sbit key2 P1A2。sbit key3 P1A3。sbit key4 P1A4。sbit key5 P1A5。sbit led0 P2A2。sbit led1 P2A3。sbit led2 P2A4。sbit led3 P2A5。sbit led4 P2A1 。sbit PWM P3A4。/ 啟動/ 停止/ 單返程/ 暫停/ 顯示等待時(shí)間/ 調(diào)速/暫停指示燈/ 空車指示燈/ 啟動指示燈/ 雙程指示燈/ 等待指示燈/P
33、WM 輸出口uchar sudu,sudu0,shi,fen,miao,shi0 12,fen0 30,miao0 。uchar danfanflag 0,flag 0,speedflag 1,stopflag 0 。uint licheng 0,maichong,r 0,money 0 。uint t,t1,t2 。uchar num1,num2,num3,num4,lichenga,lichengb,moneya,moneyb 。long licheng0 。void init0 。/系統(tǒng)初始化函數(shù)void delay uint a 。/ 延時(shí)函數(shù)void PWMout uchar q。/
34、PWM產(chǎn)生函數(shù)void anjian 。/按鍵掃描函數(shù)void jisuan 。/路程、價(jià)錢計(jì)算函數(shù)void chuli 。void mainnum1 read_add 25 。num2 readadd 26 。delay 5 licheng num1*100+num2 。licheng0 150*licheng-300*fen 。init0 。while 1anjian 。chuli 。lichenga licheng/100 。lichengb licheng%100。write_add 25,lichenga 。delay 5 。write_add 26,lichengb 。void i
35、nit0/ 初始化TH0 0x3c。TL0 0xb0。EA 1。TMOD 0x01。EX0 0。IT0 1。ET0 1。TR0 1。P0 0xff。P1 0xff。P2 0xff。P3 0xfe。void chuliif speedflag 1PWMout 12 。else if speedflag 2PWMout 20 。else PWMout 6 。if flag 1led2 0。led3 1。jisuan 。if key4 0display0 shi,fen,miao 。elsedisplay licheng,money 。if flag 2led2 0。led3 1。display 1
36、,2 。if flag 0display0 shi0,fen0,miao0 。led3 0。led2 1 。if danfanflag 1led1 0。if danfanflag 0led1 1。if stopflag 1led0 0。else led0 1。void jisuanr maichong。licheng0+ r。licheng licheng0/150+ fen/ 5 *10 。sudu0+ r。maichong 0。if t2 10t2 0。sudu sudu0。sudu0 0。if licheng 30money 50。elseif danfanflag 1money 50+
37、1.5* licheng-30 。elsemoney 50+2* licheng-30 。void anjianif key0 0EX0 1。flag 1 。stopflag 0。if key1 0EX0 0。maichong 0。licheng0 0。licheng 0。flag 0。shi 0。fen 0 。miao 0。write_add 25,0 。delay 5 。write_add 26,0 。if key2 0delay 5 。if key2 0if flag 1danfanflag+。if danfanflag 2danfanflag 0。while !key2 。delay
38、5 。while !key2 。if key3 0if flag 1EX0 0。stopflag 1 。if key5 0delay 5 。if key5 0speedflag+。if speedflag 3speedflag 0。while !key5 。delay 5 。while !key5 。/ 檢測與 計(jì)void int0 interrupt 0maichong+。/ 定時(shí)器 50msvoid timer0 interrupt 1if sudu 50&&flag 1&&stopflag 0TL0 0xb0t+t1+t2+if t1 20t1 0miao
39、0+if miao0 60miao0 0fen0+if fen0 60fen0 0shi0+if shi0 24shi0 0 led4 0。if t 20t 0。miao+。if miao 60miao 0。fen+。if fen 60fen 0。shi+。if shi 24shi 0。else led4 1。/ 生 成void PWMout uchar qPWM 波PWM 1 。delay q 。PWM 0。delay 20-q 。IlC.hIICS 信#define uint unsigned int#define uchar unsigned charsbit sda P1A6Osbit
40、 scl P1A7。void delay0。void startsda 1。delay0 。scl 1。delay0 。sda 0。delay0 。void stopsda 0。delay0 。scl 1。delay0 。sda 1。delay0 。void responsuchar i。scl 1。delay0 。while sda 1 && i 250 i+ 。scl 0。delay0 。void initsda 1。scl 1。void write_byte uchar dateuchar i,temp 。temp date 。scl 0。delay0 。for i 0
41、。 i 8。 i+temp temp 1 。sda CY。delay0 。scl 1。delay0 。scl 0。delay0 。sda 1。delay0 。uchar read_byteuchar i,j,k。scl 0。delay0 。sda 1。delay0 。for i 0 。 i 8。 i+scl 1。delay0 。j sda。k k 1 |j。scl 0。delay0 。return k 。void write_add uchar address,uchar datestart 。write_byte 0xa0 。/ 器件地址;respons 。write_byte addres
42、s 。/存儲器地址;respons 。write_byte date 。/寫數(shù)據(jù)respons 。stop 。uchar read_add uchar addressuchar date。start 。write_byte 0xa0 。respons 。write_byte address 。respons 。start 。write_byte 0xa1 。respons 。date read_byte 。stop 。return date 。display.h 數(shù)碼管顯示#define uint unsigned int#define uchar unsigned charsbit dula P2A7。龐義段選端口sbit we
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色金融對制造業(yè)綠色轉(zhuǎn)型的影響研究
- 2025藥劑科臨床試驗(yàn)管理計(jì)劃
- 環(huán)形交叉口人車交互影響分析及行人交通組織優(yōu)化研究
- 零售業(yè)庫存管理與勞動力計(jì)劃
- 高一上學(xué)期數(shù)學(xué)課外輔導(dǎo)計(jì)劃
- 中學(xué)2025年春季學(xué)期校園安全工作計(jì)劃
- 2025年車間員工安全培訓(xùn)考試試題及答案【基礎(chǔ)+提升】
- 2024-2025公司主要負(fù)責(zé)人安全培訓(xùn)考試試題及解析答案可打印
- 2025年公司廠級安全培訓(xùn)考試試題高清版
- 2024-2025員工安全培訓(xùn)考試試題答案審定
- 北京2025年國家大劇院招聘24名專業(yè)技術(shù)人員筆試歷年參考題庫附帶答案詳解
- 2024建安杯信息通信建設(shè)行業(yè)安全競賽題庫及答案【三份】
- 2025年上海市松江區(qū)中考數(shù)學(xué)二模試卷(含解析)
- iso28000-2022供應(yīng)鏈安全管理手冊程序文件表單一整套
- (正式版)SHT 3551-2024 石油化工儀表工程施工及驗(yàn)收規(guī)范
- 周三多-管理學(xué):原理與方法(第七版),第三章
- 外墻腳手架搭建規(guī)范
- 吸痰技能操作及評分標(biāo)準(zhǔn)(評分表)
- 尼可地爾調(diào)研
- 發(fā)酵法生物制氫技術(shù)課件
- 機(jī)械制造技術(shù)基礎(chǔ)(第7章完成)課件
評論
0/150
提交評論