📄 一位计数器,按p3.2数码管加1,到9后回0,同时小喇叭响一下报警.asm
字号:
;一位计数器,按p3.2数码管加1,到9后回0,同时小喇叭响一下报警,
jmp start ;跳到主程序
org 0030h
start: mov 30h,#0ffh ;30h送ff即-1
main: INC 30H
mov a,30h
setb p3.5 ;把键盘口送高电平
mm: jnb p3.5,tt ;如果p3.2按下则执行tt
ljmp mm ;如果没有按下则反复监测键盘
tt: MOV DPTR,#TAB
MOVC A,@A+DPTR
CLR P2.6 ;开数码管
MOV P0,A ;送显示
lcall delay ;延时一段时间
cjne a,#60h,main ;如果是最后一个数据重新开始
cjne a,#20h,BB ;如果是数字9到小喇叭响的程序
ljmp start ; 否则30H 清除
ret
TAB: DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H;数据表,0--9(如果反向排列则为倒计数
BB:
mov r1,#255 ;小喇叭响的次数
ppp: cpl p3.3 ;小喇叭响
call deL ;小喇叭响的速率
djnz r1,ppp ;小喇叭响255次。
jmp start
delay: mov r5,#20 ;延时子程序1闪烁灯调用
d1: mov r6,#20
d2: mov r7,#255
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
del: ;延时子程序2小喇叭调用
mov r4,#255
djnz r4,$
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -