新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 中断系统的应用实例详解

中断系统的应用实例详解

作者:时间:2011-12-06来源:网络收藏

举例 (含源程序)

本文引用地址:http://www.amcfsurvey.com/article/172368.htm

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

ORG0000H
LJMPMAIN;转主程序
ORG0003H;外部中断0入口地址
LJMPEXTER;转中断程序
ORG1000H
MAIN:SETBIT0;外部中断0下降沿有效
SETBEX0;外部中断0允许
SETBEA;总中断允许
LOOP:AJMPLOOP;等待中断
ORG1050H;中断程序入口
EXTER:MOVR2, #0FFH;置循环次数
MOVA, #01H;灯亮初值FLASH:RRA;右移一位
MOVR7, #0FFH;定时
LOOP1:MOVR6, #0FFH
LOOP2:NOP
NOP
DJNZR6, LOOP2
DJNZR7, LOOP1
MOVP1, A;控制灯的亮灭
DJNZR2, FLASH;循环
RETI;中断返回
END

定时器举例

通过定时器1来产生中断,控制P1.0线上的脉冲输出,并经三极管驱动扬声器,发出音调信号。
1) 电路设计

ORG0000H
LJMPMAIN
ORG001BH;中断入口地址
CPLP1.0
RETI
ORG1000H
MAIN:MOVR1, #00H
MOVR0, #23H
MOVTMOD, #20H;定时器1工作方式2
MOVIE, #88H;定时器1允许中断
L1:MOVDPTR, #3FFFH
MOVA, R0;取数
INCR0;修改指针
MOVCA, @A+PC;查表
JZMAIN
MOVR1, A;计算计数初值
MOVA, #0FFH
CLRC
SUBBA, R1
RLA
MOVTH1, A;置计数初值
SETBTR1;开始计数
L2:CLRC
MOVA, DPL;延时
SUBBA, #01H
MOVDPL, A
MOVA, DPH
SUBBA, #00H
MOVDPH, A
ORLA, DPL
JNZL2
CLRTR1
SJMPL1
END
ORG1031H;歌曲“送别”编码
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



评论


相关推荐

技术专区

关闭