51单片机外部中断INT0实例(汇编程序)
2023-09-11 14:15:08 时间
;普中51开发板
;单片机的P3.2(INT0)引脚与按键K3脚连接
;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制),
;前提是共阴数码LED第一位,需要设定,由P0口控制。
ORG 0000H
LJMP START
ORG 0003H
LJMP INTT0
ORG 0600H
START: SETB EA
SETB EX0 ; 打开外部中断0
SETB IT0 ; 跳变沿出发方式(下降沿) 这个方法比较稳定
;CLR IT0 ; 令中断0为电平触发,这个方式需要有延时程序,
;否则,单片机处理速度快,按一下按键,
;已经处理了很多个低电平中断了。
CLR P2.2 ;段位选择第一位
CLR P2.3
CLR P2.4
CLR1: MOV R0,#00H
DISPLAY: MOV DPTR,#TAB ;给字形表的初地址
MOV A,R0 ;将要显示的数给A
;/////////////////////////
MOV B, A ;save a value
CLR C
SUBB A, #10H ;如果已计数到15,说明一次循环结束
MOV A, B ;load a value
JNC CLR1 ;C=1,重新开始,R0=00H,若等于0,回display
MOVC A,@A+DPTR ;在字形表中取数放到A
MOV P0,A ;假设是P0口输出要显示的数据把A放到P0中
SJMP DISPLAY ;循环显示等待中断
INTT0: INC R0 ;中断中有按键着加1
RETI
TAB: DB 3FH,06H,5BH,4FH,66H ;字形表0-15
DB 6DH,7DH,07H,7FH,6FH
DB 77H,7CH,39H,5EH,79H,71H
END
相关文章
- Echo命令实例
- 百度低代码框架amis介绍及实例讲解
- Ehcarts 与 百度地图结合时,如何获取bmap的实例对象?
- QT中多线程QThread使用解疑实例
- 初始cfx开发webservice, 简单实例应用
- docusaurus默认访问地址前缀 以及多实例
- 《51单片机应用开发从入门到精通》——2.9 交通灯实例
- 《Android NFC开发实战详解》——6.3节Android NFC P2P开发实例
- 《简明电路分析》——1.6节简单电路分析实例
- JVM生产环境参数实例及分析
- __attribute__之section详解 ------ 把函数指定到具体某个section 之 RT-thread 实例详解
- GVRP不适用于MSTP多生成树实例的原因
- jquery经典实例之显示隐藏
- MFC只运行一个实例窗口