鍵控雙向流水燈_第1頁
鍵控雙向流水燈_第2頁
鍵控雙向流水燈_第3頁
鍵控雙向流水燈_第4頁
鍵控雙向流水燈_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、任務(wù)九 鍵控雙向流水燈中斷控制是單片機(jī)最重要的技術(shù)之一,實(shí)時控制及人機(jī)交互等應(yīng)用都是通過中斷實(shí)現(xiàn)的。本任務(wù)通過制作一個用按鍵控制移動方向的流水燈來學(xué)習(xí)MCS-51單片機(jī)的中斷系統(tǒng),以及外部中斷的簡單應(yīng)用。1 中斷控制是單片機(jī)最重要的技術(shù)之一,實(shí)時控制及人機(jī)交互等應(yīng)用都是通過中斷實(shí)現(xiàn)的。本任務(wù)通過制作一個用按鍵控制移動方向的流水燈來學(xué)習(xí)MCS-51單片機(jī)的中斷系統(tǒng),以及外部中斷的簡單應(yīng)用。 【任務(wù)目的】 利用單片機(jī)外部中斷,完成左右移動的流水彩燈設(shè)計,實(shí)現(xiàn)用按鍵對信號燈的控制?!救蝿?wù)描述】 用單片機(jī)的P3.2、P3.3各接一只按鍵,按下一個按鍵時,實(shí)現(xiàn)彩燈左移花樣,按下另一個按鍵時,實(shí)現(xiàn)彩燈右移

2、花樣。2一.電路原理圖3二、中斷的基本概念 1.中斷 當(dāng)中央處理器CPU正在處理某事件時,與它并行工作的外圍部件或者外部設(shè)備由于工作的需要或者出現(xiàn)故障,請求CPU迅速去處理,CPU暫停當(dāng)前工作,轉(zhuǎn)去處理所發(fā)生的事件,處理結(jié)束之后,再回到被打斷的地方繼續(xù)原來的工作。這樣的過程稱為中斷。如圖8-2所示。2.中斷源 能夠產(chǎn)生中斷請求的條件稱為中斷源。中斷源可以來自單片機(jī)的外部和內(nèi)部。在不同種類的單片機(jī)中,中斷源的數(shù)量一般并不相同。MCS-51單片機(jī)有5個中斷源 4(1). MCS-51的中斷源 外部 :INT0,INT1低電平觸發(fā) 內(nèi)部:TF0 , TF1 , RI/TI (2).與中斷有關(guān)的寄存器

3、: 定時控制寄存器TCON 串行控制寄存器SCON 中斷允許控制寄存器IE 中斷優(yōu)先級控制寄存器IP53.MCS-51的中斷系統(tǒng) 64.中斷的響應(yīng)過程CPU響應(yīng)中斷時,會根據(jù)不同的中斷源,自動轉(zhuǎn)向不同的規(guī)定地址,執(zhí)行中斷服務(wù)程序,這個規(guī)定地址,稱為中斷向量。響應(yīng)中斷請求后,CPU按照中斷源的不同,自動轉(zhuǎn)到各個中斷入口地址去執(zhí)行程序。由于每個中斷向量僅間隔8個字節(jié),不可能放下一般的中斷處理程序。因此一般在中斷向量處放置一條無條件轉(zhuǎn)移指令,轉(zhuǎn)到真正的中斷處理程序。7與中斷有關(guān)的指令 :RETI -中斷返回 , BIT -位地址符 號偽指令 3、中斷程序的編寫: 中斷程序的編寫步驟如下:(1)設(shè)置堆

4、棧指針SP(2)中斷源的相關(guān)控制(如設(shè)置外部中斷觸發(fā)方 式、啟動定時器等)(3)設(shè)置中斷優(yōu)先級(4)開中斷(5)編寫中斷服務(wù)程序其中前4個步驟稱為中斷初始化,一般放在主程序的開始處 8三.實(shí)訓(xùn)內(nèi)容與步驟1.電平觸發(fā)方式鍵控流水燈程序(1)參考程序FX BIT 00H ;位地址00H命名為FXORG 0000HLJMP MAIN ;轉(zhuǎn)移到主程序ORG 0003H;外中斷0服務(wù)程序入口LJMP INT0;轉(zhuǎn)移到外中斷0服務(wù)程序ORG 0013H;外中斷1服務(wù)程序入口LJMP INT1;轉(zhuǎn)移到外中斷1服務(wù)程序ORG 0030H9MAIN: MOV SP,#5FH ;設(shè)置堆棧棧底 CLR IT0 ;設(shè)

5、置外中斷0為低電平觸發(fā) CLR IT1 ;設(shè)置外中斷1為低電平觸發(fā)CLR PX0 ;設(shè)置外中斷0為低優(yōu)先級CLR PX1 ;設(shè)置外中斷1為低優(yōu)先級,由 于復(fù)位時被清零,以上 ;4條清零標(biāo)志位的指令可以省 略,SETB EX0;開外中斷0SETB EX1;開外中斷1SETB EA ;開總中斷 MOV A,#0FEH;顯示代碼初值送累加器 A10K0:MOV P0,A;把顯示代碼傳送到P0口輸 出,控制LED 亮滅JB FX,K;FX=1(00H位為1),移至K1, 執(zhí)行 右移RL A;FX=0,執(zhí)行顯示代碼左移,暫存在A中SJMP K2;轉(zhuǎn)移到K2,避開右移指令K1:RR A;顯示代碼右移K2:

6、LCALL DELAY;調(diào)用延時子程SJMP K0;返回,繼續(xù)下一拍INT0:CLR FX;外中斷0服務(wù)程序,方向標(biāo)志位清0 RETI;中斷返回INT1:SETB FX;外中斷1服務(wù)程序,方向標(biāo)志位 置1 RETI;中斷返回DELAY:MOV R7,#0FFH;延時子程序L1:MOV R6,#0FFHDJNZ R6,$DJNZ R7,L1RETEND;程序結(jié)束11(2)程序分析 按下P3.2處連接的按鍵,會在P3.2引腳()輸入一個低電平,觸發(fā)外部中斷0,運(yùn)行外部中斷0服務(wù)程序,把方向標(biāo)志位清零;按下P3.3處連接的按鍵,會觸發(fā)外部中斷1,運(yùn)行外部中斷1服務(wù)程序,把方向標(biāo)志位置1。當(dāng)主程序中執(zhí)

7、行到 JB FX,K1這條指令時,會根據(jù)FX的值是0還是1,選擇不同的流向,去執(zhí)行RL A 或者執(zhí)行RR A,使彩燈出現(xiàn)不同的移動方向。 如果一直按下一只按鍵,會發(fā)現(xiàn)流水燈的運(yùn)行速度明顯變慢,這是因為這段程序外部中斷是采用了電平觸發(fā),當(dāng)執(zhí)行完中斷服務(wù)程序,回到主程序時,外部中斷觸發(fā)信號仍然存在,所以在執(zhí)行了一條主程序指令以后,又去執(zhí)行中斷服務(wù)程序,如此反復(fù),使執(zhí)行主程序的速度大大降低。 為了解決這個問題,可以采用下降沿觸發(fā)外部中斷。按下按鍵會產(chǎn)生一個下降沿,CPU響應(yīng)中斷,執(zhí)行完中斷服務(wù)程序程序以后,只要不再次按下按鍵,就不會再有下降沿出現(xiàn),不會再次響應(yīng)中斷,避免了上述問題。122.下降沿觸發(fā)

8、方式鍵控流水燈的程序FX BIT 00H;位地址00H命名為FXORG 0000HLJMP MAIN ;轉(zhuǎn)移到主程序ORG 0003H;外中斷0服務(wù)程序入口LJMP INT0;轉(zhuǎn)移到外中斷0服務(wù)程序ORG 0013H;外中斷1服務(wù)程序入口LJMP INT1;轉(zhuǎn)移到外中斷1服務(wù)程序ORG 0030H13MAIN:MOV SP,#5FH ;設(shè)置堆棧棧底 SETB IT0 ;設(shè)置外中斷0為下降沿觸發(fā), 注意此處做了修改, SETB IT1 ;設(shè)置外中斷1為下降沿觸發(fā), CLR PX0 ;設(shè)置外中斷0為低優(yōu)先級 CLR PX1 ;設(shè)置外中斷1為低優(yōu)先級,由于復(fù)位時被清零,以上 4條清零標(biāo)志位的指令可以

9、省略, SETB EX0;開外中斷0 SETB EX1;開外中斷1 SETB EA;開總中斷 ;*以下和程序(1)完全一樣。 MOV A,#0FEH;顯示代碼初值送累加器A14K0:MOV P0,A;把顯示代碼傳送到P0口輸出, 控制LED亮滅JB FX,K1 ;FX=1(00H位為1),轉(zhuǎn)移至K1,執(zhí)行右移RL A ;FX=0,執(zhí)行顯示代碼左移,暫存在A中SJMP K2;轉(zhuǎn)移到K2,避開右移指令K1:RR A ;顯示代碼右移K2:LCALL DELAY;調(diào)用延時子程序SJMP K0;返回,繼續(xù)下一拍15INT0:CLR FX ;外中斷0服務(wù)程序,方向標(biāo)志位清0RETI ;中斷返回INT1:SETB

溫馨提示

  • 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

提交評論