毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx

上传人:b****3 文档编号:1845712 上传时间:2022-10-24 格式:DOCX 页数:19 大小:146.80KB
下载 相关 举报
毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx_第1页
第1页 / 共19页
毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx_第2页
第2页 / 共19页
毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx_第3页
第3页 / 共19页
毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx_第4页
第4页 / 共19页
毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx

《毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx》由会员分享,可在线阅读,更多相关《毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx(19页珍藏版)》请在冰豆网上搜索。

毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能.docx

毕业设计基于51单片机用lcd1602显示的ds18b20课程设计键控上下限报警功能

单片机课程设计

DS18B20数字温度计设计

 

专业电子信息科学与技术

班级11级2班

学号

姓名

 

1.课题的设计目的。

------------------------------------------------------------------------

2.对于课题的总体构想。

------------------------------------------------------------------------

3.DS18B20温度传感器简介。

------------------------------------------------------------------------

4.STC89C51单片机简介。

------------------------------------------------------------------------

5.系统总仿真电路。

------------------------------------------------------------------------

6.总程序。

------------------------------------------------------------------------

7.心得体会。

------------------------------------------------------------------------

8.参考文献。

---------------------------------------------------

一.课题的设计目的

1.巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。

2.培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。

3.通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

2.对课题的总体构想

采用数字温度芯片DS18B20测量温度,输出信号全数字化。

便于单片机处理及控制,省去传统的测温方法的很多外围电路。

DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。

采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。

既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外STC89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。

3.DS18B20温度传感器简介

DS18B20功能特点:

1.采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。

2.每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。

3.低压供电,电源范围从3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。

4.测温范围为-55℃~+125℃,在-10℃~85℃范围内误差为±0.5℃。

5.可编辑数据为9~12位,转换12位温度时间为750ms(最大)。

6.DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。

DS18B20引脚如图所示。

四.DS18B20时序图

1.初始化时序

2.写时序

3.读时序

五.STC89C51单片机简介。

89C52单片机主要特性

1.一个8位的微处理器(CPU)。

2.片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。

3.片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。

但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。

目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。

SST公司推出的89系列单片机分别集成了16K、32K、64KFlash存储器,可供用户根据需要选用。

4.四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。

5.两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。

为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。

6.五个中断源的中断控制系统。

现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。

7.一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单机与微机之间的串行通信。

8.片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。

最高允许振荡频率为12MHz。

SST89V58RD最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。

5.系统总仿真电路。

6.总程序(分模块写)

1.main.c

#include

#include"lcd.h"

#include"temp.h"

voidLcdDisplay(int);

sbitK1=P2^0;

sbitK2=P2^1;

sbitK3=P2^2;

sbitK4=P2^3;

externintth=20;

externinttl=-10;

sbitbeep=P1^0;

voidmain()

{

LcdInit();

LcdWriteCom(0xc7);

LcdWriteData('C');

while

(1)

{

if(K1==0)

{

Delay1ms(500);

if(K1==0);

th++;

}

if(K2==0)

{

Delay1ms(500);

if(K2==0);

th--;

}

if(K3==0)

{

Delay1ms(500);

if(K3==0);

tl++;

}

if(K4==0)

{

Delay1ms(500);

if(K4==0);

tl--;

}

LcdDisplay(Ds18b20ReadTemp());

}

}

voidLcdDisplay(inttemp)

{

inti,tt,rr,mm;

unsignedchardatas[]={0,0,0,0},datas1[]={0,0,0},datas2[]={0,0,0};

floattp;

if(temp<0)

{

LcdWriteCom(0xc0);

LcdWriteData('-');

i=1;

temp=temp-1;

temp=~temp;

tp=temp;

temp=tp*0.0625*10+0.5;

mm=-temp;

}

else

{

LcdWriteCom(0xc0);

LcdWriteData('+');

tp=temp;

temp=tp*0.0625*10+0.5;

mm=temp;

}

datas[0]=temp/1000;

datas[1]=temp%1000/100;

datas[2]=temp%100/10;

datas[3]=temp%10;

if(th<0)

{

LcdWriteCom(0x89);

LcdWriteData('-');

tt=-th;

}

else

{

LcdWriteCom(0x89);

LcdWriteData('+');

tt=th;

}

datas1[0]=tt/100;

datas1[1]=tt%100/10;

datas1[2]=tt%10;

LcdWriteCom(0x87);

LcdWriteData('H');

LcdWriteCom(0x88);

LcdWriteData(':

');

LcdWriteCom(0x8a);

LcdWriteData('0'+datas1[0]);

LcdWriteCom(0x8b);

LcdWriteData('0'+datas1[1]);

LcdWriteCom(0x8c);

LcdWriteData('0'+datas1[2]);

if(tl<0)

{

LcdWriteCom(0x90);

LcdWriteData('-');

rr=-tl;

}

else

{

LcdWriteCom(0x90);

LcdWriteData('+');

rr=tl;

}

datas2[0]=rr/100;

datas2[1]=rr%100/10;

datas2[2]=rr%10;

LcdWriteCom(0x8e);

LcdWriteData('L');

LcdWriteCom(0x8f);

LcdWriteData(':

');

LcdWriteCom(0x91);

LcdWriteData('0'+datas2[0]);

LcdWriteCom(0x92);

LcdWriteData('0'+datas2[1]);

LcdWriteCom(0x93);

LcdWriteData('0'+datas2[2]);

if(mm>=(th*10)||mm<=(tl*10)||th<=tl)

beep=0;

else

beep=1;

LcdWriteCom(0x80);

LcdWriteData('T');

LcdWriteCom(0x81);

LcdWriteData('A');

LcdWriteCom(0x82);

LcdWriteData('I');

LcdWriteData('');

LcdWriteCom(0x84);

LcdWriteData('A');

LcdWriteCom(0x85);

LcdWriteData('N');

LcdWriteCom(0xc1);

LcdWriteData('0'+datas[0]);

LcdWriteCom(0xc2);

LcdWriteData('0'+datas[1]);

LcdWriteCom(0xc3);

LcdWriteData('0'+datas[2]);

LcdWriteCom(0xc4);

LcdWriteData('.');

LcdWriteCom(0xc5);

LcdWriteData('0'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1