2系统方案和需求
2.1系统主要功能设计
本设计基于STC89C52芯片作为本设计的核心控制区域,通过对MCU芯片的性能及规格进行拓展,结合LCD显示器、独立按键、蜂鸣器、超声波接收一体模块等功能模块进行功能拓展。主要功能模块超声波测距模块,对障碍物距离进行判断并将测距数据传输给主控芯片进行数据处理和逻辑换算。LCD显示器是用来显示本设计的系统设置和超声波测距的实时距离数据显示。独立按键是用来实现对系统的设置,基本原理是通过对独立按键进行功能映射,通过设置好的功能映射对系统进行设置配置,完成相应的动作设置。蜂鸣器作为本设计的报警外设,主要实现声响报警。本设计的基本工作逻辑是提前通过独立按键对系统的测距距离进行阈值设置,当超声波开始测距工作时,LCD显示器上会实时显示超声波测距的距离大小,并且当超声波测距的距离小于设置的阈值时,蜂鸣器会开始声响报警。
本设计研究基于市场上常用的超声波测距模块,对超声波测距模块进行基本原理的了解和相关知识的查询,结合相关外设和主控芯片的工作机制,进行相应的硬件整合,结合软件进行功能调试,最终实现本设计的设计需求。
3基于单片机的系统硬件设计
3.1硬件系统开发环境
Altiumde sign是一款专用的硬件电子开发系统,该系统与仿真软件PROTUES有所不同,它具有电路设计自动化的特点,不仅可以对硬件原理图的绘制,还具有集成库、原理图库以及封装库设计的功能,在导入PCB布局中,若元器件的封装不能满足现有的需求时,可以重新对封装和引脚进行定义。随着新型的元器件不断更新,现有电路图中越来越大,线路设计也越来越严格,电路的设计和PCB的布局已经无法通过仿真软件PROTUES实现,电路设计自动辅助系统已经是一种必不可少的开发工具,它不仅可以多元化的设定,还可以在设计中自定义DRC设计规则和自动辅助布局布线,能很大程度上提高了开发者的效率,该系统是目前市场上工作效率最高,质量最佳的的一款硬件电路设计软件。如下图所示位该系统的开发界面图:
图3.1硬件系统开发环境
3.2系统硬件总体设计
本设计以STC89C52芯片作为本设计的核心控制芯片,以STC89C52芯片为本设计的核心,结合独立按键、蜂鸣器、LCD显示器、超声波测距模块进行功能拓展,通过主控芯片对相关模块进行功能拓展和驱动,主控芯片对相应的数据进行进行处理和逻辑换算,最终实现本设计的设计需求,具体的硬件设计框图如图3.2.1所示。
图3.2.1基于51单片机的超声波避障设计硬件框图
3.4LCD1602显示器的单元设计
LCD1602显示器模块选用8位数据并行通讯方式与STC89C52芯片进行数据交互,LCD1602显示的数据通信引脚分别D0D7可以直接连接到主控芯片的P32P39引脚,LCD1602显示器的V0引脚是显示器的背光亮度控制表,背光电源引脚为VDD/VSS信号脚,分别连接到系统电源的VCC信号和GND信号,V0引脚连接到滑动变阻器的3脚,滑动变阻器的1引脚和3和引脚分别连接到VCC信号和GND信号脚。LCD1602显示器的背光亮度是通过改变显示器的V0引脚的电压大小来改变背光亮度亮度,本设计通过电源连接滑动变阻器形成分压电路来给V0引脚提供电压值,并通过改变滑动变阻器的阻值来控制LCD显示器的背光电压。RS/CE/RW信号引脚分别为位LCD1602显示器的通讯方式选择脚(选择并行或者串行通讯)、通讯使能脚、数据读写选择脚,分别连接到STC89C52芯片的P25~P27引脚。具体硬件设计如图3.4.1所示。
图3.4LCD12864显示器硬件电路设计
4基于单片机的软件设计
在系统的设计架构上,硬件是基础,软件是在基础上面进行功能逻辑拓展的重要组成部分,本设计的主要核心思想是通过将功能分化成功能模块,然后先通过对功能模块进行驱动和功能调试,在将功能模块结合到系统的主程序上。然后在系统上层进行逻辑开发,实现各个功能模块的数据交互和动作联动功能。最终实现本设计的整体设计需求。
4.1系统软件开发环境KEIL介绍
Keil软件是美国KEIL softwore公司设计的一款嵌入式处理器程序编程的开发工具,该软件中集成C语言开发环境、宏定义和汇编程序开发环境、C++K开发环境以及DEBUG在线调试开发环境,是目前市场上使用率最高,程序开发效率最高的软件编程系统之一。
该软件在更新到KEIL3版本之后,集成适配ARM公司的MDK环境编译器,支持ARM7\ARM9等基于M3内核的处理器,大疆的四轴飞行器、以及大部分的智能机器人都是基于该环境开发的,版本更新到KEIL4之后,加入窗口管理系统,页面更加整洁的同时,还实现了系统内部的自启动代码和集成flash烧写器,可同时兼容C51开发环境和ARM开发环境,系统性能大幅度提高。如下图所示位KEIL软件开发环境截图:
图4.1软件系统开发环境
4.2程序烧录软件STC-ZIP
51系列的单片机程序烧录方式有两种,一种是PZ-ISP,另一种是STC-ISP。STC-ISP程序烧录软件对比PZ-ISP烧录软件更加的全面化,不仅可以烧录51系列的所有软件,还集成了串口通信协议功能,在用户程序调试时,可作为窗口传送数据,在软件调试过程中有很强的辨识度。而PZ-ISP具有程序自动下载的功能,相对比STC-SIP下载时的手动上电,更加的快捷,但芯片的容错率较低,不适合新手的应用,本次设计经过多方面的对比,采用STC下载器,如下图所示位该软件下下载界面截图:
图4.2程序烧录开发环境
5基于单片机超声波防撞报警系统调试分析
5.1调试方案
本设计的整体思路是根据系统设计的框图将功能分化成独立的功能模块,先通过对功能模块进行独立的调试,调试好功能模块之后,在根据框图将功能模块的结合起来进行一起调试。具体的调试方案如下。
1、对LCD1602显示器的显示内容进行初步调试,主要是检测显示器是否能够正常显示并且能够正常更新数据内容。
2、对蜂鸣器的正常工作进行调试。确保蜂鸣器的工作正常且稳定。
3、对超声波测距模块正常工作进行调试,确保超声波测距模块输出的数据准确度及精度。
4、对系统系统主程序及功能模块的驱动程序进行调试,确保主程序和功能模块的程序的稳定性。
5.2调试结果及分析
5.2.1硬件调试
硬件调试中遇到的主要问题记录:
1、晶振焊接不良,导致主控芯片没有工作起来。——重新进行焊接。
2、LCD显示器不显示,背光电源没有起来。——V0的引脚的滑动变阻器故障了导致V0引脚的电压异常。
3、超声波测距模块的数据输出异常。——经过多次的测量和对模块进行分析,对相应信号进行示波器抓取,最后发现是超声波测距模块的损坏导致的,最终更换了超声波测距模块。
4、超声波测距模块输出的数据不准确。——通过示波器对硬件信号的抓取分析,和对驱动程序的分析,最终通过对示波器的信号进行分析得出驱动程序的计时器程序出现了问题。
5、独立按键出现误触发的情况。——通过对网上的案例分析,确认是独立按键没有进行消抖处理,网络上的其他信号对按键信号由了干扰导致主控芯片误判为按键按下,最终通过添加100nf电容对按键信号进行消抖处理。
5.2.2软件调试
软件调试中遇到的主要问题记录;
1、超声波模块的软件驱动调试超声波不通。——结合老师指导的方向和教程分析,最终调试成功。
2、主程序对功能模块驱动调用混乱。——通过对功能模块的优先级设置,规避同时调用模块造成程序跑飞现象。
3、LCD1602显示器的寄存器配置不起作用。——通过查看LCD1602显示器的数据手册和相关教学教程,发现是寄存器的配置地址错误。通过更正寄存器的配置地址后,寄存器配置工作正常。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。