舵机控制C程序#include<>#defineucharunsignedchar#defineuintunsignedint/*变量定义*/ucharkey_stime_counter,hight_votage=15,timeT_counter;bitkey_stime_ok;/*引脚定义*/sbitcontrol_signal=P0^0;sbitturn_left=P3^4;sbitturn_right=P3^5;/*****************************************************************名称:定时器0初始化功能:20ms定时,=65536-11059200*=65536-18432=47104=0xB80020ms初值=65536-11059200*=65536-=64430=*****************************************************************/voidTimerInit(){control_signal=0;TMOD=0x01;//设置定时器0为工作方式1EA=1;//开总中断ET0=1;//定时器0中断允许TH0=0xFF;//定时器装初值TL0=0xA3;TR0=1;//启动定时器0}/**********************************************定时器0中断服务函数***********************************************/voidtimer0(void)interrupt1using0{TH0=0xFF;TL0=0xA3;//定时器0重新装入数值if(++key_stime_counter>=200){key_stime_counter=0;control_signal=1;key_stime_ok=1;//20ms到timeT_counter=0;}if(key_stime_ok&&(++timeT_counter>=hight_votage)){key_stime_ok=0;timeT_counter=0;control_signal=0;//hight_votage*}}/*********************************************名称:键盘扫描功能:在按键稳定期内判断键值,并返回键值**********************************************/ucharkeyscan(void){harkey_state=0;harkey_value=0;ucharkey_press,key_return=0;key_press=turn_left&turn_right;//读按键I/O电平switch(key_state){case0://按键初始态if(key_press==0)key_state=1;//键被按下,但需要确认是否是干扰break;case1://按键确认态if(key_press==0)//如有键按下则不是干扰,判断键值{if(turn_left==0)//判断是哪一
舵机控制C程序 来自淘豆网m.daumloan.com转载请标明出处.