單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:鍵控彩燈_第1頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:鍵控彩燈_第2頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:鍵控彩燈_第3頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:鍵控彩燈_第4頁
單片機(jī)應(yīng)用技術(shù)(C語言 第二版)課件:鍵控彩燈_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本任務(wù)的內(nèi)容是采用外部按鍵方式(外部中斷方式)控制彩燈的運行狀態(tài)。通過按動按鍵,彩燈在三種閃亮方式(左移、右移、自定義花樣)之間切換。任務(wù)提出任務(wù)鍵控彩燈本任務(wù)的目標(biāo)是用按鍵去控制彩燈的顯示,就是在彩燈顯示的基礎(chǔ)上增加按鍵控制程序,實現(xiàn)幾個不同顯示花樣的切換。實現(xiàn)彩燈顯示的電路及方法在中已做過介紹,按鍵的功能特點在中也已介紹,需要把二者有機(jī)結(jié)合起來實現(xiàn)本任務(wù)目標(biāo)。任務(wù)分析在中,對按鍵的處理可有兩種方式,一種方法是不斷查詢按鍵,有鍵按下時就進(jìn)行消抖處理,判斷是否真有按鍵按下,這種方法在按鍵查詢期間單片機(jī)不能做任何其他操作。另一種方法是每間隔一段時間對按鍵進(jìn)行一次判別處理,這種方式對具體的按鍵能夠適用,但對于時間較短的脈沖輸入方式可能無效,由于輸入脈沖較短,會造成漏檢??梢钥闯?,這兩種方法都是有缺陷的。為了解決實時檢測和其他程序的運行之間的矛盾,常采用單片機(jī)的外部中斷方式實現(xiàn)按鍵的控制功能,本任務(wù)也是應(yīng)用單片機(jī)的外部中斷功能,利用按鍵實現(xiàn)控制彩燈的。一、中斷的概念所謂“中斷”,是指CPU在正常執(zhí)行程序時,系統(tǒng)中出現(xiàn)特殊請求,CPU暫時中止當(dāng)前運行的程序,轉(zhuǎn)去處理更緊急的事件,處理完畢后,CPU返回被中止的源程序繼續(xù)執(zhí)行的過程,如圖所示為中斷程序執(zhí)行順序示意圖。相關(guān)知識中斷響應(yīng)過程通俗地說,對于單片機(jī),中斷服務(wù)程序的執(zhí)行相當(dāng)于一種特殊的程序調(diào)用,而中斷源是產(chǎn)生這種調(diào)用的條件。作為MCS-51系列單片機(jī),中斷源有外部中斷、內(nèi)部定時器/計數(shù)器中斷和串口中斷三種,后兩種中斷將在后續(xù)模塊的任務(wù)中介紹。對應(yīng)的產(chǎn)生中斷的條件可能是一段時間、脈沖個數(shù)、高電平變?yōu)榈碗娖揭约爱惒酱袛?shù)據(jù)發(fā)送/接收完畢等。中斷調(diào)用與子程序調(diào)用的最主要區(qū)別在于:子程序的調(diào)用是程序中預(yù)先安排好的,在程序中寫有調(diào)用子程序的命令。而中斷調(diào)用是隨中斷源的產(chǎn)生而出現(xiàn)的,中斷是隨機(jī)發(fā)生的,當(dāng)中斷事件發(fā)生后,CPU自動中止正在運行的程序,保護(hù)好現(xiàn)場數(shù)據(jù),轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完畢后才回到原斷點所在位置繼續(xù)執(zhí)行其后的程序。中斷服務(wù)程序的執(zhí)行過程中,還可被優(yōu)先級別更高的中斷請求所中斷,處理完級別更高的中斷源后,再返回到被中斷了的中斷服務(wù)程序繼續(xù)執(zhí)行,這個過程就是中斷嵌套。二、常用中斷控制寄存器要完成中斷調(diào)用,在程序中必須對相應(yīng)的中斷控制寄存器進(jìn)行設(shè)置,即中斷的初始化。設(shè)置好中斷初始條件后,當(dāng)系統(tǒng)檢測到中斷信號,硬件自動保護(hù)好正在執(zhí)行程序的現(xiàn)場,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序。中斷初始化就是對定時器控制寄存器TCON、中斷允許寄存器IE、中斷優(yōu)先控制寄存器IP等進(jìn)行設(shè)置。這些寄存器在單片機(jī)內(nèi)部,它們是單片機(jī)內(nèi)部存儲器的一部分,稱為特殊功能寄存器(SFR),這些寄存器可以用命令對寄存器的各位進(jìn)行設(shè)置(置0或置1)或隨工作狀態(tài)變化。這里先介紹外部中斷用到的相關(guān)寄存器及其初始設(shè)置方法。作為MCS-51系列單片機(jī),針對中斷的內(nèi)部特殊功能寄存器見表。中斷寄存器1.定時器控制寄存器TCON定時器控制寄存器TCON內(nèi)部存儲器地址為88H。2.中斷優(yōu)先級寄存器IP中斷優(yōu)先級寄存器IP內(nèi)部存儲器地址為B8H。3.中斷允許控制寄存器IEMCS-51系列單片機(jī)中斷的開啟和關(guān)閉是通過中斷允許寄存器IE的設(shè)置來實現(xiàn)控制的。中斷允許控制寄存器IE內(nèi)部存儲器地址為A8H。三、外部中斷的實現(xiàn)過程外部中斷設(shè)置工作示意圖四、中斷源和優(yōu)先次序中斷源和優(yōu)先次序五、C51中的中斷函數(shù)1.中斷源和中斷號從上表可以看出,MCS-51系列單片機(jī)有5個中斷源和兩個優(yōu)先級,高優(yōu)先級中斷源可中斷低優(yōu)先級的服務(wù)程序,而兩個同樣優(yōu)先級別的中斷申請到來時,則按固定的查詢次序來處理中斷響應(yīng)。2.中斷服務(wù)程序的格式3.中斷服務(wù)程序的執(zhí)行一、硬件設(shè)計根據(jù)任務(wù)分析,本任務(wù)硬件系統(tǒng)是在單片機(jī)最小系統(tǒng)的基礎(chǔ)上增加彩燈輸出和外部中斷按鍵輸入。在本任務(wù)中,單片機(jī)選擇AT89S51芯片作為系統(tǒng)控制芯片,其最小系統(tǒng)較為簡單,包括復(fù)位電路和時鐘電路,其參數(shù)選擇原則見相關(guān)說明,本任務(wù)中選擇的系統(tǒng)晶振頻率為12MHz。任務(wù)實施鍵控彩燈的硬件電路原理圖根據(jù)系統(tǒng)分析及電路和元器件選擇,整個硬件電路如圖所示。二、軟件設(shè)計由于中斷函數(shù)與主程序之間的關(guān)系,相當(dāng)于兩個程序并行運行,將一個任務(wù)分為兩個部分處理的具體分解方法有多種,所以用中斷函數(shù)去控制彩燈的顯示,具體的實現(xiàn)方法和實現(xiàn)程序也是多種多樣的,如圖所示的框圖就是其中的一種處理方法。鍵控彩燈程序框圖a)主程序運行框圖

b)中斷函數(shù)程序框圖在主程序中,按照設(shè)置的flag值的不同,執(zhí)行相應(yīng)的程序,實現(xiàn)相應(yīng)的功能。當(dāng)沒有中斷發(fā)生時,標(biāo)志flag的值沒有被改變,主程序保持運行,使彩燈按其中某一種花樣閃亮顯示。如果按下按鍵后,使單片機(jī)產(chǎn)生中斷,中斷函數(shù)被調(diào)用,標(biāo)志flag的值將發(fā)生一次改變(這里的中斷函數(shù)就是修改flag值)。在退出中斷后,主程序再次執(zhí)行到判斷標(biāo)志flag時,由于標(biāo)志flag的值已是新值,所以將執(zhí)行另一彩燈控制子程序,彩燈將按另一種花樣進(jìn)行顯示。需要說明一點,如果產(chǎn)生中斷的低電平不是由按鍵產(chǎn)生的,而是由其他電路產(chǎn)生的沒有抖動的信號,在中斷程序中則不需要進(jìn)行消抖處理。三、Proteus仿真1.打開ProteusISIS軟件,繪制Proteus仿真電路,如圖所示。仔細(xì)檢查,保證電路連接無誤。2.在Keil軟件開發(fā)環(huán)境下,創(chuàng)建項目,編輯源程序,將編譯生成的HEX文件

溫馨提示

  • 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

提交評論