设单片机的fosc=6MHz,,要求在P1.0脚上输出周期为2ms的占空比20%的PWN波

设单片机的fosc=6MHz,,要求在P1.0脚上输出周期为2ms的占空比20%的PWN波 考试速回 要求有必要的中文注释

#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;

}
温馨提示:答案为网友推荐,仅供参考