单片机 【计数器】/【定时器】

#include<reg52.h>
sbit led1=P1^3;
sbit du=P2^6;
sbit we=P2^7;
void delay(unsigned int x)
{
unsigned char i;
while(x--)
{
for(i=0;i<120;i++);
}
}
unsigned char leddata[]={

0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
0x77, //"A"
0x7C, //"B"
0x39, //"C"
0x5E, //"D"
0x79, //"E"
0x71, //"F"
0x76, //"H"
0x38, //"L"
0x37, //"n"
0x3E, //"u"
0x73, //"P"
0x5C, //"o"
0x40, //"-"
0x00, //??
0x00 //???

};
void display(unsigned char i)
{
unsigned char shi,ge;
shi=i/10;
ge=i%10;
we=1;
P0=0xfe;
we=0;

du=1;
P0=leddata[shi];
du=0;
delay(5);

we=1;
P0=0xfd;
we=0;

du=1;
P0=leddata[ge];
du=0;
delay(5);

}
void main()
{
unsigned char a;
TR0=1;
TR1=1; //
TMOD=0x61;//T0定时器(工作模式1) 16位计数器,T1计数器(工作模式为2) 8位自动重装
TH0=0x4b;
TL0=0xfc;
TH1 = 0;//8位重装
TL1 = 0;//当TL1到255溢出时自动转入TH1
while(1)
{
if(TF0==1)
{
TH0=0x4b;
TL0=0xfc;
TF0=0;
a++;
}
if(a==20){
a=0;
led1=~led1;    
}
display(TL1);
}


}

 

posted @ 2018-01-01 16:13  Justice-V  阅读(156)  评论(0)    收藏  举报