📄 shizhong1-1.c
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code table0[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//段码表共阳极
unsigned char code table2[]={0xFB,0xF7,0xEF,0xDF,0xBF,0x67F};//位码表
void chushihua();
void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar shi,uchar ge);
void delay(uchar z);
uchar aa,bb,cc,dd,shi,ge,ss,num,shu,temp;
void main()
{
chushihua();
while(1)
{
display(aa,bb,cc,dd,shi,ge);
}
}
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void chushihua()
{
num=23;
shu=58;
temp=0;
aa=num/10;
bb=num%10;
cc=shu/10;
dd=shu%10;
shi=temp/10;
ge=temp%10;
P2=0xff;
delay(10);
TMOD=0X01;//选择T0工作在模式1
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;//赋初值50毫秒晶振11.0592MHZ
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
}
void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar shi,uchar ge)
{
if(ss==20)
{
ss=0;
temp++;
}
if(temp==60)
{
temp=0;
shu++;
}
shi=temp/10;
ge=temp%10;
P2=0xff;
delay(5);
P0=table0[shi];
delay(5);
P2=0xf7;
delay(5);
P2=0xff;
delay(5);
P0=table0[ge];
delay(5);
P2=0xfb;
delay(5);
if(shu==60)
{
shu=0;
num++;
}
cc=shu/10;
dd=shu%10;
P2=0xff;
delay(5);
P0=table0[cc];
delay(5);
P2=0xdf;
delay(5);
P2=0xff;
delay(5);
P0=table0[dd];
delay(5);
P2=0xef;
delay(5);
if(num==24)num=0;
aa=num/10;
bb=num%10;
P2=0xff;
delay(5);
P0=table0[aa];
delay(5);
P2=0x7f;
delay(5);
P2=0xff;
delay(5);
P0=table0[bb];
delay(5);
P2=0xbf;
delay(5);
}
void timer0()interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;//重赋初值
ss++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -