内容发布更新时间 : 2024/12/22 13:34:39星期一 下面是文章的全部内容请认真阅读。
中北大学毕业论文
图 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