单片机电子钟的设计(4)

2018-11-23 21:04

;;;;;;;;;;;键扫子程序;;;;;;;;;;; KEY: LCALL KEYS JZ EXIT LCALL DISP LCALL DISP

;调显示去抖动

;调键值处理子程序 ;没有键按下转到返回

LCALL KEYS JZ EXIT

MOV B, 20H KEYSF: LCALL KEYS

JZ KEYY LCALL DISP

AJMP KEYSF KEYY: MOV A, B

EXIT: RET

KEYS: MOV P1, #0FFH MOV A, P1

CPL A

ANL A, #0FH MOV 20H, A

RET

;;;;;;;;;;;P显示程序;;;;;;;;;;; PP: MOV P2,#01H

MOV P0,#12 LCALL YANSHI_1 MOV P2,#00H LCALL YANSHI_1 RET

;;;;;;;;;;;键功能子程序;;;;;;;;;;; ANKEY: CLR EA

CHECK: JB TR0, YXZ

K0: CJNE A,

#01H,

12

;保存键值 ;调键值处理子程序 ;键释放,转到恢复键值 ;调显示子程序延时

;等到键释放

;键值送20H单元保存 ;返回

;先向P1口写1 ;P1口值送累加器A

;A值取反

;保存P1口的低4位 ;A值送20H保存

;关中断

;判断是否运行

K1

AJMP RUN ;转运行 K1: CJNE A, K2: CJNE A,

#02H, K2 #04H, K3

AJMP KEY1 ;转时调整 AJMP KEY2 ;转分调整 K3: CJNE A, #08H, OUT

AJMP KEY3 ;转秒调整

YXZ: JB ACC.0, AJMP OUT

KEY1: MOV R0, #45H LCALL ADD1 CLR

C

CJNE A, #24H, OUTT ACALL CLR0 AJMP OUTT

KEY2: MOV R0, #43H LCALL ADD1 CLR

C

CJNE A, #60H, OUTT ACALL CLR0 AJMP OUTT KEY3: MOV ACALL CLR

CJNE

;;;;;;;;;;;传送显示数据;;;;;;;;;;; OUTT: MOV MOV MOV

30H, 31H, 32H,

40H 41H 42H

;分显示单元43H-44H

;秒显示单元41H-42H

R0, ADD1 C A,

#60H,

OUTT

#41H

;秒调整

;分调整

;时调整

STOP

ACALL CLR0

13

MOV MOV MOV RET STOP: CLR RET

33H, 43H

;时显示单元44-45H

34H, 44H 35H, 45H

TR0 ;关电子钟并跳出

;运行电子钟

RUN: LCALL TIME OUT: SETB EA ; RET

;;;;;;;;;;;运行电子钟;;;;;;;;;;; TIME: SETB EA

MOV TL0, #0B0H

MOV TH0, #3CH MOV R4, #20 SETB TR0 RET

;;;;;;;;;;;定时中断;;;;;;;;;;; INTT0: PUSH ACC PUSH PSW CLR

ET0

CLR TR0

MOV TL0, #0B0H MOV TH0, #3CH

SETB TR0 DJNZ R4, OUTT0 ADDSS: MOV R4, #14H MOV R0, #41H

ACALL ADD1

CLR C CJNE A, #60H, ADDMM: JC

OUTT0 ACALL

CLR0

ADDMM ;1无键按下或完成功能跳出;3CB0H

;50ms,20次循环 ;启动定时器0

;重新设定定时初值 ;启动定时器0 ;1秒到

;20次计数

;秒十位 ;加1程序

分到

14

MOV CLR R0, C A, #43H

;加1程序

ACALL CJNE ADD1

#60H, ADDHH ;1小时到

ADDHH: JC OUTT0 ACALL CLR0 MOV R0, #45H

ACALL ADD1

CLR C CJNE A, #24H, HOUR ;1HOUR: JC OUTT0

ACALL

CLR0 OUTT0: MOV 30H, 40H

MOV 31H, 41H MOV 32H, 42H

MOV 33H,

43H

MOV 34H, 44H

MOV 35H, 45H POP PSW POP

ACC SETB

ET0

RETI

;;;;;;;;;;;时间清零子程序;;;;;;;;;;; CLR0: CLR A MOV @R0, A DEC R0

MOV @R0,

A

RET

;;;;;;;;;;;加一子程序;;;;;;;;;;; ADD1: MOV A, @R0 DEC

R0

15

加1程序

天到

秒显示单元41H-42H

分显示单元43H-44H

时显示单元44-45H

取十位

;;;; ;

SWAP A ORL A, @R0 ADD A,

#01H DA A

MOV R3, A ANL A, #0FH

MOV @R0, A MOV

A,

R3

INC R0 SWAP A ANL A, #0FH MOV @R0,

A MOV A,

R3

RET

;;;;;;;;;;;显示子程序(30H);;;;;;;;;;;

DISP: MOV R1, #30H ; MOV R2, #20H ;DISP1: MOV P2, R2 ; MOV DPTR, #TAB MOV A, @R1 MOVC

A, @A+DPTR

LCALL SJ1 MOV P0, A

LCALL DJ1

ACALL DL ; MOV A, R2 JB ACC.0, DISP2 RR A INC R1 MOV R2, A AJMP DISP1

DISP2: RET

16

;组合十位与个位 ;加1 ;十进制调整 ;暂存 ;屏蔽十位 ;放入个位单元 ;取值

;屏蔽个位 ;放入十位单元 ;数值放入A中等待判断

显示缓冲存储单元首地址从右至左显示 送位控 ;送段控

延时


单片机电子钟的设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:仁爱版英语七年级下册unit8topic1教材讲解

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

马上注册会员

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