单片机时钟 《AT89S51》 1、四位数码管显示时分、分秒,以24小时计时运行

单片机时钟 《AT89S51》
1、四位数码管显示时分、分秒,以24小时计时运行
2、能整点提醒
3、可实现时分调整
4、秒表/时钟转换
5、省电(关显示)
6、定时设定提醒

第1个回答  2010-12-29
调时程序:
MAIN:
JNB P3.0,DATETZ;按下0键时,显示日期并可对日期进行调整
JNB P3.1,ZSTZ1;按下1键时,显示时间,并可调时
JNB P3.2,NLTZ1;按下2键进行闹铃设置
JNB P3.3,DSTZ;按下3键进行定时设置
ACALL DISP;调用显示程序
FMQPD:;判断定时是否到零、闹铃时间是否已到
MOV A,HOUR;
SUBB A,38H;
JZ FEN;判断时是否到闹铃所定时间,若到,则对分进行判断,若不到,则对定时进行判断
AJMP DSPDKQ
FEN:
MOV A,MINUTE;
SUBB A,37H;
JZ SHENGYIN1;时和分都到闹铃时间则蜂鸣器响
DSPDKQ:;判断是否应该进行定时时间的判断
MOV A,3CH;3CH是引入的判断因子,当其为0时不对定时时间是否到0进行判断,从而不开启蜂鸣器
JNZ DSPD2;当3CH不是0时,跳转到定时判断程序
AJMP MAIN
DSPD2:
MOV A,R4;
JZ S_PD;
AJMP MAIN;
S_PD:
MOV A,R3;
JZ SHENGYIN1;
AJMP MAIN;

DSTZ:
AJMP DSTZ1;

DATETZ:
AJMP DATETZ1;

SHENGYIN1:
MOV 3CH,#1
SETB P0.7
AJMP MAIN

ZSTZ1:
MOV 35H,#60;
MOV 36H,#10;
ZSTZ2:
ACALL DISP;
DJNZ 35H,ZSTZ2;
JNB P3.0,DATETZ;按下0键时,显示日期并可对日期进行调整
JNB P3.1,ZSTZ1;按下1键时,显示时间,并可调时
JNB P3.2,NLTZ1;按下2键进行闹铃设置
JNB P3.3,DSTZ;按下3键进行定时设置
JNB P3.4,H_T;
JNB P3.5,M_T;
DJNZ 36H,ZSTZ2;
AJMP MAIN;
H_T:
ACALL DISP;
INC HOUR;
MOV A,HOUR;
CJNE A,#24,ZSTZ1;
MOV HOUR,#0;
AJMP ZSTZ1;
M_T:
ACALL DISP;
INC MINUTE;
MOV A,MINUTE;
CJNE A,#60,ZSTZ1;
MOV MINUTE,#0;
AJMP ZSTZ1;

NLTZ1:
CLR P0.7;
DEC 38H
MOV 35H,#100;
MOV 36H,#10;
NLTZ2:
ACALL ONE;
ACALL TWO;
DJNZ 35H,NLTZ2;
JNB P3.0,DATETZ;按下0键时,显示日期并可对日期进行调整
JNB P3.1,ZSTZ1;按下1键时,显示时间,并可调时
JNB P3.2,NLTZ1;按下2键进行闹铃设置
JNB P3.3,DSTZ;按下3键进行定时设置
JNB P3.4,NLXS2;
JNB P3.5,NLXS1;
DJNZ 36H,NLTZ2;
AJMP MAIN;
NLXS1:
MOV DPTR,#LEDTAB;
MOV 35H,#100;
MOV 36H,#10;
INC R0;
MOV 37H,R0;
CJNE R0,#60,NLTZ2;
MOV R0,#0;
MOV 37H,R0;
AJMP NLTZ2;
ONE:
MOV DPTR,#LEDTAB;
MOV A,R0;
MOV B,#10;
DIV AB;
MOVC A,@A+DPTR;
MOV P1,A;
CLR MIN_S;
ACALL D_1MS;
SETB MIN_S;
MOV A,B;
MOVC A,@A+DPTR;
MOV P1,A;
CLR MIN_G;
ACALL D_1MS;
SETB MIN_G;
RET;
大家正在搜