终于到了最后一步了,如果你没有看过前面两篇文章请使用传送门
https://blog.csdn.net/haohulala/article/details/91394770
part1 这一步我们要做什么
在这一步,我们要做的就是使用两个外部中断来控制显示模式的切换,具体来说就是,如果没有中断的话,我们就显示全亮。
当外部中断EX0触发,我们就滚动显示汉字;当有外部中断EX1触发,我们就闪烁显示汉字,嗯,就是这么简单。来看一下电路图
part2 中断初始化
如果你不熟悉51的中断系统,请使用传送门https://blog.csdn.net/haohulala/article/details/90768725
因为我们要使用外部中断0和外部中断1,所以不仅要开总中断EA, 还要开EX0 和 EX1
;==========
;初始化程序
;==========
MAIN: MOV SP, #5FH ;初始化堆栈指针
MOV IE, #85H ;1000 0101B,开外部中断0和1
SETB EX0 ;开中断
SETB EX1
M1: ACALL DISPLAY ;不断显示初始开机画面
SJMP M1
part3 中断程序
;================
;外部中断0中断程序
;控制汉字滚动显示
;=================
EXP0:
E1: MOV R7, #4H ;****这里控制要显示的字数****
MOV R6, #00H ;这是DPTR的偏移量,这个值不需要修改
E2: ACALL DISPLAY1
DJNZ R7, E2
RETI
;=================
;外部中断1中断程序
;控制汉字闪烁显示
;================
EXP1:
H1: MOV R7, #4H ;****这里控制要显示的字数****
H2: ACALL DISPLAY2
DJNZ R7, H2
RETI
这个就是之前的滚动显示和闪烁显示的程序,没什么好说的