当前位置:文档之家› 电子钟程序及原理图

电子钟程序及原理图

. ..页脚.基于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.2K2 BIT P3.3K3 BIT P3.4K4 BIT P3.5L1 BIT P1.7L2 BIT P1.6KEZT EQU 30HHOUR EQU 31HMINU EQU 32HSECO EQU 33HNHOU EQU 34HNMIN EQU 35HK2ZT EQU 36HTIME EQU 37HTIM EQU 40HNTIM EQU 50HLED EQU P1ORG 0000HAJMP STARTORG 000BHAJMP DINGSHIORG 100HSTART: ACALL RESETLOOP: ACALL KEYSETACALL DISPLAYACALL ZHISHIAJMP LOOP;************************************** DINGSHI: MOV TH0,#3CHMOV TL0,#0B0HINC TIMEMOV A,TIMECJNE A,#20,DINGENDMOV TIME,#0INC SECOMOV A,SECOCJNE A,#60,DINGENDINC MINUMOV SECO,#0MOV A,MINUCJNE A,#60,DINGENDINC HOURMOV MINU,#0MOV A,HOURCJNE A,#24,DINGENDMOV HOUR,#0DINGEND: RETI;**************************************** RESET: MOV TMOD,#01H ;T0工作在方式1,12MHZ MOV TH0,#3CHMOV TL0,#0B0HSETB EASETB ET0MOV HOUR,#23MOV MINU,#59MOV SECO,#58MOV NHOU,#12MOV NMIN,#0MOV KEZT,#0MOV K2ZT,#0MOV TIME,#0CLR F0SETB TR0RET;********************************************* KEYSET:;判定K1SETB K1JB K1,KK1 ;K1=1 LOOPCALL DELAY20MS ;软件防抖JB K1,KK1KS1: JNB K1,$CALL DELAY20MS ;软件防抖JNB K1,KS1INC KEZTSETB F0MOV A,KEZTCJNE A,#3,KK1CLR F0MOV KEZT,#0SETB TR0KK1: JNB F0,KEENDCLR TR0ACALL KEYGNKEEND: RET;********************************* KEYGN:;判定K2SETB K2JB K2,KK2 ;K2=1 LOOPCALL DELAY20MS ;软件防抖JB K2,KK2KS2: JNB K2,$CALL DELAY20MS ;软件防抖JNB K2,KS2INC K2ZTMOV A,K2ZTCJNE A,#3,KK2MOV K2ZT,#0;判定K3KK2: SETB K3JB K3,KK3 ;K3=1 LOOPCALL DELAY20MS ;软件防抖JB K3,KK3KS3: JNB K3,$CALL DELAY20MS ;软件防抖JNB K3,KS3MOV A,KEZTCJNE A,#1,KSS1MOV R7,K2ZTCJNE R7,#0,K3S1INC HOURMOV R6,HOURCJNE R6,#24,KHOUMOV HOUR,#0 KHOU: AJMP KK3K3S1: CJNE R7,#1,K3S2INC MINUMOV R6,MINUCJNE R6,#60,KMINMOV MINU,#0KMIN: AJMP KK3K3S2: INC SECOMOV R6,SECOCJNE R6,#60,KSECMOV SECO,#0KSEC: AJMP KK3;对闹铃设定KSS1: CJNE A,#2,KK3MOV R7,K2ZTCJNE R7,#0,K3SS1INC NHOUMOV R6,NHOUCJNE R6,#24,KNUMOV NHOU,#0KNU: AJMP KK3K3SS1: CJNE R7,#1,KK3INC NMINMOV R6,NMINCJNE R6,#60,KK3MOV NMIN,#0;判定K4KK3: SETB K4JB K4,KYEND ;K4=1 LOOPCALL DELAY20MS ;软件防抖JB K4,KYENDCALL DELAY20MS ;软件防抖JNB K4,KS4MOV A,KEZTCJNE A,#1,KSS3MOV R7,K2ZTCJNE R7,#0,K4SS1DEC HOURMOV R6,HOURCJNE R6,#0FFH,K4HOMOV HOUR,#23K4HO: AJMP KYENDK4SS1: CJNE R7,#1,K4SS2DEC MINUMOV R6,MINUCJNE R6,#0FFH,K4MIMOV MINU,#59K4MI: AJMP KYENDK4SS2: DEC SECOMOV R6,SECOCJNE R6,#0FFH,K4SEMOV SECO,#59K4SE: AJMP KYEND;对闹铃设定KSS3: CJNE A,#2,KYENDMOV R7,K2ZTCJNE R7,#0,K4SSS1DEC NHOUMOV R6,NHOUCJNE R6,#0FFH,K4NHMOV NHOU,#23K4NH: AJMP KYENDK4SSS1: CJNE R7,#1,KYENDDEC NMINMOV R6,NMINCJNE R6,#0FFH,KYENDMOV NMIN,#59KYEND: RET;******************************************** ZHISHI:MOV A,KEZTCJNE A,#1,LOOP1CLR L1SETB L2AJMP LOOP3LOOP1: CJNE A,#2,LOOP2CLR L2AJMP LOOP3LOOP2: SETB L1SETB L2LOOP3: RET;******************************************** DISPLAY: ACALL SHUZHUANMOV R3,#0MOV DPTR,#LED_DMMOV R2,#07FHJB F0,DI1MOV R0,#TIMAJMP DI3DI1: MOV A,KEZTCJNE A,#1,DI2MOV R0,#TIMAJMP DI3DI2: MOV R0,#NTIMDI3: MOV P2,R2MOV A,@R0MOVC A,@A+DPTRMOV P0,AMOV A,R2RR AMOV R2,AACALL DELAYINC R0INC R3CJNE R3,#6H,DI3RET;******************************************** SHUZHUAN: MOV R0,#TIMMOV A,HOURMOV B,#10DIV ABMOV @R0,AINC R0MOV @R0,BINC R0MOV A,MINUMOV B,#10DIV ABMOV @R0,AINC R0MOV @R0,BINC R0MOV A,SECOMOV B,#10DIV ABMOV @R0,AINC R0MOV @R0,B;***********************MOV R0,#NTIMMOV A,NHOUMOV B,#10DIV ABMOV @R0,AINC R0MOV @R0,BINC R0MOV A,NMINMOV B,#10DIV ABMOV @R0,AINC R0MOV @R0,BINC R0MOV @R0,#0INC R0MOV @R0,#0RET;******************************************* DELAY: MOV R7,#20D1: MOV R6,#200DJNZ R6,$DJNZ R7,D1RET;********************************************;软件防抖程序DELAY20MS: MOV R7,#100D21: MOV R6,#100DJNZ R6,$DJNZ R7,D21RETLED_PX: DB 0feH,0fdH,0fbH,0f7H,0efH,0dfH,0bfH,7fH LED_DM: DB 0c0H,0F9H,0A4H,0B0H,99H;0-4DB 92H,82H,0F8H,80H,90H;5-9DB 88H,83H,0C6H,0A1H,86H;A,b,C,d,EDB 8EH,0FFH,0CH,89H,7FH,0BFH ;F,空格,P,H,.,- END。

相关主题