版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)(論文)說(shuō)明書</p><p> 系 部: 電氣工程系 </p><p> 專 業(yè): 電子信息技術(shù) </p><p> 題 目: 計(jì)程車計(jì)價(jià)器設(shè)計(jì) </p>
2、;<p> 畢業(yè)設(shè)計(jì)(論文)中文摘要</p><p> 畢業(yè)設(shè)計(jì)(論文)外文摘要</p><p><b> 目錄</b></p><p> 1 緒論 ……………………………………………………………………………1</p><p> 2 方案論證 ……………………………………………………………
3、…………2</p><p> 3設(shè)計(jì)部分 ………………………………………………………………………4</p><p> 3.1系統(tǒng)工作原理 …………………………………………………………………4</p><p> 3.1.1功能說(shuō)明 ……………………………………………………………………4</p><p> 3.2硬件設(shè)計(jì) ………
4、………………………………………………………………10</p><p> 3.2.1單片機(jī)最小系統(tǒng)單元 ………………………………………………………10</p><p> 3.2.2A44E霍爾傳感器檢測(cè)單元 …………………………………………………11</p><p> 3.2.3AT24C01存儲(chǔ)單元 ……………………………………………………………13<
5、/p><p> 3.2.4鍵盤調(diào)整單元 ………………………………………………………………14</p><p> 3.2.5顯示單元 ……………………………………………………………………15</p><p> 3.3軟件設(shè)計(jì) ……………………………………………………………………… 17</p><p> 3.3.1系統(tǒng)主程序 …………
6、………………………………………………………17</p><p> 3.3.2中斷程序 ……………………………………………………………………18</p><p> 3.3.2.1里程計(jì)數(shù)中斷程序…………………………………………………………18</p><p> 3.3.2.2中途等待中斷程序…………………………………………………………19</p>
7、<p> 3.3.3計(jì)算程序………………………………………………………………………19</p><p> 3.3.4顯示程序………………………………………………………………………20</p><p> 3.3.5鍵盤程序………………………………………………………………………22</p><p> 結(jié)論 …………………………………………………………
8、………………………23</p><p> 致謝 …………………………………………………………………………………24</p><p> 參考文獻(xiàn) ……………………………………………………………………………25</p><p> 附錄A源程序參考 ………………………………………………………………26</p><p><b>
9、 1 緒論</b></p><p> 隨著出租車行業(yè)的發(fā)展,出租車已經(jīng)是城市交通的重要組成部分,從加強(qiáng)行業(yè)管理以及減少司機(jī)與乘客的糾紛出發(fā),具有良好性能的計(jì)價(jià)器對(duì)出租車司機(jī)和乘客來(lái)說(shuō)都是很必要的。而采用模擬電路和數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試。而采用單片機(jī)進(jìn)行的設(shè)計(jì),相對(duì)來(lái)說(shuō)功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎貙?shí)現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),可
10、以通過(guò)軟件編程來(lái)完成更多的附加功能。本設(shè)計(jì)采用AT89S52單片機(jī)為主控器,以A44E霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車的多功能的計(jì)價(jià)設(shè)計(jì),并采用AT24C01實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)等信息,輸出采用8段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天,黑夜和中途等待來(lái)調(diào)節(jié)單價(jià)。</p><p><b> 2 方案認(rèn)證</b></p><p>
11、方案一:采用數(shù)字電路控制。其原理方框如圖2-1所示。采用傳感器件輸出脈沖信號(hào)經(jīng)過(guò)放大整形作為移位寄存器的脈沖,實(shí)現(xiàn)計(jì)價(jià),但是考慮到這種電路過(guò)于簡(jiǎn)單性能不夠穩(wěn)定,而且不能調(diào)節(jié)單價(jià),也不能根據(jù)天氣調(diào)節(jié)計(jì)費(fèi)標(biāo)準(zhǔn),電路不夠?qū)嵱?lt;/p><p> 圖2-1 數(shù)字電路控制原理圖</p><p> 方案二:采用單片機(jī)控制。利用單片機(jī)豐富的10端口,及其靈活性,實(shí)現(xiàn)基本里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示
12、工能。如圖2-2</p><p> 圖2-2單片機(jī)控制原理圖</p><p> 通過(guò)以上比較,單片機(jī)方案有較大的活動(dòng)空間,所以采用后一種方案</p><p><b> 3 設(shè)計(jì)部分 </b></p><p> 3.1系統(tǒng)工作原理 </p><p> 功能說(shuō)明:出租車計(jì)價(jià)器根據(jù)乘客乘坐
13、汽車行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并在行程中同步顯示車費(fèi)值。從起步價(jià)開(kāi)始,當(dāng)汽車程行駛未滿3公里時(shí),均按起步價(jià)計(jì)算。過(guò)3公里后,實(shí)現(xiàn)每1公里單價(jià)收費(fèi),中間遇暫停時(shí),計(jì)程數(shù)不再增加,開(kāi)始計(jì)時(shí)收費(fèi),測(cè)距收費(fèi)和測(cè)時(shí)收費(fèi)的和便構(gòu)成了一位乘客的車費(fèi)。同時(shí),白天和夜晚價(jià)格不同,可以進(jìn)行切換。白天單價(jià)、夜晚單價(jià)、等待單價(jià)和起步價(jià)格都可通過(guò)獨(dú)立鍵盤進(jìn)行調(diào)節(jié)。(默認(rèn)起步價(jià)為5元/3公里,里程單價(jià)白天為1.5元/公里,夜晚為1.8元/公里,等待計(jì)時(shí)單價(jià)
14、為0.5元/5分鐘)</p><p><b> 3.1.1基本原理</b></p><p> 計(jì)數(shù)器系統(tǒng)主要由五部分組成:AT89S52單片機(jī)、A44E霍爾傳感器、獨(dú)立鍵盤、EEPROM AT24C01和顯示數(shù)碼管。</p><p> AT89S52引腳單片機(jī)如圖3-1 </p><p> 圖3-1 AT89S5
15、2引腳圖</p><p> AT89S52是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS -51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S52
16、可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。 AT89S52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè) 全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p> 此外,AT89S52設(shè)
17、計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷 系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三 種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性: · 兼容MCS-51指令系統(tǒng)
18、183; 8k可反復(fù)擦寫(>1000次)ISP Flash ROM · 32個(gè)雙向I/O口 · 4.5-5.5V工作電壓 · 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器 · 時(shí)鐘頻率0-33MHz · 全雙工UART串行中斷口線
19、0; · 256x8bit內(nèi)部RAM · 2個(gè)外部中斷源 · 低功耗空閑和省電模式 · 中斷喚醒省電模式 · 3級(jí)加密位 · 看門狗(WDT)電路
20、0; · 軟件設(shè)置空閑和省電功能 · 靈活的ISP字節(jié)和分頁(yè)編程 · 雙數(shù)據(jù)寄存器指針</p><p> 霍爾傳感器安裝在車輪上,主要檢測(cè)汽車行進(jìn)的公里數(shù),并產(chǎn)生一系列相應(yīng)的脈沖輸出,脈沖送到單片機(jī)進(jìn)行處理,單片機(jī)根據(jù)程序設(shè)定通過(guò)計(jì)算脈沖數(shù)換算出行駛公里數(shù),再根據(jù)從EEPROM中讀取的價(jià)格等相關(guān)數(shù)據(jù)進(jìn)行金額的計(jì)算,計(jì)算好的金額
21、、里程和單價(jià)都實(shí)時(shí)地顯示在數(shù)碼管上。獨(dú)立鍵盤可以調(diào)節(jié)價(jià)格等相關(guān)數(shù)據(jù),按下相應(yīng)的按鈕,產(chǎn)生信號(hào)交由單片機(jī)處理并實(shí)時(shí)顯示出來(lái),調(diào)節(jié)好的數(shù)據(jù)存儲(chǔ)到EEPROM中,掉電后可以使調(diào)好的數(shù)據(jù)不丟失,下次得電后直接從EEPROM讀到單片機(jī),系統(tǒng)結(jié)構(gòu)圖如圖3-2。</p><p> 圖3-2 系統(tǒng)結(jié)構(gòu)圖 </p><p> AT24C01引
22、腳CAT24WC01/02/04/08/16 是一個(gè)1K/2K/4K/8K/16K 位串行CMOS E2PROM,內(nèi)部含有128/256/512/1024/2048 個(gè)8 位字節(jié),CATALYST 公司的先進(jìn)CMOS 技術(shù)實(shí)質(zhì)上減少了器件的功耗,CAT24WC01有一個(gè)8 字節(jié)頁(yè)寫緩沖器,CAT24WC02/04/08/16 有一個(gè)16 字節(jié)頁(yè)寫緩沖器,該器件通過(guò)I2C 總線接口進(jìn)行操作有一個(gè)專門的寫保護(hù)功能如圖3-3</p>
23、;<p><b> 圖3-3管理腳配置</b></p><p> 顯示數(shù)碼管LED數(shù)碼管里面有8只發(fā)光二極管,與實(shí)驗(yàn)板P1端口所接的二極管是相通的,分別記作a、b、c、d、e、f、g、dp,其中dp為小數(shù)點(diǎn),每只發(fā)光二極管都有一根外部引腳上,而另外一只引腳就連接在一起同樣也引接外部引腳上,記作公共端(com),如圖3-4</p><p> 圖3-4
24、顯示數(shù)碼管LED</p><p> 編寫程序?qū)崿F(xiàn)80C51的P0口控制一個(gè)數(shù)碼管顯示,讓它循環(huán)顯示0~9等十位數(shù)字,時(shí)間間隔為1秒鐘。</p><p> 利用查表程序可以完成BCD與七段碼的轉(zhuǎn)換,從而取代硬件七段譯碼電路,查表程序本身并無(wú)復(fù)雜之處,需要注意的是七段碼的取值,因?yàn)槠叨螖?shù)碼管有共陽(yáng)極及共陰極之分。共陽(yáng)極是低電平有效時(shí)有效輸入。共陰極是高電平時(shí)有效輸入(所以在C51單片機(jī)要使
25、發(fā)光二極管點(diǎn)亮,數(shù)碼管是共陽(yáng)極的就要讓I/O口的電位變?yōu)榈碗娢弧H绻枪碴帢O的就是合I/O口的電位變?yōu)楦唠娢?,因些不同的器件會(huì)有不同的數(shù)碼值。另外引腳信號(hào)與碼位的對(duì)應(yīng)關(guān)系也會(huì)影響碼值,即引腳可以由高到低排列(7-1),也可以由低到高排列(1-7)。本實(shí)驗(yàn)的數(shù)碼管為共陽(yáng)極,采用由高到低的排列 。</p><p> ORG 0100H ;程序起始地址</p><p> MAIN: MOV
26、 R2,#00H ;段碼地址表指針清零</p><p> MOV DPTR,#TAB ;指向段碼地址表起始地址</p><p> DSUP: MOV A,R2 ;將R2的內(nèi)容送入累加器A</p><p> MOVC A,@A+DPTR ;累加器的值與從數(shù)據(jù)表中取出的數(shù)碼顯示值相加后送入累加器A</p><p> MOV P0,A ;將
27、累加器的值送入P0口顯示</p><p> MOV R1,#11111110B ;將11111110B(位選P2.0)送入寄存器R1</p><p> MOV P2,R1 ;將R1的值送入P2口進(jìn)行位選</p><p> LCALL YSH1S ;調(diào)用延時(shí)1秒子程序</p><p> INC R2 ;段碼地址表指針加1</p&g
28、t;<p> CJNE R2,#0AH,DSUP ;如果0-9顯示完畢,程序重新開(kāi)臺(tái)執(zhí)行</p><p> SJMP MAIN ;跳轉(zhuǎn)到MAIN入口</p><p> YSH1S:MOV R3,#05H ;延時(shí)1秒子程序</p><p> LOOP0:MOV R4,#0C8H</p><p> LOOP1:MOV R5
29、,#0FAH</p><p> XHD: DJNZ R5,XHD</p><p> DJNZ R4,LOOP1</p><p> DJNZ R3,LOOP0</p><p><b> RET</b></p><p> TAB: DB 0C0H ;0-9段碼表</p><
30、;p><b> DB 0F9H</b></p><p><b> DB 0A4H</b></p><p><b> DB 0B0H</b></p><p><b> DB 99H</b></p><p><b> DB 92H&l
31、t;/b></p><p><b> DB 82H</b></p><p><b> DB 0F8H</b></p><p><b> DB 80H</b></p><p><b> DB 90H</b></p><p&g
32、t;<b> END</b></p><p><b> 3.2 硬件設(shè)計(jì)</b></p><p> 3.2.1 單片機(jī)最小系統(tǒng)單元</p><p> 主控機(jī)系統(tǒng)采用了Atmel 公司生產(chǎn)的 AT89S52單片機(jī),它含有256 字節(jié)數(shù)據(jù)存儲(chǔ)器,內(nèi)置8K 的電可擦除FLASH ROM,可重復(fù)編程,大小滿足主控機(jī)軟件系
33、統(tǒng)設(shè)計(jì),所以不必再擴(kuò)展程序存儲(chǔ)器。復(fù)位電路和晶振電路是AT89S52 工作所需的最簡(jiǎn)外圍電路。單片機(jī)最小系統(tǒng)電路圖如 圖3-5所示。 </p><p> 圖3-5 單片機(jī)最小系統(tǒng)圖</p><p> AT89S52 的復(fù)位端是一個(gè)史密特觸發(fā)輸入,高電平有效。RST端若由低電平上升到高電平并持續(xù)2個(gè)周期,系統(tǒng)將實(shí)現(xiàn)一次復(fù)位操作。在復(fù)位電路中,按一下復(fù)位開(kāi)關(guān)就使在RST端出現(xiàn)一段時(shí)間的高電
34、平,外接11.0592M 晶振和兩</p><p> 30pF 電容組成系統(tǒng)的內(nèi)部時(shí)鐘電路。</p><p> 3.2.2 A44E霍爾傳感器檢測(cè)單元</p><p> 霍爾傳感器是一種磁傳感器。用它可以檢測(cè)磁場(chǎng)及其變化,可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用?;魻杺鞲衅饕曰魻栃?yīng)為其工作基礎(chǔ),是由霍爾元件和它的附屬電路組成的集成傳感器?;魻杺鞲衅髟诠I(yè)生產(chǎn)、交通運(yùn)
35、輸和日常生活中有著非常廣泛的應(yīng)用。</p><p> 由于霍爾元件產(chǎn)生的電勢(shì)差很小,故通常將霍爾元件與放大器電路、溫度補(bǔ)償電路及穩(wěn)壓電源電路等集成在一個(gè)芯片上,稱之為霍爾傳感器。如圖3-6</p><p><b> 圖3-6霍爾傳感器</b></p><p> A44E 屬于開(kāi)關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.5~18V),其輸出
36、的信號(hào)符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。</p><p> A44E 集成霍耳開(kāi)關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D和OC門輸出E五個(gè)基本部分組成。</p><p> 在輸入端輸入電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢(shì)發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電
37、流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾電勢(shì)差VH輸出,該VH信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即Bop)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)OC門輸出端輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān)。</p><p> 這樣兩次電壓變換,使霍爾開(kāi)關(guān)完成了一次開(kāi)關(guān)動(dòng)作。</p><p> A44E
38、霍爾傳感器原理如圖3-7所示</p><p> 圖3-7 A44E霍爾傳感器原理圖</p><p> 里程計(jì)算是通過(guò)安裝在車輪上的霍爾傳感器檢測(cè)到的脈沖信號(hào),送到單片機(jī)產(chǎn)生中斷,單片機(jī)再根據(jù)程序設(shè)定,計(jì)算出里程。其原理如圖3-8所示。</p><p> 圖3-8 傳感器測(cè)距示意圖</p><p> 本系統(tǒng)選擇了將A44E的脈沖輸出口接
39、到P3.3口外部中斷1作為信號(hào)的輸入端(這樣可以減少程序設(shè)計(jì)的麻煩),車輪每轉(zhuǎn)一圈(設(shè)車輪的周長(zhǎng)是1米),霍爾開(kāi)關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000次時(shí),即1公里,單片機(jī)就控制將金額自動(dòng)增加,如圖3-9。</p><p> 圖3-9 A44E霍爾元件接線圖</p><p> 3.2.3 AT24C01存儲(chǔ)單元</p><p>
40、 存儲(chǔ)單元的作用是在電源斷開(kāi)的時(shí)候,存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息。AT24C01 是Ateml公司的1KB的電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10uA(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8 腳的DIP 封裝,使用方便。</p><p> AT24C01提供電可擦除的串行1024位存儲(chǔ)或可編程只讀存儲(chǔ)器(EEPROM)12
41、8字(8位/字)。芯片在低壓的工業(yè)與商業(yè)應(yīng)用中進(jìn)行了最優(yōu)化。AT24C01的封裝為8腳PDIP、8腳JEDECSOIC、8腳TSSOP,通過(guò)2線制串行接口進(jìn)行數(shù)據(jù)傳輸。另外,整個(gè)系列有2.7V(2.7V至5.5V)和1.8V (1.8V至5.5V)兩個(gè)版本。</p><p> 特點(diǎn):低壓和標(biāo)準(zhǔn)電壓運(yùn)行模式,內(nèi)建128x8存儲(chǔ)序列,2線制串行接口,雙向數(shù)據(jù)傳送協(xié)議,100kHz(1.8V,2.5V,2.7V) 4
42、00kHz(和5V) 兼容4字頁(yè)寫方式寫同步時(shí)鐘(最大10ms)高可靠性-極限:1M寫時(shí)鐘周期,數(shù)據(jù)保存:100年AT24C02芯片引腳配置如圖3-10所示。</p><p> 圖3-10 AT24C02芯片引腳配置 </p><p> 存儲(chǔ)單元電路連接如圖3-11所示。</p><p> 圖3-11存儲(chǔ)單元電路原理圖</p>
43、;<p> 圖中R4、R5 是上拉電阻,其作用是減少AT24C01 的靜態(tài)功耗。由于AT24C01的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(時(shí)鐘脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)P2.2和P2.3口連接,進(jìn)行傳送數(shù)據(jù)。</p><p> 每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將單價(jià)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的單價(jià)等
44、信息</p><p> 3.2.4 鍵盤調(diào)整單元</p><p> 當(dāng)單價(jià)等信息需要進(jìn)行修改時(shí),就要用到鍵盤進(jìn)行修改。由于調(diào)節(jié)信息不多,故采用4個(gè)獨(dú)立鍵盤即可,分別實(shí)現(xiàn)清零、切換、增大、減小和功能等作用。電路原理如圖3-12所示。</p><p> 圖3-12 鍵盤調(diào)整單元接線圖</p><p> S1:接P1.0口,對(duì)上一次的計(jì)費(fèi)
45、進(jìn)行清零,為下次載客準(zhǔn)備</p><p> S2:接P1.1口,實(shí)現(xiàn)白天和夜晚單價(jià)的切換;當(dāng)功能鍵S4按下時(shí),S2可對(duì)數(shù)據(jù)進(jìn)行增大。</p><p> S3:接P1.2口,當(dāng)功能鍵S4按下時(shí),S3可對(duì)數(shù)據(jù)進(jìn)行減小。</p><p> S4:接P1.3口,按1次,進(jìn)入調(diào)整白天單價(jià);按2次,進(jìn)入調(diào)整夜晚單價(jià);按3次,進(jìn)入調(diào)整等待單價(jià);按4次,進(jìn)入調(diào)整起步價(jià);按5次
46、,返回。</p><p> 3.2.5 顯示單元</p><p> 顯示單元由7個(gè)8段共陽(yáng)數(shù)碼管組成,采用動(dòng)態(tài)掃描進(jìn)行顯示。前三個(gè)數(shù)碼管分別接P3.0、P3.1和P3.2,用于顯示總金額;中間兩個(gè)分別接P3.4和P3.5,用于顯示里程;后邊兩個(gè)分別接P3.6和P3.7,用于顯示單價(jià)。顯示原理如圖3-13 </p><p> 圖3-13顯
47、示原理圖 </p><p><b> 數(shù)碼管驅(qū)動(dòng)方式:</b></p><p> 數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類靜態(tài)顯示驅(qū)動(dòng):1.靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者
48、使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。</p><p> 2.動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)
49、碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)
50、碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p> 主要參數(shù):8字高度:8字上沿與下沿的距離。比外型高度小。通常用英寸來(lái)表示。范圍一般為
51、0.25-20英寸。長(zhǎng)*寬*高:長(zhǎng)——數(shù)碼管正放時(shí),水平方向的長(zhǎng)度;寬——數(shù)碼管正放時(shí),垂直方向上的長(zhǎng)度;高——數(shù)碼管的厚度。時(shí)鐘點(diǎn):四位數(shù)碼管中,第二位8與第三位8字中間的二個(gè)點(diǎn)。一般用于顯示時(shí)鐘中的秒。</p><p> 數(shù)碼管應(yīng)用:數(shù)碼管是一類顯示屏 通過(guò)對(duì)其不同的管腳輸入相對(duì)的電流 會(huì)使其發(fā)亮 從而顯示出 數(shù)字能夠顯示 時(shí)間 日期 溫度 等所有可用數(shù)字表示的參數(shù)</p><p>
52、 由于它的價(jià)格便宜 使用簡(jiǎn)單 在電器 特別是家電領(lǐng)域應(yīng)用極為廣泛 空調(diào) 熱水器冰箱等等絕大多數(shù) 熱水器用的都是數(shù)碼管 其他家電 也用液晶屏與 熒光屏數(shù)碼管使用的電流與電壓</p><p> 電流:靜態(tài)時(shí),推薦使用10-15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5mA,峰值電流50-60mA。 </p><p><b>
53、 3.3 軟件設(shè)計(jì)</b></p><p> 3.3.1 系統(tǒng)主程序</p><p> 在主程序模塊中,需要完成對(duì)各參量和接口的初始化、出租車起價(jià)和單價(jià)的初始化以及中斷、計(jì)算、循環(huán)等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作</
54、p><p> 當(dāng)汽車運(yùn)行起來(lái)時(shí),就啟動(dòng)計(jì)價(jià),根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷行駛里程是否已超過(guò)起步價(jià)公里數(shù)。若已超過(guò),則根據(jù)里程值、每公里的單價(jià)數(shù)和起步價(jià)數(shù)來(lái)計(jì)算出當(dāng)前的總金額,并將結(jié)果存于總金額寄存器中;中途等待時(shí),無(wú)脈沖輸入,不產(chǎn)生中斷,當(dāng)時(shí)間超過(guò)等待設(shè)定值時(shí),開(kāi)始進(jìn)行計(jì)時(shí),并把等待價(jià)格加到總金額里,然后將總金額、里程和單價(jià)送數(shù)碼管顯示出來(lái)。程序流程如圖3-14</p><p> 圖3
55、-14主程序流程圖 </p><p> 3.3.2 中斷程序</p><p> 3.3.2.1 里程計(jì)數(shù)中斷程序</p><p> 每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1000次時(shí),進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中,里程變量加一。主函數(shù)中總金額也相應(yīng)地變化。</p><p> #include
56、<reg51.h></p><p> void init(void)//聲明中斷初始化</p><p> { EA=1;//中斷總開(kāi)關(guān)</p><p> EX0=1;//開(kāi)中斷0開(kāi)關(guān)。中斷1為,EX1=1;</p><p> IT1=1;//采用邊沿觸發(fā),下降沿有效。IT1=0為低電平觸發(fā)中斷。</p>
57、<p><b> }</b></p><p><b> main()</b></p><p> { init();調(diào)用中斷初始化函數(shù)</p><p><b> ==</b></p><p><b> ===主程序;</b></p
58、><p><b> }</b></p><p> void in_0(void)interrupt 0//中斷服務(wù)函數(shù)</p><p><b> { ==</b></p><p><b> ==要服務(wù)的程序</b></p><p><b>
59、 }</b></p><p> 3.3.2.2 中途等待中斷程序</p><p> 在中途等待中斷程序中,每1ms產(chǎn)生一次中斷,將當(dāng)前里程值送入某個(gè)緩存變量,每5分鐘將緩存變量中的值和當(dāng)前里程值比較,當(dāng)汽車停止,霍爾傳感器5分鐘沒(méi)有輸出信號(hào),當(dāng)前里程值和緩存變量?jī)?nèi)的值相同,則進(jìn)入等待計(jì)時(shí),每5分鐘記一次價(jià)格。</p><p> 3.3.3 計(jì)
60、算程序</p><p> 計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-3)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時(shí)間*等待單價(jià)。計(jì)算程序流程如圖3-15所示</p><p> 圖3-15計(jì)算程序流程圖</p><p> 3.3.4 顯示程序</p><p>
61、; 顯示程序利用定時(shí)器每1ms產(chǎn)生一次中斷,相應(yīng)變量置位,點(diǎn)亮一個(gè)數(shù)碼管,顯示一位數(shù)據(jù),利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示。</p><p> #include <16F877.h>#device ADC="10"#use delay(clock=20000000)#fuses NOWDT,HS, NOPUT, NOPRO
62、TECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG</p><p> #use fast_io(A)#use fast_io(B)#use fast_io(C)</p><p> //#define AMODE 0X3F//#define BMODE
63、60; 0X00//#define CMODE 0X00</p><p> //#include "C:\JCYCAD\new\new.h"</p><p> #include /*#int_RTCCRTCC_isr() {</p><p> }*/void lcd_D
64、SPly00(void) { lcd_cursor_posi(1,1);printf(lcd_data,"********************"); lcd_cursor_posi(1,2);printf(lcd_data,"
65、60; Hello! Clarion "); lcd_cursor_posi(1,3);printf(lcd_data," PWB-PIN-BASE "); lcd_cursor
66、_posi(1,4);printf(lcd_data,"********************"); }void lcd_dsply01(void) { lcd_cursor_posi(1,1);printf(lcd_data,&
67、quot;********************"); lcd_cursor_posi(1,2);printf(lcd_data," PWB-PIN-BASE "); lcd_cursor_</p>
68、<p> void main() {</p><p> //set_tris_a(AMODE); //set_tris_b(BMODE); //set_tris_c(CMODE);</p><p> set_tris_a(3f); set_tris_b(0); set_
69、tris_c(0); setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_counters(RTCC_INTERNAL,RTCC_DIV_4);
70、0; setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); enable_interrupts(INT_RTCC);&nb </p><p> 3.3.5 鍵盤程序</p><p> 鍵盤采用查詢的方式,放在主程序中,當(dāng)沒(méi)有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,
71、一旦右按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。流程圖如圖3-16。</p><p> 圖3-16鍵盤程序流程圖</p><p><b> 結(jié)論</b></p><p> 經(jīng)過(guò)這些天有關(guān)于出租車計(jì)價(jià)器的課程設(shè)計(jì),使我對(duì)單片機(jī)的應(yīng)用有了更深的了解。在課程設(shè)計(jì)的過(guò)程中,還是碰到了許多的問(wèn)題。比如,對(duì)于數(shù)碼管動(dòng)態(tài)掃描顯示和鍵盤的延時(shí)防抖
72、的綜合編程不能較好地解決;對(duì)于代碼的前后順序及調(diào)用掌握得還不夠好;對(duì)于一些相關(guān)的應(yīng)用軟件沒(méi)能熟練掌握。通過(guò)這幾天晚上的苦想和反復(fù)調(diào)試,以及參考網(wǎng)上的程序,最終還是把問(wèn)題解決了。</p><p> 通過(guò)這次課程設(shè)計(jì),我最大的收獲就是自己的動(dòng)手能力和獨(dú)立解決問(wèn)題的能力得到了很大的提高,也充分體會(huì)到了自己設(shè)計(jì)東西的樂(lè)趣、學(xué)會(huì)查閱資料和對(duì)別人的東西融會(huì)變通的重要性,也明白了很多知識(shí)光靠趴在書本上學(xué)是學(xué)不到其中的精髓的,
73、必須親自去試著實(shí)踐,親自去經(jīng)歷才能對(duì)它們真正的掌握,凡事都要自己去動(dòng)下手,去實(shí)踐一下,遇到困難,永遠(yuǎn)不要沮喪氣餒。在動(dòng)手的過(guò)程中,不僅能增強(qiáng)實(shí)踐能力,而且在理論上可以有更深的認(rèn)識(shí);這次設(shè)計(jì)給了我極大的鼓舞和信心,相信在以后的學(xué)習(xí)中可以通過(guò)不斷的摸索和實(shí)踐來(lái)提高其他方面的知識(shí)。</p><p><b> 致謝</b></p><p> 匆忙的學(xué)習(xí)生涯漸漸走入尾聲,在
74、老師的指導(dǎo)下順利完成這次畢業(yè)設(shè)計(jì),</p><p> 也才體會(huì)到生活、工作、學(xué)習(xí)一起的社會(huì)生活,我要學(xué)習(xí)的還有很多,自己有很多不足之處</p><p> 首先要感謝我的導(dǎo)師xx。畢竟獨(dú)立完成這次設(shè)計(jì)對(duì)于我來(lái)說(shuō)還是遇到很多問(wèn)題,后期詳細(xì)設(shè)計(jì),裝配草圖等整個(gè)過(guò)程中老師都給予了我悉心的指導(dǎo)。積極的去發(fā)現(xiàn)和糾正錯(cuò)誤實(shí)屬是件快樂(lè)的事情,也增加了我的好奇心和求知欲,并讓我更自信的面對(duì)以后的挑戰(zhàn),工
75、作和學(xué)習(xí)也就這樣融合的恰到好處</p><p> 感謝大學(xué)三年來(lái)所有的老師和同學(xué),師生間的友誼督促我成長(zhǎng)和學(xué)習(xí),希望同學(xué)們和老師能夠工作順利!天天開(kāi)心</p><p> 感謝我的爸爸媽媽,焉得諼草,言樹(shù)之背,養(yǎng)育之恩,無(wú)以回報(bào),你們永遠(yuǎn)健康快樂(lè)是我最大的心愿。 </p><p> 論文的尾聲也寫滿了我的心聲,愿一切順利!</p><p>
76、;<b> 參考文獻(xiàn)</b></p><p> [1] 馬淑華,王鳳文,張美金編著. 單片機(jī)原理與接口技術(shù)(第二版). 北京:北京郵電大學(xué)出版社,2007.</p><p> [2] 譚浩強(qiáng)著. C程序設(shè)計(jì)(第三版). 北京:清華大學(xué)出版社,2005.</p><p> [3]何立民 單片機(jī)系統(tǒng)設(shè)計(jì) 北京航空航天大學(xué)出版社19
77、93年;</p><p> [4] 胡宴如 模擬電子技術(shù)基礎(chǔ) 高等教育出版社 2003年;</p><p> [5] 陳麗芳 單片機(jī)原理與控制技術(shù) 東南大學(xué)出版社 2003年;</p><p> [6] 徐愛(ài)鈞,彭秀華單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì) 電子工業(yè)出版社1998年;</p><p> [7] 孫涵芳,徐愛(ài)卿
78、. MCS-51/96系列單片機(jī)原理及應(yīng)用 北京航空航天大學(xué)出版社2002年;</p><p> [8] 陳靜瑾 模擬電子技術(shù)課程輔導(dǎo) 人民郵電出版社 2003年;</p><p> [9] 武慶生、仇梅 單片機(jī)原理與應(yīng)用 成都:電子科技大學(xué)出版社 2005年;</p><p> [10]劉迎春 MCS-51單片機(jī)原理及應(yīng)用教程 清華大
79、學(xué)出版社 2005年; </p><p> [11] 康華光 電子技術(shù)基礎(chǔ) (數(shù)字部分) 高等教育出版社 2000年;</p><p><b> 附錄A源程序參考</b></p><p> #include<reg52.h></p><p> #include <intrins.h&g
80、t;</p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();_nop_();};</p><p> uchar code&
81、lt;/p><p> table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};</p><p> sbit exter=P3^3; //外部中斷</p><p> sbit key0=P1^0; //清零</p><p&
82、gt; sbit key1=P1^1; //切換/+</p><p> sbit key2=P1^2; //-</p><p> sbit key3=P1^3; //功能鍵</p><p> sbit p30=P3^0; //數(shù)
83、碼管各位控制</p><p> sbit p31=P3^1;</p><p> sbit p32=P3^2;</p><p> sbit p34=P3^4;</p><p> sbit p35=P3^5;</p><p> sbit p36=P3^6;</p><p> sbit p
84、37=P3^7;</p><p> sbit SDA=P2^3; //IIC引腳</p><p> sbit SCL=P2^2;</p><p> //切換白天夜晚單價(jià)</p><p> jisuan(); //計(jì)算總金額</p>
85、;<p> display(zongjine,licheng,danjia); </p><p> keyscan(); </p><p> if(key0==0) //清零鍵</p><p> init();
86、 </p><p> } </p><p><b> }</b></p><p> void inter1() interrupt 2 //脈沖中斷</p><p><b> {</b><
87、/p><p> delay(5); //</p><p> if(exter==0) //</p><p> { //</p><p><b> IT1=1
88、;</b></p><p><b> inter++;</b></p><p> if(inter==5)</p><p><b> {</b></p><p><b> inter=0;</b></p><p> licheng+
89、+;</p><p><b> }</b></p><p> } //</p><p> while(!exter); //</p><p> delay(5);
90、 //</p><p> while(!exter); //</p><p><b> }</b></p><p> void timer0() interrupt 1</p><p><b> {</b><
91、/p><p> TH0=(65536-1000)/256;</p><p> TL0=(65536-1000)%256;</p><p><b> aa++;</b></p><p><b> bb++;</b></p><p> temp1=licheng;
92、 //測(cè)試是否進(jìn)入等待</p><p> if(bb==10000) //10s無(wú)反應(yīng)進(jìn)入等待計(jì)費(fèi)</p><p><b> { </b></p><p><b> bb=0;</b></p>&
93、lt;p> if(temp=temp&temp1)</p><p> dengdai++; </p><p> temp=licheng; </p><p><b> }</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 論文計(jì)程車計(jì)價(jià)器設(shè)計(jì)
- 畢業(yè)論文 基于vhdl的計(jì)程車計(jì)價(jià)器設(shè)計(jì)(含外文翻譯)
- 計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程設(shè)計(jì)---計(jì)程車計(jì)價(jià)器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--出租車計(jì)價(jià)器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----出租車計(jì)價(jià)器
- 出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 多功能出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
- 出租車計(jì)價(jià)器的設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--計(jì)程車?yán)锍瘫硐到y(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)程計(jì)價(jià)器的設(shè)計(jì)
- 出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)--出租車計(jì)價(jià)器系統(tǒng)的設(shè)計(jì)
- 出租車計(jì)價(jià)器畢業(yè)論文設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--語(yǔ)音多路出租車計(jì)價(jià)器
- 多功能出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 出租車計(jì)價(jià)器的設(shè)計(jì)-太原工業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)
- 畢業(yè)設(shè)計(jì)(論文)-單片機(jī)課程設(shè)計(jì)出租車計(jì)價(jià)器
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 智能出租車計(jì)價(jià)器設(shè)計(jì)【畢業(yè)論文】
評(píng)論
0/150
提交評(píng)論