数码管时钟显示(含有原理图)

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

简单的共阴极数码管时钟显示程序(简单、易于理解,如果想定时只要再次基础上稍作修改即可)

#include

#define uint unsigned int

#define uchar unsigned char

uchar aa,shi1,shi0,fen1,fen0,miao1,miao0;

uint temp;

uchar shi,fen,miao;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void display(uchar shi1,shi0,fen1,fen0,miao1,miao0)

{

P2=0xfe;

P0=table[shi1];

delay(1);

P2=0xfd;

P0=table[shi0];

delay(1);

P2=0xfb;

P0=0x40;//"-"

delay(1);

P2=0xf7;

P0=table[fen1];

delay(1);

P2=0xef;

P0=table[fen0];

delay(1);

P2=0xdf;

P0=0x40;//"-"

delay(1);

P2=0xbf;

P0=table[miao1];

delay(1);

P2=0x7f;

P0=table[miao0];

delay(1);

}

void init()

{

temp=41760;

TMOD=0x01;

TH0=(65536-46080)/256;

TL0=(65536-46080)%256;

EA=1;

ET0=1;

TCON=0x10;

//TR0=1;

}

void main()

{

init();//初始化子程序

while(1)

{

if(aa==20)

{

aa=0;

temp++;

if(temp==86400)

{

temp=0;

}

shi1=temp/3600/10;

shi0=temp/3600-(shi1*10);

fen1=temp%3600/60/10;

fen0=temp%3600/60-(fen1*10);

miao1=temp%3600%60/10;

miao0=temp%3600%60-(miao1*10);

}

display(shi1,shi0,fen1,fen0,miao1,miao0);

}

}

void timer0() interrupt 1

{

TH0=(65536-46080)/256;

TL0=(65536-46080)%256;

aa++;

}

附原理图

相关文档
最新文档