流水燈控制試驗(yàn)報(bào)告及程序_第1頁
流水燈控制試驗(yàn)報(bào)告及程序_第2頁
流水燈控制試驗(yàn)報(bào)告及程序_第3頁
流水燈控制試驗(yàn)報(bào)告及程序_第4頁
流水燈控制試驗(yàn)報(bào)告及程序_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、流水燈控制實(shí)驗(yàn)報(bào)告及程序Company Document number : WUUT-WUUY-WRgGB-BWYTT-1982GT姓名專業(yè) 通信工程 學(xué)號_成績、實(shí)驗(yàn)?zāi)康?. 掌握Keil C51軟件與protues軟件聯(lián)合仿真調(diào)試的方法;2. 掌握如何使用程序與查表等方法實(shí)現(xiàn)流水效果;3. 掌握按鍵去抖原理及處理方法。二、實(shí)驗(yàn)儀器與設(shè)備1. 微機(jī)1臺 2. Keil C51集成開發(fā)環(huán)境3. Proteus仿真軟件三、實(shí)驗(yàn)內(nèi)容1. 用Proteus設(shè)計(jì)一流水燈控制電路。利用P1 口控制8個(gè)發(fā)光二級管LIL8???接一按鍵K1。參考電路如下圖所示。其中74LS240為八反響三態(tài)緩沖器/線驅(qū)動(dòng)

2、器。KEY=O:L1-L8全亮;KEY=1:L1-L8先全滅,KEY二2:L1-L8先全滅,KEY二3:L1-L8先全殼,KEY二4:L1-L8先全滅,KEY=5:自行設(shè)計(jì)效果。2. 用中斷或查詢方式編寫程序,每按動(dòng)一次K1鍵,演示不同的流水效果。若用KEY 表示按鍵的次數(shù),則其對應(yīng)的流水效果如下:然后自右向左單管點(diǎn)亮,如此循環(huán) 然后自右向左依次點(diǎn)殼,如此循環(huán) 然后自左向右依次熄滅,如此循環(huán) 然后整體閃爍,如此循環(huán);以上移位及閃爍時(shí)間間隔均設(shè)置為秒,按動(dòng)5次按鍵后,再按鍵時(shí),流水效果從 頭開始循環(huán)。四、實(shí)驗(yàn)原理1. 按鍵去抖原理:通常按鍵所用的開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合 時(shí),電壓

3、信號波形如下圖所示。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉 合時(shí)不會(huì)馬上穩(wěn)定的接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的 瞬間均伴隨有一連串的抖動(dòng)。抖動(dòng)時(shí)間的長短山按鍵的機(jī)械特性決定,一般為 5lOmso按鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次。為了確保CPU對鍵的一次閉合 僅做一次處理,必須去除按鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí),讀取鍵的狀態(tài),并且必 須判別;在鍵釋放穩(wěn)定后,再作處理。按鍵的抖動(dòng),可用硬件或軟件兩種方法 消除。常用軟件方法去抖動(dòng),即檢測到按鍵閉合后執(zhí)行一個(gè)510ms延時(shí)程 序;讓前沿抖動(dòng)消失后,再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則 確認(rèn)為真正有按鍵按下。當(dāng)檢測到按鍵釋放后,

4、也要給510ms的延時(shí),待后 延抖動(dòng)消失后,才能轉(zhuǎn)入該鍵的處理程序。薛按下2. 74LS240:八反相三態(tài)緩沖器/線驅(qū)動(dòng)器 引腳排列圖:3中斷原理:當(dāng)某種內(nèi)部或外部事件發(fā)生時(shí),單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正 在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中斷處理完畢后,乂返回被中斷 的程序處,繼續(xù)執(zhí)行下去。每次按鍵是一次外部中斷,按下按鍵后,CPU利用 switch case語句跳轉(zhuǎn)到相應(yīng)語句執(zhí)行。五、實(shí)驗(yàn)步驟1. 用Proteus設(shè)計(jì)流水燈控制電路;2. 在Keil C51中編寫流水燈控制程序,編譯通過后,與Proteus聯(lián)合調(diào)試;3. 按動(dòng)K1鍵,觀察是否達(dá)到演示效果;4. 試用中斷和查詢兩

5、種方式編寫程序,比較二者區(qū)別。六、電路設(shè)計(jì)及調(diào)試1.實(shí)驗(yàn)電路2. 程序設(shè)計(jì)與調(diào)試#include#define uchar unsigned char#define uint unsigned intuchar i=0, j, k, m, n;uchar code tablel = 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 ;/自右向左單個(gè)點(diǎn)亮二極管的代碼uchar code table2 = 0x00, 0x80, OxcO, OxeO, OxfO, 0xf8, Oxfc, Oxfe, Oxff ;/自右向左依次點(diǎn)亮二極管的代碼

6、uchar code table3 = 0xff, Oxfe, Oxfc, 0xf8, OxfO, OxeO, OxcO, 0x80, 0x00;自左 向右依次熄滅二極管的代碼uchar code tabled = 0x00, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0;雙燈循環(huán) 右移void delay(uint a);void INT_1() interrupt 2EX1=O;delay(20);EXI二1;i+;if(i=6)i 二0;void main()EA二1;/打開總中斷EXI二1; /打開外部中斷1IT1二1; /設(shè)置中斷觸發(fā)方式為下降沿觸

7、發(fā)方式while(1)switch(i)case O:Pl=Oxff;break;case 1 :Pl=tablel j ; delay (500) ; j+; if (j10) j=0;break;case 2:Pl=table2k;delay(500);k+; if(k=10) k=0;break;case 3:Pl=table3m;delay(500);m+; if(m=10) m=0;break;case 4:Pl二0x00;delay(300);Pl二、P1;delay(300);break;case 5:Pl=table4n:delay (500);n+; if(n=10) n=0

8、;break;default:break;void delay( uint a)uchar b;for (a; a > 0; a)/循環(huán)600*255次機(jī)器在這里執(zhí)行需要一段時(shí)間也就達(dá)到了延時(shí)效果for(b = 255; b > 0; b一一);在"Options for target'的"debug"里選中"Proteus VSM Simulator"并選擇輸出"hex" 文件進(jìn)行聯(lián)合調(diào)試。分別進(jìn)行全速調(diào)試與單步調(diào)試,看是否出現(xiàn)編程所想要實(shí)現(xiàn)的 效果。3. 實(shí)驗(yàn)結(jié)果按下不同的按鍵次數(shù),執(zhí)行不同的流水效果,自行設(shè)計(jì)效果為雙燈循環(huán)右移。七、實(shí)驗(yàn)總結(jié)及問題通過本次流水燈控制實(shí)驗(yàn),進(jìn)一步掌握了 Ke訂C51軟件與proteus聯(lián)合仿真調(diào)試 的方法,逐步熟練了單步調(diào)試的方法。自己用中斷方法完成了本次實(shí)驗(yàn),也嘗試用查詢 方法編寫程序,知道中斷方法是在有中斷請求時(shí)CPU再去處理,之前可一直忙于其他事 情,而查詢方法需一直查詢標(biāo)志位,CPU不能做其他事情,中斷方法

溫馨提示

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

最新文檔

評論

0/150

提交評論