单片机输出接口与伺服电机控制.ppt

上传人:罗晋 文档编号:7197776 上传时间:2020-11-05 格式:PPT 页数:11 大小:386KB
返回 下载 相关 举报
单片机输出接口与伺服电机控制.ppt_第1页
第1页 / 共11页
单片机输出接口与伺服电机控制.ppt_第2页
第2页 / 共11页
单片机输出接口与伺服电机控制.ppt_第3页
第3页 / 共11页
单片机输出接口与伺服电机控制.ppt_第4页
第4页 / 共11页
单片机输出接口与伺服电机控制.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机输出接口与伺服电机控制.ppt》由会员分享,可在线阅读,更多相关《单片机输出接口与伺服电机控制.ppt(11页珍藏版)》请在三一文库上搜索。

1、,C语言编程控制伺服电机,C51单片机的输入/输出接口 机器人伺服电机控制信号 计数并控制循环次数,C51单片机的输入/输出接口,控制机器人伺服电机以不同速度运动 是通过让单片机的输入/输出(I/O)口 输出不同的脉冲序列来实现的。51系 列单片机有4个8位的并行I/O口:P0、 P1、P2和P3。这4个接口,既可以作 为输入,也可以作为输出;可按8位处 理,也可按位方式(1位)使用。右图 是单片机STC89C52RC的引脚定义 图,这是一个标准的40引脚双列直插 式集成电路芯片。,任务一 机器人伺服电机控制信号, ,控制伺服电机转速为零的时序 控制伺服电机顺时针全速旋转的时序 控制伺服电机逆

2、时针全速旋转的时序,任务一 机器人伺服电机控制信号 关于驱动电机的IO口 P1_0专门控制右轮伺服电机 P1_1专门控制左轮伺服电机 伺服电机与教学底板的连线原理图(左)和实际接线示意图(右),任务一 机器人伺服电机控制信号,连接到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.

3、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 ,任务一 机器人伺服电机控制信号 该你了,让机器人的两个轮子全速旋转。 #include #include int main(void) uart_Init(); /初始化串口 printf(The LEDs connected to P1_0 and P1_1 are blinking!n ); w

4、hile(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 ,任务二 计数并控制循环次数 for语句, ,for语句的执行过程 for语句的形式:for(循环变量赋初值;循环条件;循环变量增/减值) 语句 自增和自减 for循环控制电机的运行时间,任务二 计数并控制循环次数 与 P1_1 连接的电机逆时针旋转2.17 秒,然后与P1_0 连接 的电机旋转4.34秒,for(Counter=1

5、;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 秒。,任务二 计数并控制循环次数 ,一个电机正向旋转3秒,另一个电机同时的反向旋转3 秒。,想让两个电机同时运行,给与P1_1 连接的电机发

6、出1.7ms 的脉宽,给与P1_0 连接的电机发出1.3ms 的脉宽,现在每通过循环一次要用的时间是: 1.7ms 与P1_1 连接的电机 1.3ms 与P1_0 连接的电机 20 ms 中断持续时间 - - 一共是23 ms 如果你想使机器人运行一段确定的时间,可以计算如下: 脉冲数量=时间/0.023 秒=时间/0.023 假如你想让电机运行3 秒,计算如下: 脉冲数量=3 / 0.023= 130 现在,你可以将for 循环中作如下修改,程序如下,任务二 计数并控制循环次数 ,一个电机正向旋转3秒,另一个电机同时的反向旋转3 秒。,for(counter=1;counter=130;i+) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); ,该你了: 1.使电机向一个方向旋转 3 秒,然后反向旋转? 2.如何减速? 3.如何实现以一个轮子为支点旋转?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1