/********************************************************************************
* 标题: 恒速运行 *
* *
*********************************************************************************
* 通过本例程了解PWM 的基本原理和使用 *
* *
* 请将直流电机线接在+5V P12对应的端子上(步进马达接口出) *
* *
* 请学员认真消化本例程 *
*********************************************************************************/
#include <reg52.h>
unsigned char timer1;
sbit PWM=P1^2;
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<30) 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++;
}