- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Document number:NOCG-YUNOO-BUYTT-UU986-1986UT
Document number: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(keys
您可能关注的文档
- 舞蹈校本课程教学设计.docx
- 舞蹈理论考试题.docx
- 舞蹈社团工作总结.docx
- 舞蹈社团活动总结.docx
- 舞蹈社团活动方案.docx
- 舞蹈社团活动记录.docx
- 舞蹈社社团材料.docx
- 舞蹈考级的好处.docx
- 舞蹈艺术概论每章要点.docx
- 舞蹈评分标准.docx
- 2024年重庆电子工程职业学院职业倾向性测试题一套附答案(必刷).docx
- 2024年重庆电子工程职业学院职业倾向性测试题含答案【轻巧夺冠】.docx
- 2024年阜阳职业技术学院单招职业技能测试题库标准卷及解析.docx
- 抖音运营基础知识题库100道加答案解析.docx
- 2024年内蒙古北方职业技术学院单招职业技能测试题库往年题考解析.docx
- 抖音运营基础知识题库(名师系列).docx
- 抖音运营基础知识题库附答案下载.docx
- 2024年湖南外国语职业学院单招职业技能测试题库及参考答案解析.docx
- 抖音运营基础知识题库必考题.docx
- 2024年厦门理工学院单招职业技能测试题库及完整答案解析.docx
文档评论(0)