舵机控制C程序

上传人:lcm****801 文档编号:101320985 上传时间:2019-09-27 格式:DOC 页数:4 大小:16.89KB
返回 下载 相关 举报
舵机控制C程序_第1页
第1页 / 共4页
舵机控制C程序_第2页
第2页 / 共4页
舵机控制C程序_第3页
第3页 / 共4页
舵机控制C程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《舵机控制C程序》由会员分享,可在线阅读,更多相关《舵机控制C程序(4页珍藏版)》请在金锄头文库上搜索。

1、 舵机控制C程序#include #define uchar unsigned char #define uint unsigned int/*变量定义*/uchar key_stime_counter,hight_votage=15,timeT_counter; bit key_stime_ok;/*引脚定义*/ sbit control_signal=P00; sbit turn_left=P34;sbit turn_right=P35;/*名称:定时器0初始化功能:20ms定时,11.0592M晶振初值=65536-11059200*0.02/12=65536-18432=47104=0

2、xB800 20ms初值=65536-11059200*0.0001/12=65536-92.16=64430=0xFFA3 0.1ms*/void TimerInit() control_signal=0;TMOD=0x01; /设置定时器0为工作方式1EA=1; /开总中断ET0=1; /定时器0中断允许 TH0 = 0xFF; /定时器装初值 TL0 = 0xA3;TR0=1; /启动定时器0 /*定时器0中断服务函数*/void timer0(void) interrupt 1 using 0 TH0=0xFF; TL0=0xA3; /定时器0重新装入数值if (+key_stime_

3、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*0.1ms到 /*名称:键盘扫描功能:在按键稳定期内判断键值,并返回键值*/uchar keyscan(void)static char key_state = 0; static ch

4、ar key_value = 0;uchar key_press, key_return = 0;key_press=turn_left&turn_right; /读按键I/O电平 switch (key_state) case 0 : / 按键初始态 if (key_press=0) key_state = 1; / 键被按下,但需要确认是否是干扰break; case 1 : / 按键确认态 if (key_press=0)/如有键按下则不是干扰,判断键值 if(turn_left=0) /判断是哪一个按键被按下 key_value=1; /按键较多时可采用switch选择结构 else

5、if(turn_right=0) key_value=2; else key_value=0; key_state = 2; / 状态转换到键释放态 else key_state = 0; / 按键已抬起,属于干扰,转换到按键初始态 break; case 2 : if (key_press=1) key_return=key_value;/按键释放后再输出键值,如果按下键就输出则可省略key_value key_value=0; key_state = 0; /如果按键释放,转换到按键初始态 break;return key_return; /返回键值/*名称:按键处理功能:*/void k

6、ey_operation(void) switch (keyscan() /根据键值不同,执行不同的内容 case 1: hight_votage-=1; if(hight_votage25) hight_votage=25; break; default : break; /LED显示函数void diplay()if(hight_votage=5&hight_votage7&hight_votage10&hight_votage13&hight_votage16&hight_votage19&hight_votage22&hight_votage=25) P1=0x7F; /7灯亮,舵机接近或到达左转极限位置/*主程序*/ void main(void)TimerInit(); while(1) key_operation(); diplay();

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号