超声波测距系统的研究毕业论文 - 图文(6)

2019-04-21 17:36

大学本科生毕业设计(论文)

图 3-12 八段LED数码显示管原理和结构

单片机对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流地一遍一遍显示各自字符,人们由于视觉器官惰性,从而看到的是各LED似乎在同时显示不同字形。

为了减少硬件开销,提高系统可靠性并降低成本,单片机控制系统通常采用动态扫描显示。但是由于本系统所用的单片机引脚少,剩余引脚很多,而且也只需显示三位字符,所以,采用了静态的显示方式,且采用了软件译码,这样单片机引脚输出可直接接到LED显示管上。这样省去了外部复杂的译码电路。

22

大学本科生毕业设计(论文)

第4章 系统软件设计

4.1 系统程序的结构

本系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。

(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;

(2)基于LED数码管的显示模块,分为数码管段选和位选。

(3)温度补偿与距离计算模块、分为超声波发送控制程序、接收处理程序、温度补偿子程序等;

(4)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil进行程序编译,Keil功能强大使用方便。

主程序,分为系统初始化、按键处理以及各个子程序的调度管理等部分。如下图所示描述了各个模块的关系:

23

大学本科生毕业设计(论文)

开 始 初始化定时器模块,液晶模块,超声波模块

启动超声波 N 高电平计数 Y 开定时器 N 低电平计数 Y N 定时中断 Y N 关定时器 显示距离 Y液晶显示超出范围

结束 图 4-1 流程图

24

大学本科生毕业设计(论文)

4.2 系统主程序

主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式,置位总中断允许位EA并给显示端口PO和PZ清O。然后调用超声波发生子程序控制发射电路送出一组超声波脉冲,发射后等待1ms打开外部中断刀呵TO。当主程序检测到接收成功的标志位后,将计数器TO中的数与温度补偿后的声速按距离计算公式,即可得被测物体与测距器之间的距离。测出距离后结果将以十进制BCD码方式送往LED显示,然后再发超声波脉冲重复测量过程。等待1ms的原因是,超声波发射探头发射的超声波一般都会存在余波干扰,有部分声波会直接传到接收探头,经接收电路放大后,系统就会把它误认为是检测的回波信号,发射后等待1ms可以避免检测到余波信号,当然这也会导致测量盲区的存在。

本设计主程序的思想如下:

(1)温度为两位显示,距离为四位显示单位为mm;

(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms ,故900ms满足该速度要求;超声波每隔60ms发送一次。

(3)系统采用AT89S51的内时钟:12MHz;

(4)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为1CM;

系统主程序如下: void main( void ) { TMOD=0x11;

TH0=0;

TL0=0; TH1=0xf8; TL1=0x30;

ET0=1; //允许T0中断 ET1=1; TR1=1; EA=1; while(1) {

while(!RX);

//当RX为零时等待

TR0=1; TR0=0;

//开启计数 //当RX为1计数并等待

//关闭计数

//允许T1中断 //开启定时器 //开启总中断 //2MS定时

//设T0为方式1,GATE=1;

while(RX);

Conut(); //计算}}

25

大学本科生毕业设计(论文)

4.3 40KHZ超声波发生及中断子程序

在系统中,AT89551对发射的控制就是对40kHz方波产生电路的控制。超声波发生子程序的作用是通过Pl.0端口发送一组超声波脉冲序列(频率约40kHz的方波),脉冲宽度为12群:左右,在程序中用定时器的自动重装载方式实现,脉冲发射同时把计数器T0打开进行计时,等待回波反射到接收探头。超声波发生子程序较简单,但要求程序运行时间准确,C语言程序如下:

void zd3() interrupt 3 块

{ TH1=0xf8;

TL1=0x30; Display(); timer++; if(timer>=400) {timer=0; TX=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();

26

//T1中断用来扫描数码管和计800MS启动模

//800MS 启动一次模块


超声波测距系统的研究毕业论文 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:海上船舶作业安全施工管理方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: