本實驗數碼管循環顯示0~9,當INT0端口即P3.2口有低電平時,數碼管立即回到0重新循環顯示。目的是為了:1、掌握8051 CPU的中斷的相關概念及指令;2、掌握8051外部中斷的寄存器設置;3、掌握8051外部中斷服務子程序的編寫方法。
1、8051中斷概述 中斷是為使單片機具有對外部或內部隨機發生的事件實時處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或內部事件的能力。它也是單片機最重要的功能之一,是我們學習單片機必須要掌握的。對于單片機來講,中斷是指CPU在處理某一事件A時,中斷源向CPU提出中斷請求,CPU暫時中斷原來的事務A,轉去處理事件B,對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。這一過程稱為中斷。下圖單片機處理中斷的過程:
圖片1.png (9.07 KB, 下載次數: 64)
下載附件
2021-7-23 16:06 上傳
單片機在執行程序時,中斷也隨時有可能發生,但無論何時發生,只要一旦發生,單片機將立即暫停當前程序,趕去處理中斷程序,處理完中斷程序后再返回剛才暫停處接著執行原來的程序。單片機在執行程序時其程序流程圖。
圖片2.png (211.83 KB, 下載次數: 55)
下載附件
2021-7-23 16:06 上傳
2、中斷相關寄存器
圖片3.png (127.24 KB, 下載次數: 57)
下載附件
2021-7-23 16:06 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (94.91 KB, 下載次數: 67)
下載附件
2021-7-23 23:12 上傳
單片機源程序如下:
- ORG 0000H
- LJMP START
- ORG 0003H
- LJMP INTT0
-
- START:
- MOV IE,#81H
- MOV A,#00H
- MOV R0,#00H
- MOV R1,#0AH
- LOOP:
- MOV DPTR,#TABLE
- MOV A,R0
- MOVC A,@A+DPTR
- MOV P2,A
- INC R0
- LCALL DELAY
- DJNZ R1,LOOP
- LJMP START
- DELAY:
- MOV R5,#255
- D1:MOV R6,#255
- D2:NOP
- NOP
- DJNZ R6,D2
- DJNZ R5,D1
- RET
- INTT0:
- MOV R0,#00H
- MOV A,R0
- MOVC A,@A+DPTR
- MOV P2,A
- RETI
- TABLE:DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H
- END
復制代碼
仿真代碼51hei附件下載:
實驗七工程.7z
(41.81 KB, 下載次數: 7)
2021-7-23 23:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|