标题:
分享一个51单片机IO口模拟PWM输出的程序
[打印本页]
作者:
CLJTWENS
时间:
2019-2-25 17:55
标题:
分享一个51单片机IO口模拟PWM输出的程序
本帖最后由 CLJTWENS 于 2019-2-25 17:56 编辑
原理:简单来说,就是控制一个周期里面高低电平的比例。
核心程序如下:
unsigned int Num=0;
unsigned int PWM=0;
//系统初始化
void Sys_init(void)
{
//定时器初始化
TMOD=(TMOD&0xFC)|0x10;
TL1 = 0xf0;
TH1 = 0xff;
TR1 = 1;
ET1 = 1;
PT1 = 1;
//P30口设为输出
P30F=2;
//占空比控制变量
Num=200;
}
//PWM产生函数,50%占空比。
void Simu_PWM(void)
{
if(PWM<Num)
{
P30=1;
}
else
{
P30=0;
}
}
void TIMER1_ISR (void) interrupt 3
{
TL1 = 0xf0;
TH1 = 0xff;
PWM++;
if(PWM>=400) //总计数大小
{
PWM=0;
}
Simu_PWM();
}
是不是很简单 *)
作者:
yp120310
时间:
2019-7-13 10:59
怎么修改占空比
作者:
柠檬双生
时间:
2019-12-23 18:35
P30F=2什么意思?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1