ORG 30H ;初始化地址
START:MOV SP,#5FH ;初始化堆栈
MOV P2,#0ffH ;将P2端口打开(位)
MOV P3,#0FFH ;将P3端口打开(位)
L1:JNB P3.2,L2 ;P3.2上接有一只按钮,它按下时,P3.2=0(字)
JNB P3.3,L3 ;P3.3上接有一只按钮,它按下时,P3.3=0(字)
LJMP L1 ;跳转到L1
L2:lJMP YS1MS ;闪烁1秒
LJMP L1 ;跳转到L1
L3:LJMP YS10MS ;闪烁10秒
LJMP L1 ;跳转到L1
YS1MS:MOV p0,#07FH ; 给数码管置数“.”
MOV p2,#0FFH ; 打开八个数码管“.”给整个P2口打开
LCALL DELAY ; 调用延时子程序
mov p2,#00H ; 关闭八个数码管“.”
LCALL DELAY ; 调用延时子程序
LJMP YS1MS ; 返回
YS10MS:MOV P0,#07FH ;给数码管置数“.”
MOV P2,#0FFH ;打开八个数码管“.”给整个P2口打开
LCALL DELAY10MS ;调用延时子程序
MOV P2,#00H ;关闭八个数码管“.”
LCALL DELAY10MS ;调用延时子程序
LJMP YS10MS ;返回
;延时1秒子程序
DELAY:MOV R7,#250 ;把250送入工作寄存器R7
D1:MOV R6,#250 ;把250送入工作寄存器R6
D2:DJNZ R6,D2 ;工作寄存器R6每次减1,即执行250次
DJNZ R7,D1 ;工作寄存器R7每次减1,即执行250次
RET ;返回调用子程序
;延时10秒子程序
DELAY10MS:MOV R5,#10 ; 把10送入工作寄存器R5
dd1:LCALL DELAY ; 调用
DJNZ R5,dd1 ; 工作寄存器R5每次减1,即执行10次
RET ; 返回调用子程序
END ; 结束
单片机网www.51hei.com 第12群 模留哥的作品,欢迎转载,保留版权。