电子钟程序及原理图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. ..页脚.
基于51单片机电子钟设计
利用如图所示电路,设计一个电子钟,要求如下:
1)显示容:时-分-秒
2)具有闹铃设定功能、时间调整功能
3)具有按键设置功能
一、显示容
显示时间:用六位7段数码管
闹铃提示:用8个发光二极管
设置提示:用8个发光二极管
二、按键功能
P3.2——功能设置键;
P3.3——显示区切换键;
P3.4——“+”键;
P3.5——“-”键。
设置提示显示要求:
1)正常显示状态,8个发光二极管全灭;
2)时间调整状态,P1.7亮;
3)闹铃设定状态,P1.7和P1.6亮。
显示时间要求:
1)显示时-分-秒,分三个显示区。
功能设置键K1是一个多功能键:
按第一次,进入时间调整状态
按第二次,进入闹铃设定状态
按第三次,退出设置状态,时钟正常显示。
备注:其他键在K1退出设置状态时无效。
显示区切换键K2:
在设置状态,用于切换不同的显示区,每按一次,将切换一次。
“+”键K3:在设置状态,用于对相应的显示区数字进行累加,每按一次,数字加1。“-”键K4:在设置状态,用于对相应的显示区数字进行自减,每按一次,数字减1。程序:
K1 BIT P3.2
K2 BIT P3.3
K3 BIT P3.4
K4 BIT P3.5
L1 BIT P1.7
L2 BIT P1.6
KEZT EQU 30H
HOUR EQU 31H
MINU EQU 32H
SECO EQU 33H
NHOU EQU 34H
NMIN EQU 35H
K2ZT EQU 36H
TIME EQU 37H
TIM EQU 40H
NTIM EQU 50H
LED EQU P1
ORG 0000H
AJMP START
ORG 000BH
AJMP DINGSHI
ORG 100H
START: ACALL RESET
LOOP: ACALL KEYSET
ACALL DISPLAY
ACALL ZHISHI
AJMP LOOP
;************************************** DINGSHI: MOV TH0,#3CH
MOV TL0,#0B0H
INC TIME
MOV A,TIME
CJNE A,#20,DINGEND
MOV TIME,#0
INC SECO
MOV A,SECO
CJNE A,#60,DINGEND
INC MINU
MOV SECO,#0
MOV A,MINU
CJNE A,#60,DINGEND
INC HOUR
MOV MINU,#0
MOV A,HOUR
CJNE A,#24,DINGEND
MOV HOUR,#0
DINGEND: RETI
;**************************************** RESET: MOV TMOD,#01H ;T0工作在方式1,12MHZ MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
MOV HOUR,#23
MOV MINU,#59
MOV SECO,#58
MOV NHOU,#12
MOV NMIN,#0
MOV KEZT,#0
MOV K2ZT,#0
MOV TIME,#0
CLR F0
SETB TR0
RET
;********************************************* KEYSET:
;判定K1
SETB K1
JB K1,KK1 ;K1=1 LOOP
CALL DELAY20MS ;软件防抖
JB K1,KK1
KS1: JNB K1,$
CALL DELAY20MS ;软件防抖
JNB K1,KS1
INC KEZT
SETB F0
MOV A,KEZT
CJNE A,#3,KK1
CLR F0
MOV KEZT,#0
SETB TR0
KK1: JNB F0,KEEND
CLR TR0
ACALL KEYGN
KEEND: RET
;********************************* KEYGN:
;判定K2
SETB K2
JB K2,KK2 ;K2=1 LOOP
CALL DELAY20MS ;软件防抖
JB K2,KK2
KS2: JNB K2,$
CALL DELAY20MS ;软件防抖
JNB K2,KS2
INC K2ZT
MOV A,K2ZT
CJNE A,#3,KK2
MOV K2ZT,#0
;判定K3
KK2: SETB K3