標(biāo)題: mega128單片機(jī)定時器控制舵機(jī)正反轉(zhuǎn)的程序及proteus仿真 [打印本頁]

作者: 51黑ff    時間: 2016-9-12 00:14
標(biāo)題: mega128單片機(jī)定時器控制舵機(jī)正反轉(zhuǎn)的程序及proteus仿真
mega128單片機(jī)是一款控制舵機(jī)很好的芯片,這里給51黑電子論壇的朋友們分享一個我做的舵機(jī)仿真,帶程序源碼.下面是仿真原理圖:


程序源碼:
  1. #include<avr/io.h>
  2. #include<util/delay.h>
  3. //實(shí)現(xiàn)舵機(jī)正轉(zhuǎn)反轉(zhuǎn),proteus中舵機(jī)是按照高電平1ms到2ms控制位置,可修改
  4. void pwm_init()
  5. {
  6.         DDRE|=(1<<PE5);
  7.         TCCR3A=0X0A;//PE5輸出pwm,快速14模式,匹配時清零,PE5輸出
  8.         TCCR3B=0x1a;//14模式,64分頻
  9.         OCR3C=6000;//
  10.         ICR3=6000;
  11. }
  12. void xz( unsigned int r)//按從0到180角度位置輸出,就是proteus電機(jī)里的-90到+90
  13. {
  14.         OCR3C=2000+r*200/18;//2000是高電平1ms
  15. }
  16. int main()
  17. {
  18.         pwm_init();
  19.         unsigned char r=0;
  20.         while(1)
  21.         {
  22.                 xz(r);//改變角度
  23.                 r++;//角度增加
  24.                 _delay_ms(5);//實(shí)際應(yīng)用應(yīng)中考慮具體延時,5ms太快
  25.                 if(r==180)
  26.                 {
  27.                         _delay_ms(1000);
  28.                         while(r!=0)
  29.                         {
  30.                                 xz(r);
  31.                                 r--;
  32.                                 _delay_ms(5);
  33.                         }
  34.                         _delay_ms(1000);
  35.                 }
  36.         }
  37.         return 0;        
  38. }
復(fù)制代碼


mega128用定時器控制舵機(jī)正反轉(zhuǎn).rar

25.77 KB, 下載次數(shù): 29, 下載積分: 黑幣 -5


作者: pansubing    時間: 2016-9-26 11:11
謝謝樓主分享
作者: pansubing    時間: 2016-9-26 11:23
仿真報(bào)錯了
作者: xiqixiaofuzhu    時間: 2016-11-19 22:28
報(bào)錯呀,可以提供新的嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1