|
我是新手,之前想測(cè)試一舵機(jī),在論壇沒找到可用的程序,后來在度娘找到了,在這分享一下
- #include<reg52.h>
- typedef unsigned int uint;
- typedef unsigned char uchar;
- sbit pwm=P0^3;//輸出PWM信號(hào)
- uint pwm_value=1500;//初值為1.5ms
- uint value[]={1500,1000,1500,2000,1500};//
- void delay_ms(uint x)
- {
- uint i;
- while(x--)for(i=0;i<125;i++);
- }
- void InitTimer(void)
- {
- TMOD=0x11;//開定時(shí)器0,1
- TH0=-20000/256;//定時(shí)20MS,20MS為一個(gè)周期
- TL0=-20000%256;
- TH1=-1500/256;//定時(shí)1.5MS,這時(shí)舵機(jī)處于0度
- TL1=-1500%256;
- EA=1;//開總斷
- TR0=1;//開定時(shí)器0
- ET0=1;
- TR1=1;//開定時(shí)器1
- ET1=1;
- }
- void timer0(void) interrupt 1//定時(shí)器0中斷函數(shù)
- {
- pwm=1;
- TH0=-20000/256;
- TL0=-20000%256;
- TR1=1;
- }
- void timer1(void) interrupt 3//定時(shí)器1中斷函數(shù)
- {
- pwm=0;
- TH1=-pwm_value/256;
- TL1=-pwm_value%256;
- TR1=0;
- }
- void main(void)//主函數(shù)
- {
- uchar i;
- InitTimer();
- pwm_value=1500;
- while(1)
- {
- for(i=0;i<5;i++)
- {
- pwm_value=value[i];//通過數(shù)組就可以改變舵機(jī)的轉(zhuǎn)角度
- delay_ms(1000);
- }
- }
- }
復(fù)制代碼
|
-
-
51舵機(jī)程序.zip
2015-11-23 18:09 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
676 Bytes, 下載次數(shù): 101, 下載積分: 黑幣 -5
txt格式
評(píng)分
-
查看全部評(píng)分
|