用中断系统实现这样一个程序:上电后,静态数码管以0-9顺序或逆序循环显示,;检测到有效的按键后(由外部中断实现按键检测),静态数码管从当前显示数字开始改变循环方向。
顺序循环和逆序循环管单独的程序都会写,分别为:
加:
MAIN:
ANL A,#0FH ;屏蔽累加器的高4位
MOV DPTR,#TAB ;将数据表格的首地址 0100H存入16位的数据地址指针DPTR中
MOVC A,@A+DPTR ;查表
MOV P0,A ;将累加器的值送到P0口显示
ACALL DEL ;调用延时子程序
MOV A,20H ;将20H单元的数据传送给累加器
INC A ;累加器+1
DA A ;二-十进制调整
MOV 20H, A
AJMP MAIN
减:
MAIN:
ANL A,#0FH ;屏蔽累加器的高4位
MOV DPTR,#TAB ;将数据表格的首地址 0100H存入16位的数据地址指针DPTR中
MOVC A,@A+DPTR ;查表
MOV P0,A ;将累加器的值送到P0口显示
ACALL DEL ;调用延时子程序
MOV A,20H ;将20H单元的数据传送给累加器
JZ LOOP1
DEC A
MOV 20H, A
AJMP MAIN
LOOP1:
MOV A,#09H
MOV 20H,A
AJMP MAIN
(地方有限,只写了主程序,延时程序和字符表没写)
用中断程序实现灯的常亮常灭也会写,但是碰到这种循环的程序,中断系统不知道该搁在哪了。。。
一周热门 更多>