用8051定时器T1,采用工作方式2,计数方式,要求每次满156次,将P1.7取反。试编程实现

这个单片机的题目,我不会做,有会的告诉一下,感谢

#include<reg52.h>
#define uchar unsigned char
uchar num;
sbit PWM=P1^7;

void init()
{
TMOD=0x02; //设定工作方式2
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
}

void T0_timer() interrupt 1
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
num++;
}

void main()
{
init();
while(1)
{
if(num==156)
{
PWM=~PWM;
num=0;
}
}
}
温馨提示:答案为网友推荐,仅供参考