双工通信小车.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
双工通信小车

导师:薛清(教授) 学生:朱文明 专业:光信息科学与技术 研究概述 遥控器程序流程图 小车程序流程图 程序模块主要组成部分 遥控器STC1主程序功能 数模转换程序介绍 ADC0832的时序 NRF24L01的SPI协议 STC1 中的数据处理程序 STC2 主程序 JN12864液晶显示时序 STC3的小车速度检测程序 STC4的PWM方式控制电机程序 STC4的PWM方式控制电机程序 调试程序所出现的问题及解决方法 * 课题研究的内容 1.系统拟采用主从模块。 2.主模块为控制中心(遥控器), 从模块为小车。利用无线通讯技术实现数据的双向传输。主模块(遥控器)控制小车加速、减速、左转、右转、前进、后退。 3.从模块的数据(小车的车速、电量等)发送给主模块,便于主模块调整数据。 课题研究需要解决的问题 完成各个模块单独的控制子程序,能够正确的控制并获取信息。 完成主程序的编写,组合各个模块程序使其协同工作。 在单片机内完成各个数据的处理和计算,便于遥控器的显示和小车对电机的控制。 主程序 调用各种子程序、中断程序控制各个模块,协调完成遥控器功能。 各种控制子程序 针对各种硬件模块编写的程序,程序以子程序编写,注意程序的可移植性,尽量减少与其他程序的相关性。 头文件 在部分硬件模块的驱动中需要添加头文件才能使用。例如:NRF24L01.H,这样的文件声明了各个端口、变量名的使用和各个更基础的程序的声明。 结束 开始 各个变量声明 程序初始化和 变量初始化 ADC0832程序调用获取 数度电量的输入信号 串口发送程序 无线收发程序 while(1) NO YES 该程序主要功能是声明无线发射和接受数据存放的数组和一些其他的变量,对各种模块进行初始化。最主要的是对各个子程序合理的调用完成整个设计的要求。 遥控器STC1芯片的主要流程图如下: 该程序的功能是利用P2口输出时序和信号控制ADC0832芯片完成数模转换功能,并且把转换好的数据存放在指定的内存中。程序中声明了两个缓存,在两次比较之后如果相同就输出转换的数据。 开始 缓存初始化和 变量初始化 频道选择 第一次数据读取temp YES 判断temp=temp1 第二次数据读取temp1 输出temp 结束 YES 在数据处理程序中主要实现两个功能。transform_16()将一些原本是超过8位的数因数据传输需要被分解为两个8位的数重新组合。shuzu(uchar (*Data)[3],uint Data_) 将对应的数据放到字符串数组中以便显示程序调用显示。数据处理程序流程图: 开始 缓存变量声明 高八位赋值 缓存左移8位 低八位赋值 结束 transform_16程序流程图 开始 百位赋值 十位赋值 各位赋值 结束 shuzu(uchar (*Data)[3],uint Data_)程序流程图 STC2中的程序是将STC1传输过来的数据进行处理变成能够直接传输给12864显示屏显示的数据: 主程序流程图如左: 开始 各个变量声明 程序初始化和 变量初始化 数据处理 数据显示 结束 while(1) NO YES 开始 YES 是否第40次进入中断 计算左轮速度 计算右轮速度 复位判断依据 判断依据减一 装定时初值 结束 NO 测速定时中断程序流程图 改程序使用的是两个外部中断检测1S钟所记录的脉冲数,最后通过计算得出了小车的行驶速度。程序使用了外部中断0和外部中断1,定时0.25s,进入定时中断40次计算一次速度。 程序流程图如下: 在小车上面这个是个主要的程序,关系这小车行驶和转向,电机控制程序由两部分组成,第一部分speed_direction_transform(void)是通过对遥控器送过来的速度和方向值进行定时计算,计算出定时的时间。第二部分是定时中断dianji(void) interrupt 1,该部分再是定时时间到了之后给定时器装初值并输出控制电机的PWM信号。 speed_direction_transform(void)流程图: 左轮脉冲 右轮脉冲 dianji(void) interrupt 1流程图: 开始 程序初始化和 变量初始化 YSE 判断后退标 志位是否为1 输出缓存赋后退值 输出缓存赋前进值值 NO YSE 判断是否为 第一次定时 输出缓存输出到P1口 结束 判断是否为 第二次次定时 N0 一个轮子停止信号 YES 两个轮子停止信号 头文件中的类型定义 数据类型问题 显示程序中的字符串数组定义 在一开始编程中会遇到一些数据在计

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档