要用STC89C52产生PWM,从P0.7输出,占空比大小根据电脑串口SUBF给的信号,数值为0~256任意一数。
发布网友
发布时间:2022-09-25 21:23
我来回答
共1个回答
热心网友
时间:2023-09-21 16:05
#include <reg52.h>
#define uchar unsigned char
uchar recv;
uchar cout;
sbit PWM = P0^7;
void UART_ISR (void) interrupt 4
{
RI = 0;
recv = SBUF;
}
void TIM0_ISR(void) interrupt 1
{
cout++;
}
void mian (void)
{
tim0_init()//初始化定时器,Timer0定时值决定PWM的周期,Timer2用于产生波特率
serial_init(); //初始化串口,设定模特率、起始位、停止位
interrup_init()//初始化中断,开全局中断,定时器和串口中断
while(1)
{
if (cout < recv) PWM = 0; //SBUF收到的recv决定PWM的占空比
else PWM = 1;
}
}