基于单片机温度传感器课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HUBEI NORMAL UNIVERSITY

单片机课程设计

基于数字温度传感器的数字温度计的设计

1.芯片DS18B20的说明

美国Dallas 半导体公司的数字化温度传感器DS1820 是世界上第一片支持"一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管

的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20 体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。

DS18B20 的主要特性

1.1芯片DS18B20的特点

(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电

(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理与DS18B20 的双向通讯

(3)DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测温

(4)DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃

(6)可编程的分辨率为9~12 位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可以实现高精度测温。

(7)在9位分辨率最多在93.75ms把温度转换成数字,12 位分辨率是最多可在750ms内将温度转换成数字,速度更快。

(8)温度测试结果直接转换成数字温度信号,以“一线总线”串行传输给CPU,同事科传送SRC检验码,菊友极强的抗干扰校正能力。

(9)负压特性:电源极性接反时芯片不会因发热而烧毁,但不会正常工作。

2.液晶显示器LM016L的说明接口信号说明:

下表为控制命令表:

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图一是016L的内部显址。

图一

液晶显示简介

①液晶显示原理

液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

②液晶显示器的分类

液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。

③字符的显示

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

3.总体电路流程图

4.总体电路设计

LCD与AT89C51的连接,(如图一所示)将LCD的D0~D7引脚分别与单片机的P0.1~P0.7相连,使LCD能接受来自单片机的信号。

电路如图二所示

如图可见,电路主要是由AT89C51芯片和LM016L和蜂鸣器构成了主要电路。开关的控制,可调整温度的范围。

5.系统程序设计

程序清单:

#include

#include

#include

#define uint unsigned int

#define unchar unsigned char

unchar templ,temph,i,y,z,n;

unchar a,b;//LCD的变量

unchar sign=0;//标志变量

bit k; //判断正负变量

sbit dq=P3^5;

sbit rs=P2^0;//LCD显示的定义取值

sbit rw=P2^1;

sbit e=P2^2;

sbit bf=P0^7;

sbit DQ=P2^5;

//键盘定义

sbit read=P3^0;

sbit incH=P3^2;

sbit desH=P3^3;

sbit reset=P3^4;

//蜂鸣器

sbit BUZZER=P2^6;

float t4,t5,t6,t7,tt;//温度转换的变量uint tp;

unchar temperature,Htemp,Ltemp; unchar D1,D2,D3;

uint D4,D5,D6,D9,D7,D8;

unchar code dis1[]={"0123456789"}; unchar code dis2[]={"temp:"}; unchar code dis3[]={"WARN"};

unchar code dis4[]={"Htemp:"}; unchar code dis5[]={"working"}; unchar code dis6[]={"Ltemp:"};

bit flag_1820_1;

bit flag_1820_2;

void delay_ms(unsigned char time); void ledshow(void);

void keypress(void);

相关文档
最新文档