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

中断系统的应用举例 (含源程序),第1张

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

6.4.1  外部中断举例
【例6-3】使用外部中断0,当每次响应中断时,P1口依次输出高电
平,使8个发光二极管依次循环熄灭闪烁。
1)  电路设计
中断系统的应用举例 (含源程序),第2张

 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) 电路设计

中断系统的应用举例 (含源程序),第3张

 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

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2454373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存