单片机如何产生PWM信号

Posted isandywu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机如何产生PWM信号相关的知识,希望对你有一定的参考价值。

用89C52产生控制二相步进电机的程序,用PWM信号控制步进电机

用普通I/O口采用软件定时器中断可以模拟PWM输出

/*采用6MHz晶振,在P1.0脚上输出周期为2.5s,占空比为20%的脉冲信号*/
/*定时100ms,周期2.5s需25次中断,高电平0.5s需5次中断*/
#include <reg51.h>
typedef unsigned char uchar;
sbit P1_0=P1^0;
uchar time=0;
uchar period=25;
uchar high=5;
void timer0() interrupt 1 using 1
{
TH0=0x3c; /*定时器初值重装载*/
TL0=0xb0;
time++;
if(time==high) /*高电平持续时间结束,变低*/
{ P1_0=0;}
else if(time==period) /*周期时间到,变高*/
{ time=0;
P1_0=1;
}
}
void main()
{
TMOD=0x01; /*定时器0方式1*/
TH0=0x3c; /*定时器装载初值*/
TL0=0xb0;
EA=1; /*开CPU中断*/
ET0=1; /*开定时器0中断*/
TR0=1;/*启动定时器0*/
while(1) /*等待中断*/
{}
}

 

以上是关于单片机如何产生PWM信号的主要内容,如果未能解决你的问题,请参考以下文章

单片机ad与pwm问题

基于51单片机霍尔测速直流电机控制设计(含源码+原理图+论文+PCB封装)

实例5:寄存器操作学习:stc8a8k单片机硬件PWM的原理和代码讲解(置1清0位操作和高8位低8位拆分)

51单片机模拟PWM调制控制实验

51单片机PWM

stm32输出的pwm有啥用