📄 9keybb.asm
字号:
;********************************************************************************
;一位计数器,按p3.2数码管加1,到9后回0,同时小喇叭响一下报警, *
;数码管数据p0,数码管控制p2口,按键p3.2口 ,喇叭p3.3 *
;********************************************************************************
;* 日期: 2007-3-25 *
;* 版本: 3.0 *
;* 作者: 深圳学林电子有限公司 专业8051单片机教学站 *
;* 邮箱: sxj1974@163.com *
;* 网站: http://www.51c51.com http://www.8951.com 更多例程请登陆网站 *
;********************************************************************************
;* 硬件:此程序在本公司xlisp系列单片机实验仪运行通过 *
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
;********************************************************************************
org 00h ;开始
jmp start;跳到主程序
org 0030h
start: mov 30h,#0ffh ;30h送ff即-1
main: INC 30H
mov a,30h
setb p3.2 ;把键盘口送高电平
mm: jnb p3.2,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 + -