中断系统的应用举例 (含源程序)

控制/MCU

1883人已加入

描述

中断系统的应用举例 (含源程序)

6.4.1  外部中断举例
【例6-3】使用外部中断0,当每次响应中断时,P1口依次输出高电
平,使8个发光二极管依次循环熄灭闪烁。
1)  威廉希尔官方网站 设计
中断系统

 ORG 0000H          
 LJMP MAIN ;转主程序
 ORG 0003H ;外部中断0入口地址
 LJMP EXTER ;转中断程序
 ORG 1000H           
MAIN: SETB IT0 ;外部中断0下降沿有效
 SETB EX0 ;外部中断0允许
 SETB EA ;总中断允许
LOOP: AJMP LOOP ;等待中断
 ORG 1050H ;中断程序入口
EXTER: MOV R2, #0FFH ;置循环次数
 MOV A,  #01H ;灯亮初值FLASH: RR A ;右移一位
 MOV R7,  #0FFH ;定时
LOOP1: MOV R6,  #0FFH 
LOOP2: NOP  
 NOP  
 DJNZ R6,  LOOP2 
 DJNZ R7,  LOOP1 
 MOV P1,  A ;控制灯的亮灭
 DJNZ R2,  FLASH ;循环
 RETI  ;中断返回
 END

定时器举例
 
通过定时器1来产生中断,控制P1.0线上的脉冲输出,并经三极管驱动扬声器,发出音调信号。
1) 威廉希尔官方网站 设计

中断系统

 ORG 0000H 
 LJMP MAIN 
 ORG 001BH ;中断入口地址
 CPL P1.0 
 RETI  
 ORG 1000H 
MAIN: MOV R1,  #00H 
 MOV R0,  #23H 
 MOV TMOD,  #20H ;定时器1工作方式2
 MOV IE,  #88H ;定时器1允许中断
L1: MOV DPTR,  #3FFFH 
 MOV A,  R0 ;取数
 INC R0 ;修改指针
 MOVC A, @A+PC ;查表
 JZ MAIN 
 MOV R1,  A ;计算计数初值
 MOV A,  #0FFH 
 CLR C 
 SUBB A,  R1 
 RL A 
 MOV TH1,  A ;置计数初值
 SETB TR1 ;开始计数
L2: CLR C 
 MOV A,  DPL ;延时
 SUBB A,  #01H 
 MOV DPL,  A 
 MOV A,  DPH 
 SUBB A,   #00H 
 MOV DPH,  A 
 ORL A,  DPL 
 JNZ L2 
 CLR TR1 
 SJMP L1 
 END  
 ORG 1031H ;歌曲“送别”编码
DB   33H,33H,3DH,33H,26H
DB   26H, 26H, 26H,2DH,2DH
DB   26H,2DH,33H,33H,33H
DB   33H, 33H,33H,4DH,45H
DB   45H, 45H45H, 45H, 45H
DB   45H, 45H,33H,33H,3DH
DB   33H,26H,26H,26H, 28H
DB    2DH, 2DH, 26H,26H,33H
DB    33H,33H,33H,45H,3DH

  

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分