- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
会计学
1
单片机输出接口与伺服电机控制
C51单片机的输入/输出接口
机器人伺服电机控制信号
计数并控制循环次数
第1页/共11页
C51单片机的输入/输出接口
•
控制机器人伺服电机以不同速度运动
是通过让单片机的输入/输出(I/O)口
输出不同的脉冲序列来实现的。51系
列单片机有4个8位的并行I/O口:P0、
P1、P2和P3。这4个接口,既可以作
为输入,也可以作为输出;可按8位处
理,也可按位方式(1位)使用。右图
是单片机STC89C52RC的引脚定义
图,这是一个标准的40引脚双列直插
式集成电路芯片。
第2页/共11页
任务一 机器人伺服电机控制信号
•
•
•
控制伺服电机转速为零的时序
控制伺服电机顺时针全速旋转的时序
控制伺服电机逆时针全速旋转的时序
第3页/共11页
任务一 机器人伺服电机控制信号
• 关于驱动电机的IO口
– P1_0专门控制右轮伺服电机
– P1_1专门控制左轮伺服电机
伺服电机与教学底板的连线原理图(左)和实际接线示意图(右)
第4页/共11页
任务一 机器人伺服电机控制信号
•
连接到P1_0的伺服电机分别为停止,全速顺时针旋转和逆时针旋转
的程序。
while(1)
{
P1_0=1; //P1_0输出高电平
delay_nus(1300); //延时1.3ms
P1_0=0; //P1_0输出低电平
delay_nus(20000); //延时20ms
}
while(1)
{
P1_0=1; //P1_0输出高电平
delay_nus(1500); //延时1.5ms
P1_0=0; //P1_0输出低电平
delay_nus(20000); //延时20ms
}
while(1)
{
P1_0=1; //P1_0输出高电平
delay_nus(1500); //延时1.7ms
P1_0=0; //P1_0输出低电平
delay_nus(20000); //延时20ms
}
第5页/共11页
任务一 机器人伺服电机控制信号
• 该你了,让机器人的两个轮子全速旋转。
#includeBoeBot.h
#includeuart.h
int main(void)
{
uart_Init(); //初始化串口
printf(The LEDs connected to P1_0 and P1_1 are blinking!\n );
while(1)
{
P1_0=1; //P1_0输出高电平
P1_1=1; //P1_1输出高电平
delay_nus(1300); //延时500ms
P1_0=0; //P1_0输出低电平
P1_1=0; //P1_1输出低电平
delay_nms(20); //延时20ms
}
}
第6页/共11页
任务二 计数并控制循环次数
• for语句
–
–
–
–
for语句的执行过程
for语句的形式:for(循环变量赋初值;循环条件;循环变量增/减值) 语句
自增和自减
for循环控制电机的运行时间
•
第7页/共11页
任务二 计数并控制循环次数
• 与 P1_1 连接的电机逆时针旋转2.17 秒,然后与P1_0 连接
的电机旋转4.34秒
for(Counter=1;Counter=100;i++)
{
P1_1=1;
delay_nus(1700);
P1_1=0;
delay_nms(20);
}
delay_nus(1700)持续1.7 ms,delay_nms(20)持续20ms,其他语句的执行时间很少,可忽略。
那么for 循环整体执行一次的时间是:1.7 ms + 20 ms = 21.7ms,本循环执行100 次,即就是
21.7ms 乘以100,时间=100*21.7ms =100*0.0217 秒=2.17 秒。
第8页/共11页
任务二 计数并控制循环次数
•
一个电机正向旋转3秒,另一个电机同时的反向旋转3
秒。
想让两个电机同时运行,给与P1_
文档评论(0)