實(shí)驗(yàn)三 急救車(chē)與交通燈程序.doc_第1頁(yè)
實(shí)驗(yàn)三 急救車(chē)與交通燈程序.doc_第2頁(yè)
實(shí)驗(yàn)三 急救車(chē)與交通燈程序.doc_第3頁(yè)
實(shí)驗(yàn)三 急救車(chē)與交通燈程序.doc_第4頁(yè)
實(shí)驗(yàn)三 急救車(chē)與交通燈程序.doc_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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)介

湖北民族學(xué)院信息工程學(xué)院?jiǎn)纹瑱C(jī)實(shí)驗(yàn)報(bào)告單片機(jī)實(shí)驗(yàn)報(bào)告題 目: 實(shí)驗(yàn)三 急救車(chē)與交通燈實(shí)驗(yàn) 班 級(jí): 0310405 姓 名: 左立剛 學(xué) 號(hào): 031040522 指導(dǎo)老師: 高林 時(shí) 間: 2013年6月4日 一、實(shí)驗(yàn)?zāi)康?(1)了解8255芯片的結(jié)構(gòu)、工作方式及編程方法(2)學(xué)習(xí)模擬十字路口交通控制的實(shí)現(xiàn)方法;(3)熟練掌握外部中斷技術(shù)的使用方法。二、實(shí)驗(yàn)內(nèi)容(1)在實(shí)驗(yàn)箱上完成:用8255的PA口、PB口的低四位做輸出口,控制十二個(gè)發(fā)光二極管亮滅,模擬十字路口交通燈管理。一般情況下正常顯示,有急救車(chē)到達(dá)時(shí),兩個(gè)方向四個(gè)路口交通信號(hào)燈全紅,以便讓急救車(chē)通過(guò)。設(shè)急救車(chē)通過(guò)路口時(shí)間為10秒,急救車(chē)通過(guò)后,交通恢復(fù)正常。本實(shí)驗(yàn)用單次脈沖申請(qǐng)外部中斷,表示有急救車(chē)通過(guò)。 (2)用Proteus軟件參照實(shí)驗(yàn)電路連線并仿真運(yùn)行,得出與實(shí)驗(yàn)箱上相同的軟件仿真結(jié)果。所用元器件:?jiǎn)纹瑱C(jī)AT89C51、可編程并口芯片8255A、按鍵BUTTON、發(fā)光二極管LED-GREEN(RED、YELLOW)、8位鎖存器74LS273或74LS373、3-8譯碼器74LS138、或非門(mén)74LS02、排阻或電阻RESPACK-8(RES) 、8位緩沖器74LS244三、程序框圖 四、實(shí)驗(yàn)連線(只連圖中粗實(shí)線) 五、實(shí)驗(yàn)步驟 5.1 在實(shí)驗(yàn)箱上完成8255 PB3PB0、PA7PA0依次接發(fā)光二極管L1L12。編寫(xiě)程序,初始態(tài)為四個(gè)路口的紅燈全亮之后,東西路口的綠燈亮南北路口的紅燈亮,東西路口方向通車(chē)。延時(shí)一段時(shí)間后東西路口的綠燈熄滅,黃燈開(kāi)始閃耀。閃耀若干次后,東西路口紅燈亮,而同時(shí)南北路口的綠燈亮,南北路口方向開(kāi)始通車(chē),延時(shí)一段時(shí)間后,南北路口的綠燈熄滅,黃燈開(kāi)始閃耀。閃耀若干次后,再切換到東西路口方向,之后重復(fù)以上過(guò)程。 5.2 proteus仿真電路圖:六、實(shí)驗(yàn)說(shuō)明中斷服務(wù)程序的關(guān)鍵是:保護(hù)進(jìn)入中斷時(shí)的狀態(tài),并在退出中斷之前恢復(fù)進(jìn)入時(shí)的狀態(tài)。必須在中斷程序中設(shè)定是否允許中斷重入,即設(shè)置EX0位。本例中使用了INT0中斷(P3.2),一般中斷程序進(jìn)入時(shí)應(yīng)保護(hù)PSW、ACC以及中斷程序使用但非其專用的寄存器。本例的中斷程序保護(hù)了PSW、ACC等三個(gè)寄存器并且在退出前恢復(fù)了這三個(gè)寄存器。另外中斷程序中涉及到關(guān)鍵數(shù)據(jù)的設(shè)置時(shí)應(yīng)關(guān)中斷,即設(shè)置時(shí)不允許重入。本例中沒(méi)有涉及這種情況。中斷信號(hào)由單脈沖按鈕SP產(chǎn)生(實(shí)驗(yàn)箱上的開(kāi)關(guān)K1以及proteus仿真軟件里的按鍵button產(chǎn)生)。7、 程序清單:#include#include/訪問(wèn)外部存儲(chǔ)器時(shí),必須用到此頭文件#define PA XBYTE0xffd8/8255A的PA端口地址#define PB XBYTE0xffd9/8255A的PB端口地址#define CTL XBYTE0xffdb/8255A的控制端口地址void delay(unsigned int x); /延時(shí)子函數(shù)的聲明 void main() unsigned char i;CTL=0x80;/8255A的控制方式字EA=1;/打開(kāi)總中斷EX0=1;/外部中斷允許IT0=1; /打開(kāi)外部中斷0PA=0xb6; /初始東西南北四個(gè)紅燈亮PB=0xd;delay(60);while(1) /一直循環(huán)執(zhí)行 PA=0xae; /東西路口的綠燈亮南北路口的紅燈亮,東西路口方向通車(chē)PB=0xb;delay(60);for(i=0;i3;i+) PA=0x9e; /東西路黃燈開(kāi)始閃耀,南北路口的紅燈亮PB=0x7;delay(10); PA=0xbe;PB=0xf;delay(10); PA=0x75; /東西路口紅燈亮,南北路口綠燈亮PB=0xd;delay(60);for(i=0;i0;i-) for(j=100;j0;j-)for(k=100;k0;k-);void int_0() interrupt 0 /外部中斷服務(wù)子程序,東西南北四個(gè)紅燈亮 PA=0xb6; PB=0xd; delay(80);8、 思考題(1)試編程解決中斷返回以后不能回到中斷之前狀態(tài)的問(wèn)題。 解:本例中使用了INT0中斷(P3.2),外接按鍵,模擬有急救車(chē)到來(lái),一般中斷程序進(jìn)入時(shí)應(yīng)保護(hù)PSW、ACC以及中斷程序使用但非其專用的寄存器。本例的中斷程序保護(hù)了PSW、ACC等三個(gè)寄存器并且在退出前恢復(fù)了這三個(gè)寄存器。在試驗(yàn)箱和proteus仿真軟件運(yùn)行程序并按下按鍵后,延時(shí)一段時(shí)間,可以回到中斷之前的位置。(2)將交通燈控制程序放在定時(shí)器T0中斷服務(wù)子函數(shù)中完成,試編程實(shí)現(xiàn)。程序清單:#include#include /訪問(wèn)外部存儲(chǔ)器時(shí),必須用到此頭文件#define PA XBYTE0xffd8/8255A的PA端口地址#define PB XBYTE0xffd9/8255A的PB端口地址#define CTL XBYTE0xffdb/8255A的控制端口地址#define uint unsigned intunsigned char num=0,num1=0,flag;/設(shè)置3個(gè)全局變量,num用于總循環(huán)時(shí)間, /num1用于控制黃燈閃爍時(shí)間間隔,flag是黃燈閃爍標(biāo)志位void delays(); /延時(shí)子函數(shù)聲明,只用于讓急救車(chē)通過(guò)void main()TMOD=0X01;/T0定時(shí)器初始化TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;EX0=1;/外部中斷初始化IT0=1;CTL = 0X80;PA = 0Xb6;/初始時(shí),東西南北4個(gè)紅燈亮PB = 0Xd;while(1);/程序在此等待中斷void int_0() interrupt 0 /外部中斷服務(wù)子程序,模擬有急救車(chē)到來(lái)int num=0;PA=0Xb6; /四個(gè)方向的紅燈全亮PB=0Xd;delays(); /延時(shí)一段時(shí)間,讓急救車(chē)優(yōu)先通過(guò)void timer0() interrupt 1 /定時(shí)器T0中斷服務(wù)子程序num+;num1+;if(num=100)num=20;/控制總時(shí)間與循環(huán)返回位置,注意num=20而不是0, /因?yàn)槌跏紩r(shí),4個(gè)紅燈亮不在循環(huán)內(nèi)if(num1=5) flag=0; /黃燈閃爍標(biāo)志控制位的設(shè)置if(num15&num1=10) flag=1;num1=0; if(20num&num=40&num=60) /東西路口黃燈閃爍,南北路口紅燈亮if(flag=0) PA = 0X9e;PB = 0X7;/黃燈亮if(flag=1) PA = 0Xbe;PB = 0Xf;/黃燈滅if(60num&num=80&num100) /南北路口黃燈閃爍,東西路口紅燈亮if(flag=0) PA = 0Xf3;PB = 0Xc; /黃燈亮if(flag=1) PA = 0Xf7;PB = 0Xd; /黃燈滅void delays() /延時(shí)子函數(shù)的定義uint h;for(h=0;h50000;h+); 九、實(shí)驗(yàn)心得體會(huì)1. 做完此次的單片機(jī)急救車(chē)與交通燈實(shí)驗(yàn)后,不僅加深了對(duì)可編程并口芯片8255A、74LS273鎖存器、8位緩沖器74LS244和74LS138譯碼器的工作原理,51單片機(jī)的定時(shí)器和外部中斷INT0中斷系統(tǒng)的理解,而且掌握了用C語(yǔ)言實(shí)現(xiàn)交通燈的編程方法和標(biāo)志控制位flag設(shè)置用法,以及用proteus畫(huà)出硬件電路的方法(包括總線bus的快速畫(huà)法),最重要的是,培養(yǎng)了自己獨(dú)立調(diào)試程序的動(dòng)手能力和解決實(shí)際問(wèn)題的能力;2. 掌握以單片機(jī)為核心的電路基本畫(huà)法,通過(guò)實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),為今后調(diào)試程序,設(shè)計(jì)一般的系統(tǒng)打下了一點(diǎn)基礎(chǔ);3. 另外,注意紅綠燈亮的時(shí)間要適當(dāng),既不能太短,太短會(huì)

溫馨提示

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