c51单片机应用与c语言程序设计第三章.pptVIP

  • 9
  • 0
  • 约7.15千字
  • 约 31页
  • 2017-03-26 发布于贵州
  • 举报

c51单片机应用与c语言程序设计第三章.ppt

c51单片机应用与c语言程序设计第三章c51单片机应用与c语言程序设计第三章

第三章 C语言函数与机器人巡航控制 深圳市鸥鹏科技有限公司 黄曦 2009.3.21 摘要 任务一 基本巡航动作 任务二 匀加速/减速运动 任务三 用函数调用简化运动程序 任务四 高级主题――用数组建立复杂运动 字符型数据 数组 switch语句 工程素质和技能归纳 科学精神的培养 任务一 基本巡航动作 向前巡航,持续时间为3秒。 源程序请参照教材第37页RobotForwardThreeSeconds.c 原理: 输出相应的脉冲序列,使左侧电机逆时针旋转,右侧电机顺时针旋转。程序反复执行130次,需要3秒时间,机器人也向前运动3秒。 尝试调节距离和速度。 尝试通过调节高电平脉宽,从而调节机器人的运动方向。 任务一 基本巡航动作 命令组合,让机器人向前走、左转、右转和向后走。 源程序请参照教材第39页的ForwardLeftRightBackward.c。 尝试1个轮子不动,另一个轮子全速旋转,从而以一个轮子为支点,原地旋转。 源程序请参照教材第41页。 任务二 匀加速/减速运动 编程目的:使机器人的运动更平稳,增长电机的寿命。 编程原理:电机控制信号高电平宽度为1500微秒,如要顺时针加速,则delay_nus()的参数从1500逐渐减小到1300,如要逆时针旋转,则从1500逐渐增大到1700。脉宽变得越快,加/减速的效果就更明显。 任务二 匀加速/减速运动 例程:电机速度逐渐增加到全速然后逐步减小的实现。 源代码参照教材第43页的StartAndStopWithRamping.c 尝试更改变量pulseCount的变化值,调节加速度或减速度。 尝试更改变量pulseCount的变化上限,调节加速或减速的持续时间。 任务三 用函数调用简化运动程序 C语言提供了强大的函数定义功能。一个C程序就是由一个主函数和若干个其它函数构成,由主函数调用其它函数,其它函数也可以相互调用。同一个函数可以被一个或多个函数调用任意多次。 无论机器人要执行何种动作,都离不开前面讨论的各种基本动作。为了各种应用程序方便使用这些基本动作程序,你可以将这些基本动作放在函数中,供其它函数调用来简化程序。 任务三 用函数调用简化运动程序 函数的种类 从函数的定义来看: 标准函数,即库函数,由集成开发环境提供。 用户自定义函数,解决自己的专门需要。 从函数有无返回值来看: 有返回值函数。 无返回值函数。 从主调函数和被调函数来看: 无参数函数。 有参数函数。 任务三 用函数调用简化运动程序 函数的形式: 其中类型标识符和函数名称为函数头。 类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。函数名是由用户定义的标识符。 函数名后有一个括号(不可少写),若函数无参数,则括号内可不写内容或写“void”;若有参数,则形式参数列表给出各种类型的变量,各参数之间用逗号间隔。 {}中的内容称为函数体。函数体中的声明部分,是对函数体内部用到的变量的类型说明。 在很多情况下都不要求函数有返回值,此时函数类型符可以写为void。 任务三 用函数调用简化运动程序 main函数是不能被其它函数调用的,那它的返回值类型int是怎么回事呢? 其实不难理解,main函数执行完之后,它的返回值是给操作系统的。虽然在main函数体内并没有什么语句来指出返回值的大小,但系统默认的处理方式是:当main函数成功执行,它的返回值为1;否则为0。 任务三 用函数调用简化运动程序 下边的Forward函数可以使机器人向前运动1.5秒。该函数是无形参、无返回值的函数,没有太大的使用价值。 任务三 用函数调用简化运动程序 给前面一页的Forward函数增加脉冲数和速度等两个参数,从而可以灵活的设置这些参数,让函数成为一个真正有用的模块。 任务三 用函数调用简化运动程序 注释:在函数定义的下方,有一行注释,提醒我们使用该函数的时候,速度是在0到200之间。 除“//”外,C语言还提供了另一种语句注释符——“/*”和“ */”。 “/*”和“*/”必须成对使用,在它们之间的内容将被注释掉。它的作用范围比“//”大:“//”仅仅对它所在的一行起注释作用;但“/*…*/”可以对多行注释。 注释是你在学习程序设计时要养成的良好习惯。 任务三 用函数调用简化运动程序 完整的使用向前、左转、右转和向后四个函数的例程。 源码参照教材第48页的MovementsWithFuncitons.c 该例程的效果与任务1的ForwardLeftRightBackward.c产生的效果是一致的。 在该程序中,除了main函数以外,其他的四个函数代表了四个方向,具有相同的形参——脉冲个数和速度参数。这四个函数的功能是可以集成在同一个函数中的。

文档评论(0)

1亿VIP精品文档

相关文档