/********************************************************************************
* 标题: 恒速运行
*********************************************************************************
* 通过本例程了解PWM 的基本原理和使用
*********************************************************************************/
#include <reg52.h>
unsigned char timer1;
sbit PWM=P2^0;
void system_Ini()
{
TMOD|= 0x11;
//PWM
TH1 = 0xfe; //11.0592
TL1 = 0x33;
TR1 = 1;
IE =0x8A;
}
main()
{
system_Ini();
while(1)
{
if(timer1>100)
{
timer1=0;
}
if(timer1<60)
{
PWM=0;
}
else
{
PWM=1;
}
}
}
/*************************************
[ t1 (0.5ms)中断] 中断中做 PWM 输出
------------1000/(0.02ms*250)=200Hz
*************************************/
void T1zd(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号 0 外部中断1 2 外部中断2 4 串口中断
{
TH1 = 0xfe; //11.0592
TL1 = 0x33;
timer1++;
}
51 单片机 PWM调速基本原理
最新推荐文章于 2025-03-18 10:26:32 发布