1.扩展外部中断,但成本会很拆祥大高;
2.简化程序,将字符移动作为系统主资源程序,中断程序只进旅竖行按键读入,字符每移动一个点格就判断一次是否有新的按键按下,没有则继续执行此程序,有则跳转到相应程序,当然响应程序每隔一定语块也要加上按键宴棚判断语句,可以用循环完成,判断语句在循环末尾。
还有很多种用软件模拟扩展中断的方法,但都十分复杂。
不知道蠢老你要显示几位,我写了个1位显示的轿扒。前提是共阴数码LED且一端已接地,由P1口控制。ORG 0000H
LJMP START
ORG 0003H
LJMP INTT0
ORG 0600H
START: SETB EA
SETB EX0 打开外部中断0
CLR IT0 令中断0为电平触发
MOV @R0,#00H
DISPLAY: MOV DPTR,#TAB给字形表的初地址
MOV A,R0将要显示的数给A
MOVC A,@A+DPTR 在字形表中取数放到A
MOV P1,A 假设是P1口输出要显示的数据把A放到P1中
SJMP DISPLAY 循环显示等待中断
INTT0:INC @R0 ;中断带帆升中有按键着加1
RETI
TAB:DB 3FH,06H,5BH,4FH,66H 字形表
DB 6DH,7DH,07H,7FH,6FH
DB 77H,7CH,39H,5EH,79H
END
ORG 0000HLJMP MAIN
ORG 0003H
LJMP EXTINT0
ORG 0030H
MAIN:
MOV SP,#5FH堆栈顶设为5FH
SETB EA开中断
SETB IT0外竖源塌余圆部中断0沿触发
SETB EX0开外部中断裂竖0
MOV 30H,#0计数初值为0
SJMP $死循环
EXTINT0:
INC 30H计数器加1
RETI中断返回
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)