STC 89C51,单片机C语言程序,P10输出PWM方波

2025-03-23 04:44:43
推荐回答(1个)
回答1:

串口还是P10?我下面贴出P10输出PWM的产生代码,希望对你能有帮助。

#include 
# t  10000/100   //修改10000更改周期 单位us  T(us)=10^6/f(hz) 至少10000us
# Duty_cycle 10 ///更改此更改占空比  0-100

unsigned char percent=0;
sbit work_pin P1^0;

void Timer0Init()  //定时器0初始化
{

TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

TH0=0xff;
TL0=0x9c;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}


void  PWM_work()   interrupt 1   
{
TH0=0xff;
TL0=0c9c;  
percent++;
if(percent<=Duty_cycle*t/100)
{
work_pin=1;
if(percent>t)   percent=0;
}
else work_pin=0;
      

}


void main()
{
Timer0Init();
while(1);
}