單片機(jī)課程設(shè)計(jì)單片機(jī)汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)單片機(jī)汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)單片機(jī)汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)單片機(jī)汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)單片機(jī)汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

1、單片機(jī)課程設(shè)計(jì)題 目:汽車(chē)轉(zhuǎn)向信號(hào)燈設(shè)計(jì) 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 設(shè)計(jì)時(shí)間: 評(píng)語(yǔ):成績(jī) 目 錄1引言32設(shè)計(jì)方案及原理42.1設(shè)計(jì)方案42.2設(shè)計(jì)原理:52.2.1 開(kāi)關(guān)狀態(tài)檢測(cè)62.2.2 輸出控制62.2.3 定時(shí)器和計(jì)數(shù)器62.2.4 定時(shí)初始化82.2.5 汽車(chē)轉(zhuǎn)向燈顯示92.2.6 汽車(chē)轉(zhuǎn)向燈控制92.2.7 中斷系統(tǒng)103.硬件設(shè)計(jì)103.1 單片機(jī)控制系統(tǒng)電路圖103.1.1汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)框圖103.1.2汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)電路圖123.2 汽車(chē)轉(zhuǎn)向燈控制系統(tǒng)流程圖123.2.1 汽車(chē)轉(zhuǎn)向燈控制系統(tǒng)主程序流程圖123.2.2 中斷服務(wù)程序流程圖

2、133.2.3控制系統(tǒng)鍵功能流程圖144.軟件設(shè)計(jì)144.1 程序流程圖154.2 源程序185總結(jié)206參考文獻(xiàn)22 1引言隨著單片機(jī)的日益發(fā)展,其應(yīng)用也越來(lái)越廣泛,通過(guò)對(duì)“汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)”設(shè)計(jì),可以對(duì)單片機(jī)的知識(shí)得到鞏固和擴(kuò)展。本課程內(nèi)容是設(shè)計(jì)一個(gè)單片機(jī)控制系統(tǒng),在汽車(chē)進(jìn)行左轉(zhuǎn)彎、右轉(zhuǎn)彎、剎車(chē)、合緊急開(kāi)關(guān)、停靠等操作時(shí),實(shí)現(xiàn)對(duì)各種信號(hào)指示燈的控制。本設(shè)計(jì)主要是對(duì)單片機(jī)的并行輸入/輸出口電路的應(yīng)用,通過(guò)i/o口控制發(fā)光二極管的亮滅閃爍,加上一些復(fù)位電路按鍵電路驅(qū)動(dòng)電路來(lái)模擬汽車(chē)尾燈的功能。汽車(chē)在駕駛時(shí)有左轉(zhuǎn)彎、右轉(zhuǎn)彎、剎車(chē)、合緊急開(kāi)關(guān)、停靠等操作。在左轉(zhuǎn)彎或右轉(zhuǎn)彎時(shí),通過(guò)轉(zhuǎn)彎操作桿

3、應(yīng)使左轉(zhuǎn)開(kāi)關(guān)或右轉(zhuǎn)開(kāi)關(guān)合上,從而使左頭燈、儀表板左轉(zhuǎn)彎燈、左尾燈或右頭燈、儀表板右轉(zhuǎn)彎燈、右尾燈閃爍;合緊急開(kāi)關(guān)時(shí)要求前面所述的6個(gè)信號(hào)燈全部閃爍;汽車(chē)剎車(chē)時(shí),兩個(gè)尾燈點(diǎn)亮;如正當(dāng)轉(zhuǎn)彎時(shí)剎車(chē),則轉(zhuǎn)彎時(shí)原應(yīng)閃爍的信號(hào)燈仍應(yīng)閃爍。以上閃爍,都是頻率為1hz的低頻閃爍;在汽車(chē)停靠而??块_(kāi)關(guān)合上時(shí),左頭燈、右頭燈、左尾燈、右尾燈按頻率為10hz的高頻閃爍。閃光器是通過(guò)調(diào)節(jié)鎳鉻絲的拉力和觸點(diǎn)的間隙來(lái)滿足頻率要求的,燈泡功率的大小也會(huì)影響閃爍頻率。因此在更換閃光器或燈泡時(shí)調(diào)整比較困難。同時(shí),系統(tǒng)沒(méi)有故檢測(cè),駕駛員無(wú)法知道車(chē)外的轉(zhuǎn)向燈及示寬燈是否點(diǎn)亮,從而影響行車(chē)安全。到目前為止,我們還沒(méi)有發(fā)現(xiàn)能檢測(cè)燈絲斷

4、這種故障的有效方法。針對(duì)上述問(wèn)題,我們用at89c51單片機(jī)設(shè)計(jì)了一套汽車(chē)信號(hào)燈控制系統(tǒng)。用led產(chǎn)生閃光信號(hào),同時(shí)能自動(dòng)檢測(cè)信號(hào)燈故障。信號(hào)燈燈具的發(fā)展是隨著汽車(chē)制造技術(shù)及電光源技術(shù)的發(fā)展而逐步完善的。它經(jīng)歷了機(jī)油(或煤油)燈、乙炔氣燈到電光源燈的發(fā)展歷程。現(xiàn)代汽車(chē)信號(hào)燈燈具已經(jīng)開(kāi)始使用發(fā)光二極管(led)技術(shù)以及光導(dǎo)技術(shù)。2設(shè)計(jì)方案及原理2.1設(shè)計(jì)方案:如圖2.1所示,汽車(chē)轉(zhuǎn)向燈主要有單片機(jī)、按鍵、復(fù)位、時(shí)鐘、電源、故障檢測(cè)電路、led顯示電路組成最基本的單片機(jī)系統(tǒng)。單片機(jī)本身的功能強(qiáng)大,汽車(chē)轉(zhuǎn)向燈的驅(qū)動(dòng)用單片機(jī)本身的驅(qū)動(dòng)來(lái)驅(qū)動(dòng)。使得單片機(jī)的功能得到充分的運(yùn)用。本方案的故障檢測(cè)電路具有故障

5、監(jiān)控性能,他能提高系統(tǒng)的可靠性。at89c51按鍵電路時(shí)鐘電路復(fù)位電路電源電路led顯示電路故障檢測(cè)電路圖2.1汽車(chē)轉(zhuǎn)向燈控制系統(tǒng)硬件構(gòu)成2.2設(shè)計(jì)原理:由定時(shí)器/計(jì)數(shù)器與中斷系統(tǒng)的聯(lián)合組成控制系統(tǒng)的工作原理。如汽車(chē)上有一個(gè)轉(zhuǎn)彎控制桿,其中有三個(gè)位置:中間位置,汽車(chē)不轉(zhuǎn)彎;向上,汽車(chē)左轉(zhuǎn);向下汽車(chē)右轉(zhuǎn)。轉(zhuǎn)彎時(shí),規(guī)定左右尾燈、左右頭燈儀表板上2個(gè)指示燈相應(yīng)地發(fā)出閃爍信號(hào)。應(yīng)急開(kāi)關(guān)合上時(shí),6個(gè)信號(hào)燈都應(yīng)閃爍。汽車(chē)剎車(chē)時(shí),2個(gè)尾燈發(fā)出不閃爍信號(hào)。如正當(dāng)轉(zhuǎn)彎時(shí)剎車(chē),轉(zhuǎn)彎時(shí)原應(yīng)閃爍的信號(hào)仍應(yīng)閃爍。它們都是頻率為1hz低頻閃爍,在汽車(chē)??慷?块_(kāi)關(guān)合上時(shí),左頭燈、右頭燈、左尾燈、右尾燈按頻率為10hz頻率

6、快速閃爍。任何在下表中未出現(xiàn)的組合,都將出現(xiàn)故障指示燈閃爍,閃爍頻率為10hz。表1 汽車(chē)駕駛操縱與信號(hào)駕駛操作輸出信號(hào)左轉(zhuǎn)彎燈右轉(zhuǎn)彎燈左頭燈右頭燈左尾燈右尾燈左轉(zhuǎn)彎(合上左轉(zhuǎn)彎開(kāi)關(guān))閃爍滅閃爍滅閃爍滅右轉(zhuǎn)彎(合上右轉(zhuǎn)彎開(kāi)關(guān))滅閃爍滅閃爍滅閃爍合緊急開(kāi)關(guān)閃爍閃爍閃爍閃爍閃爍閃爍剎車(chē)(合剎車(chē)開(kāi)關(guān))滅滅滅滅亮亮左轉(zhuǎn)彎時(shí)剎車(chē)閃爍滅閃爍滅閃爍亮右轉(zhuǎn)彎時(shí)剎車(chē)滅閃爍滅閃爍亮閃爍剎車(chē)時(shí)合緊急開(kāi)關(guān)閃爍閃爍閃爍閃爍亮亮左轉(zhuǎn)彎時(shí)剎車(chē)合緊急開(kāi)關(guān)閃爍閃爍閃爍閃爍閃爍亮右轉(zhuǎn)彎時(shí)剎車(chē)合緊急開(kāi)關(guān)閃爍閃爍閃爍閃爍亮閃爍停靠(合??块_(kāi)關(guān))滅滅閃爍(10hz)閃爍(10hz)閃爍(10hz)閃爍(10hz)2.2.1 開(kāi)關(guān)狀態(tài)檢

7、測(cè)開(kāi)關(guān)狀態(tài)檢測(cè),對(duì)at89c51來(lái)說(shuō)是輸入關(guān)系,可輪流檢測(cè)每個(gè)開(kāi)關(guān)狀態(tài),以每個(gè)開(kāi)關(guān)的狀態(tài)讓相應(yīng)的發(fā)光二極管指示,采用jnb p1.x,rel 指令來(lái)完成;也可以一次性檢測(cè)五路開(kāi)關(guān)狀態(tài),讓它指示,可以用mov a,p1 指令一次把p1 端口的狀態(tài)全部讀入,取低5位的狀態(tài)來(lái)指示。2.2.2 輸出控制以發(fā)光二極管d1d6 來(lái)指示,此設(shè)計(jì)用setb p0.x 和clr p0.x 指令來(lái)完成,也可以用指令mov p0,111xxxxxb 方法來(lái)實(shí)現(xiàn)。2.2.3 定時(shí)器和計(jì)數(shù)器根據(jù)任務(wù)設(shè)計(jì)要求:會(huì)用到定時(shí)器。信號(hào)的控制是定時(shí)器與中斷系統(tǒng)的聯(lián)合使用得以實(shí)現(xiàn)。單片機(jī)的控制系統(tǒng)應(yīng)用中,定時(shí)器是必需的,在汽車(chē)轉(zhuǎn)向

8、燈的控制中也是必不可少。定時(shí)有三種選擇方法。(1)軟件的定時(shí)它是靠執(zhí)行一個(gè)循環(huán)程序以進(jìn)行時(shí)間的延遲。軟件定時(shí)的優(yōu)點(diǎn)是時(shí)間精確,且不需外加硬件電路。但它要增加cpu開(kāi)銷(xiāo),因此軟件定時(shí)的時(shí)間不能太長(zhǎng)。此外,軟件定時(shí)方法有時(shí)候無(wú)法使用。(2)硬件的定時(shí)時(shí)間較長(zhǎng)的定時(shí),常使用硬件電路完成。硬件定時(shí)方法的優(yōu)點(diǎn)是定時(shí)功能全部由硬件電路完成,不需要占cpu的時(shí)間。用元件參數(shù)來(lái)調(diào)節(jié)定時(shí)時(shí)間,這方面使用上不夠靈活方便。(3)可編程定時(shí)器的定時(shí)它是通過(guò)對(duì)系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)來(lái)實(shí)現(xiàn)的。計(jì)數(shù)值由程序設(shè)定,改變計(jì)數(shù)值,同時(shí)也改變了定時(shí)時(shí)間,用起來(lái)既靈活且方便。此外,采用計(jì)數(shù)方法實(shí)現(xiàn)定時(shí),可編程定時(shí)器都兼有計(jì)數(shù)功能,能對(duì)外

9、來(lái)脈沖進(jìn)行計(jì)數(shù)。在at89c51內(nèi)部除了有并行和串行i/o接口外,在單片機(jī)內(nèi)部共有2個(gè)可編程的定時(shí)器和計(jì)數(shù)器,稱(chēng)定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1,這兩個(gè)計(jì)數(shù)器由th0,tl0,th1,tl1兩個(gè)8位的ram單元組成,即每個(gè)計(jì)數(shù)器都是16位的計(jì)數(shù)器,最大的計(jì)數(shù)量時(shí)65536。定時(shí)器/計(jì)數(shù)器計(jì)數(shù)功能和定時(shí)功能:(1)計(jì)數(shù)器功能記數(shù)是指對(duì)外部事件進(jìn)行計(jì)數(shù)。它的發(fā)生以輸入脈沖表示,計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來(lái)的脈沖進(jìn)行計(jì)數(shù)。at89c51芯片有t0(p3.4)和t1(p3.5)兩個(gè)信號(hào)引腳,是這兩個(gè)計(jì)數(shù)器的計(jì)數(shù)輸入端。外部輸入的脈沖在負(fù)跳變時(shí)有效,進(jìn)行計(jì)數(shù)器加1(加法計(jì)數(shù))。at89c51在每個(gè)機(jī)器周期

10、的s5p2拍節(jié)對(duì)外部計(jì)數(shù)脈沖進(jìn)行采樣。前一個(gè)機(jī)器周期采用為高電平,后一個(gè)機(jī)器周期采樣為低電平,是一個(gè)有效的計(jì)數(shù)脈沖。在下一機(jī)器周期的s3p1進(jìn)行計(jì)數(shù)。采樣計(jì)數(shù)脈沖是在2個(gè)機(jī)器周期進(jìn)行的。計(jì)數(shù)脈沖頻率不能高于振蕩脈沖頻率的1/24。(2)定時(shí)器功能實(shí)際也是通過(guò)計(jì)數(shù)器來(lái)實(shí)現(xiàn)的,但此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部,也每個(gè)機(jī)器周期計(jì)數(shù)器加1。一個(gè)機(jī)器周期等于12個(gè)振蕩脈沖周期,因此計(jì)數(shù)頻率為振蕩頻率的1/12。單片機(jī)采用12mhz晶體,計(jì)數(shù)頻率為1mhz。每微妙計(jì)數(shù)器加1。根據(jù)計(jì)數(shù)值計(jì)算出定時(shí)時(shí)間,也可以反過(guò)來(lái)按定時(shí)時(shí)間的要求計(jì)算出計(jì)數(shù)器的預(yù)置值。它是一個(gè)二進(jìn)制的加1計(jì)數(shù)器。在計(jì)數(shù)器計(jì)滿回零時(shí)能自動(dòng)產(chǎn)生

11、溢出中斷請(qǐng)求。則已經(jīng)完成。t1、t2的最大計(jì)數(shù)值65536-1,需65535個(gè)脈沖才能把它們從全“0”狀態(tài)變?yōu)槿?”狀態(tài)。輸一個(gè)脈沖,計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器各位全為1時(shí),再去輸一個(gè)脈沖,計(jì)數(shù)器各位就變?yōu)槿?,發(fā)出溢出信號(hào),使標(biāo)志置1,此時(shí)向cpu申請(qǐng)中斷。具體結(jié)構(gòu)如圖2.2所示:圖2.2 定時(shí)器/記數(shù)器的結(jié)構(gòu)2.2.4 定時(shí)初始化定時(shí)主要與編程有關(guān)。編程對(duì)定時(shí)器控制寄存器(tcon)、工作方式控制寄存器(tmod)和中斷允許控制寄存器(ie)進(jìn)行操作。(1)定時(shí)器控制寄存器(tcon)tcon寄存器既參與中斷控制又參與定時(shí)控制。其中有關(guān)定時(shí)的控制位共有4位:tf0和tf1-記數(shù)溢出標(biāo)志位t

12、r0和tr1-定時(shí)器運(yùn)行控制位tr0(tr1)=0-停止定時(shí)器/計(jì)數(shù)器工作tr0(tr1)=1-啟動(dòng)定時(shí)器/計(jì)數(shù)器工作該位根據(jù)需要以軟件方法使其置“1”或清“0”。(2)中斷允許控制寄存器ie寄存器中與定時(shí)器/計(jì)數(shù)器有關(guān)的位置介紹:ea-中斷允許總控制位et0和et1-定時(shí)/計(jì)數(shù)中斷允許控制位et0(et1)=0 禁止定時(shí)/記數(shù)中斷et0(et1)=1 允許定時(shí)/記數(shù)中斷利用mcs-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)燈閃爍的延時(shí)和故障檢測(cè)。(3)工作方式控制寄存器(tmod)tmod寄存器專(zhuān)用寄存器,設(shè)定兩個(gè)定時(shí)器/計(jì)數(shù)器的工作方式。它的低半字節(jié)定義定時(shí)器/計(jì)數(shù)器0,高半字節(jié)定

13、義定時(shí)器/計(jì)數(shù)器1。各位定義如表2所示:表2 tmod各位定義位序b7b6b5b4b3b2b1b0位符號(hào)gatec/m1m0gatec/m1m0其中:gate-門(mén)控位 gate=0 以運(yùn)行控制位tr啟動(dòng)定時(shí)器 gate=1 以外中斷請(qǐng)求信號(hào)(int1或int0)啟動(dòng)定時(shí)器 c/-定時(shí)方式或計(jì)數(shù)方式選擇位 c/=0 定時(shí)工作方式 c/=1 計(jì)數(shù)工作方式 m1m0-工作方式選擇位 m1m0=00 方式0 m1m0=01 方式1 m1m0=10 方式2 m1m0=11 方式3初值計(jì)算:(1)設(shè)為工作方式0,定時(shí)時(shí)間為30ms,使燈延時(shí)閃爍。若使用定時(shí)器t0,方式1,30ms定時(shí),fosc=12mhz

14、。則初值x滿足(216-x)1=30000x=3553610001010110100008ad0h(2)設(shè)計(jì)中利用定時(shí)器/計(jì)數(shù)器0,一個(gè)軟件計(jì)數(shù)器產(chǎn)生低頻(1hz)閃爍功能。(3)利用定時(shí)器/計(jì)數(shù)器0來(lái)產(chǎn)生為時(shí)30ms的定時(shí)信號(hào),以實(shí)現(xiàn)高頻(30hz)閃爍功能。(4)注意在用工作方式1時(shí),我們必須要重新裝載初值。2.2.5 汽車(chē)轉(zhuǎn)向燈顯示在汽車(chē)轉(zhuǎn)彎或應(yīng)急狀態(tài)下,外部信號(hào)燈和儀表板它們指示燈的閃爍頻率為1hz,稱(chēng)低頻信號(hào)。當(dāng)??块_(kāi)關(guān)合上時(shí),外部信號(hào)燈以10hz頻率閃爍此時(shí)為高頻信號(hào)。2.2.6 汽車(chē)轉(zhuǎn)向燈控制汽車(chē)轉(zhuǎn)彎燈設(shè)計(jì)5個(gè)按鍵控制信號(hào)燈的轉(zhuǎn)向、??俊?yīng)急等。按鍵安排見(jiàn)下:s1鍵為剎車(chē)開(kāi)關(guān);s

15、2鍵為緊急開(kāi)關(guān);s3鍵為停靠開(kāi)關(guān);s4鍵為左轉(zhuǎn)彎開(kāi)關(guān);s5鍵為右轉(zhuǎn)彎開(kāi)關(guān);2.2.7 中斷系統(tǒng)單片機(jī)中斷技術(shù)主要用于實(shí)時(shí)控制,在單片機(jī)上有兩個(gè)引腳,即int0、int1。外部的中斷信號(hào)通過(guò)這兩個(gè)引腳輸入到單片機(jī),和單片機(jī)的定時(shí)器一樣,對(duì)中斷系統(tǒng)的處理需要通過(guò)c51的軟件編程實(shí)現(xiàn)。利用mcs-51系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來(lái)實(shí)現(xiàn)燈閃爍的延時(shí)和故障檢測(cè)。它的重要作用有如下四點(diǎn):第一,高速cpu和低速外設(shè)之間的配合。利用中斷方式進(jìn)行的i/o口操作,在宏觀上可以看成cpu和外設(shè)的并行工作。第二,實(shí)現(xiàn)故障的緊急處理。當(dāng)外設(shè)發(fā)生故障時(shí),可以利用中斷系統(tǒng)請(qǐng)求cpu及時(shí)處理這些故障。第三,可以實(shí)

16、現(xiàn)實(shí)時(shí)控制。3.硬件設(shè)計(jì)3.1 單片機(jī)控制系統(tǒng)電路圖3.1.1汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)框圖汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)電路是由單片機(jī)at89c51、復(fù)位、電源、時(shí)鐘、led顯示電路、故障檢測(cè)電路、按鍵電路構(gòu)成。電源電路給控制相關(guān)電路提供所需電源;復(fù)位電路供上電或按鍵時(shí)復(fù)位用。當(dāng)要求重新啟動(dòng)單片機(jī)或者單片機(jī)處于死循環(huán)時(shí),都可以由此電路來(lái)實(shí)現(xiàn);時(shí)鐘電路用來(lái)產(chǎn)生時(shí)鐘脈沖信號(hào),供工作使用;通過(guò)并行i/o口構(gòu)成鍵盤(pán)和顯示電路,輸入程序,即可實(shí)現(xiàn)汽車(chē)轉(zhuǎn)向燈中各信號(hào)燈的功能操作;系統(tǒng)的可靠性有所提高。汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)框圖如圖3.1所示。at89c51按鍵電路時(shí)鐘電路復(fù)位電路電源電路led顯示電路故障檢測(cè)

17、電路圖3.1 控制系統(tǒng)3.1.2 汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)電路圖汽車(chē)轉(zhuǎn)向燈單片機(jī)控制系統(tǒng)仿真電路如圖3.2所示圖3.2 汽車(chē)轉(zhuǎn)向燈控制仿真電路圖3.2 汽車(chē)轉(zhuǎn)向燈控制系統(tǒng)流程圖3.2.1 汽車(chē)轉(zhuǎn)向燈控制系統(tǒng)主程序流程圖控制系統(tǒng)主程序流程圖如圖3.2.1所示 圖3.2.1 控制系統(tǒng)主程序流程圖3.2.2 中斷服務(wù)程序流程圖中斷服務(wù)的程序流程圖如圖3.2.2所示。圖3.2.2 中斷服務(wù)的程序流程圖3.2.3控制系統(tǒng)鍵功能流程圖鍵的功能程序流程圖如圖3.2.3所示。圖3.2.3 鍵的功能程序流程圖4.軟件設(shè)計(jì)4.1 程序流程圖流程圖如下:(1) 主程序流程圖如圖4.1主程序開(kāi)始初始化p1口(p3)送

18、至a判斷p3口第五位數(shù)據(jù)已確定分支功能結(jié)束圖4.1主程序(2) 子程序流程圖如下圖(4eh)=#0fh#54h送至p1口調(diào)用延時(shí)1s的程序#00h送至p1口調(diào)用延時(shí)1s的程序返回(4eh)=#17h#2ah送至p1口調(diào)用延時(shí)1s的程序#00h送至p1口調(diào)用延時(shí)1s的程序返回圖4.2 表示左轉(zhuǎn) 圖4.3 表示右轉(zhuǎn) (4eh)=#1eh#60h送至p1口返回(4eh)=#1dh#7fh送至p1口調(diào)用延時(shí)1s的程序#00h送至p1口調(diào)用延時(shí)1s的程序返回 圖4.5 表示剎車(chē) 圖4.4 表示緊急(4eh)=#16h#6ah送至p1口調(diào)用延時(shí)1s的程序#40h送至p1口調(diào)用延時(shí)1s的程序返回(4eh)=

19、#0eh#6ah送至p1口調(diào)用延時(shí)1s的程序#40h送至p1口調(diào)用延時(shí)1s的程序返回圖4.6 左轉(zhuǎn)剎車(chē) 圖4.7 右轉(zhuǎn)剎車(chē)(4eh)=#14h#7eh送至p1口調(diào)用延時(shí)1s的程序#40h送至p1口調(diào)用延時(shí)1s的程序返回(4eh)=#1ch#7eh送至p1口調(diào)用延時(shí)1s的程序#60h送至p1口調(diào)用延時(shí)1s的程序返回圖4.8 緊急剎車(chē) 圖4.9 左轉(zhuǎn)緊急剎車(chē)(4eh)=#1bh#66h送至p1口調(diào)用延時(shí)100ms的程序#00h送至p1口調(diào)用延時(shí)100ms的程序返回(4eh)=#0ch#7eh送至p1口調(diào)用延時(shí)1s的程序#20h送至p1口調(diào)用延時(shí)1s的程序返回 圖4.10 右轉(zhuǎn)緊急剎車(chē) 圖4.11

20、???.2 源程序源程序如下:org0000hajmpstart1org 0030hsameequ4ehstart1:movp1,#00h;無(wú)輸入時(shí)無(wú)輸出start:mova,p3;讀p3口數(shù)據(jù)anla,#1fh;取用p3口的低五位數(shù)據(jù)cjnea,#1fh,shiy;對(duì)p3口低五位數(shù)據(jù)進(jìn)行判斷ajmpstart1shiy:movsame,alcallys;延時(shí)mova,p3;讀p3口的數(shù)據(jù)anla,#1fh;取用p3口的低五位數(shù)據(jù)cjnea,#1fh,shiy1;對(duì)p3口的低五位數(shù)據(jù)進(jìn)行判斷ajmpstart1;開(kāi)關(guān)沒(méi)有動(dòng)作時(shí)無(wú)輸出shiy1:cjnea,same,start1cjnea,#1

21、7h,next1;p3.3=0時(shí)進(jìn)入左轉(zhuǎn)分支ajmpleftnext1:cjnea,#0fh,next2;p3.4=0時(shí)進(jìn)入右轉(zhuǎn)分支ajmprightnext2:cjnea,#1dh,next3;p3.1=0時(shí)進(jìn)入緊急分支ajmpeargenext3:cjnea,#1eh,next4;p3.0=0時(shí)進(jìn)入剎車(chē)分支ajmpbrakenext4:cjnea,#16h,next5;p3.0=p3.3=0時(shí)進(jìn)入左轉(zhuǎn)剎車(chē)分支ajmplebrnext5:cjnea,#0eh,next6;p3.0=p3.4=0時(shí)進(jìn)入右轉(zhuǎn)剎車(chē)分支ajmpribrnext6:cjnea,#1ch,next7;p3.0=p3.1=

22、0時(shí)進(jìn)入緊急剎車(chē)分支ajmpbrernext7:cjnea,#14h,next8;p3.0=p3.1=p3.3=0時(shí)進(jìn)入左轉(zhuǎn)緊急剎車(chē)分支ajmplbenext8:cjnea,#0ch,next9;p3.0=p3.1=p3.4=0時(shí)進(jìn)入右轉(zhuǎn)緊急剎車(chē)分支ajmprbenext9:cjnea,#1bh,next10;p3.2=0時(shí)進(jìn)入??糠种jmpstopnext10:ajmperror;其他情況進(jìn)入錯(cuò)誤分支left:movp1,#2ah;左轉(zhuǎn)分支lcally1smovp1,#00hlcally1sajmpstartright:movp1,#54h;右轉(zhuǎn)分支lcally1smovp1,#00hlc

23、ally1sajmpstartearge:movp1,#7fh;緊急分支lcally1smovp1,#00hlcally1sajmpstartbrake:movp1,#60h;剎車(chē)分支ajmpstartlebr:movp1,#6ah;左轉(zhuǎn)剎車(chē)分支lcally1smovp1,#40hlcally1sajmpstartribr:movp1,#74h;右轉(zhuǎn)剎車(chē)分支lcally1smovp1,#20hlcally1sajmpstartbrer:movp1,#7eh;緊急剎車(chē)分支lcally1smovp1,#60hlcally1sajmpstartlbe:movp1,#7eh;左轉(zhuǎn)緊急剎車(chē)分支lcall

24、y1smovp1,#40hlcally1sajmpstartrbe:movp1,#7eh;右轉(zhuǎn)緊急剎車(chē)分支lcally1smovp1,#20hlcally1sajmpstartstop:movp1,#66h;停靠分支lcally100msmovp1,#00hlcally100msajmpstarterror:movp1,#80h;錯(cuò)誤分支lcally1smovp1,#00hlcally1sajmpstartys:movr7,#20h;延時(shí)ys0:movr6,#0ffhys1:djnzr6,ys1djnzr7,ys0rety1s: mov r7,#04h ;延時(shí)y1s1:movr6,#0ffhy1s2:movr5,#0ffhdjnzr5,$djnzr6,y1s2djnzr7,y1s1rety100ms:movr7,#66h;延時(shí)y100ms1:movr6,#0ffhy100ms2:djnzr6, y100ms2djnzr7,

溫馨提示

  • 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)論