
今天做这个题目,期间有点小问题就是
TH0 = (65536 - 50000) / 256; //定时50ms
TL0 = (65536 - 50000) % 256;
这俩句的值怎么算,问了明明,少爷懂了差不多;
废物不说了上代码
#include
#define u8 unsigned char
#define s8 char
#define u16 unsigned int
#define s16 int
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit led3 = P0^2;
sbit led4 = P0^3;
sbit led5 = P0^4;
sbit led6 = P0^5;
sbit led7 = P0^6;
sbit led8 = P0^7;
void cls_buzz(void)
{
P2 = (P2&0x1F|0xA0);
P0 = 0X00;
P2 &=0X1f;
P0 = 0xff;
}
void htc573()
{
P2 = ( P2&0x1f)|0x80;
}
//===================
void Init_Timer()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
u8 count=0;
void zhongduanTimer() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==10)//¶¨Ê±Æ÷0.5s
{
led1 =~led1;
}
if(count==20)//2s{led2 =~led2;count=0;}
}
//===================
void main()
{
cls_buzz();
htc573();
Init_Timer();
while(1)
{
}
}
