//利用nxp LPC935產生300HZ占空比為30%的6路脈沖
晶振頻率6MHz
#include "reg935.h"
sbit LED=P0^7; //吸料指示燈
sbit pls_1=P0^6; //脈沖1
sbit pls_2=P0^5; //脈沖2
sbit pls_3=P0^4; //脈沖3
sbit pls_4=P0^3; //脈沖4
sbit pls_5=P0^2; //脈沖5
sbit pls_6=P0^1; //脈沖6
unsigned int k,l;
unsigned char PWM_COUNT;
void timer0_init();
/****************************************************
* 采用定時器2
工作方式2,每 0.33us 中斷一次
*
*****************************************************/
void timer0_init()
{
TMOD|=0X02;
TH0=0X38;// 200個掃描周期既66.66u中斷一次,總共中斷50次
TL0=0X38;
TR0=1;
ET0=1;
EA=1;
PWM_COUNT=0;
}
void main()
{
timer0_init();
while(1)
{
P0M1=0x00; //推挽輸出
P0M2=0xff; //推挽輸出
pls_1=0;
pls_2=0;
pls_3=0;
pls_4=0;
pls_5=0;
pls_6=0;
}
}
/****************************************************
* 中斷服務子函數
*
*****************************************************/
void timer0() interrupt 1
{
PWM_COUNT++;
if(PWM_COUNT==15)
{
pls_1=0;
pls_2=0;
pls_3=0;
pls_4=0;
pls_5=0;
pls_6=0;
}
if(PWM_COUNT==50)
{
pls_1=1;
pls_2=1;
pls_3=1;
pls_4=1;
pls_5=1;
pls_6=1;
PWM_COUNT=0;//從新計時
}
}
|