我們在利用51單片機時,間斷系統時其一個很是主要的特征,可以實現庇護CPU現場、跳轉到間斷辦事函數進行處置、恢復CPU現場、繼續進行原始操作等功能。間斷分為外部間斷、內部間斷和串行口間斷,還可以同時利用兩個外部間斷。
 起首要知道間斷源的進口地址,因為我們需要同時利用兩個外部間斷,即要用到外部間斷0:0003H和外部間斷1:0013H
 打開Keil μVision編譯器,新建一個工程,然后保留在硬盤上的位置,然后選擇Atmel-AT89C51單片機為模子,并添加STARTUP.A51文件,然后在當前目次下新建一個C文件,并將其添插手工作路徑,如圖所示
 起首要導入51單片機的頭文件,不然后續利用的端口城市呈現不決義的環境,然后在本家兒函數中,使得EA=1,即總間斷許可,打開間斷的總開關
 然后別離打開外部間斷0和外部間斷1的分隔關,即EX0=1和EX1=1,同時設置間斷的觸發體例為跳沿觸發,可以避免增添額外的電路
 若是不添加此外代碼的話,此時這兩個間斷的優先級是外部間斷0>外部間斷1,若是一個間斷正在執行來了別的一個間斷是不會打斷前一個間斷的執行過程的,這里需要為間斷設置優先級
 編寫完本家兒函數后,我們要為兩個間斷別離編寫對應的間斷辦事函數,才能在間斷發生后發生響應的響應,注重外部間斷0和外部間斷1的間斷號別離是0和2
 然后到Project菜單中的output項目中勾選Create Hex File,OK后點擊編譯按鈕,若是沒有錯誤,即可生當作可以燒錄或者仿真的.hex文件
 最后把生當作出的.hex燒入進51單片機進交運行或者裝載入Proteus仿真系統進行仿真,點擊運行按鈕后可以看到在點擊第一個按鍵后led燈的狀況由滅變亮,當點擊第二個按鈕后,無論led燈原先的狀況怎么樣城市釀成常亮的狀況
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!