电子时钟程序代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#define uchar unsigned char

#define uint unsigned int

uchar code weixuan[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; //位选,控制哪个数码管亮。(从右到左)

uchar

code

duanxuan[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf, 0xff}; //0-9,'-','灭'

uchar data timedata[3]={0x00,0x00,0x00}; //时间缓冲区,分别为:秒、时、分。

uchar data datetime[8]={0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xc0,0xc0}; //时间缓冲区,初始化显示00-00-00。

uchar tt1,tt2,tt,tt0,num=0;

uchar flag,flag1,flag2,flash;

sbit key1=P1^3;

sbit key2=P1^5;

sbit key3=P1^7;

//**************延时函数*********************************

void delay(uint del)

{

uchar i, j;

for(i=0; i

for(j=0; j<=148; j++);

}

//********************调用显示************************

void display()

{

datetime[0]=timedata[0]%10; datetime[1]=timedata[0]/10; //秒

datetime[3]=timedata[1]%10; datetime[4]=timedata[1]/10; //分 datetime[6]=timedata[2]%10; datetime[7]=timedata[2]/10; //时 if(!flag)

{

P2=0X80; //秒显示

P0=duanxuan[datetime[0]];

delay(2);

P2=0X40;

P0=duanxuan[datetime[1]];

delay(2);

}

else

{

P2=0X80; //秒显示

P0=duanxuan[datetime[0]]|flash;

delay(2);

P2=0X40;

P0=duanxuan[datetime[1]]|flash;

delay(2);

}

P2=0X20; //显示'-'

P0=duanxuan[10];

delay(2);

if(!flag1)

{

P2=0X10; //分显示

P0=duanxuan[datetime[3]];

delay(2);

P2=0X08;

P0=duanxuan[datetime[4]];

delay(2);

}

else

{

P2=0X10; //分显示

P0=duanxuan[datetime[3]]|flash;

delay(2);

P2=0X08;

P0=duanxuan[datetime[4]]|flash;

delay(2);

}

P2=0X04; //显示'-' P0=duanxuan[10];

delay(2);

if(!flag2)

{

P2=0X02; //小时

P0=duanxuan[datetime[6]];

delay(2);

P2=0X01;

P0=duanxuan[datetime[7]];

delay(2);

}

else

{

P2=0X02; //小时

P0=duanxuan[datetime[6]]|flash;

delay(2);

P2=0X01;

P0=duanxuan[datetime[7]]|flash;

delay(2);

}

}

/******************按键调节时间*****************************/ void keyscan()

{

if(key1==0)

{

delay(10);

if(key1==0)

{

num++;

while(!key1);

while(1)

{

if(num==1)

{

flag=1;

flag1=0;

flag2=0;

if(key2==0)

{

delay(10);

if(key2==0)

{

timedata[0]--;

if(timedata[0]==-1)

timedata[0]=60;

while(!key2);

}

}

if(key3==0)

{

delay(10);

if(key3==0)

{

timedata[0]++;

if(timedata[0]==60)

timedata[0]=0;

while(!key3);

}

}

}

if(key1==0)

{

delay(10);

if(key1==0)

num++;

while(!key1);

}

相关文档
最新文档