AT89C51单片机的超声波测距仪的设计
目录
一、引言 5
(一)课题研究背景 5
(二)课题意义 5
二、总体设计 5
(一)方案设计 5
三、硬件电路的设计 6
(一)单片机引脚说明 6
(二)电源与电池盒 7
(三)超声波原理 8
(四)时钟电路的设计 9
(五)复位电路设计 10
(六)报警电路的设计 10
(七)显示模块 11
四、软件设计 11
(一)主程序流程图 11
(二) 测距流程图 13
五、调试与仿真 13
(一)程序输入与烧录 13
(二)实物调试 14
六、总结 15
七、致谢 16
八、参考文献 16
附 录 17
附录1:原理图 17
附录2:元器件清单及实物图 17
附录3:程序 19
一、引言
(一)课题研究背景
随着社会的发展,生活水平的不断提升,人们的经济条件越来越好,汽车出现在公路上的频率也越来越高,渐渐取代了古代的马车、近代的人力黄包车、自行车,但伴随着汽车出现的还有交通事故的不停息的增加。所以对于距离的感知人们越来越敏感,生产生活上对于距离的把握也越来越精确。测距的工具也跟随着出现,它主要分成三大类,一类是激光进行测距,它是根据光电元件接收目标反射的激光束来计算出测距者到目标的距离。另一类是红外测距,它是运用红外线在传播的过程中不会分散的道理进行测距,但是具有方向性差的缺点。还有一类是超声波测距,但它具有一定的局限性,在传播的过程中需要借助媒介来传播,当超声波发射器发射出 *好棒文|www.hbsrm.com +Q: ^351916072*
信号以后,计时器开始计时,一旦遇到障碍物后信号立即返回,当超声波接收到信号以后停止计时。该测距仪是一种无需接触式的并且可以直接对物体进行检测的仪器,利用超声波检测往往比较快捷、性能稳定、能够实现实时检测等优点。
(二)课题意义
针对以上出现的交通问题,我制作了一个简易的报警器,它的原理是将单片机作为主控芯片,将一系列涉及到的程序烧录进去,在单片机的外部引脚上分别接上能够发出声音的蜂鸣器作为报警电路,在9脚接上一个开关形成上电自动复位电路,并在芯片的引脚上接一个4位的8段数码管显示器,来显示所测出的距离,这部分是显示电路,对于测距部分,我选用的是市面上广见的HC-SR04超声波模块,它价格低廉,使用方便,并且测出的距离误差也相对较小。
二、总体设计
(一)方案设计
设计思路是要搭建出一个电路,来实现报警、测距、复位等于一体的电路。总的方案分为两部分,一部分是对硬件部分的设计,另外的一部分是对软件系统的概括。其中,收集数据、蜂鸣器报警 、距离显示、电路控制这四个子模块是按照电路的基本模块来划分的。 超声波发射与接收、蜂鸣器、单片机控制这三个电路则是按照电路的基本结构来划分的。主控电路的设计应用可分为软硬件两部分,软件是设计工作是需要的各种程序的总称,硬件则主要包含了单片机核心单元、信号输入和输出设备、以及外围电路等系统的应用。核心控制单元是采用的AT89C51单片机,在测距前会对用于比较的距离进行设定,这次设计采用的比较值是50cm,测量时测出的距离与设定值进行比较,当小于50cm时,报警器就会受单片机中烧录的程序控制,进行报警。当测出的值大于50cm时,报警器不发出响声。系统整体的设计框图如图1所示。
三、硬件电路的设计
(一)单片机引脚说明
设计硬件电路时,我选用的是40个引脚的AT89C51单片机,P1口接的是1kΩ的电阻,9脚接的是复位电路,P3.0-P3.3口接超声波,P3.4-P3.5口是16位的定时/计数器器,P3.6-P3.7是读写信号,18(XTAL2)和19(XTAL1)脚接的是时钟电路,20脚接地,P2.0-P2.3主要是接按键在进行测距时对距离的设定,30脚地址锁存器,40脚接电源。最小系统的接线图如图2所示。
硬件部分主要包含着AT89C51单片机,即主控制模块部分,还含有报警装置,以及9脚的复位电路。从以上的分析可知在本设计中要用到如下器件: AT89C51单片机、蜂鸣器、按键、四位数码管以及超声波传感器等,其中发光二极管和电源工作指示灯是接在40脚。在电路中我还另外加了4个按键 ,靠近电源的这个按键是设定键,它的功能是对即将测距的初始值进行设定;另一个是加键,它的功能是在设定距离时,对初始值进行加数;最右侧一个是减键,它的功能是在设定初始值时,对它进行减数;在单片机边上的这个按键是复位键,将之前所测得的距离进行清零。总设计图如图3所示。
(二)电源与电池盒
对于电源部分的设计,我选用的是在板子上外接一个电池盒来实现电源的供给的,电池盒如图4所示。它可以内装3节1.5V的干电池进行供电,要注意的是在装电池时一定要注意电池的正负极,不能将电池装反,否则电路不能工作。接电池盒时,是在单片机的40脚接上一个发光二极管,然后串联一个控制键,控制键的对角接着我所选用的外接电池盒。
(三)超声波原理
对于超声波模块的选用,我没有自己去设计超声波模块,而是选用了成品测试模块HC-SR04,自己设计的话工作量大,对于超声波本身不是很熟悉,容易出错,但直接选用就不同了,HC-SR04它本身的成本不高,而且符合我这次设计的要求,它可以提供的测距范围是2cm-400cm,但在正真测量时,存在误差,最多只可以测到3米左右,它的优点是不需要认为的接触,就可以直接进行测量。该模块主要囊括了信号发射、接收和控制。超声波的实物图如下图5所示。上面的是超声波的正面示意图,下面一幅则是超声波的背面设计图,可以看到上面有很多集成芯片,主要是用来信号输入与信号输出的。图中左边的VCC是来供电源,GND表示地线,TRIG是信号输入,ECHO时信号输出。
(四)时钟电路的设计
AT89C51单片机内部虽含有EPROM,可产生振荡电路,但在这次设计中要形成3.1硬件设计中的18、19脚时钟电路,必须在外部新连接一个电路。采用内部时钟方式进行设计,在18、19脚分别串联一个电容,对于电容的范围没有特别大的要求,只要在20-100pf之间即可,但选取中间值则会更为稳定,晶振则是选取12MHZ。在设计电路图时要将两个电容并联,然后在串联一个晶振,最后分别接到单片机引脚上。晶振的振荡频率是12MHZ,振荡周期是振荡频率的倒数,所以T为1/12us,时钟电路图如图6所示。
(五)复位电路设计
在设计复位电路时,首要目的是为了在操作实物时,不让测量的间隔发生错误,因为实物在测量过程当中因为没有固定住测距模块,测得的距离会时刻发生变化,所以在电路中增加一个复位电路,对总体的电路进行复位,复位的方法是在9脚reset端接一个按键,按下按键后,接通电源电路自动复位。设计电路时是在RST端接一个10uF的电容和10K的电阻来实现复位的。复位电路如图7示。
1K 电阻 R1, R2, R3, R8, R9, R10, R11, R12 8
一、引言 5
(一)课题研究背景 5
(二)课题意义 5
二、总体设计 5
(一)方案设计 5
三、硬件电路的设计 6
(一)单片机引脚说明 6
(二)电源与电池盒 7
(三)超声波原理 8
(四)时钟电路的设计 9
(五)复位电路设计 10
(六)报警电路的设计 10
(七)显示模块 11
四、软件设计 11
(一)主程序流程图 11
(二) 测距流程图 13
五、调试与仿真 13
(一)程序输入与烧录 13
(二)实物调试 14
六、总结 15
七、致谢 16
八、参考文献 16
附 录 17
附录1:原理图 17
附录2:元器件清单及实物图 17
附录3:程序 19
一、引言
(一)课题研究背景
随着社会的发展,生活水平的不断提升,人们的经济条件越来越好,汽车出现在公路上的频率也越来越高,渐渐取代了古代的马车、近代的人力黄包车、自行车,但伴随着汽车出现的还有交通事故的不停息的增加。所以对于距离的感知人们越来越敏感,生产生活上对于距离的把握也越来越精确。测距的工具也跟随着出现,它主要分成三大类,一类是激光进行测距,它是根据光电元件接收目标反射的激光束来计算出测距者到目标的距离。另一类是红外测距,它是运用红外线在传播的过程中不会分散的道理进行测距,但是具有方向性差的缺点。还有一类是超声波测距,但它具有一定的局限性,在传播的过程中需要借助媒介来传播,当超声波发射器发射出 *好棒文|www.hbsrm.com +Q: ^351916072*
信号以后,计时器开始计时,一旦遇到障碍物后信号立即返回,当超声波接收到信号以后停止计时。该测距仪是一种无需接触式的并且可以直接对物体进行检测的仪器,利用超声波检测往往比较快捷、性能稳定、能够实现实时检测等优点。
(二)课题意义
针对以上出现的交通问题,我制作了一个简易的报警器,它的原理是将单片机作为主控芯片,将一系列涉及到的程序烧录进去,在单片机的外部引脚上分别接上能够发出声音的蜂鸣器作为报警电路,在9脚接上一个开关形成上电自动复位电路,并在芯片的引脚上接一个4位的8段数码管显示器,来显示所测出的距离,这部分是显示电路,对于测距部分,我选用的是市面上广见的HC-SR04超声波模块,它价格低廉,使用方便,并且测出的距离误差也相对较小。
二、总体设计
(一)方案设计
设计思路是要搭建出一个电路,来实现报警、测距、复位等于一体的电路。总的方案分为两部分,一部分是对硬件部分的设计,另外的一部分是对软件系统的概括。其中,收集数据、蜂鸣器报警 、距离显示、电路控制这四个子模块是按照电路的基本模块来划分的。 超声波发射与接收、蜂鸣器、单片机控制这三个电路则是按照电路的基本结构来划分的。主控电路的设计应用可分为软硬件两部分,软件是设计工作是需要的各种程序的总称,硬件则主要包含了单片机核心单元、信号输入和输出设备、以及外围电路等系统的应用。核心控制单元是采用的AT89C51单片机,在测距前会对用于比较的距离进行设定,这次设计采用的比较值是50cm,测量时测出的距离与设定值进行比较,当小于50cm时,报警器就会受单片机中烧录的程序控制,进行报警。当测出的值大于50cm时,报警器不发出响声。系统整体的设计框图如图1所示。
三、硬件电路的设计
(一)单片机引脚说明
设计硬件电路时,我选用的是40个引脚的AT89C51单片机,P1口接的是1kΩ的电阻,9脚接的是复位电路,P3.0-P3.3口接超声波,P3.4-P3.5口是16位的定时/计数器器,P3.6-P3.7是读写信号,18(XTAL2)和19(XTAL1)脚接的是时钟电路,20脚接地,P2.0-P2.3主要是接按键在进行测距时对距离的设定,30脚地址锁存器,40脚接电源。最小系统的接线图如图2所示。
硬件部分主要包含着AT89C51单片机,即主控制模块部分,还含有报警装置,以及9脚的复位电路。从以上的分析可知在本设计中要用到如下器件: AT89C51单片机、蜂鸣器、按键、四位数码管以及超声波传感器等,其中发光二极管和电源工作指示灯是接在40脚。在电路中我还另外加了4个按键 ,靠近电源的这个按键是设定键,它的功能是对即将测距的初始值进行设定;另一个是加键,它的功能是在设定距离时,对初始值进行加数;最右侧一个是减键,它的功能是在设定初始值时,对它进行减数;在单片机边上的这个按键是复位键,将之前所测得的距离进行清零。总设计图如图3所示。
(二)电源与电池盒
对于电源部分的设计,我选用的是在板子上外接一个电池盒来实现电源的供给的,电池盒如图4所示。它可以内装3节1.5V的干电池进行供电,要注意的是在装电池时一定要注意电池的正负极,不能将电池装反,否则电路不能工作。接电池盒时,是在单片机的40脚接上一个发光二极管,然后串联一个控制键,控制键的对角接着我所选用的外接电池盒。
(三)超声波原理
对于超声波模块的选用,我没有自己去设计超声波模块,而是选用了成品测试模块HC-SR04,自己设计的话工作量大,对于超声波本身不是很熟悉,容易出错,但直接选用就不同了,HC-SR04它本身的成本不高,而且符合我这次设计的要求,它可以提供的测距范围是2cm-400cm,但在正真测量时,存在误差,最多只可以测到3米左右,它的优点是不需要认为的接触,就可以直接进行测量。该模块主要囊括了信号发射、接收和控制。超声波的实物图如下图5所示。上面的是超声波的正面示意图,下面一幅则是超声波的背面设计图,可以看到上面有很多集成芯片,主要是用来信号输入与信号输出的。图中左边的VCC是来供电源,GND表示地线,TRIG是信号输入,ECHO时信号输出。
(四)时钟电路的设计
AT89C51单片机内部虽含有EPROM,可产生振荡电路,但在这次设计中要形成3.1硬件设计中的18、19脚时钟电路,必须在外部新连接一个电路。采用内部时钟方式进行设计,在18、19脚分别串联一个电容,对于电容的范围没有特别大的要求,只要在20-100pf之间即可,但选取中间值则会更为稳定,晶振则是选取12MHZ。在设计电路图时要将两个电容并联,然后在串联一个晶振,最后分别接到单片机引脚上。晶振的振荡频率是12MHZ,振荡周期是振荡频率的倒数,所以T为1/12us,时钟电路图如图6所示。
(五)复位电路设计
在设计复位电路时,首要目的是为了在操作实物时,不让测量的间隔发生错误,因为实物在测量过程当中因为没有固定住测距模块,测得的距离会时刻发生变化,所以在电路中增加一个复位电路,对总体的电路进行复位,复位的方法是在9脚reset端接一个按键,按下按键后,接通电源电路自动复位。设计电路时是在RST端接一个10uF的电容和10K的电阻来实现复位的。复位电路如图7示。
1K 电阻 R1, R2, R3, R8, R9, R10, R11, R12 8
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1806.html