|
mega128單片機是一款控制舵機很好的芯片,這里給51黑電子論壇的朋友們分享一個我做的舵機仿真,帶程序源碼.下面是仿真原理圖:
0.png (32.29 KB, 下載次數: 103)
下載附件
2016-9-12 00:11 上傳
程序源碼:
- #include<avr/io.h>
- #include<util/delay.h>
- //實現舵機正轉反轉,proteus中舵機是按照高電平1ms到2ms控制位置,可修改
- void pwm_init()
- {
- DDRE|=(1<<PE5);
- TCCR3A=0X0A;//PE5輸出pwm,快速14模式,匹配時清零,PE5輸出
- TCCR3B=0x1a;//14模式,64分頻
- OCR3C=6000;//
- ICR3=6000;
- }
- void xz( unsigned int r)//按從0到180角度位置輸出,就是proteus電機里的-90到+90
- {
- OCR3C=2000+r*200/18;//2000是高電平1ms
- }
- int main()
- {
- pwm_init();
- unsigned char r=0;
- while(1)
- {
- xz(r);//改變角度
- r++;//角度增加
- _delay_ms(5);//實際應用應中考慮具體延時,5ms太快
- if(r==180)
- {
- _delay_ms(1000);
- while(r!=0)
- {
- xz(r);
- r--;
- _delay_ms(5);
- }
- _delay_ms(1000);
- }
- }
- return 0;
- }
復制代碼
0.png (72.01 KB, 下載次數: 119)
下載附件
2016-9-12 00:10 上傳
|
|