当前位置:文档之家› 51单片机时钟程序

51单片机时钟程序

51单片机时钟程序
#include<reg52.h> #define uint unsigned int #define uchar unsigned char
uchar code duan[]= {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,}; uchar code
we[]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,};
uint z;
void display(uchar miao,uchar fen,uchar xiaoshi);
uchar t=0,miao,fen,xiaoshi,shi1,ge1,shi2,ge2,shi,ge,a;
void delay(uint z) { uint x,y;
for(x=80;x>0;x--)
for(y=z;y>0;y--); }
void InitTimer0() {
TMOD=0x01;
TH0=0x3C;
TL0=0x0B0;
EA=1;
ET0=1;
TR0=1;
}
void Timer0Interrupt() interrupt 1
{
TH0=0x3C;
TL0=0x0B0;
t++;
}
void main() {
InitTimer0(); miao=0;
fen=10;
xiaoshi=21; while(1)
{
if(t==20)
{
t=0;
miao++;
if(miao==60) {
miao=0;
fen++;
if(fen==60) {
fen=0;
xiaoshi++;
if(xiaoshi==24)
{
xiaoshi=0;
}
}
}
}
shi=miao/10;
ge=miao%10;
shi1=fen/10;
ge1=fen%10;
shi2=xiaoshi/10;
ge2=xiaoshi%10;
display(miao,fen,xiaoshi);
}
}
void display(uchar miao,uchar fen,uchar xiaoshi) {
shi=miao/10;
ge=miao%10;
P2=we[6];
P0=duan[shi];
delay(1);
P2=we[7];
P0=duan[ge];
delay(1);
shi1=fen/10;
ge1=fen%10;
P2=we[3];
P0=duan[shi1]; delay(1);
P2=we[4];
P0=duan[ge1]; delay(1);
shi2=xiaoshi/10; ge2=xiaoshi%10; P2=we[0];
P0=duan[shi2]; delay(1);
P2=we[1];
P0=duan[ge2]; delay(1);
P2=we[2];
P0=0x40;
delay(1);
P2=we[5];
P0=0x40;
delay(1); }
改进板
#include<reg52.h>
#define uint unsigned int #define uchar unsigned char
void tiaoshi();
uchar code duan[]= {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,}; uchar code
we[]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,};
uint z;
sbit led=P1^0;
void display(uchar miao,uchar fen,uchar xiaoshi);
uchar t=0,miao,fen,xiaoshi;
sbit key1=P3^0;
sbit key2=P3^1;
void delay(uint z) { uint x,y;
for(x=80;x>0;x--)
for(y=z;y>0;y--);
}
void InitTimer0() {
TMOD=0x01;
TH0=0x3C;
TL0=0x0B0;
EA=1;
ET0=1;
TR0=1;
}
void Timer0Interrupt() interrupt 1 {
TH0=0x3C;
TL0=0x0B0;
t++;
if(t==20)
{
led=~led;
t=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
xiaoshi++;
if(xiaoshi==24)
{
xiaoshi=0;
}
}
}
}
}
void main() {
InitTimer0();
miao=0;
fen=59;
xiaoshi=21;
while(1)
{
display(miao,fen,xiaoshi);
tiaoshi();
}
}
void display(uchar miao,uchar fen,uchar xiaoshi) {
P2=we[6];
P0=duan[miao/10];
delay(1);
P2=we[7];
P0=duan[miao%10];
delay(1);
P2=we[3];
P0=duan[fen/10];
delay(1);
P2=we[4];
P0=duan[fen%10]; delay(1);
P2=we[0];
P0=duan[xiaoshi/10]; delay(1);
P2=we[1];
P0=duan[xiaoshi%10]; delay(1);
P2=we[2];
P0=0x40;
delay(1);
P2=we[5];
P0=0x40;
delay(1); }
void tiaoshi()
{
if(!key1)
{
delay(100);
if(!key1)
{
xiaoshi++;
if(xiaoshi==24)
{
xiaoshi=0; }
}
}
if(!key2) {
delay(100); if(!key2) {
fen++;
if(fen==60) {
fen=0;
}
}
}
}。

相关主题