下载此文档

舵机控制C程序.docx


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
该【舵机控制C程序 】是由【MX01】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【舵机控制C程序 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Documentnumber:NOCG-YUNOO-BUYTT-UU986-1986UT
舵机控制C程序
舵机控制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定时,晶振
初值20ms
初值
*****************************************************************/
voidTimerInit()
{
control_signal=0;
TMOD=0x01;//设置定时器0为工作方式1
EA=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)
{
staticcharkey_state=0;
staticcharkey_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)//判断是哪一个按键被按下
key_value=1;//按键较多时可采用switch选择结构
elseif(turn_right==0)
key_value=2;
else
key_value=0;
key_state=2;//状态转换到键释放态
}
else
key_state=0;//按键已抬起,属于干扰,转换到按键初始态
break;
case2:
if(key_press==1)
{
key_return=key_value;//按键释放后再输出键值,如果按下键就输出则可省略key_value
key_value=0;
key_state=0;//如果按键释放,转换到按键初始态
}
break;
}
returnkey_return;//返回键值
}
/*********************************************
名称:按键处理
功能:
**********************************************/
voidkey_operation(void)
{
switch(keyscan())//根据键值不同,执行不同的内容
{
case1:
hight_votage-=1;
if(hight_votage<5)
hight_votage=5;
break;
case2:
hight_votage+=1;
if(hight_votage>25)
hight_votage=25;
break;
default:
break;
}
}
//LED显示函数
voiddiplay()
{
if(hight_votage>=5&&hight_votage<=7)P1=0xFD;//1灯亮,舵机接近或到达右转极限位置
if(hight_votage>7&&hight_votage<=10)P1=0xFB;//2灯亮
if(hight_votage>10&&hight_votage<=13)P1=0xF7;//3灯亮
if(hight_votage>13&&hight_votage<=16)P1=0xEF;//4灯亮,舵机到达中间位置
if(hight_votage>16&&hight_votage<=19)P1=0xDF;//5灯亮
if(hight_votage>19&&hight_votage<=22)P1=0xBF;//6灯亮
if(hight_votage>22&&hight_votage<=25)P1=0x7F;//7灯亮,舵机接近或到达左转极限位置
}
/*主程序*/
voidmain(void)
{
TimerInit();
while(1)
{
key_operation();
diplay();
}
}

舵机控制C程序 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人MX01
  • 文件大小165 KB
  • 时间2023-02-12
最近更新