基于51单片机的超声波测距系统的毕业设计报告 下载本文

中北大学毕业论文

图 3-8 DS18B20 温度测量电路

3.3.1 LCD显示部分

本设计显示部分采用字符型TC1602液晶显示所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有微功耗、体积小、显示内容丰富、超薄轻巧、使用方便等诸多优点,与数码管相比,显得更专业、美观。使用时,可将P0与LCD的数据线相连,P2口与LCD的控制线相连,如图所示。

图 3-9 TC1602液晶显示电路

其中,TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第7~14脚:D0~D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D0~D7是接到LCD/602的D1~D0,正好相反,因此在编写软件时需要做处理,使读取正确。

21

中北大学毕业论文

3.3.2报警部分

采用一个蜂鸣器,由P1.2输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9012的放大。报警部分的连线,如图3-10所示。

图3-10报警电路

3.4本章小结

本章主要介绍了基于单片机的超声测距系统的具体硬件设计电路。对其中主要硬件单元:发射电路、接收电路、检测电路以及显示电路的设计给出原理图并进行了分析计算。

22

中北大学毕业论文

第4章 软件设计和测量结果分析

4.1系统软件设计

系统程序结构:

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

(2)基于YB1602的显示模块,分为初始化子程序、写入子程序以及显示子程序; (3)温度补偿与距离计算模块、分为超声波发送控制程序、接收处理程序、温度补偿子程序等;

(4)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil

?Version2进行程序编译,Keil功能强大使用方便。

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

图 4-1系统软件方框图

系统主程序:

23

中北大学毕业论文

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

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

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

(3)按键S为测量启动键;

(4)系统采用AT89S52的内时钟:12MHz; (5)没有使用看门狗功能;

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

系统主程序如下: void main(void) { uchar i,j;

for(i=0;i<255;i++)

for(j=0;j<255;j++); //延时,等待系统外围复位完成 sys_init(); //初始化 display(); //显示 sta_flag=0; //标准复位 waitforstarting: //检测按键 while(START); for(i=0;i<20;i++) delay1ms(); if(START)

24

中北大学毕业论文

goto waitforstarting;

BUZZER=0; //蜂鸣器鸣音一次提示按键按下 i=100000; while(i--); BUZZER=1; i=100000; while(i--);

TR0=1; ET0=1;

testtemp(); while(1) {

if(sta_flag) {

while(0==CSBIN); TR1=0;

jsh=TH1; jsl=TL1;

if(15==count) {

temp=wd(); count=0;

//启动定时器0 //启动温度转换 //60MS到了,超声波已经发送 //等待超声波返回 //停止计数 //1S到,检测温度 25