熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2019-7-19 09:21
正文摘要:在參考一些關(guān)于無刷電機(jī)驅(qū)動(dòng)的書籍和帖子的時(shí)候,發(fā)現(xiàn)高手或是大師好像都比較惜字如金,一些問題往往點(diǎn)到為止或者一筆帶過,有些看似簡單的問題會(huì)讓像我這樣的電調(diào)DIYer困惑很久。所以在本文行文時(shí),筆者力圖把問題 ... |
非常感謝 我也整段示例代碼吧 直接源碼 #include <reg51.h> #define FOSC 11059200L #define BAUD 9600 #define TIMER_CLOCK 921600L sbit IN1 = P1^0; //引腳定義 sbit IN2 = P1^1; sbit IN3 = P1^2; sbit IN4 = P1^3; unsigned char code PWM_HL[8] = {0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x3F}; //PWM占空比 void delay_us(unsigned char i) { while(i--); } void delay_ms(unsigned char i) { unsigned char j; while(i--) for(j = 0; j < 110; j++); } void Timer0Init() { TMOD &= 0xF0; TMOD |= 0x01; //16位計(jì)數(shù)器模式 TH0 = 0x3C; TL0 = 0xB0; ET0 = 1; TR0 = 1; EA = 1; } void SerialInit() { PCON = 0x00; SCON = 0x50; TMOD |= 0x20; //Timer1為8位自動(dòng)重載定時(shí)器模式 TH1 = 256-((FOSC/12/32)/BAUD); TL1 = TH1; TR1 = 1; } void PWM(unsigned char speed) { unsigned char i; if(speed > 7) speed = 7; for(i = 0; i < 500; i++) { if(speed > i >> 8) IN1 = 1; else IN1 = 0; if(speed > i >> 6) IN2 = 1; else IN2 = 0; if(speed > i >> 4) IN3 = 1; else IN3 = 0; if(speed > i >> 2) IN4 = 1; else IN4 = 0; delay_us(1); } } void main() { SerialInit(); Timer0Init(); while(1) { PWM(5); delay_ms(2000); PWM(2); delay_ms(2000); } } void Timer0_ISR() interrupt 1 { static unsigned char count = 0; static unsigned char speed = 0; TH0 = 0x3C; TL0 = 0xB0; count ++; if(count >= 10) { count = 0; if(SBUF > 10) speed = SBUF - 10; else speed = 0; } PWM(speed); TF0 = 0; } ``` 在此示例中,我們使用了定時(shí)計(jì)數(shù)器Timer0來產(chǎn)生控制無刷電機(jī)(4相)的PWM信號(hào)。通過修改定時(shí)器的計(jì)數(shù)方式和TH0、TL0寄存器的值,可以實(shí)現(xiàn)不同的PWM頻率和占空比。具體實(shí)現(xiàn)步驟為: 1. 根據(jù)控制要求,定義引腳和占空比常量 2. 初始化定時(shí)器Timer0,并編寫相應(yīng)的定時(shí)器中斷服務(wù)函數(shù)Timer0_ISR() 3. 初始化串口通信,并在主函數(shù)中調(diào)用PWM()函數(shù)來控制無刷電機(jī)的速度和方向 |
非常感謝你的資料 |
剛好需要學(xué)習(xí)電調(diào)DIY,非常感謝你的資料,我將竭盡所能學(xué)習(xí),不浪費(fèi)你的心血 |
資料非常好,值得推薦 |
非常好的直流電機(jī)設(shè)計(jì)資料 |
感謝分享 |
好資料,感謝分享 |
Powered by 單片機(jī)教程網(wǎng)