📄 clock.c
字号:
//#include <AT89X51.h>
#include <reg52.h>
#include "lcd1.h"
// " 02:13:11 "
unsigned char code kai1[] = {"dan pian ji"};
unsigned char code kai2[] = {"jian yi shi zhong "};
sbit k1=P1^0; //按钮地址位
sbit k2=P1^1;
sbit k3=P1^2;
unsigned int k1p=0; //按钮按下标志位
unsigned int k2p=0;
unsigned int k3p=0;
unsigned int h=12,m=0,s=0,c=0;
unsigned int dan=0; //这个是花巧的东西
void delayMs(unsigned int i); //毫秒级延时
void display(unsigned int hh,unsigned int mm,unsigned int ss); //lcd显示时间函数
void chu(); //时间格式处理
void timerun() interrupt 1 using 1
{
TH0=0xfc;
TL0=0x18;
if(c<1000){
c++;
}else{
c=0;
s++;
chu();
display(h,m,s);
}
}
void chu()
{
if(s==60){
s=0;
m++;
}
if(m==60){
m=0;
h++;
}
if(h==24)
h=0;
}
void delayMs(unsigned int i) //毫秒级延时
{
unsigned int j;
while(i--)
{
for(j=0;j<100;j++);
}
}
void display(unsigned int hh,unsigned int mm,unsigned int ss) //lcd显示时间函数
{
unsigned char time[17]={" : : "};
time[0]='0'+hh/10;
time[1]='0'+hh%10;
time[3]='0'+mm/10;
time[4]='0'+mm%10;
time[6]='0'+ss/10;
time[7]='0'+ss%10;
Disdatastring(1,1,"The Time Now is:");
Disdatastring(2,1,time);
}
void main()
{
P1=0xef;//按钮置一端低一端高电平
//==开机画面==
Init_LCD();
Disdatastring(1,1,kai1);
Disdatastring(2,1,kai2);
delayMs(1500);
Disdatastring(1,1,"Made By ZXK CCQ");
Disdatastring(2,1," df5B 502 517 ");
delayMs(2500);
TMOD=0x01; //定时器设定
TH0=0xfc;
TL0=0x18;
TR0=1;
EA=1;
ET0=1;
//====
while(1)
{
if(k1==0){ //k1按钮扫描
delayMs(10);
if(k1==0){ //消抖
k1p=1;
}
}else if(k2==0){ //k1按钮扫描
delayMs(10);
if(k2==0){ //消抖
k2p=1;
}
}else if(k3==0){ //k1按钮扫描
delayMs(10);
if(k3==0){ //消抖
k3p=1;
}
}else if(k1==1&&k1p==1){ //按钮松开(按下松开为一个Pass操作)
k1p=0;
h++;
chu();
Disdatastring(1,1,"Hour setting. ");
}else if(k2==1&&k2p==1){
k2p=0;
m++;
chu();
Disdatastring(1,1,"Minute setting. ");
}else if(k3==1&&k3p==1){
k3p=0;
s++;
chu();
Disdatastring(1,1,"Second setting. ");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -