1、uint16 pwm9=1500,1500,1500,1500,1500,1500,1500,1500,1500; /定时器取定时值从这里取sbit pwm16=P53; sbit pwm15=P15;sbit pwm14=P16;sbit pwm13=P17;sbit pwm12=P43;sbit pwm11=P32;sbit pwm10=P33;sbit pwm9=P34;sbit pwm8=P05;sbit pwm7=P06;sbit pwm6=P07;sbit pwm5=P46;sbit pwm4=P41;sbit pwm3=P45;sbit pwm2=P44;sbit pwm1=P2
2、7;/* 函数名:main()功能: 入口函数备注:/*/void main() uint8 i=0; P0M1=0; /设置P口为强推免输出模式,下同 P0M0=0XFF; P1M1=0; P1M0=0XFF; P2M1=0; P2M0=0XFF; P3M1=0; P3M0=0XFF; P4M1=0; P4M0=0XFF; P5M1=0; P5M0=0XFF; P4SW|=0X70; Timer_init(); /定时器初始化 Timer0(31); /通过一个定时值进入定时循环 while(1) for(i=1;i9;i+) /pos0位置 pwmi=pos0i; delay(1000);
3、i+) / pos1位置 pwmi=pos1i; /舵机在两个角度之间摆动 delay(uint16 time) 软件延时函数参数: time 定时值,其大小与延时长短成正比void delay(uint16 time) uint16 i; uint16 j; for(i=0;1000;i+) for(j=0;j8; TL0=(valu TR0 = 1; /T0开始工作T0zd(void) interrupt 1 定时器0中断函数 控制8个舵机void T0zd(void) interrupt 1 static uint8 i=1; switch(i) / case 1: pwm1=1; Ti
4、mer0(pwm1); /定时 break; case 2: pwm1=0; /pwm1变低 Timer0(2500-pwm1);/ 定时 case 3: pwm2=1; /pwm2变高 Timer0(pwm2);/ 定时时常为pwm2 case 4: pwm2=0; /pwm2变低 Timer0(2500-pwm2); case 5: pwm3=1; /pwm3变高 Timer0(pwm3);/ 定时时常为pwm3 case 6: pwm3=0; /pwm3变低 Timer0(2500-pwm3); case 7: pwm4=1; /pwm4变高 Timer0(pwm4); case 8:
5、pwm4=0; /pwm4变低 Timer0(2500-pwm4); case 9: pwm5=1; /pwm5变高 Timer0(pwm5); case 10: pwm5=0; /pwm5变低 Timer0(2500-pwm5); case 11: pwm6=1; /pwm6变高 Timer0(pwm6); case 12: pwm6=0; /pwm6变低 Timer0(2500-pwm6); case 13: pwm7=1; /pwm7变高 Timer0(pwm7); case 14: pwm7=0; /pwm7变低 Timer0(2500-pwm7); case 15: pwm8=1; /pwm8变高 Timer0(pwm8); case 16: pwm8=0; /pwm8变低 Timer0(2500-pwm8); i=0; default:break; i+;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2