《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告-出租車(chē)計(jì)價(jià)器設(shè)計(jì)_第1頁(yè)
《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告-出租車(chē)計(jì)價(jià)器設(shè)計(jì)_第2頁(yè)
《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告-出租車(chē)計(jì)價(jià)器設(shè)計(jì)_第3頁(yè)
《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告-出租車(chē)計(jì)價(jià)器設(shè)計(jì)_第4頁(yè)
《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告-出租車(chē)計(jì)價(jià)器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)應(yīng)用與仿真訓(xùn)練設(shè)計(jì)報(bào)告出租車(chē)計(jì)價(jià)器 摘要隨著出租車(chē)行業(yè)的發(fā)展,出租車(chē)行業(yè)已經(jīng)是城市交通的重要組成部分,從加強(qiáng)行業(yè)管理以及減少與乘客的糾紛出發(fā),以單片機(jī)為核心的智能出租車(chē)計(jì)價(jià)系統(tǒng)的開(kāi)發(fā)就顯得尤其重要。本設(shè)計(jì)采用89C51單片機(jī)為主控器,以霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車(chē)的多功能的計(jì)價(jià)設(shè)計(jì)。并且還添加有其他的附加設(shè)計(jì),使司機(jī)師傅操作起來(lái)更加方便,例如,按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢(xún)鍵,可顯示總等待時(shí)間等。關(guān)鍵詞:89C51,霍爾傳感器28目錄一、概論31、前言32、設(shè)計(jì)的意義33、設(shè)計(jì)任務(wù)34、設(shè)計(jì)的目的和要求4二、系統(tǒng)總體方案及硬件設(shè)計(jì)51、系統(tǒng)總體方案52、霍爾傳感器檢測(cè)單元53、鍵盤(pán)調(diào)整單元6三、軟件設(shè)計(jì)81、系統(tǒng)主程序82、中斷程序92.1、里程計(jì)數(shù)中斷程序92.2、中途等待中斷程序92.3、計(jì)算程序92.4、顯示程序92.5、鍵盤(pán)程序10四、Proteus軟件仿真11五、實(shí)物圖12六、程設(shè)計(jì)心得體會(huì)13參考文獻(xiàn)13附1:源程序代碼14附2:系統(tǒng)原理圖22一 概述1、前言計(jì)價(jià)器是出租汽車(chē)的經(jīng)營(yíng)者和乘坐出租汽車(chē)的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,因而計(jì)價(jià)器計(jì)價(jià)準(zhǔn)確與否,直接關(guān)系到經(jīng)營(yíng)者和消費(fèi)者的經(jīng)濟(jì)利益。依據(jù)國(guó)家有關(guān)法律、法規(guī),出租汽車(chē)計(jì)價(jià)器是列入國(guó)家首批強(qiáng)制檢定的工作計(jì)量器具之一,也是近年來(lái)國(guó)家質(zhì)量技術(shù)監(jiān)督部門(mén)強(qiáng)化管理的六類(lèi)重點(diǎn)計(jì)量器具之一。在出租車(chē)是城市交通的重要組成部分,行業(yè)健康和發(fā)展也獲得越來(lái)越多的關(guān)注。汽車(chē)計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車(chē)行業(yè)發(fā)展的重要標(biāo)志,是出租車(chē)中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車(chē)司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。出租車(chē)已經(jīng)成為我國(guó)城市公共交通的重要組成部分和現(xiàn)代化城市必備的基礎(chǔ)設(shè)施,成為人們工作、生活中補(bǔ)課缺少的交通工具。而出租車(chē)計(jì)價(jià)器在出租汽車(chē)服務(wù)行業(yè)中占著極為重要的地位,因?yàn)槌鲎廛?chē)必須安裝出租車(chē)計(jì)價(jià)器才能投入正常的運(yùn)營(yíng)。出租車(chē)計(jì)價(jià)器是一種能根據(jù)乘客乘坐汽車(chē)行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并直接顯示車(chē)費(fèi)值得計(jì)量器具。計(jì)價(jià)器是出租汽車(chē)經(jīng)營(yíng)者和乘坐出租汽車(chē)的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,因而計(jì)價(jià)器準(zhǔn)確與否,直接關(guān)系到經(jīng)營(yíng)者和消費(fèi)者的經(jīng)濟(jì)利益。依據(jù)國(guó)家有關(guān)法律、法規(guī),出租車(chē)計(jì)價(jià)器是列入國(guó)家首批強(qiáng)制檢定的工作計(jì)量器具之一,也是近年來(lái)國(guó)家質(zhì)量技術(shù)監(jiān)督部門(mén)強(qiáng)化管理的的六類(lèi)重點(diǎn)計(jì)量器具之一。2、設(shè)計(jì)的意義在出租車(chē)時(shí)城市交通的重要組成部分的大環(huán)境下,行業(yè)的健康和發(fā)展也獲得越來(lái)越多的關(guān)注。汽車(chē)計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車(chē)行業(yè)發(fā)展的重要標(biāo)志,是出租車(chē)種最重要的工具。她關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車(chē)司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。因此,汽車(chē)計(jì)價(jià)器的研究也是十分有應(yīng)用價(jià)值的,尤其是對(duì)于出租車(chē)行業(yè)有著極其重要的意義。3、設(shè)計(jì)任務(wù)本設(shè)計(jì)是采用AT89C51單片機(jī)為主控器,以霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車(chē)的多功能的計(jì)價(jià)設(shè)計(jì),輸出采用8段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)單程,返程和起步來(lái)調(diào)節(jié)單價(jià),并實(shí)現(xiàn)了暫停和等待時(shí)間查詢(xún)的功能。4、設(shè)計(jì)的目的和要求目的:通過(guò)單片機(jī)課程設(shè)計(jì),熟練掌握c語(yǔ)言的編程方法,將理論聯(lián)系到實(shí)踐中去,提高我們的動(dòng)腦和動(dòng)手的能力。通過(guò)出租車(chē)計(jì)價(jià)器系統(tǒng)的設(shè)計(jì),掌握單片機(jī)個(gè)資源的使用方法,和簡(jiǎn)單程序的編寫(xiě),最終提高我們的邏輯抽象能力?;疽螅?1)能顯示里程,單位為公里,最后一位為小數(shù)位。(2)能顯示金額數(shù),單位為元,最后一位為小數(shù)位。(3)可設(shè)定單程價(jià)格和往返價(jià)格,單程價(jià)格為2元/公里,往返價(jià)格為1.5元/公里。(4)車(chē)速5公里/小時(shí)的時(shí)間累積為總等待時(shí)間,每5分鐘等待時(shí)間相當(dāng)于里程數(shù)增加1公里。(5)起步公里數(shù)為3公里,價(jià)格為5元,若實(shí)際距離大于3公里,按規(guī)則3計(jì)算價(jià)格。(6)按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢(xún)鍵,可顯示總等待時(shí)間。二 系統(tǒng)總體方案及硬件設(shè)計(jì)1、系統(tǒng)總體方案模擬計(jì)數(shù)器系統(tǒng)主要由四大模塊組成:霍爾傳感器、AT89C51單片機(jī)、獨(dú)立鍵盤(pán)?;魻杺鞲衅靼惭b在車(chē)輪的旁側(cè),主要檢測(cè)汽車(chē)行進(jìn)的公里數(shù),并產(chǎn)生一系列相應(yīng)的脈沖輸出,脈沖送到單片機(jī)進(jìn)行處理,單片機(jī)根據(jù)程序設(shè)定通過(guò)計(jì)算脈沖數(shù)換算出行駛公里數(shù),再根據(jù)價(jià)格等相關(guān)數(shù)據(jù)進(jìn)行金額的計(jì)算,計(jì)算好的金額、里程都實(shí)時(shí)地顯示在數(shù)碼管上。獨(dú)立鍵盤(pán)可以調(diào)節(jié)價(jià)格等相關(guān)數(shù)據(jù),按下相應(yīng)的按鈕,產(chǎn)生信號(hào)交由單片機(jī)處理并實(shí)時(shí)顯示出來(lái)??傮w方案結(jié)構(gòu)圖如下:獨(dú)立鍵盤(pán)調(diào)整切換AT89C51單片機(jī)數(shù)碼管 顯示電路脈沖輸入 霍爾傳感器計(jì)算輸出 圖2.1 系統(tǒng)總體結(jié)構(gòu)框圖2、霍爾傳感器檢測(cè)單元屬于開(kāi)關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.518V),其輸出的信號(hào)符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。集成霍耳開(kāi)關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D和OC門(mén)輸出E五個(gè)基本部分組成。在輸入端輸入電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢(shì)發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾電勢(shì)差VH輸出,該VH信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門(mén)輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即Bop)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)OC門(mén)輸出端輸出低電壓,三極管截止,使OC門(mén)輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍爾開(kāi)關(guān)完成了一次開(kāi)關(guān)動(dòng)作。 霍爾傳感器原理如圖5所示。P3.2霍爾傳感器小磁鐵AT89C51單片機(jī)圖2.2 傳感器測(cè)距示意圖里程計(jì)算是通過(guò)安裝在車(chē)輪上的霍爾傳感器檢測(cè)到的脈沖信號(hào),送到單片機(jī)產(chǎn)生中斷,單片機(jī)再根據(jù)程序設(shè)定,計(jì)算出里程。其原理如圖2.4所示。本系統(tǒng)選擇了將霍爾傳感器的脈沖輸出口接到P3.3口外部中斷1作為信號(hào)的輸入端(這樣可以減少程序設(shè)計(jì)的麻煩),車(chē)輪每轉(zhuǎn)一圈(設(shè)車(chē)輪的周長(zhǎng)是5米),霍爾開(kāi)關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到200次時(shí),即1公里,單片機(jī)就控制將金額自動(dòng)增加,如圖2.5(霍爾傳感器)。圖2.3 霍爾傳感器 3、鍵盤(pán)調(diào)整單元當(dāng)單價(jià)等信息需要進(jìn)行修改時(shí),就要用到鍵盤(pán)進(jìn)行修改。由于調(diào)節(jié)信息不多,故采用4個(gè)獨(dú)立鍵盤(pán)即可,分別實(shí)現(xiàn)清零、切換、增大、減小和功能等作用。電路原理如圖所示。 圖2.4 鍵盤(pán)調(diào)整模塊S1:接P1.1口,實(shí)現(xiàn)路程和單價(jià)的切換。S2:接P1.2口,實(shí)現(xiàn)單程和往返程的切換。S3:接P1.3口,實(shí)現(xiàn)清零功能(在按下查詢(xún)總價(jià)鍵之后實(shí)現(xiàn))。S4:接P1.4口,暫停功能。S5:接P1.5口,對(duì)等待時(shí)間進(jìn)行查詢(xún)。S6:接P1.6口,查詢(xún)總價(jià)。三 軟件設(shè)計(jì)1、系統(tǒng)主程序在主程序模塊中,需要完成對(duì)各參量和接口的初始化、出租車(chē)起步價(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à)等不同的操作。 3.1 主程序流程圖當(dāng)汽車(chē)運(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í),脈沖輸入小于設(shè)定值時(shí),當(dāng)時(shí)間超過(guò)等待設(shè)定值時(shí),開(kāi)始進(jìn)行計(jì)時(shí),并把等待價(jià)格加到總金額里,然后將總金額、里程送數(shù)碼管顯示出來(lái)。程序流程如圖所示。2、中斷程序2.1、里程計(jì)數(shù)中斷程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1500次時(shí),進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中,里程變量加一。主函數(shù)中總金額也相應(yīng)地變化。在中途等待中斷程序中,每1ms產(chǎn)生一次中斷,將由當(dāng)前里程計(jì)算出速度值送入某個(gè)緩存變量。把當(dāng)前速度值與預(yù)先設(shè)定的速度值相比較,當(dāng)小于設(shè)定的車(chē)速時(shí),進(jìn)入等待計(jì)時(shí)。等待時(shí)間5分鐘相當(dāng)于里程增加一公里。流程如圖3.4所示:圖3.2 中斷流程2.2、中途等待中斷程序在中途等待中斷程序中,每1ms產(chǎn)生一次中斷,將當(dāng)前里程值送入某個(gè)緩存變量,每5分鐘將緩存變量中的值和當(dāng)前里程值比較,當(dāng)汽車(chē)車(chē)速小于5公里/小時(shí),將存儲(chǔ)器里面的值與實(shí)時(shí)測(cè)量的值比較,當(dāng)行進(jìn)的里程小于5公里每分鐘時(shí),則進(jìn)入等待計(jì)時(shí),每5分鐘記一次價(jià)格。2.3、計(jì)算程序計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-3)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時(shí)間*等待單價(jià)。程序流程圖如圖所示。 3.3 計(jì)算程序流程圖2.4、顯示程序程序利用定時(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)顯示。0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/段碼表示0-9圖3.4 顯示子程序流程2.5、鍵盤(pán)程序鍵盤(pán)實(shí)質(zhì)上是一組按鍵開(kāi)關(guān)的集合,均利用機(jī)械觸點(diǎn)的合、斷作用。按鍵在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng),抖動(dòng)反應(yīng)在電壓上就是呈現(xiàn)出高電平或低電平,為了確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次,必須消除抖動(dòng)的影響。去抖通常有硬件去抖和軟件去抖兩種方法,本程序使用軟件延時(shí)去抖。 圖3.5 按鍵抖動(dòng)信號(hào)波形對(duì)于獨(dú)立式鍵盤(pán)判鍵,首先看有鍵按下不,如果有鍵按下則延時(shí)一會(huì)兒,在判斷是否真的有鍵按下,如果確實(shí)有鍵按下,再判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.5所示:圖3.6 判鍵子程序流程圖四 Proteus軟件仿真Proteus軟件是來(lái)自英國(guó)Labcenter electronics公司的EDA工具軟件,它組合了高級(jí)原理布圖、混合模式SPICE仿真,PCB設(shè)計(jì)以及自動(dòng)布線來(lái)實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。此系統(tǒng)受益于15年來(lái)的持續(xù)開(kāi)發(fā),被電子世界在其對(duì)PCB設(shè)計(jì)系統(tǒng)的比較文章中評(píng)為最好產(chǎn)品“The Route to PCB CAD”。Proteus 產(chǎn)品系列也包含了我們革命性的VSM技術(shù),用戶可以對(duì)基于微控制器的設(shè)計(jì)連同所有的周?chē)娮悠骷黄鸱抡?。用戶甚至可以?shí)時(shí)采用諸如LED/LCD、鍵盤(pán)、RS232終端等動(dòng)態(tài)外設(shè)模型來(lái)對(duì)設(shè)計(jì)進(jìn)行交互仿真。 其功能模塊:個(gè)易用而又功能強(qiáng)大的ISIS原理布圖工具;PROSPICE混合模型SPICE仿真;ARES PCB設(shè)計(jì)。PROSPICE 仿真器的一個(gè)擴(kuò)展PROTEUS VSM:便于包括所有相關(guān)的器件的基于微處理器設(shè)計(jì)的協(xié)同仿真。此外,還可以結(jié)合微控制器軟件使用動(dòng)態(tài)的鍵盤(pán),開(kāi)關(guān),按鈕,LEDs甚至LCD顯示CPU模型。支持許多通用的微控制器,如PIC,AVR,HC11以及89C51。最新支持ARM。交互的裝置模型包括:LED和LCD顯示,RS232終端,通用鍵盤(pán),I2C,SPI器件。強(qiáng)大的調(diào)試工具,包括寄存器和存儲(chǔ)器,斷點(diǎn)和單步模式。IAR C-SPY 和Keil uVision2等開(kāi)發(fā)工具的源層調(diào)試。應(yīng)用特殊模型的DLL界面-提供有關(guān)元件庫(kù)的全部文件。五 實(shí)物圖 實(shí)物展示圖六 程設(shè)計(jì)心得體會(huì)通過(guò)這次課程設(shè)計(jì),我掌握了數(shù)碼管的識(shí)別和測(cè)試;熟悉了霍爾傳感器的工作原理,了解了獨(dú)立按鍵的分配方法;以及如何提高計(jì)時(shí)精度的性能等等,掌握了proteus應(yīng)用的方法和技術(shù),通過(guò)查詢(xún)資料,也了解了出租車(chē)計(jì)價(jià)器的工作原理。課程設(shè)計(jì)誠(chéng)然是一門(mén)專(zhuān)業(yè)課,給我很多專(zhuān)業(yè)知識(shí)以及專(zhuān)業(yè)技能上的提升,同時(shí)又是一門(mén)講道課,一門(mén)辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時(shí),設(shè)計(jì)讓我感觸很深。使我對(duì)抽象的理論有了具體的認(rèn)識(shí)。在這次課程設(shè)計(jì)中,我一開(kāi)始是在上網(wǎng)找資料,根據(jù)找到的霍爾傳感器電路資料。我們直接按照資料焊了元件,由于我們考慮到了原件的限制,所以對(duì)電路做了一些改動(dòng)。我們根據(jù)實(shí)際需要對(duì)我們的電路進(jìn)行改動(dòng),而且可以很自信的進(jìn)行焊接。但是我們對(duì)仿真軟件不熟悉,焊電路時(shí)沒(méi)有仿真的支持,出了幾次錯(cuò)誤。我把所有可能出錯(cuò)的地方查了一邊,結(jié)果是電位器出了問(wèn)題,看來(lái)不仿真就不能百分之百的成功,還需要實(shí)踐來(lái)檢驗(yàn)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。動(dòng)手能力有待提高,對(duì)計(jì)算機(jī)有關(guān)軟件的使用也應(yīng)該熟練。通過(guò)本次課程設(shè)計(jì),又使我學(xué)到了許多書(shū)本上無(wú)法學(xué)到的知識(shí),也使也深該體會(huì)到單片機(jī)技術(shù)應(yīng)用領(lǐng)域的廣泛,不僅使我對(duì)學(xué)過(guò)的單片機(jī)知識(shí)有了很多的鞏固,同時(shí)也對(duì)單片機(jī)這一門(mén)課程產(chǎn)生了更大的興趣。在本次課程設(shè)計(jì)過(guò)程中,我學(xué)會(huì)了在網(wǎng)絡(luò)上查找有關(guān)本設(shè)計(jì)的各硬件的資源,其中包括:AT89S51單片機(jī)及其引腳說(shuō)明、AT24C02引腳圖及其引腳功能等,為本次課程設(shè)計(jì)提供了一定的資料。由于平時(shí)很少進(jìn)行課程設(shè)計(jì),所以對(duì)于課程設(shè)計(jì)報(bào)告的格式也是近期才接觸到,經(jīng)過(guò)這兩次的設(shè)計(jì),為我們以后畢業(yè)設(shè)計(jì)的制作也奠定了一定的基礎(chǔ)。參考文獻(xiàn) 【1】模擬電子技術(shù)基礎(chǔ)艾永樂(lè) 付子義編. 北京:中國(guó)電力出版社,2008【2】王曉明.單片機(jī)接口技術(shù).北京航空航天大學(xué)出版社,2007【3】電子技術(shù)實(shí)踐 閻有運(yùn) 編. 北京:中國(guó)礦業(yè)大學(xué)出版社?!?】實(shí)用電子電路200例 張慶雙 等編 北京:機(jī)械工業(yè)出版社,2003?!?】王曉敏.傳感器檢測(cè)技術(shù)及應(yīng)用.北京大學(xué)出版社,2010.附1:源程序代碼#include#include #define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit deng1=P11; /暫停sbit deng2=P12; /白天黑夜sbit deng3=P13; /單雙程sbit key0=P14; /功能鍵切換sbit key1=P15; /白天黑夜sbit key2=P16; /單雙程sbit key4=P17; /確認(rèn) sbit p11=P21; /數(shù)碼管各位位選,里程數(shù),總金額 ,單價(jià)sbit p12=P22;sbit p13=P23;sbit p21=P25;sbit p22=P26; sbit p23=P27;sbit p31=P20;sbit p32=P24;uint zongjine,licheng,licheng_1,zanting,licheng_2;uint lunquan,aa,bb,dengdai;uint temp_1,temp_2,shezhi_1;uchar danjia1,danjia2,danjia,qiehuan;uchar miao,fen;void display(void); /* 延時(shí)時(shí)基為1ms */void delay_ms(uint x) int i,j; for(i=x;i0;i-) for(j=110;j0;j-);/* 按鍵消抖*/uchar read_key(uchar xuanze) uchar shezhi=0,key_wei=0; key_wei=xuanze; P1|=0xf0; if(key_wei=1) /讀取白天,黑夜鍵值 while(1) if(!key1) delay_ms(5); if(!key1) while(!key1) ; shezhi+; if(shezhi=2) shezhi=0; if(!key4) delay_ms(80); if(!key4) while(!key4) ; break; if(shezhi=1) deng2=0; else if(shezhi=0) deng2=1; else if(key_wei=2) /讀取單程,雙程鍵值 while(1) if(key2=0) delay_ms(5); if(key2=0) while(!key2) ; shezhi+; if(shezhi=2) shezhi=0; if(key4=0) delay_ms(80); if(key4=0) while(!key4) ; break; if(shezhi=1) deng3=0; else if(shezhi=0) deng3=1; else if(key_wei=3) /讀取顯示數(shù)據(jù)鍵值 if(key0=0) display(); display(); if(key0=0) while(!key0) display(); shezhi_1+; if(shezhi_1=2) shezhi_1=0; shezhi=shezhi_1; return shezhi; /* 函數(shù)初始化 */void init() P1=0xff; P2=0x00; P0=table0; zongjine=0; licheng=0; dengdai=0; qiehuan=0; danjia1=read_key(1); /讀取白天,黑夜 danjia2=read_key(2); /讀取單程,雙程 danjia=20-(5*danjia2); EA=1; /開(kāi)總中斷 EX0=1; /開(kāi)外部中斷0 EX1=1; /開(kāi)外部中斷1 IT0=1; /觸發(fā)方式下降沿 IT1=1; /觸發(fā)方式下降沿 PX1=1; /外部中斷1,暫停設(shè)為高優(yōu)先級(jí) TMOD=0x11; TH0=(65536-1000)/256; TL0=(65536-1000)%256; /填入1ms初值 ET0=1; /開(kāi)定時(shí)器T0中斷 TR0=1; /開(kāi)定時(shí)器T0 /* 總金額計(jì)算 */ void jisuan() uint a; if(licheng=3) a=licheng_2-60; zongjine=(danjia*a)/20+50; /金額計(jì)算 else zongjine=50; /起步公里內(nèi)金額計(jì)算 /* 數(shù)碼管顯示 總金額、里程數(shù) */void display_1(uint zongjine_0,uint licheng_0) uchar jbai,jshi,jge,lshi,lge,lxiao; jbai=zongjine_0/100; /數(shù)碼管位置分配 jshi=(zongjine_0%100)/10; jge=zongjine_0%10; lshi=licheng_0/100; lge=(licheng_0%100)/10; lxiao=licheng_0%10; P0=0xff; /數(shù)碼管動(dòng)態(tài)顯示 P2=0xff; p11=0; P0=tablejbai; delay_ms(1); p11=1; p12=0; P0=tablejshi|0x80; delay_ms(1); p12=1; p13=0; P0=tablejge; delay_ms(1); p13=1; p21=0; P0=tablelshi; delay_ms(1); p21=1; p22=0; P0=tablelge|0x80; delay_ms(1); p22=1; p23=0; P0=tablelxiao; delay_ms(1); p23=1; /* 數(shù)碼管顯示時(shí)間、單價(jià) */void display_2(uchar fen_0,uchar miao_0,uchar danjia_0) uchar sfen,gfen,smiao,gmiao; uchar dshi,dge; dshi=danjia_0/10; dge=danjia_0%10; sfen=fen_0/10; gfen=fen_0%10; smiao=miao_0/10; gmiao=miao_0%10; P0=0xff; P2=0xff; p31=0; P0=tablesfen; delay_ms(1); p31=1; p11=0; P0=tablegfen|0x80; delay_ms(1); p11=1; p12=0; P0=tablesmiao; delay_ms(1); p12=1; p13=0; P0=tablegmiao; delay_ms(1); p13=1; p22=0; P0=tabledshi|0x80; delay_ms

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論