📄 text8.c
字号:
#include<reg51.h>
#include<intrins.h>
sbit dula=P2^6;
sbit wela=P2^7;
#define uint unsigned int
char code table[]={ //之所以用code是因为编译的时候数组放在程序存储器种校?
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x76,0x79,0x38,};
char code wsle[]={0xff,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uint led,temp,seg,num=432;
void init()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
temp=0xfe;
}
void delay(uint b)
{
int a;
for(a=0;a<b;a++);
}
void display(uint i,uint j)
{
dula=1;
P0=table[j];
dula=0;
P0=0xff; //消隐
wela=1;
P0=wsle[i];
wela=0;
}
int main()
{
uint temp1,temp2;
init();
while(1)
{
if(num==398)
{
TR1=0;
if((led==10)&&(temp2<6))
{
P1=~P1;
led=0;
temp2++;
}
if(temp2>=6)
{
TR0=0;
display(6,16);
delay(100);
display(5,17);
delay(100);
display(4,18);
delay(100);
display(3,18);
delay(100);
display(2,0);
delay(100);
}
}
if((led==10)&&(num!=398))
{
P1=temp;
temp=_crol_(temp,1);
led=0;
}
if(TR0!=0)
{
temp1=num;
display(3,temp1/100);//秒表
delay(10);
temp1=temp1%100;
display(2,temp1/10);
delay(10);
display(1,temp1%10);
delay(10);
display(4,5);
delay(10);
display(5,6);
delay(10);
display(6,7);
delay(10);
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
led++;
}
void timer1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
seg++;
if(seg==2)
{
num--;
seg=0;
}
if(num==398)
{
P1=0xff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -