基于单片机的温度检测系统设计

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

信息系统综合设计报告书

课题名称 基于单片机的温度检测系统设计

姓 名 学 号 院、系、部 电气工程系 专 业 电子信息工程

指导教师

2013年1月7日

※※※※※※※※※ ※※

※※ ※※

※※※

※※※

※※※

2009级信息系统综合设计

基于单片机的温度检测系统设计

一、设计目的

1、了解测温系统中工作元件的工作原理;

2、掌握数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、超温报警程序的编写。

二、设计要求

1. 测量通道:2路可循环显示,并有通道标志

2. 温度传感器选用DS18B20

3. 具有温度等信息的显示,具有温度上下限设置功能,越限时可以进行报警给出电路原理图设计,protel印刷电路图设计

三、硬件电路设计

3.1系统结构框图

图1 系统结构框图

3.2 单片机介绍

图2 单片机引脚图

P0口作为I/O口使用时为准双向口。

P1口是自带上拉电阻的I/O口,是一个准双向口。在输入操作时需要先置1。P1口特点是输出锁存器,输出时没有条件。输入缓冲,输入时有条件,即需要先将该口设为输入状态,先输出1。

P3口为准双向口。可以字节访问,也可以位访问。

P3.0---RXD,串行输入口。

P3.1---TXD,串行输出口。

P3.2---INT0,外部中断0的请求。

P3.3---INT1,外部中断1的请求。

P3.4---T0,定时器/计数器0外部计数脉冲。

P3.5---T1,定时器/计数器,1外部计数脉冲。

P3.6---WR,外部数据存储器写选通。

P3.7---RD,外部数据存储器读选通。

3.3数码管显示电路

图3 数码管显示电路

3.4 LED显示电路

图4 LED显示电路3.5串口显示电路

图5 通讯接口电路3.6系统电路原理图

图6 电路原理图

1、所需元器件

单片机AT89S521芯片(1个)、A/D转换机(1个)、温度传感器DS18B20(1个)、电阻:10KΩ(2个)、电容:1000μF(1个)、1uF(4个)、25uF(1个)

数码管(3个)、按钮(4个)、晶振(6MHZ)

2、实现的功能

该电路要实现的功能为,实时检测外界温度,将该温度值转换为数字量,然后通过四位的数码管显示。其中外界温度用温度传感器DS18B20感应,然后通过ADC0809转换为数字量后,通过单片机的P1口送到单片机内部存储单元。之后将该温度值转换为十进制后,将个十百位分别通过P1口送出,然后经74HC573的锁存,输出段码,之后通过P1口送出位码,经另一片74HC573锁存后驱动相应的数码管显示。

四、程序流程图设计

图7 程序流程图五、程序设计

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

SETB P2.4

MOV 30H,#0

MOV 31H,#0

MOV 32H,#0

MAIN1:LCALL GET_TEMP ;采集温度

LCALL SEPERATE ;对采集后的温度数据进行处理

LCALL ZHUANHUAN ;二进制数转换为BCD的形式

LCALL QINGLING ;转换为满足输出的类型

LCALL JIANTIAO ;扫描键盘模块

LCALL BAOJING ;报警设置模块

LCALL SHUCHU ;显示数据到数码管

SJMP MAIN1

;******************************************************************* GET_TEMP:

CLR EA ;使用DS18B20一定要禁止任何中断产生

LCALL INT ;调用初使化子程序

MOV A,#0CCH ;

LCALL WRITE ;送入跳过ROM命令

MOV A,#44H

LCALL WRITE ;送入温度转换命令

LCALL INT ;温度转换完全,再次初使化DS18B20

MOV A,#0CCH

LCALL WRITE ;送入跳过ROM命令

MOV A,#0BEH

LCALL WRITE ;送入读温度暂存器命令

LCALL READ

MOV R7,A ;读出温度值低字节存入R7

LCALL READ

MOV R6,A ;读出温度值高字节存入R6

SETB EA

RET

;****************************************************************** INT: ;初始化DS18B20子程序

CLR EA

L0:CLR P2.1 ;复位

MOV R2,#149

L1:DJNZ R2,L1 ;596US

SETB P2.1 ;释放DS18B20总线

MOV R2,#15 ;4US

L2:DJNZ R2,L2 ;60US

CLR C ;2US,清DS18B20存在信号

MOV C,P2.1 ;取DS18B20存在信号

JC L0 ;判断DS18B20存在吗?不存在则重新来

MOV R2,#125 ;存在则拉高

SETB P2.1

L3:DJNZ R2,L3 ;共500US

RET

相关文档
最新文档