




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动往返电动小汽车自动往返电动小汽车 高级组高级组 设计报告设计报告199823117947 双阳区 查询 0431 84239229 84239229 经理 韩丽杰 摘要摘要 本自动往返电动小车可以实现在一段特定赛道上往返行驶 在特定路段限 速通过 并且测量行驶时间和路程的功能 设计以改装的玩具小车为基本车架 以单片机 AT89S52 为控制中心 利用 RPR220 光电对管扫描赛道上区分路段的 黑线 还通过该种光电对管计算小车车轮转过圈数 由此算出小车驶过路程 另外 系统运用 L298N 驱动小车的直流电机 并且可以在 LCD1602 上显示小 车往返时间和路程 关键词 自动往返小车 限速 AT89S52 RPR220 L298N Abstract This automatic go return toy car hold a series of functions those are go and returning on a skeptical track running in a limit speed on a certain length and recording the distance as well as time The design is structurally based on a re equipped toy car AT89S52 is used as the control center PRP220 is used to scan the black lines and to count how many rounds the wheel runs by which way we get the 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 1 distance the toy car passes What s more L298N is used to motivate the DC electric machinery The system puts the time and the distance on LCD1602 Keyword automatic go return toy car limit speed AT89S52 RPR220 L298N 目录目录 1 设计任务 3 1 1 基本要求 3 1 2 发挥部分 3 2 方案论证与选择 3 2 1 系统总体框图 3 2 2 各模块硬件选择 4 2 2 1 控制模块 4 2 2 2 外部传感器模块 4 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 2 2 2 3 电机及其驱动模块 5 2 2 4 电源模块 5 2 2 5 按键模块 5 2 2 6 显示模块 5 3 系统硬件原理与实现 5 3 1 系统总体电路图 5 3 2 系统各模块设计介绍 6 3 2 1 单片机控制模块 6 3 2 2 外部传感器模块 7 3 2 3 电机驱动模块 7 3 2 4 电源模块 8 3 2 5 按键模块 8 3 2 6 LCD 液晶显示模块 9 4 系统软件框图 9 5 设计数据测量 11 参考文献 12 1 设计任务 设计任务 设计并制作一个能自动往返于起跑线与终点线间的小汽车 允许用玩具汽 车改装 但不能用人工遥控 包括有线和无线遥控 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 3 跑道宽度 0 5m 表面贴有白纸 两侧有挡板 挡板与地面垂直 其高度不 低于 20cm 在跑道的 B C D E F G 各点处画有 2cm 宽的黑线 各段的 长度如图 1 所示 1 1 基本要求基本要求 1 车辆从起跑线出发 出发前 车体不得超出起跑线 到达终点线后停留 10 秒 然后自动返回起跑线 允许倒车返回 往返一次的时间应力求最 短 从合上汽车电源开关开始计时 2 到达终点线和返回起跑线时 停车位置离起跑线和终点线偏差应最小 以 车辆中心点与终点线或起跑线中心线之间距离作为偏差的测量值 3 D E 间为限速区 车辆往返均要求以低速通过 通过时间不得少于 4 秒 但不允许在限速区内停车 1 2 发挥部分发挥部分 1 自动记录 显示一次往返时间 记录显示装置要求安装在车上 2 自动记录 显示行驶距离 记录显示装置要求安装在车上 3 其它特色与创新 2 方案论证与选择 方案论证与选择 2 1 系统总体框图 系统总体框图 选定自动往返小车的题目后 我们决定购买一台符合尺寸要求的玩具遥控 小车 通过去掉其遥控部分 并直接利用上面的直流电机的方法实现要求 由 此节省自行安装和调试小车动力部分的时间 根据设计任务要求 经过论证选择 最终确定的系统设计框图如下 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 4 系统分为单片机控制模块 外部传感器模块 电机驱动模块 电源模块 按键模块和 LCD 液晶显示模块 2 2 各模块硬件选择 各模块硬件选择 2 2 1 控制模块 控制模块 控制模块负责接收传感器和按键的输入 控制液晶显示模块和 PWM 控制 输出 主流方案是采用 FPGA 芯片或者单片机 方案 1 采用可编程逻辑器件 FPGA 作为控制器 FPGA 可以实现各种复杂的逻辑功 能 规模大 密度高 体积小 稳定性高 IO 资源丰富 易于进行功能扩展 方案 2 采用 Atmel 公司的 AT89S52 单片机作为主控制器 AT89S52 是一个低功耗 高性能的 51 内核的 CMOS 8 位单片机 片内含 8k 空间的可反复擦些 1000 次的 Flash 只读存储器 具有 256 bytes 的随机存取数据存储器 RAM 32 个 IO 口 2 个 16 位可编程定时计数器 考虑到本系统不需要复杂的逻辑功能 对数据的处理速度的要求也不是非 常高 且从使用及经济的角度考虑我们选择较为成熟的方案 2 2 2 2 外部传感器模块 外部传感器模块 外部传感器模块主要作用是检测赛道上的黑线以及测量车轮转过圈数 主 要方案有以下两种 方案 1 该方案用光敏电阻组成光敏探测器检测黑线 用霍耳传感器进行测速 首 先 光敏电阻的阻值可以跟随周围环境光线的变化而变化 当光线照射到白线 上面时 光线发射强烈 光线照射到黑线上面时 光线发射较弱 因此光敏电 阻在白线和黑线上方时 阻值会发生明显的变化 只要将阻值的变化值经过比 较器就可以输出高低电平 其次 使用利用霍耳效应的传感器 当载流导体或 半导体出于与电流相垂直的磁场中时 在其两端将产生电位差的这一现象称为 霍尔效应 如果在车轮的内侧装上一条细磁铁 把霍耳传感器同样装在车轮的 内侧 测量霍尔传感器的输出就可以知道车轮转过的圈数 方案 2 该方案使用 RPR220 型光电对管进行检测黑线和测速 RPR220 是一种一体 化反射型光电探测器 其发射器是一个砷化镓红外发光二极管 而接收器是一 个高灵敏度 硅平面光电三极管 当经过黑线时接收器输出高电平 测速时 在车轮的内侧贴上一个光电码盘 用光电对管对码盘进行检测 光电对管照射 到黑色和白色的边界时输出信号会有跳变 将跳变的输出信号送给单片机进行 检测就可以得到轮子的转速 经过论证比较 由于 RPR220 型光电对管内置可见光过滤器能减小离散光 的影响 同时光电对管调理电路简单 工作性能稳定 因此 外部传感器模块 选用 2 2 3 电机及其驱动模块 电机及其驱动模块 方案 1 采用专用芯片 L298N 作为电机驱动芯片 L298N 是一个具有高电压大电流的 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 5 全桥驱动芯片 它相应频率高 一片 L298N 可以分别控制两个直流电机 而且 还带有控制使能端 用该芯片作为电机驱动 操作方便 稳定性好 性能优良 方案 2 对于直流电机用分立元件构成驱动电路 由分立元件构成电机驱动电路 结构简单 价格低廉 在实际应用中应用广泛 但是这种电路工作性能不够稳 定 因此我们选用了方案 1 2 2 4 电源模块 电源模块 电源模块作用时把外部电压降为 5V 供给单片机和传感器使用 本设计使 用常用的 7805 作为降压芯片 2 2 5 按键模块 按键模块 按键模块包括 2 个按键 分别负责起跑后读取行驶时间和小车行驶距离 鉴于传感器模块的输出信号为高电平有效 因此按键没按下时 按键输出为低 电平 2 2 6 显示模块 显示模块 方案 1 用 LCD1602 液晶屏 该液晶屏可以两行显示数字 汉字 显示清晰 方案 2 用 8 位数码管进行显示 数码管显示亮度较高 考虑到我们需要指示当前数值是小车行驶时间还是距离 因此决定采用能 显示更多内容的 LCD 作为显示模块的主要硬件 3 系统硬件设计与实现 系统硬件设计与实现 3 1 系统总体电路图 系统总体电路图 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 6 3 2 系统各模块设计介绍 系统各模块设计介绍 3 2 1 单片机控制模块 单片机控制模块 模块电路图如下 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 7 单片机 P1 口的 1 脚接 LCD 显示的数据端 P0 口的 5 6 7 脚接 LCD 的控 制端 P0 口的 1 脚接蜂鸣器 P0 口的 3 4 脚接电机控制端 P3 口的 4 脚 计 数器 T0 接 PWM 控制端 P3 口的 2 3 脚 中断口 接或非门 对应光电对 管和按键输入 单片机在系统中起控制中心的作用 其内部代码见软件设计部分 3 2 2 外部传感器模块 外部传感器模块 模块电路图如上图 电源电压为 5 伏 信号输出后接入或非门再连接单 片机的中段输入口 当小车经过黑线时 RPR220 型光电对管接收端输出约为 4 5 伏 经过白 线时输出为 0 1 伏 经过 LM324 比较器将光电对管输出转换为逻辑信号的高 低电平 比较器的基准电压为 4 伏 3 2 3 电机驱动模块 电机驱动模块 模块电路图如下 电机驱动模块利用电池组供电 单片机的两个端口输出 10 和 01 分 别驱动小车向前和向后动 另外一个端口输出 PWM 波形 通过波形的占空比来 控制直流电机的转速 L298N 是 SGS 公司的产品 内部同样包含 4 通道逻辑驱动电路 可以方便的 驱动两个直流电机 或一个两相步进电机 L298N 可接受标准 TTL 逻辑电平信 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 8 号 VSS VSS 可接 4 5 7 V 电压 4 脚 VS 接电源电压 VS 电压范围 VIH 为 2 5 46 V 输出电流可达 2 5 A 可驱动电感性负载 1 脚和 15 脚下管的 发射极分别单独引出以便接入电流采样电阻 形成电流传感信号 L298 可驱动 2 个电动机 OUT1 OUT2 和 OUT3 OUT4 之间可分别接电动机 本实验装置我们 选用驱动一台电动机 5 7 10 12 脚接输入控制电平 控制电机的正反转 EnA EnB 接控制使能端 控制电机的停转 L298N 的管脚图如下 3 2 4 电源模块 电源模块 模块电路图如下 该电源模块的功能是把 9 伏锌锰干电池通过 7805 转换为 5 伏电压 向单片 机 逻辑芯片和 LCD1602 供电 考虑到如果用电池组同时向电机和芯片供电时 由于驱动电机所需电流较大 容易影响对芯片的供电 因此我们决定电池组单 独对驱动电机 另外利用 6F22 型叠层式锌 锰干电池向电路其他部分提供电源 3 2 5 按键模块 按键模块 模块电路图如下 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 9 由于单片机的中断口是低电平 或者下降沿 触发 而 RPR200 型光电对 管在检测黑线时输出高电平 处于减少芯片书的考虑 我们决定采用或非门 同时把没有按下的按键输出设为低电平 即如上图所示 3 2 6 LCD 液晶显示模块液晶显示模块 模块电路图如下 LCD1602 为工业字符型液晶 能够同时显示 16 02 即 32 个字符 1602 液 晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不同的点阵字符图 形 这些字符有 阿拉伯数字 英文字母的大小写 常用的符号 和日文假名 等 每一个字符都有一个固定的代码 只要在数据端输入相应的 ASCII 码 即 可在 LCD 上显示相应字符 4 系统软件框图 系统软件框图 软件设计流程图如下 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 10 是 否是 否 是 是 否 有黑线 启动 检测路边黑线 停车停止计时显示主界面 显示时间 显示距离 显示时间 显示距离 否 是 是 是 否 否 否 是 开始 黑线数 3 延时 3s 黑线数量加 1 限速 结束限速 黑线数 4 黑线数 6 黑线数 9 是 否 黑线数 10 否 黑线数 12 停车 计时 10s 再启动 结束限速 限速 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 11 5 设计数据测量 设计数据测量 5 1 传感器测量 步骤 用电压表测量 PRP220 光电对管在黑色和白色环境下的输出电压值 结果 见下表 背景环境电压值 0 78白色 0 81 4 65黑色 4 86 结论 LM324 的基准电压设置为 4 伏 5 2 总体测试 步骤 在地上贴黑线模拟赛道 把小车放在赛道上测试 结果 见下表 限速区时间为秒表所测 测试次数总时间限速区时间总路程 m 实际往返距离 m 125 53 98 38 226 54 28 88 326 54 28 78 结论 小车性能基本满足设计任务要求 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 12 参考文献参考文献 1 李建忠编 单片机原理及应用技术 第二版 西安电子科技大学出版 社 2 谭浩强编 C 程序设计 第三版 清华大学出版社 include include 宏定义区 LCD 模块 define LCD RW P0 6 读写控制端 define LCD RS P0 5 数据命令选择端 define LCD E P0 7 执行使能端 define LCD DataP1 P1 口 define Write0 x00 低电平写入 define Read0 x01 高电平读出 define Data0 x01 高电平选择数据 define Cmd0 x00 低电平选择命令 define Enable0 x00 跃变到低电平时执行命令 define Disable0 x01 define True0 x01 define False0 x00 define LCD Init0 x38 初始化模式 define LCD DispCtr 0 x0C 开显示及光标设置 define LCD CloseCtr0 x08 关显示 define LCD CLS 0 x01 清屏幕 define LCD EnterSet 0 x06 显示光标 define BusyP1 7 忙信号 测速 测距 测时模块 define CircleLength0 144 小车转一轮的长度为 132m 控速模块 define P04P0 3 后电机 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 13 define P03P0 4 后电机 define P01 P0 1 前电机 define P02P0 2 前电机 define bellP3 7 define P31P2 5 控制液晶背光 define P33P3 3 菜单选择模块 define Line0 x00 0 代表直线模式 define Curve0 x01 1 代表 S 型模式 define Normal0 x00 0 代表正常速度 define Low0 x01 1 代表低速 define High0 x02 2 代表高速 全局函数声明区 LCD 模块 void LCDInit void LCD 初始化 void SetWriteCmd void 设置写命令模式 void SetReadCmd void 设置读命令模式 void SetWriteData void 设置写数据模式 void WriteCmd char cmd 写命令 void WriteData char ddata 写数据 void ExecuteCmd void 执行命令 void SetXY char x char y 定位显示地址 void DisplaySingleChar char x char y char cchar 显示单个字符 void DisplayString char x char y char str 显示一段字符串 void Delay unsigned int time 延时主程序 void DelayUs unsigned int time 延时子程序 void delay500ms void bit IsBusy void 判断忙标志函数 void DisplayTime void 显示时间 void DisplayAVGSpeed void 显示平均速度 void DisplayDistance void 显示路程 测速 测距 测时模块 void INTInit void 所有中断初始化 void SpeedINT void 测速中断 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 14 void ComputeTime void void ComputeSpeedANDDistance void 计算速度和距离 控速模块 void CtrSpeedINT void 控速中断 void Time0INT void void Time1INT void 控速单位时间中断 void Clock0 Init void 时钟中断初始化 void Clock1 Init void 时钟中断初始化 void CtrSpeed void 全局变量区 short i 0 float SpeedCount 0 测速计数脉冲 float Speed 0 0 float Distance 0 0 char Time1INTCount 0 T1 中断时间计时 float PassTime 0 00 小车行走的时间 short IsT0INT 1 bit IsT1INT 判断 T1 是否已经响应中 断 short IsT0INT2 1 char Thx 5 0 xf4 0 xf4 0 xb4 0 xd4 0 xff 3ms 3ms 15ms 3ms char Tlx 5 0 x11 0 x11 0 x51 0 x11 0 xff char Thx0 0 x99 char Tlx0 0 x99 char Thx1 0 x99 20ms char Tlx1 0 x99 short Round 0 short Back 0 short Back0 0 bit Backid bit Stop 0 char Area0 0 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 15 char Area1 0 区域变量 char LowSpeedArea1StartTime char LowSpeedArea1EndTime char HighSpeedAreaEndTime char LowSpeedArea2EndTime char LowSpeedArea1PassTime 0 第一个低速区通过时 间 char HighSpeedAreaPassTime 0 高速区通过时间 char LowSpeedArea2PassTime 0 第二个低速区通过时 间 char ReadyToGo 10 char ReadyToGo1 4 倒计时 char flag char p 0 bit Roundid 0 char Nocurve 0 char ChangeFlag char Mode bit Running bit SelectedAll 模式和速度是否选择完毕标志 bit IsSelectingMode 模式选择标志 bit IsSelectingSpeed 速度选择标志 bit ModeSelected 已经被选择的模式标志 char SelectedMode 10 模式选择是否完毕标 志 bit Next Next 键标志 bit SpeedSelected 已经被选中的速度方案标 志 char SelectedSpeed 速度选择是否完毕标志 bit ChoosingDisplay 人工选择菜单开始标志 bit SelectedShow 显示选择标志 bit SelectedReturn 返回选择标志 bit Selected 确定 返回键选择标志 bit ReturnSelection 返回键启用标志 bit AVGSpeedShow 平均速度显示标志 bit TotalDistanceShow 总路程显示标志 bit ReturnMain 返回主菜单标志 bit AutoDisplay 自动显示标志 bit GoToChoosingDisplay 人工选择标志 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 16 bit AutoMode 0 char PassLineID 0 char PassLine 0 float PrepareDistance float FirstDistance float SecondDistance float ThirdDistance int FirstHigh int SecondHigh int j 0 int ThirdHigh float Rate 1 25 5ms 时的速度 float Count 4 时间的倍数 全局函数实现区 主函数 void main P03 0 P04 0 P31 1 单片机复位 背光开 bell 1 Delay 40 延时等待 LCD 启动 LCDInit 初始化 LCD DisplayString 0 x0 0 Welcome DisplayString 0 x0 1 Autorunning Car Delay 300 WriteCmd LCD CLS EA 1 开总中断 EX0 1 开 INT0 中断 IT0 1 INTO 边沿触发 EX1 1 开 INT1 中断 IT1 1 INT1 边沿触发 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 17 SelectedAll False 开始模式和速度选择 模式选择 DisplayString 0 x0 0 Choose The Mode DisplayString 0 x0 1 Line Or Auto Delay 50 WriteCmd LCD CLS IsSelectingMode True while 1 WriteCmd LCD CLS DisplayString 0 x0 0 Line Mode DisplayString 0 x0 1 Next Yes Delay 300 延时消除抖动 while 1 不断检测中断 直到按确 定键或是 NEXT 键 if Next True 如果按 Next 键则直接跳出 break if ModeSelected True 如果按确定键则设置模式 为 Line 并跳出 SelectedMode Line break 如果什么键都没有按下 那么 一直显示等待 if ModeSelected True 按下了确定键 退出模式 选择 IsSelectingMode False break if Next True 再一次按下了 Next 键 则自 动模式选择 Next False 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 18 WriteCmd LCD CLS DisplayString 0 x0 0 Auto Mode DisplayString 0 x0 1 Next Yes Delay 300 延时消除抖动 while 1 if Next True break if ModeSelected True AutoMode 1 break if ModeSelected True IsSelectingMode False break if Next True Next False continue Delay 50 WriteCmd LCD CLS 速度选择 if SelectedMode Line DisplayString 0 x0 1 kind of Speed Delay 50 WriteCmd LCD CLS IsSelectingSpeed True while 1 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 19 WriteCmd LCD CLS DisplayString 0 x0 0 Normal Speed DisplayString 0 x0 1 Next Yes Delay 300 延时消除抖动 while 1 if Next True 如果按 Next 键则直接跳出 break if SpeedSelected True 如果按确定键则设置速度 为 Normal 并跳出 Thx 0 0 xec Tlx 0 0 x78 5ms Thx 1 0 xf0 Tlx 1 0 x60 4ms Thx 2 0 x8a Tlx 2 0 xd0 30ms Thx 3 0 xf4 Tlx 3 0 x48 3ms SelectedSpeed Normal break 如果什么键都没有按下 那 么一直显示等待 if SpeedSelected True 按下了确定键 退出速度选 择 IsSelectingSpeed False break if Next True Next False WriteCmd LCD CLS DisplayString 0 x0 0 Low Speed DisplayString 0 x0 1 Next Yes Delay 300 延时消除抖动 while 1 if Next True 如果再一次按下 Next 键 则 跳出 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 20 break if SpeedSelected True 如果按下确定键 则设置速度 为 Low 并跳出 SelectedSpeed Low 这里没有速度设置 因为 默认速度就是 Low break if SpeedSelected True 按下了确定键 退出速度选择 IsSelectingSpeed False break if Next True Next False WriteCmd LCD CLS DisplayString 0 x0 0 High Speed DisplayString 0 x0 1 Next Yes Delay 300 延时消除抖动 while 1 if Next True 如果再一次按下 Next 键 则跳出 break if SpeedSelected True 如果按下确定键 则设置速度为 High 并跳出 Thx 0 0 xe0 Tlx 0 0 xc0 8ms Thx 1 0 xe0 Tlx 1 0 xc0 8ms Thx 2 0 x63 Tlx 2 0 xc0 40ms Thx 3 0 xec Tlx 3 0 x78 5ms SelectedSpeed High break 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 21 if SpeedSelected True 按下了确定键 退出速度选 择 IsSelectingSpeed False break if Next True 再一次按下了 Next 键 则循 环速度选择 Next False continue SelectedAll True 标志模式选择和速 度选择完毕 Running True Delay 50 WriteCmd LCD CLS 显示所选择的模式和速度方案 if AutoMode 1 DisplayString 0 x0 0 Choosen Mode is DisplayString 0 x0 1 AutoMode Delay 50 WriteCmd LCD CLS INTInit 初始化所有中断 DisplayString 0 x0 0 Left Times To Go while ReadyToGo1 bell 1 DisplaySingleChar 0 x7 1 ReadyToGo1 0 x30 DisplaySingleChar 0 x09 1 s 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 22 Delay 300 bell 1 Delay 150 bell 0 Delay 150 WriteCmd LCD CLS DisplayString 0 x05 0 Go Delay 100 bell 1 WriteCmd LCD CLS DisplayString 0 x0 0 Running DisplayString 0 x0 1 Autorunning Car while AutoMode 1P03 1 break case 5 P04 0 P03 0 break case 6 P04 0 P03 0 DisplayString 0 x0 0 Left Times To Go while ReadyToGo DisplaySingleChar 0 x7 1 ReadyToGo 0 x30 DisplaySingleChar 0 x09 1 s bell 0 Delay 150 bell 1 Delay 150 PassLine break case 7 case 8 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 23 case 9 case 10 case 11 P04 1 P03 0 break case 12 P04 0 P03 0 break case 13 p 1 break case 13 p 1 break default p 1 bell 1 break 补中断路程 加上最后一次中断缺失的路程 if p 1 ComputeSpeedANDDistance P04 0 P03 1 Delay 90 P03 0 P04 0 行程结束 小车停止 P31 1 行程结束 背光开 ET0 0 x0 关 T0 中断 ET1 0 x0 关 T1 中断 EX1 0 x1 EX0 0 x1 开 INT1 中断 Running False 菜单选择你想要看的内容 总时间 总路程以及平均速度 while p 1 ChoosingDisplay True WriteCmd LCD CLS 首先显示主菜单 然后显示第一个选项 DisplayString 0 x0 0 Now Choose what DisplayString 0 x0 1 you want to see Delay 100 while 1 WriteCmd LCD CLS 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 24 DisplayString 0 x0 0 Costed Time DisplayString 0 x0 1 Next Show Delay 250 延时消除抖动 第一次按键 不断检测确定键和 Next 键 while 1 if Next True break if SelectedShow True break 按下了确定键 显示第一个选项的内容 if SelectedShow True bell 0 SelectedShow False SelectedReturn False Selected False WriteCmd LCD CLS DisplayString 0 0 Costed Time is DisplayTime DisplayString 0 x0A 1 s ReturnSelection True 按下了确定键 那么这个时候 开启返回键的功能 AVGSpeedShow False Delay 100 bell 1 延时消除抖动 按下了 Next 键 则显示第二个选项 if Next True 按下 Next 键 显示 AVGSpeed 菜 单项 bell 0 Next False WriteCmd LCD CLS DisplayString 0 x0 0 AVGSpeed DisplayString 0 x0 1 Next Show ReturnMain False 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 25 ReturnSelection False 按下了 Next 键 那么这个 时候关闭返回键的功能 AVGSpeedShow True 表明 AVGSpeed 选项已 经显示过了 Delay 100 bell 1 延时消除抖动 第二次按键 显示第一个选项的内容后又不断检测返回键 确定键 和 Next 键 while 1 if Next True break if Selected True break if Next True Next False ReturnMain False ReturnSelection False 按下了 Next 键 那么这个 时候关闭返回键的功能 if AVGSpeedShow False 还没有显示 AVGSpeed 选项 显示它 即第一次选择了确定键 WriteCmd LCD CLS DisplayString 0 x0 0 AVGSpeed DisplayString 0 x0 1 Next Show TotalDistanceShow False 显示了 AVGSpeed 则表明 TotalDistance 还没有显示 Delay 250 延时消除抖动 if AVGSpeedShow True 已经显示过 AVGSpeed 选项 了 则显示下一个选项 即第一次选择了 Next 键 WriteCmd LCD CLS DisplayString 0 x0 0 Total Distance DisplayString 0 x0 1 Next Show 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 26 TotalDistanceShow True 表明显示了 TotalDistance 选项 Delay 250 延时消除抖动 if Selected True 按下了确定键或返回键 SelectedShow False SelectedReturn False Selected False if ReturnSelection True 第一次选择了确定键 故这次按下的是返回键 ReturnMain True if ReturnSelection False bell 0 WriteCmd LCD CLS DisplayString 0 0 The AVGSpeed is DisplayAVGSpeed DisplayString 0 x0A 1 m s ReturnSelection True 按下了确定键 那么这个时候 开启返回键的功能 Delay 100 延时消除抖动 bell 1 TotalDistanceShow False if ReturnMain True 按下了返回键 返回主菜单 ReturnMain False continue 第三次按键 如果没有返回主菜单 则继续检测 Next 键和确定键 while 1 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 27 if Next True break if SelectedShow True break 按下 Next 键 显示下一个选项 if Next True Next False ReturnMain False ReturnSelection False 按下了 Next 键 那么这个 时候关闭返回键的功能 if TotalDistanceShow True ReturnMain True if TotalDistanceShow False 还没有显示 TotalDistance 选 项 显示它 WriteCmd LCD CLS DisplayString 0 x0 0 Total Distance DisplayString 0 x0 1 Next Show TotalDistanceShow True Delay 250 延时消除抖动 if Selected True 按下了确定键或返回键 SelectedShow False SelectedReturn False Selected False if ReturnSelection True 按下的是返回键 ReturnMain True if ReturnSelection False if TotalDistanceShow False 表明 AVGSpeed 选项的内 容还没有显示 WriteCmd LCD CLS DisplayString 0 0 The AVGSpeed is DisplayAVGSpeed DisplayString 0 x0A 1 m s 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 28 ReturnSelection True Delay 250 延时消除抖动 if TotalDistanceShow True bell 0 WriteCmd LCD CLS DisplayString 0 0 Total Distance DisplayDistance DisplayString 0 x0A 1 m ReturnSelection True 按下了确定键 那么这个时候 开启返回键的功能 Delay 100 延时消除抖动 bell 1 if ReturnMain True 按下了返回键 返回主菜 单 ReturnMain False continue 第四次按键 while 1 if Next True break if SelectedShow True break if Next True 所有菜单项已经显示完毕 返回主菜单 Next False ReturnMain False ReturnSelection False if TotalDistanceShow False 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 29 WriteCmd LCD CLS DisplayString 0 x0 0 Total Distance DisplayString 0 x0 1 Next Show TotalDistanceShow True Delay 250 延时消除抖动 if SelectedShow True SelectedShow False SelectedReturn False Selected False if ReturnSelection True 按下的是返回键 ReturnMain True if ReturnSelection False if TotalDistanceShow True bell 0 WriteCmd LCD CLS DisplayString 0 0 Total Distance DisplayDistance DisplayString 0 x0A 1 m ReturnSelection True 按下了确定键 那么这个时候开启 返回键的功能 Delay 100 延时消除抖动 bell 1 if ReturnMain True 按下了返回键 返回主菜 单 ReturnMain False continue 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 30 第五次按键 while 1 if Next True break if SelectedShow True break if Next True 所有菜单项已经显示完毕 返回主菜单 Next False ReturnMain False ReturnSelection False if TotalDistanceShow True 最后一个选项已经显示完 毕 返回主菜单 ReturnMain True if SelectedShow True SelectedShow False SelectedReturn False Selected False if ReturnSelection True 按下的是返回键 ReturnMain True if ReturnSelection False if TotalDistanceShow True bell 0 WriteCmd LCD CLS DisplayString 0 0 Total Distance DisplayDistance DisplayString 0 x0A 1 m ReturnSelection True 按下了确定键 那么这个时候 开启返回键的功能 Delay 100 bell 1 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 31 延时消除抖动 第六次按键 while 1 if Next True break if SelectedShow True break if Next True Next False ReturnMain False ReturnSelection False if SelectedShow True SelectedShow False SelectedReturn False Selected False continue while 1 LCD 驱动模块 LCD 初始化函数 void LCDInit void 第四届智能控制设计大赛 高级组 自动往返电动小汽车设计报告 组员 李泽伟 谭海军 黄维龙 32 三次显示模式设置 LCD Data 0 LCD E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专题10 化学计算(河北专用)5年(2021-2025)中考1年模拟《化学》真题分类汇编
- 2025年特种作业类危险化学品安全作业-化工自动化控制仪表作业参考题库含答案解析
- 2025年大型重工装备铸件项目提案报告
- 2025年建筑工程类注册安全工程师安全生产专业实务(金属冶炼安全)-安全生产专业实务(煤矿安全)参考题库含答案解析
- 浏阳教师编制数学试卷
- 2025年学历类自考公共课计算机应用基础-物理(工)参考题库含答案解析
- 币券操作知识培训总结
- 2025年学历类自考公共课工程数学-线性代数-高等数学基础参考题库含答案解析
- 2025年学历类自考公共课大学语文-英语(二)参考题库含答案解析
- 南昌育华中学数学试卷
- GB/T 30790.6-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第6部分:实验室性能测试方法
- 信息互联互通标准化成熟度测评-医科总医院
- 《氧化还原反应》完整版课件
- 人工智能导论课件
- 做一名新时代的优秀教师课件
- 中国古代的美育思想课件
- 日周月安全检查记录表
- 风力发电项目报价清单 (风机基础等)
- 重庆物业服务收费管理办法-重庆物价局
- GA∕T 1046-2013 居民身份证指纹采集基本规程
- (高清正版)SL 310-2019 村镇供水工程技术规范(完整版)
评论
0/150
提交评论