第四章 软件设计及调试
4.2.4 上位机发送数据程序设计
发送数据子程序利用P89C669单片机的串口1向下位机发送数据,采用查询中断发送。由于系统采用两个雷达模块,对应每个模块会用一个发送就绪标志位,轮流查询。下面的子程序流程图没有分别针对两个发送就绪标志位而作图,作了一个通用的流程图。上位机发送数据子程序流程图如图4-4所示,
NO 上一次发送结束? YES NO 发送就绪标志位 置位? YES 根据通信协议包装数据 发送数据包 清发送就绪标志位 图4-4.上位机发送数据子程序流程图
32
第四章 软件设计及调试
4.3 下位机软件设计 4.3.1 下位机程序主流程图
下位机负责接收上位机传送过来的数据,进行校验处理后,用液晶显示器显示距离,蜂鸣器发出警报。下位机主程序流程图如图4-5所示:
开始 初始化单片机 初始化液晶模块 NO 上位机有数据发 送进来? YES 调用下位机接收数据程序 NO 数据正确? YES 报警 调用液晶显示程序 图4-5.下位机程序主流程图
4.3.2 下位机接收数据程序设计
33
第四章 软件设计及调试
下位机接收数据子程序利用控制中心单片机AT89S51的串口接收中断接收上位机发送过来的数据,校验数据正确就置数据READY标志位,通知液晶显示子程序显示。串口接收中断的程序流程图介绍如图4-6所示:
中断标志RI =1? YES 接收计数标志CNT=0? 帧头正确 ? YES NO 存储数据,CNT++ YES CNT=1? NO YES CNT=7? CRC正确? NO 数据READY=1 地址正确? NO NO NO YES 存储数据,CNT++ CNT=0 RI=0 图4-6. AT89S51串口接收数据程序流程图
4.3.3 LCD液晶显示程序设计
34
第四章 软件设计及调试
LCD模块负责显示最近障碍物距离,并动态显示一辆小汽车与超声波发射波形,既形象又直观。程序设计中需要提前利用位图转换成数据工具获得小汽车与超声波波形的静态位图数据,设计中利用清华蓬远的液晶字模图形模提取工具提取得汽车与波形的图形模,然后在显示中再调用图形模来显示,其程序流程图如图4-7所示:
NO 数据READY=1? YES 初始化显示文本 显示最小距离 计算显示汽车与波形的位置 显示汽车 显示波形
图4-7.液晶显示程序流程图
4.4 软件调试简介
在单片机软件设计调试中一般会用到编程器和仿真器,前者用于烧录程序,后者用于仿真程序,但两者价格都在几百元以上,比较昂贵。根据实际情况在系统软件调试中采用了ISP下载程序调试(具体ISP下载见第三章所述),改正程序后直接烧录进单片机看运行结果,不正确继续修改再烧录程序。这种调试方法虽
35
第四章 软件设计及调试
然比较麻烦,对单片机影响也比较打大,但对于学生来说是个实惠又科学的方法了。
36
37