单片机c51下的自动打铃系统(5)

2019-08-20 18:52

单片机课程设计

MOV 2BH,A ;转换出时个位,存入2BH

MOV A,23H

ANL A,#0F0H SWAP A

MOV 2AH,A ;转换出时十位,存入2AH

JB 46H,DISP

;如果长按按键(调时快进),则跳过闪烁处理

;如果R1为1,闪烁时位待调整

CJNE R1,#1,DISP

JB 48H,DISP

MOV 2BH,#0AH ;使该位为10,查表得到使该位不显示的输出

MOV 2AH,#0AH ;/*****数码管动态扫描显示*****/

DISP:

MOV DPTR,#TABLE MOV A,2FH MOVC A,@A+DPTR MOV P0,A CLR P2.7 LCALL DELAY SETB P2.7 ;显示秒个位

MOV A,2EH

MOVC A,@A+DPTR MOV P0,A CLR P2.6 LCALL DELAY SETB P2.6 ;显示秒十位

MOV A,#40H

MOV P0,A CLR P2.5 LCALL DELAY SETB P2.5 ;显示“-”

MOV A,2DH

16

单片机课程设计

MOVC A,@A+DPTR MOV P0,A CLR P2.4 LCALL DELAY SETB P2.4 ;显示分个位

MOV A,2CH

MOVC A,@A+DPTR MOV P0,A CLR P2.3 LCALL DELAY SETB P2.3 ;显示分十位

MOV A,#40H

MOV P0,A CLR P2.2 LCALL DELAY SETB P2.2 ;显示“-”

MOV A,2BH

MOVC A,@A+DPTR MOV P0,A CLR P2.1 LCALL DELAY SETB P2.1 ;显示时个位

MOV DPTR,#TABLE1 ;该位使用TABLE1以消除前置0

MOV A,2AH

MOVC A,@A+DPTR MOV P0,A CLR P2.0 LCALL DELAY SETB P2.0 ;显示时十位

RET

17

单片机课程设计

;/*****按键检测子程序*****/

KEY_SCAN:

CLR 46H ;关闭长按调整(调时快进)标志

MOV P1,#0FFH MOV A,P1

;将P1口设置成输入状态

CPL A

ANL A,#0FH ;P1口低4位连接4个按键,只判断该4位

JZ EXIT_KEY

;无键按下则返回 ;延时去抖动

LCALL DELAY

MOV A,P1 ;重新判断

CPL A

ANL A,#0FH

JZ EXIT_KEY ;键盘去抖动

MOV R5,A

;临时将键值存入R5

;用于控制调时快进速度

MOV R4,#00H

;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进

LOOP: ;进入长按处理

LCALL DISPLAY ;使长按时显示正常

MOV A,P1

CPL A ANL A,#0FH JB 47H,LOOP1

INC R4 ;调时快进间隔时间基准加1 LOOP1:

CJNE R1,#03H,LOOP2 ;如果调秒时长按,则不处理

LJMP LOOP3

LOOP2:

CJNE R4,#99H,LOOP3

MOV R4,#70H SETB 46H

;确认用户长按后,重新设定起始值,加快调时快进速度

;长按调整(调时快进)标志

18

单片机课程设计

LCALL ADD_KEY

LCALL DEC_KEY LOOP3:

JNZ LOOP ;等待键释放

MOV A,R5 RET

;输出键值

EXIT_KEY: RET

;/*****延时子程序*****/

DELAY: MOV R7,#150 DJNZ R7,$ RET

;/*****选择键处理子程序*****/

SET_KEY:

CJNE R5,#01H,EXIT ;选择键键值

INC R1

;调整选择功能标志加一

SETB BEEP

CJNE R1,#4,EXIT MOV R1,#0

MOV 24H,#00H ;调时闪烁基准清零

RET

;/*****增加键处理子程序*****/

ADD_KEY:

CJNE R5,#02H,EXIT ;增加键键值

CJNE R1,#01H,NEXT1 ;选择键功能标志为1,调时,否则跳出 MOV A,23H

ADD A,#01H

DA A

MOV 23H,A

19

单片机课程设计

CJNE A,#24H,EXIT MOV 23H,#00H NEXT1:

CJNE R1,#02H,NEXT2 ;选择键功能标志为2,调分,否则跳出

MOV A,22H

ADD A,#01H DA A MOV 22H,A CJNE A,#60H,EXIT MOV 22H,#00H NEXT2:

CJNE R1,#03H,EXIT ;选择键功能标志为3,调秒,否则跳出

MOV 21H,#00H RET

;/*****减少键处理子程序*****/

;如增加键按下直接清零秒

DEC_KEY:

CJNE R5,#04H,EXIT ;减少键键值

CJNE R1,#01H,NEXT3 ;选择键功能标志为1,调时,否则跳出 MOV A,23H

ADD A,#99H DA A MOV 23H,A CJNE A,#99H,EXIT MOV 23H,#23H NEXT3:

CJNE R1,#02H,NEXT4 ;选择键功能标志为2,调分,否则跳出

MOV A,22H

ADD A,#99H

DA A

MOV 22H,A

20


单片机c51下的自动打铃系统(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(埃及)国别报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: