基于单片机的温度检测系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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