|
這個(gè)是輸出PWM控制有刷空心杯電機(jī)的程序,我把它用來(lái)?yè)Q成無(wú)刷電機(jī)的就不行了,我用串口改變PWM的值后我用示波器發(fā)現(xiàn)是方波了,為什么無(wú)刷電機(jī)就不轉(zhuǎn)呢
如果要修改的話怎么改
單片機(jī)源程序:
- #include "STC15.h"
- #include "intrins.h"
- #define FOSC 22118400L
- #define BaudRate 115200
- sbit Motor1 = P3^7;
- void Delay(unsigned int t)
- {
- while(t--)_nop_();
- }
- unsigned char PWM=1;
- void main(void)
- {
- //初始化串口1
- SCON=0x50;
- PCON&=0x3f;
- AUXR|=0x15; //0001 0101 置位對(duì)應(yīng)位
- AUXR&=0xf7; //1111 0111 清零對(duì)應(yīng)位
- T2L = (0xffff - (FOSC/4/BaudRate));
- T2H = (0xffff - (FOSC/4/BaudRate))>>8;
- CLK_DIV&=0xef; //xxx0 xxxx 不開(kāi)廣播模式
- EA=1;
- ES=1;
- PS=0;
- while(1)
- {
- Motor1=1;
- Delay(PWM);
- Motor1=0;
- Delay(50-PWM);
- }
- }
- void Uart1_interrupt() interrupt 4
- {
- if(RI)
- {
- RI=0;
- PWM=SBUF;
- }
- }
復(fù)制代碼
|
|