#include<reg51.h>
typedef unsigned char unchar;
#define V_TH0 (65536-10)/256
#define V_TL0 (65536-10)%256
#define V_TMOD 0x11
unchar a1;
sbit aena = P1^0;
void main()
{
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
TR0=1;
ET0=1;
a1=20;
while(1);
}
void timer0(void) interrupt 1
{
static unchar click=0; /*中断次数计数器变量*/
TH0=V_TH0; /*恢复定时器初始值*/
TL0=V_TL0;
++click;
if (click>=100) click=0;
if (click<=a1) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
aena=1;
else
aena=0;
}
温馨提示:答案为网友推荐,仅供参考