标题:
通过单片机外部中断控制数码管动态显示4位数字 含汇编源码,原理图,和hex文件
[打印本页]
作者:
p88309479
时间:
2018-1-12 17:53
标题:
通过单片机外部中断控制数码管动态显示4位数字 含汇编源码,原理图,和hex文件
这是之前做的外部中断控制数码管动态显示数字的程序,
使用汇编代码,基于51单片机,
附件包含单片机汇编源码,
和Proteus仿真图,以及hex文件,
完全自己原创,望多
捕获.PNG
(192.17 KB, 下载次数: 87)
下载附件
2018-1-12 17:52 上传
单片机汇编语言源程序:
ORG 0000H ;开始
LJMP START ;跳转到主程序
ORG 0003H ;外部中断0
LJMP PINT0 ;跳转到0号中断服务子程序
ORG 0013H ;外部中断1
LJMP PINT1 ;跳转到2号中断服务子程序
ORG 0100H ;程序地址
START: MOV SP, #60H ;设置堆栈
MOV P0,#0FFH ;P0初始化为FF
MOV P2,#00H ;P2口初始化为0
SETB IT0 ;设置0号中断触发方式为下降沿触发
SETB IT1 ;设置2号中断触发方式为下降沿触发
SETB EA ;合上中断总开关(允许中断)
SETB EX0 ;合上分开关
SETB EX1 ;合上分开关
MOV R1,#00H ;R1清零
MOV R2,#00H ;R2清零
MOV R3,#00H ;R3清零
MOV R4,#00H ;R4清零
MOV A,#11H ;A设初值
LJMP MAIN ;初始化完成,进入主程序
ORG 0200H ;主程序地址
MAIN: MOV P2,A ;选择位选线
MOV 31H,R1 ;千位存入31H单元
MOV 32H,R2 ;百位存入32H单元
MOV 34H,R3 ;十位存入34H单元
MOV 38H,R4 ;个位存入38H单元
PUSH ACC ;保护现场
ANL A,#0FH ;保留A的第四位
ADD A,#30H ;使A与数位存放地址对应
MOV R0,A ;数位存放地址存入R0
MOV A,@ R0 ;取所需数位的数字
LCALL DISPLAY ;查表
MOV P0,A ;显示所需数字
LCALL DELAY ;延时
POP ACC ;恢复现场
RL A ;A左循环移位
SJMP MAIN ;死循环
ORG 0400H ;0号中断服务子程序地址
PINT0: CJNE R4,#9,L1 ;个位不为9跳转
CJNE R3,#9,L2 ;十位不为9跳转
CJNE R2,#9,L3 ;百位不为9跳转
CJNE R1,#9,L4 ;千位不为9跳转
MOV R1,#00H ;千位置零
MOV R2,#00H ;百位置零
MOV R3,#00H ;十位置零
MOV R4,#00H ;个位置零
RETI ;中断返回
L1:INC R4 ;个位加一
RETI ;中断返回
L2:INC R3 ;十位加一
MOV R4,#00H ;个位置零
RETI ;中断返回
L3:INC R2 ;百位加一
MOV R4,#00H ;个位置零
MOV R3, #00H ;十位置零
RETI ;中断返回
L4:INC R1 ;千位加一
MOV R2,#00H ;百位置零
MOV R3,#00H ;十位置零
MOV R4,#00H ;个位置零
RETI ;中断返回
ORG 0600H ;2号中断服务子程序地址
PINT1: CJNE R4,#0,LA ;个位不为0跳转
CJNE R3,#0,LB ;十位不为0跳转
CJNE R2,#0,LC ;百位不为0跳转
CJNE R1,#0,LD ;千位不为0跳转
MOV R1,#9 ;千位置9
MOV R2,#9 ;百位置9
MOV R3,#9 ;十位置9
MOV R4,#9 ;个位置9
RETI ;中断返回
LA:DEC R4 ;个位减一
RETI ;中断返回
LB:DEC R3 ;十位减一
MOV R4,#9 ;个位置9
RETI ;中断返回
LC:DEC R2 ;百位减一
MOV R4,#9 ;个位置9
MOV R3,#9 ;十位置9
RETI ;中断返回
LD:DEC R1 ;千位减一
MOV R2,#9 ;百位置9
MOV R3,#9 ;十位置9
MOV R4,#9 ;个位置9
RETI ;中断返回
ORG 0800H ;延时子程序地址
DELAY: MOV R7, #30 ;设置外层循环次数
DEL1: MOV R6,#40 ;设置内层循环次数
DEL2: DJNZ R6,DEL2 ;内层循环
DJNZ R7,DEL1 ;外层循环
RET ;返回
ORG 2600H ;查表子程序地址
DISPLAY: ADD A, #01H ;查表位置调整
MOVC A, @A+PC ;查表
RET ;返回
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;7段码常数表
END ;程序结束
复制代码
多指教全部资料51hei下载地址:
10-27-外部中断控制数码管动态显示4位数字.zip
(10.14 KB, 下载次数: 55)
2018-1-12 17:49 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1