/****************12MHz晶振******************/
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit PWM=P2^0;
uchar n=1; //脉冲的占空比n=1;则占空比位10%%
/************m为1时,延时100ms毫秒*****************/
void delay(uchar m)//延时子函数,延时误差为00
{
unsigned char a,b,c;
while(m--)
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=130;a>0;a--);
}
/****************脉冲输出子函数***************/
void PWMout(uchar q)
{
PWM=0;
delay(10-q);
PWM=1;
delay(q);
PWM=1;
}
void main()
{
EA=1;
EX0=1;//允许外部0 中断
IT0=1;// 下降沿触发
while(1)
PWMout(n);
}
/******************外部中断0*****************/
void INT()interrupt 0
{
if(n==10) n=10;
else n=n+1;
}
评论0