基于at89s51单片机的超声波测距系统内容摘要:

产品指令系统完全兼容 4k字节在系统编程( ISP) Flash闪速存储器 1000次擦写周期 - 全静态工作模式: 0Hz- 33MHz 三级程序加密锁 128 8字节内部 RAM 32个可编程 I/ O口线 2个 16位定时/计数器 6个中断源 全双工串行 UART通道 低功耗空闲和掉电模式 中断可从空闲模唤醒系统 看门狗( WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程( ISP字节或页写模式) 功能特性概述: AT89S51 提供以下标准功能: 4k 字节 Flash 闪速存储器, 128字节内部 RAM, 32个 I/ O 口线,看门狗( WDT),两个数据指针,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 同时, AT89S51可降至 0Hz的 静态逻辑操作,并支持两种软件可选的节电工作模式。 空闲方式停止 CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。 掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 引脚功能说明 Vcc:电源电压 GND:地 10 P0口: P0口是一组 8位漏极开路型双向 I/ 0口,也即地址/数据总线复用口。 作为输出口用时,每位能驱动 8个 TTL逻辑门电路,对端口写“ l”可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8位)和数据总线复用 ,在访问期间激活内部上拉电阻。 在 F1ash编程时, P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口: Pl 是一个带内部上拉电阻的 8位双向 I/ O口, Pl的输出缓冲级可驱动(吸收或输出电流) 4个 TTL逻辑门电路。 对端口写“ l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL)。 Flash编程和程序校验期间, Pl接收低 8位地址。 端口引脚 第二功能 : MOSI(用于 ISP编 程 ) MISO(用于 ISP编 程) SCK (用于 ISP编 程) P2 口: P2 是一个带有内部上拉电阻的 8 位双向 I/ O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL)。 在访问外部程序存储器或 16位地址的外部数据存储器(例如执行 MOVX@DPTR指令)时, P2口送出高 8位地址数据。 在访问 8 位地址的外部数据存储器 (如执行 MOVX@Ri 指令)时, P2 口线上的内容(也即特殊功能寄存器( SFR)区中 P2寄存器的内容),在整个访问期间不改变。 Flash编程或校验时, P2亦接收高位地址和其它控制信号。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/ 0 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL逻辑门电路。 对 P3口写入“ l”时,它们被内部上拉电阻拉高并可作为输入端口。 作输入端时,被外部拉低的 P3口将用上拉电阻输出电流( IIL)。 P3口除了作为一般的 I/ 0口线外,更重要的用途是它的第二功能,如 下表所示: P3口还接收一些用于 Flash闪速存储器编程和程序校验的控制信号。 AT89S51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷 11 谐振器一起构成自激振荡器,振荡电路参见图 5。 外接石英晶体(或陶瓷谐振器)及电容 Cl、 C2 接在放大器的反馈回路中构成并联振荡电路。 对外接电容 Cl、 C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定 性。 如果使用石英晶体,推荐电容使用 30pF177。 10pF,而如使用陶瓷谐振器选择 40pF177。 10F。 用户也可以采用外部时钟。 采用外部时钟的电路如图 5右图所示。 这种情况下,外部时钟脉冲接到 XTAL1端,即内部时钟发生器的输入端, XTAL2则悬空。 由于外部时钟信号是通过一个 2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 图 32为 晶体接线图和外接时钟线路图。 石英晶体时: C1, C2= 30pF177。 10pF 外部时钟驱动电路 陶瓷滤波器: C1, C2= 40pF177。 10pF 图 32 内部振荡电路 超声波测距系统构成 本系统由单片机 AT89S51 控制,包括单片机系统、发射电路与接收放大电路和显示电路几部分组成,如图 31 所示。 硬件电路的设计主要包括单片机系统及显示电路 、超声波发射电路和超声波接收电路 三 部分。 单片机采用 AT89S51。 采用 12MHz 高精度的晶振,以获得较稳定时钟频率,减小测量误差。 单片机用 端口输出超声波换能器所需的 40kHz 的方波信号, 端口 监测 超声波接收电路输出的返回信号。 显示电路 12 采用简单实用的 3位共阳 LED 数码管, 段码输出端口为单片机的 P2 口 , 位码输出端口分别为单片机的 、 、 口 ,数码管 位 驱运 用 PNP 三极管 S9012 三极管 驱动。 超声波接收头接收到反射的回波后,经过 接收电路 处理后,向单片机 输入一个低电平脉冲。 单片机控制着超声波的发送,超声波发送完毕后,立即启动内部计时器T0 计时,当检测到 ,立即停止内部计时器计时。 单片机将测得的时间与声速相乘再除以 2 即可得到测量值 ,最后经 3 位数码管将测得的结果显示出来。 超声波测距单片机系统 超声波测距单片机系统主要由: AT89S51 单片机、晶振、复位电路、电源滤波部份构成。 由 K1, K2 组成测距系统的按键电路。 用于设定超声波测距报警值。 如图 33。 图 33:超声波测距单片机系统 超声波发射、接收电路 超声波发射 如图 34,接收电路如图 35。 超声波发射 电路 由电阻 R三极管 BG超声波脉冲变压器 B及超声波发送头 T40 构 成 ,超声波脉冲变压器,在这里的作用是提高加载到超声波发送头两 产端 的电压,以提高超声波 的发射功率,从 而 提高测量距离。 13 接收电路由 BG BG2 组成的两组三级管放大电路 构 成; 超声波的 检波电路、比较整形电路由 C D D2及 BG3 组成。 40kHz 的方波由 AT89S51 单片机的 输出,经 BG1 推动超声波脉冲变压器,在脉冲变压器 次 级形成 60VPP 的电压, 加载到超声波发送头上, 驱动超声波发射头发射超声波。 发送出的超声波,遇到障碍物后,产生回波, 反射 回来的回波 由超声波接收头接收到。 由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的 P3 脚。 图 34:超声波测距 发送 单元 该测距电路的 40kHz 方波信号由单片机 AT89S51 的 发出。 方波的周期为1/40ms,即 25181。 s,半周期为。 每隔半周期时间,让方波输出脚的电平取反,便可产生 40kHz方波。 由于单片机系统的晶振为 12M晶振,因而单片机的时间分辨率是 1181。 s,所以只能产生半周期为 12181。 s 或 13181。 s 的方波信号,频率分别为 和。 本系统在编程时选用了后者,让单片机产生约 的方波。 14 图 35:超声波测距接收单元 由于反射回来的超声波信号 非常微弱,所以接收电路需要将其进行放大。 接收电路如图 35 所示。 接收到的信号加到 BG BG2 组成的两级放大器上进行放大。 每级放大器的放大倍数为 70 倍。 放大的信号通过检波电路得到解调后的信号,即把多个脉冲波解调成多个大脉冲波。 这里使用的是 I N 4148 检波二极管,输出的直流信号即两二极管之间电容电压。 该接收电路结构简单,性能较好,制作难度小。 显示电路 本系统采用三位一体 L E D 数码管显示所测距离值,如图 36。 数 码管采用动态扫描显示,段码输出端口为单片机的 P2口 , 位码输出端口分别为单片机的 、 、 ,数码管 位 驱运 用 PNP 三极管 S9012 三极管 驱动。 图 36: 显示单元图 供电电路 本测距系统由于采用的是 LED 数码管用为显示方式,正常工作时,系统工作电流约为 3045mA, 为保证系统统计的可靠正常工作,系统的供电方式主要交流 AC69 伏,同时为调试系统方便,供电方式考虑了第二种方式,即由 USB 口供电,调试时直接由 15 电脑 USB 口供电。 6 伏交流是经过整流二极管 D1D4 整流成脉动直流后,经虑波电容C1 虑波后形成直流电,为保证单片机系统的可电,供电路中由 5 伏的三端称压集成电路进行稳压后输出 5 伏的真流电供整个系统用电,为进一步提高电源质量, 5 伏的直流电再次经过 C C4 滤波。 图 37: 供电单元电路 图 报警输出 电路 为提高测测距系统的实用性,本测距系统的报警输出 提供开关量 信号及声响信号 两种方式。 方式一: 报警信号由单片机 端口输出,继电器输出,可驱动较大的负载, 电路由电阻 R三极管 BG继电器 JDQ 组成,当测量值低于事先设定的报警值时,继电器吸合,测量值高于设定的报警值时,继电器断开。 方式二 :报警信号由单片机 口输出,提供声响报警信号, 电路由电阻 R三极管 BG蜂鸣器 BY 组成,当测量值低于事先设定的报警值 16 时,蜂鸣器发出“滴、滴、滴 … ..”报警声响信号,测量值高于设定的报警值时,停止发出报警 声 响。 报警输出电路如图 38。 图 38 报警输出电路 第 4 章 系统软件设计 主程序设计 超声波测距的软件设计主要由主程序、超声波发生子程序、超声波接收程序及显示子程序组成。 超声波测距的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用 C 语言编程。 主程序首先是对系统环境初始化, 设定时器 0 为计数,设定时器 1定时。 置位总中断允许位 EA。 进行程序主程序后,进行定时测距判断,当测距标志位 ec=1 时, 测量一次,程序设计中,超声波测距频度是 45 次 /秒。 测距间隔中,整个程序主要进行循环显示测量结果。 当调用 超声波 测距子程 序后,首先由单片机产生 4 个 频率为 超声波脉冲 ,加载的超声波发送头上。 超声波头发送完送超声波后,立即启动内部计时器 T0进行计时, 为了避免超声波从发射 头 直接传送到接收 头 引起的直射波触发 ,这时,单片机 需要延时约 2ms 时间 (这也就是超声波测距仪会有一个最小可测距离的原 17 因 ,称之为盲区值 )后,才 启动对单片机。 当检测到 脚的电平由高转为低电平时,立即停止 T0 计时。 由于采用 单片机采用的是 12 MHz 的晶振,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。