實驗三 急救車與交通燈程序.doc_第1頁
實驗三 急救車與交通燈程序.doc_第2頁
實驗三 急救車與交通燈程序.doc_第3頁
實驗三 急救車與交通燈程序.doc_第4頁
實驗三 急救車與交通燈程序.doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論