畢業(yè)設(shè)計(jì)--基于單片機(jī)的自行車?yán)锍趟俣缺韄第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機(jī)的自行車?yán)锍趟俣缺?lt;/p><p>  摘 要: 本設(shè)計(jì)采用簡單、可靠的霍爾元件傳感器和AT89C2051單片機(jī)系統(tǒng)實(shí)現(xiàn)了自行車?yán)锍?、速度、時(shí)間的實(shí)時(shí)測(cè)量,測(cè)得的數(shù)據(jù)由LED數(shù)碼管顯示,切換顯示時(shí)采用蜂鳴器提示,本設(shè)計(jì)外圍電路簡單,元件少,體積小,超速時(shí)采用光、語音報(bào)警提示。</p><p>  關(guān)鍵詞: 單片機(jī);LED數(shù)碼管顯示器;自行車;里程;速度&

2、lt;/p><p><b>  1.引 言</b></p><p>  近年來,隨著人們生活水平的不斷提高,各種變速自行車,賽車等高檔自行車正在步入每個(gè)普通家庭,騎自行車郊游、旅行或體育鍛煉已經(jīng)成為許多人所喜愛的一項(xiàng)活動(dòng)。這時(shí)人們往往希望了解一下自行車的行使速度,以便估算出到達(dá)目的地的大概時(shí)間,決策其后的行動(dòng)計(jì)劃,如果利用速度傳感器,固然可以獲得較高精度的自行車速度,但

3、是價(jià)格比較昂貴,人們難以接受。隨著電子技術(shù)的廣泛應(yīng)用,傳統(tǒng)儀表逐漸被以微處理器為核心的電子控制數(shù)字儀表所取代。于是具有價(jià)格低廉,結(jié)構(gòu)簡單、安裝方便、可靠性到等特點(diǎn)的數(shù)字式自行車速度里程表的問世,將給喜歡騎自行車的旅游者帶來佳音。</p><p>  本設(shè)計(jì)采用了MCS-51系列單片機(jī)設(shè)計(jì)一種體積小、操作簡單的便攜式自行車?yán)锍趟俣缺?,它能自?dòng)地顯示當(dāng)前自行車行走的距離及運(yùn)行的速度和總時(shí)間,本設(shè)計(jì)還帶有超速聲光報(bào)警提

4、示、切換顯示時(shí)蜂鳴提示,當(dāng)行走每十公里的整數(shù)倍的路程時(shí),蜂鳴器提示等功能,能給騎車人帶來很大的方便。</p><p>  傳統(tǒng)的速度里程表的功能有兩個(gè):</p><p>  一是用指針指示車輛行駛的瞬時(shí)車速,二是用機(jī)械計(jì)數(shù)器記錄車輛行駛的累計(jì)里程。用軟軸驅(qū)動(dòng)的傳統(tǒng)車速里程表存在著很多的缺陷,因?yàn)檐涊S在高速旋轉(zhuǎn)時(shí),由于受鋼絲交變應(yīng)力極限的限制而容易斷裂,同時(shí),軟軸布置過長會(huì)出現(xiàn)形變過大或運(yùn)動(dòng)

5、遲滯等現(xiàn)象,而且,對(duì)于不同的車型,轉(zhuǎn)速里程表的安裝位置也會(huì)受到軟軸長度及彎曲度的限制。</p><p><b>  2.方案的論證</b></p><p><b>  2.1課題分析</b></p><p>  新生事物不會(huì)因傳統(tǒng)的存在而停止它前進(jìn)的步伐,電子數(shù)碼科技今天已滲透到工業(yè),農(nóng)業(yè),民用的產(chǎn)品的點(diǎn)點(diǎn)滴滴。新概念汽車

6、里程表直接用數(shù)字顯示速度、里程,另外還有時(shí)間顯示和溫度測(cè)量以及超速報(bào)警。不只是為達(dá)到目的,更是為了享受駕駛的快感。</p><p>  本設(shè)計(jì)是一個(gè)十分實(shí)用的設(shè)計(jì)。像這種電子計(jì)程表是一定會(huì)在實(shí)際應(yīng)用之中有它的用武之地,市場(chǎng)前景十分廣闊。</p><p>  其設(shè)計(jì)的具體功能要求是:</p><p>  1.實(shí)現(xiàn)速度的測(cè)量(單位:米/秒);</p>&l

7、t;p>  2.具有測(cè)量行程的功能(單位:米);</p><p>  3.速度過快的警告功能*;</p><p><b>  4.LCD顯示。</b></p><p>  要達(dá)到課題要求其難點(diǎn)在于:</p><p>  1.用霍爾元件數(shù)據(jù)采集的具體安裝和實(shí)現(xiàn)效果。</p><p>  2.單

8、片機(jī)對(duì)里程和速度的計(jì)算,液晶輸出的中斷與數(shù)據(jù)采集造成里程和速度的誤差</p><p>  2.2 測(cè)量傳感器模塊設(shè)計(jì)方案</p><p><b>  方案一:</b></p><p>  利用紅外線傳感器(紅外對(duì)管),檢出自行車前輪車條這一速度的特征參量,將其轉(zhuǎn)變?yōu)橛?jì)數(shù)脈沖采用</p><p>  紅外光電傳感器,進(jìn)行非

9、接觸式檢測(cè)。當(dāng)有物體擋在紅外光電發(fā)光二極管和高靈敏度的光電晶體管之間時(shí),傳感器將會(huì)輸出一個(gè)低電平,而當(dāng)沒有物體擋在中間時(shí)則輸出為高電平,從而形成一個(gè)脈沖。</p><p><b>  方案二:</b></p><p>  利用編碼器對(duì)車輪的圈數(shù)進(jìn)行測(cè)量。將旋轉(zhuǎn)編碼器安裝在車軸上,這樣每當(dāng)車輪轉(zhuǎn)過一定的距離編碼器就會(huì)發(fā)出一個(gè)脈沖。利用脈沖數(shù)對(duì)里程進(jìn)行測(cè)量。采用</

10、p><p>  紅外光電傳感器,進(jìn)行非接觸式檢測(cè)。當(dāng)有物體擋在紅外光電發(fā)光二極管和高靈敏度的光電晶體管之間時(shí),傳感器將會(huì)輸出一個(gè)低電平,而當(dāng)沒有物體擋在中間時(shí)則輸出為高電平,從而形成一個(gè)脈沖。</p><p><b>  方案三</b></p><p>  利用霍爾型非接觸式轉(zhuǎn)速傳感器對(duì)里程進(jìn)行測(cè)量。將霍爾元件安裝在車前叉的一側(cè),在輪圈側(cè)面貼一個(gè)磁

11、片。當(dāng)磁片經(jīng)過霍爾元件時(shí),霍爾元件輸出端的電壓發(fā)生變化產(chǎn)生脈沖,單片機(jī)根據(jù)脈沖數(shù)計(jì)算里程。</p><p>  光敏電阻對(duì)光特別敏感,當(dāng)白天行駛時(shí),外界光源將導(dǎo)致光敏電阻發(fā)出錯(cuò)誤信號(hào);光敏電阻對(duì)環(huán)境的要求相當(dāng)高,如果光敏電阻或發(fā)光二極管被泥沙或灰塵所覆蓋,光敏電阻就不能再進(jìn)行準(zhǔn)確測(cè)量;在霧天和雨天光敏電阻的測(cè)量的效果也不好。而編碼器必須安裝在車軸上,安裝較為復(fù)雜,這樣就會(huì)給用戶帶來很多不便?;魻栐坏皇芴鞖獾?/p>

12、影響,即使被泥沙或灰塵覆蓋對(duì)測(cè)量也不會(huì)有影響。而且安裝方便,不受光線、泥水等因素影響的優(yōu)點(diǎn)。 </p><p>  故本設(shè)計(jì)采用方案三。</p><p>  3.系統(tǒng)硬件電路的分析與設(shè)計(jì)</p><p>  3.1 總體思路:</

13、p><p>  假定輪圈的周長為L,在輪圈上安裝m個(gè)永久磁鐵,則測(cè)得的里程值最大誤差為L/m。經(jīng)綜合分析,本設(shè)計(jì)中取m=1。當(dāng)輪子每轉(zhuǎn)一圈,通過開關(guān)型霍爾元件傳感器采集到一個(gè)脈沖信號(hào),并從引腳P3.4 計(jì)數(shù)器T0端輸入,傳感器每獲取一個(gè)脈沖信號(hào)即對(duì)系統(tǒng)提供一次計(jì)數(shù)中斷。每秒鐘所獲取的中斷數(shù)目再乘以輪圈周長即為速度v,在時(shí)間t內(nèi)走過的總路程s為t個(gè)v的總和。當(dāng)速度鍵按下時(shí),LED切換顯示當(dāng)前速度v,速度指示燈亮;若自行

14、車超速,系統(tǒng)發(fā)出報(bào)警提示,指示燈閃爍;當(dāng)時(shí)間鍵按下時(shí),LED切換顯示當(dāng)前所用時(shí)間,時(shí)間指示燈亮。當(dāng)清零鍵按下時(shí),系統(tǒng)自動(dòng)重新開始計(jì)數(shù)。沒有任何按鍵操作時(shí),里程指示燈亮,數(shù)碼管顯示里程值。</p><p>  3.2 系統(tǒng)電路框圖</p><p>  通過理論的綜合分析和論證,將硬件分為下列幾部分:脈沖信號(hào)的采集,電源系統(tǒng)的設(shè)計(jì),按鍵開關(guān)切換控制,LED顯示及驅(qū)動(dòng),單片機(jī)最小系統(tǒng),提示電路等

15、,方框圖如圖1所示。</p><p><b>  圖1 系統(tǒng)方框圖</b></p><p>  3.3脈沖信號(hào)的采集</p><p>  3.3.1基本原理(霍爾效應(yīng))</p><p>  如圖2所示,在一塊通電的半導(dǎo)體薄片上,加上和片子表面垂直的磁場(chǎng)B,在薄片的橫向兩側(cè)會(huì)出現(xiàn)一個(gè)電壓,圖中的VH,這種現(xiàn)象就是霍爾效應(yīng)

16、,是由科學(xué)家愛德文·霍爾在1879年發(fā)現(xiàn)的。VH稱為霍爾電壓。</p><p>  這種現(xiàn)象的產(chǎn)生,是因?yàn)橥姲雽?dǎo)體片中的載流子在磁場(chǎng)產(chǎn)生的洛侖茲力的作用下,分別向片子橫向兩側(cè)偏轉(zhuǎn)和積聚,因而形成一個(gè)電場(chǎng),稱作霍爾電場(chǎng)?;魻栯妶?chǎng)產(chǎn)生的電場(chǎng)力和洛侖茲力相反,它阻礙載流子繼續(xù)堆積,直到霍爾電場(chǎng)力和洛侖茲力相等。這時(shí),片子兩側(cè)建立起一個(gè)穩(wěn)定的電壓,這就是霍爾電壓。</p><p>&l

17、t;b>  圖2 霍爾效應(yīng)</b></p><p>  3.3.2 信號(hào)預(yù)處理電路</p><p>  如圖3所示,系統(tǒng)的信號(hào)預(yù)處理電路由二級(jí)電路構(gòu)成,第一級(jí)是由開關(guān)三極管組成的零偏置放大器,采用開關(guān)三極管可以保證放大器具有良好的高頻響應(yīng)。當(dāng)輸入信號(hào)為零或負(fù)電壓時(shí),三極管截止,電路輸出高電平;而當(dāng)輸入信號(hào)為正電壓時(shí),三極管導(dǎo)通,此時(shí)輸出電壓隨著輸入電壓的上升而下降,這使得

18、速度里程表既可以測(cè)量任意方波信號(hào)的頻率,也可以測(cè)量正弦波信號(hào)的頻率。由于放大器的放大功能降低了對(duì)待測(cè)信號(hào)的幅度要求,因此,系統(tǒng)能對(duì)任意大于0.5V的正弦波和脈沖信號(hào)進(jìn)行測(cè)量。預(yù)處理電路的第二級(jí)采用帶施密特觸發(fā)器的反相器DM74LS14來把放大器生成的單相脈沖轉(zhuǎn)換成與COMS電平相兼容的方波信號(hào)(如圖4所示),同時(shí)將輸出信號(hào)加到單片機(jī)的P3.4口上。</p><p>  利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反饋?zhàn)饔?

19、可以把邊沿變化緩慢的周期性信號(hào)變換為邊沿很陡的矩形脈沖信號(hào)。輸入的信號(hào)只要幅度大于VT+,即可在施密特觸發(fā)器的輸出端得到同等頻率的矩形脈沖信號(hào)。</p><p>  從傳感器得到的矩形脈沖經(jīng)傳輸后往往發(fā)生波形畸變。當(dāng)傳輸線上的電容較大時(shí),波形的上升沿將明顯變壞;當(dāng)傳輸線較長,而且接受端的阻抗與傳輸線的阻抗不匹配時(shí),在波形的上升沿和下降沿將產(chǎn)生振蕩現(xiàn)象;當(dāng)其他脈沖信號(hào)通過導(dǎo)線間的分布電容或公共電源線疊加到矩形脈沖信

20、號(hào)時(shí),信號(hào)上將出現(xiàn)附加的噪聲。無論出現(xiàn)上述的那一種情況,都可以通過用施密特反相觸發(fā)器整形而得到比較理想的矩形脈沖波形。只要施密特觸發(fā)器的VT+和VT-設(shè)置得合適,均能受到滿意的整形效果。</p><p><b>  3.4電源電路 </b></p><p>  方案一:采用自動(dòng)充電電路</p><p>  直流電源用于產(chǎn)生+ 5 V 電壓,電路

21、如圖5 所示。整個(gè)電源由2 部分組成。</p><p><b>  圖5 電源電路</b></p><p>  這種充電器具有自動(dòng)控制充電電流的功能,蓄電池充足后即自動(dòng)關(guān)閉,無需看管。</p><p>  磨電機(jī)與車胎摩擦產(chǎn)生電壓為6 V、電流為0. 5 A 的交流電,經(jīng)整流橋D1~D4 整流后得到7. 2 V 直流電壓,經(jīng)限流電阻R1 、可

22、控硅SCR 到被充蓄電池。SCR 導(dǎo)通時(shí),充電電流IC 可由下式估算</p><p>  IC ≈ ( UDC - UB) RC</p><p>  式中,UDC為整流橋輸出直流電壓; UB 為蓄電池電壓。</p><p>  觸發(fā)器的電路如圖6所示。該觸發(fā)器用一只單結(jié)晶體管BT33C ,它的發(fā)射極E 從R2 (15 K、1/ 4 W) 、R3(15 kΩ、1/ 4

23、 W) 組成的分壓器上取得一個(gè)整定電壓UE。由于W 點(diǎn)上的電壓由穩(wěn)壓管DZ(2CW7F) 穩(wěn)住,因此UE 不隨蓄電池的電壓波動(dòng),而BT33 的B1 極和B2 極則是分別經(jīng)脈沖變壓器TB、R5 (110 ( 、1/ 4W) 接到蓄電池的兩端,所以VBB將隨蓄電池的電壓變化而變化。當(dāng)UE > 0. 6 +ηVBB時(shí)才會(huì)觸發(fā)。當(dāng)蓄電池充足時(shí),若VBB升高,不再滿足觸發(fā)條件,使觸發(fā)停止;當(dāng)蓄電池電壓降低時(shí),VBB下降,滿足上述不等式,則觸

24、發(fā)器觸發(fā),SCR 導(dǎo)通,蓄電池再行充電,從而達(dá)到自動(dòng)充電的目的。</p><p>  圖6 觸發(fā)器電路圖</p><p>  方案二:采用9V直流電源供電,經(jīng)穩(wěn)壓電路得到+5V直流電壓如圖7所示</p><p>  圖7 +5V電源電路</p><p>  方案二電路簡單,性能穩(wěn)定,較容易實(shí)現(xiàn),故本設(shè)計(jì)選擇方案二</p>&l

25、t;p>  3.5按鍵開關(guān)切換控制</p><p>  圖8 按鍵開關(guān)及復(fù)位切換電路</p><p>  3.6 LED顯示及驅(qū)動(dòng) 方案一、數(shù)碼管LED顯示信息。利用4個(gè)數(shù)碼管動(dòng)態(tài)顯示數(shù)字信息,并用3個(gè)發(fā)光二極管分別指示顯示量的內(nèi)容和單位。例如數(shù)碼管顯示0007,并且里程指示燈亮,表示自行車行走的里程為7m,本系統(tǒng)一次所能顯示的最大里程為9999m,若超出10km則再從000

26、0m計(jì)起;若速度指示燈亮,表示當(dāng)前的速度為7m/s。若時(shí)間指示燈亮,此時(shí)顯示器顯示的是時(shí)間。 方案二、液晶顯示器顯示信息。利用低功耗LCD液晶在顯屏上切換顯示里程、速度、時(shí)間的數(shù)字信息。并用3個(gè)發(fā)光二極管分別指示顯示量的內(nèi)容和單位。 本設(shè)計(jì)選擇方案一。如圖9:</p><p><b>  圖9顯示部分電路</b></p><p>  3.7單片機(jī)最小系

27、統(tǒng)</p><p>  使用最常規(guī)的AT89C51。電路也是最常規(guī)的最小系統(tǒng)(如圖10)。主要是晶振,電源,地,上電復(fù)位,還有一些外接I/O口。</p><p>  在這里因該把晶振時(shí)鐘電路具體說明一下,外部晶振以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對(duì)外接電容的值雖然沒有直接要求,但電容的大小多少回影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和穩(wěn)定性。外接晶振時(shí)

28、,C1和C2通常選擇30PF,晶振采用12MHZ。</p><p>  圖10 AT89C51系列最小系統(tǒng)</p><p><b>  3.8提示報(bào)警電路</b></p><p>  當(dāng)自行車超速行駛時(shí),P3.7輸出信號(hào)驅(qū)動(dòng)蜂鳴器發(fā)出報(bào)警聲音。P1.7口輸出信號(hào)驅(qū)動(dòng)發(fā)光二極管發(fā)出光報(bào)警。</p><p>  圖11 超速

29、報(bào)警電路 </p><p>  4.系統(tǒng)軟件主要程序的設(shè)計(jì)</p><p>  4.1 系統(tǒng)工作過程</p><p>  本系統(tǒng)采用AT89C51單片機(jī)作為系統(tǒng)核心,采用霍爾元件提供脈沖信號(hào)。LED顯示器采用動(dòng)態(tài)方式顯示,P1.0、P1.1、P1.2、P1.6用于數(shù)碼管的選片控制。P1.3、P1.5用于74LS164的數(shù)據(jù)和時(shí)鐘的輸入,并行驅(qū)動(dòng)4位共陰數(shù)碼管。P1

30、.7、P3.0、P3.1分別用于速度、時(shí)間、里程指示燈控制,當(dāng)顯示里程時(shí)P3.1=1,LEDs亮;當(dāng)按下keyv 即INT0中斷時(shí),LED切換顯示當(dāng)前速度,并LEDv亮;當(dāng)按下keyt 即INT1中斷時(shí),LED顯示所用時(shí)間,并LEDt亮。P3.7用于蜂鳴器的提示音驅(qū)動(dòng)控制輸出。T0作計(jì)數(shù)器使用,用于對(duì)輪子圈數(shù)脈沖的計(jì)數(shù)輸入。T1用作定時(shí)器,精確定時(shí)1秒鐘。若每秒讀取輪圈的脈沖數(shù)為n,再乘以輪圈周長L,即得瞬時(shí)速度值v,當(dāng)速度v 超過設(shè)定

31、值時(shí),即自行車超速,P1.7輸出報(bào)警提示閃爍信號(hào),同時(shí)P3.7輸出蜂鳴器報(bào)警提示信號(hào),自行車當(dāng)前的速度值v可用下面式子計(jì)算:</p><p>  v = n L(m/s)</p><p>  當(dāng)自行車行走時(shí)間為t秒,系統(tǒng)將獲取到n1+n2+n3+……+nt個(gè)脈沖信號(hào),則自行車行走的里程s為:</p><p>  s =(n1+n2+n3+……+nt)L = v1+v

32、2+v3+……+vt</p><p>  當(dāng)key rst按下時(shí),系統(tǒng)自動(dòng)重新開始計(jì)數(shù)。</p><p>  4.2系統(tǒng)內(nèi)存的規(guī)劃:</p><p>  由于本系統(tǒng)處理功能較多,因而一部分內(nèi)存單元用于特定的用處,其主要內(nèi)存單元及用處如下:</p><p>  21H:存放定時(shí)1s的計(jì)數(shù)初值</p><p>  22H-

33、24H:存放自行車所用的時(shí)間數(shù);</p><p>  25H-26H:二進(jìn)制轉(zhuǎn)十進(jìn)制單元;</p><p>  30H-33H: 顯示緩沖單元;</p><p>  42H: 存放自行車瞬時(shí)速度值;</p><p>  47H-48H:存放自行車?yán)锍讨担?lt;/p><p><b>  4.3初始化程序:<

34、/b></p><p>  本系統(tǒng)初始化程序中,主要完成:上電穩(wěn)定;規(guī)劃優(yōu)先級(jí)別IP,其優(yōu)先順序?yàn)椋河?jì)數(shù)器T0、定時(shí)器T1、中斷INT0、中斷INT1;T0設(shè)為外部控制計(jì)數(shù)器,工作模式為2;T1設(shè)為定時(shí)器工作方式,工作模式為1,并給TL0、TH0,TL1、TH1賦初值;將部分內(nèi)存單元清零;允許INT0、INT1、T1中斷;開計(jì)數(shù)器、定時(shí)器等。</p><p><b>  4

35、.4主程序</b></p><p>  主程序顯示里程,其流程圖如圖12所示:</p><p><b>  圖12主程序流程圖</b></p><p><b>  4.5中斷子程序</b></p><p>  由INT0、INT1輸入的時(shí)間、速度中斷顯示程序,定時(shí)器T1每秒脈沖數(shù)處理中斷

36、程序。時(shí)間顯示程序,如圖13所示;速度顯示程序,如圖14所示;定時(shí)器中斷程序如圖15所示。</p><p>  圖13 時(shí)間顯示程序</p><p>  圖14 速度顯示程序</p><p>  圖15 定時(shí)器中斷程序</p><p><b>  4.6源程序</b></p><p>  ;程序名

37、: 自行車?yán)锍趟俣缺沓绦?lt;/p><p>  ;Speed/Mile For Bicycle Program Writing By ZhengXinhua </p><p>  ;Electronics Science Department HuiZhou University GD</p><p>  ;****************************

38、**********************</p><p>  XSDAT BIT P1.3 </p><p>  XSCLK BIT P1.5</p><p>  GW BIT P1.6</p><p>  SW BIT P1.2</p><p>  BW BIT P1.1</p>

39、<p>  QW BIT P1.0</p><p>  bz bit 00h ;秒閃動(dòng)標(biāo)志</p><p>  SJGW EQU 30H </p><p>  SJSW EQU 31H</p><p>  SJBW EQU 32H </p><p>

40、  SJQW EQU 33H</p><p>  TIME EQU 21H </p><p>  SEC EQU 22H ;秒計(jì)數(shù)器</p><p>  MIN EQU 23H ;分計(jì)數(shù)器</p><p>  HOUR EQU 24H ;時(shí)計(jì)數(shù)器</p>

41、<p>  TEMPL EQU 25H ;低位入口</p><p>  TEMPH EQU 26H ;高位入口</p><p>  ;--程序入口-----------------------</p><p><b>  ORG 0000H</b></p><p>  AJMP

42、 MAIN </p><p><b>  ORG 0003H</b></p><p>  AJMP INTR0 ;時(shí)間顯示入口</p><p>  ORG 0013H </p><p>  AJMP INTR1 ;速度顯示入口</p><p>  ORG 001BH

43、 </p><p>  AJMP TIMER1 ;定時(shí)器T1 50MS中斷 </p><p>  ;初始化********************************************</p><p>  CLEARMEN: MOV SP,#65H</p><p>  MOV R7,#100 ;上電穩(wěn)定</p

44、><p><b>  DJNZ R7,$</b></p><p>  ACALL SOUND ;蜂鳴提示一聲 </p><p>  MOV P1,#4FH </p><p>  MOV IP,#0AH</p><p>  MOV TCON,#05H</p>&l

45、t;p>  MOV 42H,#0</p><p>  MOV 47H,#0</p><p>  MOV 48H,#0</p><p>  MOV SEC,#0</p><p>  MOV MIN,#0 </p><p>  MOV HOUR,#0 ;清時(shí)間為0</p>&l

46、t;p>  MOV TMOD,#16H ;初始化,T0為計(jì)數(shù)器,T1為定時(shí)器</p><p>  MOV TL0,#00H</p><p>  MOV TH0,#00H</p><p>  MOV TL1,#0B0H</p><p>  MOV TH1,#3CH ;50MS定時(shí)初值(12M時(shí))</p>

47、<p>  SETB TR1 ;啟動(dòng)定時(shí)器T1</p><p>  SETB TR0 ;啟動(dòng)計(jì)數(shù)器T0</p><p>  MOV IE,#8DH ;開中斷</p><p>  MAIN : ACALL CLEARMEN</p><p>  LOOP: SETB P3.1 ;顯

48、示里程</p><p><b>  CLR P3.0</b></p><p><b>  CLR P1.7 </b></p><p>  MOV TEMPL,47H </p><p>  MOV TEMPH,48H </p><p>  ACALL T2_10L

49、</p><p>  ACALL T2_10H</p><p>  LCALL DISPLAY ;顯示</p><p>  LJMP LOOP </p><p><b>  ;二進(jìn)制轉(zhuǎn)十進(jìn)制</b></p><p>  T2_10L: MOV A,TEMPL ;

50、賦低位</p><p><b>  MOV B,#10</b></p><p>  DIV AB ;10進(jìn)制轉(zhuǎn)換</p><p>  MOV SJSW,A ;得到十位</p><p>  MOV SJGW,B ;得到個(gè)位 </p><p>&

51、lt;b>  RET; </b></p><p>  T2_10H: MOV A,TEMPH ;賦高位</p><p><b>  MOV B,#10</b></p><p>  DIV AB ;10進(jìn)制轉(zhuǎn)換</p><p>  MOV SJQW,A

52、 ;得到千位</p><p>  MOV SJBW,B ;得到百位 </p><p><b>  RET;</b></p><p>  ;T0 50MS中斷==對(duì)應(yīng)12MHZ=====================================</p><p>  TIMER1: PUS

53、H ACC</p><p><b>  INC TIME</b></p><p>  MOV A,TIME</p><p>  CJNE A,#20,T1EXIT ;20個(gè)50MS=1S</p><p>  MOV TIME,#0</p><p>  MOV A,TL0;</p>

54、<p>  MOV TL0,#00H</p><p>  MOV TH0,#00H</p><p><b>  RL A</b></p><p><b>  MOV 42H,A</b></p><p>  MOV A,#0AH ;設(shè)定超速值</p><p>

55、  SUBB A,42H</p><p>  JNC NORMAL ;不為1則正常,超速則往下</p><p>  SETB P1.7 ;超速報(bào)警聲光提示</p><p>  ACALL DISPLAYV </p><p><b>  MOV R7,#2</b></p><p&g

56、t;  WARING: MOV R6,#50 </p><p>  WARING1: ACALL DISPLAY</p><p>  DJNZ R6,WARING1</p><p><b>  CPL P1.7</b></p><p><b>  SETB P3.7</b></p>

57、<p>  DJNZ R7,WARING</p><p><b>  CLR P3.7 </b></p><p>  NORMAL:MOV A,42H</p><p><b>  ADD A,47H</b></p><p>  MOV 47H,A;</p><p&

58、gt;  MOV A,#63H</p><p>  SUBB A,47H</p><p>  JNC ADDOUT ;未滿則轉(zhuǎn)</p><p>  MOV 47H,#00</p><p><b>  INC 48H</b></p><p>  MOV A,#64H</p&

59、gt;<p>  SUBB A,48H</p><p>  JNC ADDOUT</p><p>  MOV 48H,#00</p><p>  ACALL SOUND ;蜂鳴提示一聲</p><p>  ADDOUT:INC SEC ;+1秒</p><p&g

60、t;<b>  MOV A,SEC</b></p><p>  CJNE A,#60,T1EXIT ;60S=1MIN</p><p>  MOV SEC,#0</p><p>  INC MIN ;+1分</p><p><b>  MOV A,MIN</b&

61、gt;</p><p>  CJNE A,#60,T1EXIT</p><p>  MOV MIN,#0</p><p><b>  INC HOUR</b></p><p>  MOV A,HOUR ;+1時(shí)</p><p>  CJNE A,#24,T1EXIT<

62、/p><p>  MOV HOUR,#0</p><p>  T1EXIT: MOV TL1,#0B0H</p><p>  MOV TH1,#3CH ;重裝50MS定時(shí)</p><p><b>  POP ACC</b></p><p><b>  RETI<

63、;/b></p><p>  SOUND: SETB P3.7</p><p>  ACALL DS1MS</p><p><b>  CLR P3.7</b></p><p><b>  RET</b></p><p>  INTR0: PUSH ACC

64、 ;顯示時(shí)間</p><p><b>  SETB P3.0</b></p><p><b>  CLR P3.1</b></p><p><b>  CLR P1.7</b></p><p>  SETB bz </p><p>

65、;  MOV TEMPL,MIN </p><p>  MOV TEMPH,HOUR </p><p>  ACALL T2_10L</p><p>  ACALL T2_10H</p><p><b>  MOV R7,#2</b></p><p>  INTR00L:MOV R6,#6

66、0 </p><p>  INTR0L:ACALL DISPLAY</p><p>  DJNZ R6,INTR0L</p><p><b>  CLR bz</b></p><p><b>  SETB P3.7</b></p><p>  DJNZ R7,INTR0

67、0L</p><p><b>  CLR P3.7</b></p><p><b>  SETB bz</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  I

68、NTR1: PUSH ACC;顯示速度</p><p><b>  SETB P1.7</b></p><p>  ACALL DISPLAYV</p><p><b>  MOV R7,#2</b></p><p>  INTR11L:MOV R6,#60 </p>&l

69、t;p>  INTR1L:ACALL DISPLAY</p><p>  DJNZ R6,INTR1L</p><p><b>  SETB P3.7</b></p><p>  DJNZ R7,INTR11L</p><p><b>  CLR P3.7</b></p>&l

70、t;p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DISPLAYV:CLR P3.0</p><p><b>  CLR P3.1</b></p><p>  MOV TEMPL,42H </p&g

71、t;<p>  MOV TEMPH,#00 </p><p>  ACALL T2_10L</p><p>  ACALL T2_10H</p><p><b>  RET</b></p><p>  ;*********************************************&l

72、t;/p><p>  ;74164顯示程序,使用RS1=1,RS0=0的1區(qū) 2005/4/12</p><p>  DISPLAY: PUSH ACC ;保存ACC</p><p><b>  PUSH PSW</b></p><p><b>  CLR RS1</b>&l

73、t;/p><p>  SETB RS0 ;使用第一區(qū)工作寄存器 </p><p>  MOV DPTR,#XSTAB </p><p>  MOV A,SJGW ;取得數(shù)據(jù)</p><p>  MOVC A,@A+DPTR ;提取字模</p><p>  ACA

74、LL DSOUT ;調(diào)用送出子程序</p><p><b>  CLR GW</b></p><p>  ACALL DS1MS ;調(diào)用顯示1MS延時(shí)程序</p><p><b>  SETB GW</b></p><p>  MOV A,SJSW</p&g

75、t;<p>  MOVC A,@A+DPTR ;提取字模</p><p>  ACALL DSOUT ;送出</p><p><b>  CLR SW</b></p><p>  ACALL DS1MS ;顯示1MS </p><p>  SETB SW

76、 </p><p>  MOV A,SJBW</p><p>  MOVC A,@A+DPTR ;提取字模</p><p>  ACALL DSOUT ;送出</p><p><b>  CLR BW</b></p><p>  ACALL DS1MS

77、 ;顯示1MS </p><p><b>  SETB BW </b></p><p>  ;--------------------------------</p><p>  JB bz,bzover ;若標(biāo)志=1,不顯示小數(shù)點(diǎn)</p><p>  MOV A,#80H ;

78、顯示小數(shù)點(diǎn)</p><p>  ACALL DSOUT</p><p><b>  CLR BW</b></p><p>  ACALL DS1MS</p><p>  SETB BW </p><p>  ;--------------------------------</p>

79、;<p>  bzover: MOV A,SJQW</p><p>  MOVC A,@A+DPTR ;提取字模</p><p>  ACALL DSOUT ;送出</p><p><b>  CLR QW</b></p><p>  ACALL DS1MS

80、 ;顯示1MS</p><p><b>  SETB QW</b></p><p><b>  POP PSW</b></p><p>  POP ACC ;出棧</p><p>  RET ;返回調(diào)用</p><

81、p>  ;---送出循環(huán)----------</p><p>  DSOUT: MOV R0,#8 ;傳送一個(gè)字節(jié)8位</p><p>  DSLOOP: RLC A ;左移</p><p>  MOV XSDAT,C ;送數(shù)據(jù)到數(shù)據(jù)口</p><p&g

82、t;  SETB XSCLK ;送一時(shí)鐘</p><p><b>  CLR XSCLK</b></p><p>  DJNZ R0,DSLOOP</p><p>  RET </p><p>  ;---顯示延時(shí)---------- </p><p>  DS

83、1MS: MOV R1,#10</p><p>  DS1LO: MOV R2,#100</p><p><b>  DJNZ R2,$</b></p><p>  DJNZ R1,DS1LO</p><p>  RET ;延時(shí)返回</p><p>

84、;  ;---------------------------------------------------------</p><p><b>  ;顯示字表(共陰)</b></p><p>  XSTAB: DB 3FH,06H,5BH,4FH ;"0","1","2","3&q

85、uot;</p><p>  DB 66H,6DH,7DH,07H ;"4","5","6","7"</p><p>  DB 7FH,6FH ;"8","9"</p><p>  ;****************

86、************************************</p><p><b>  END</b></p><p><b>  5.硬件的調(diào)試</b></p><p>  本系統(tǒng)速度、時(shí)間的顯示延時(shí)時(shí)間為2秒鐘,閃過之后,又繼續(xù)顯示當(dāng)前里程,切換顯示時(shí)蜂鳴器會(huì)提示一聲。</p><p&

87、gt;  本系統(tǒng)所用元件少,耗電小,采用1節(jié)9V的電池經(jīng)穩(wěn)壓后5V供電,系統(tǒng)工作總電流僅39.2mA,切換顯示蜂鳴提示時(shí),系統(tǒng)工作總電流為45.8 mA。</p><p>  系統(tǒng)的誤差分析:情況一、當(dāng)輪圈起步時(shí),磁體剛好在傳感器后面,即自行車轉(zhuǎn)一圈,系統(tǒng)才開始記第一個(gè)脈沖數(shù),若自行車停止時(shí),磁體剛好還未到傳感器,即系統(tǒng)未記到最后一個(gè)脈沖,此時(shí)系統(tǒng)的誤差最大,為輪圈的周長L;若停止時(shí),系統(tǒng)剛好記到最后一個(gè)脈沖,此

88、時(shí)系統(tǒng)誤差最小。情況二、當(dāng)輪圈起步時(shí),磁體剛好在傳感器前面,即自行車一起步系統(tǒng)就記下一個(gè)脈沖,若自行車停止時(shí),磁體剛好在傳感器的前面,此時(shí)系統(tǒng)誤差同樣最大,為輪圈的周長L;若停止時(shí),磁體剛好在傳感器的后面,此時(shí)系統(tǒng)誤差最小。在本系統(tǒng)中,輪圈周長L=2m,輪圈上裝有的磁體數(shù)m=1,故里程最大誤差為:</p><p>  U(s)=L/m=2m/1=2m</p><p><b>  

89、速度的最大誤差為:</b></p><p>  U(v)=( (U(s)/L)2 +(U(t)/t)2 )1/2 =(2 /2) =1m/s</p><p>  改善誤差的方法有:可將磁體數(shù)m盡可能取大。</p><p><b>  6.主要器件介紹</b></p><p><b>  一、AT8

90、9C51</b></p><p>  AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4Kbytes的可反復(fù)檫寫的FLASH只讀程序存儲(chǔ)器和128bytes的隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令,片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可為您提供許多高性價(jià)比的

91、應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><p><b>  1)主要性能參數(shù):</b></p><p>  ●與MCS-51指令系統(tǒng)完全兼容</p><p>  ●4K字節(jié)可重新檫寫寫FLASH閃速存儲(chǔ)器</p><p>  ●1000次檫寫周期</p><p><b>  ●全靜

92、態(tài)工作</b></p><p>  ●三級(jí)加密程序存儲(chǔ)器</p><p>  ●28*8字節(jié)內(nèi)部RAM</p><p>  ●32個(gè)可編程I/O口線</p><p>  ●2個(gè)16位定時(shí)/計(jì)數(shù)器</p><p><b>  ●6個(gè)中斷源</b></p><p>

93、  ●可編程串行UART通道</p><p>  ●低功耗空閑和掉電模式</p><p><b>  2)功能特性概述</b></p><p>  AT89C51提供以下標(biāo)準(zhǔn)功能:4K字節(jié)FLASH閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)蹺蹊,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同

94、時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,傳行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作知道下一個(gè)硬件復(fù)位。</p><p><b>  二、74LS14</b></p><p>  74LS164的管腳圖見圖16。74LS16

95、4為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個(gè)data引腳按邏輯與運(yùn)算規(guī)律輸入信號(hào),公一個(gè)輸入信號(hào)時(shí)可并接。CP(第8腳)為時(shí)鐘輸入端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到CP(Clk)端時(shí),移位寄存器移一位,8個(gè)時(shí)鐘脈沖過后,8位二進(jìn)制數(shù)全部移入74LS164中。R(第9腳)為復(fù)位端,當(dāng)R=0時(shí),移位寄存器各位復(fù)0,只有當(dāng)R=1時(shí),時(shí)鐘脈沖才起作用。Q1…Q8(第3-6和10-13引腳)并

96、行輸出端分別接LED顯示器的hg---a各段對(duì)應(yīng)的引腳上。在74LS164獲得時(shí)鐘脈沖的瞬間(再講清楚點(diǎn),是在脈沖的沿),如果數(shù)據(jù)輸入端(第1,2引腳)是高電平,則就會(huì)有一個(gè)1進(jìn)入到74LS164的內(nèi)部,如果數(shù)據(jù)輸入端是低電平,則就會(huì)有一個(gè)0進(jìn)入其內(nèi)部。</p><p>  圖16 74LS164的管腳圖</p><p><b>  邏輯及封裝圖</b></p

97、><p><b>  極限值</b></p><p>  電源電壓………………………7V</p><p>  輸入電壓………………………5.5V</p><p>  工作環(huán)境溫度…………………-0~70℃</p><p><b>  真值表</b></p><

98、p>  H-高電平 L-低電平 X-任意電平 ↑低到高電平跳變</p><p>  Qao,Qbo,Qho-規(guī)定的穩(wěn)態(tài)條件建立前的電平</p><p>  Qan,Qgn-時(shí)鐘最近的↑前的電平。</p><p><b>  三、LED數(shù)碼管</b></p><p>  本設(shè)計(jì)所用的LED數(shù)碼管的型號(hào)為J

99、M—S05641AH,其中A表示共陰型,H表示高亮度,其管腳圖如圖17所示。</p><p>  圖17 LED數(shù)碼管管腳圖</p><p><b>  8.參考文獻(xiàn):</b></p><p>  [1] 崔華、蔡炎光編著:《單片機(jī)實(shí)用技術(shù)》,清華大學(xué)出版社,2004-10 </p><p>  [2] 盛琳陽

100、、孫菊江:《微型計(jì)算機(jī)原理》,西安電子科技大學(xué)出版社,2003-1</p><p>  [3] 林伸茂編著:《8051單片機(jī)徹底研究基礎(chǔ)篇》,人民郵電出版社,2004-5</p><p>  [4] 許永和編著:《8051單片機(jī)USB接口程序設(shè)計(jì)(下)》,北京航空航天大學(xué)出版社,2004-8</p><p>  [5] 樓然苗、李光飛編著:《51系列單片

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論