|
io口輸出方波就是我們常提到的pwm。給個(gè)輸出pwm的例子你看看
/********************************************************************************
* 標(biāo)題: 恒速運(yùn)行 *
* *
*********************************************************************************
* 通過(guò)本例程了解PWM 的基本原理和使用 *
* *
* 請(qǐng)將直流電機(jī)線接在+5V P12對(duì)應(yīng)的端子上(步進(jìn)馬達(dá)接口出) *
* *
* 請(qǐng)學(xué)員認(rèn)真消化本例程 *
*********************************************************************************/
#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 為定時(shí)器1的中斷號(hào) 1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xfe; //11.0592
TL1 = 0x33;
timer1++;
}
|
|