1 / 15
文档名称:

单片机课程设计(论文)-单总线高精度温度采集系统.doc

格式:doc   页数:15
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机课程设计(论文)-单总线高精度温度采集系统.doc

上传人:3346389411 2013/3/30 文件大小:0 KB

下载得到文件列表

单片机课程设计(论文)-单总线高精度温度采集系统.doc

文档介绍

文档介绍:大连理工大学本科设计报告
题目: 单总线高精度温度采集系统

题目:单总线高精度温度采集系统
1 设计要求
系统结构:1)由DS18B20实现对温度的采集;
2)由数码管实现温度显示系统。
设计要求:1)启动DS18B20进行12位高精度环境温度采集;
2)利用数码管显示数据;
3)具有温度上限声光报警;
4)可以通过键盘设定报警上限值。
扩展功能: 1)报警频率随实测温度与报警温度的差值变化,相差越大频率越高;
2)键盘设定上限值时十位,个位的闪烁,并且在输入后停止闪烁。
2 设计分析及系统方案设计
程序采用无限循环结构。一次循环中,完成对温度的采集和显示,判断超过设定值时报警。键盘设定用外中断/INT1完成,T1产生方波驱动蜂鸣器发声,初值赋为采集温度与设定值的差值。

K1-K16
键盘矩阵电路
8位数码管显示
4 外围接口模块硬件电路功能描述
ZLG7290B:数码管动态显示驱动、键盘扫描芯片。通过按键进行上限温度的设定及温度的显示模块。
蜂鸣器模块:当温度超过上限则报警。
DS18B20:智能温度传感器。对环境温度进行12位精度的采集。
5 主程序中主要变量定义
变量名称
RAM单元/寄存器
功能
TEMPER_L
36H
读出温度值低8位数据
TEMPER_H
35H
读出温度值高4位数据
TEMPER
34H
转换温度整数部分
TEMPER-NUM
60H
转换温度整数部分的缓冲单元
TEMPER_XS
33H
转换温度小数部分
TEMPER-NUM-XS
61H
转换温度小数部分的缓冲单元
LIMIT
14H
键盘输入的温度上限值
6 系统软件中各个子程序的功能描述
子程序名称
入口参数
出口参数
功能描述
GET_TEMPER

温度值高四位TEMPER_L、温度值低8位TEMPER_H
从DS18B20中读出12位温度数据
TEMPER_COV
TEMPER_L
TEMPER_H
TEMPER
TEMPER_XS
将读出的12位温度数据转换并保存
INT_1820

FLAG1
初始化DS18B20
WRITE_1820
A

向DS18B20中写入数据
INT_T1
TH1
TL1
定时器T1中断。装定时初值,初值为温度差值,。
DISPLAY
TEMPER
TEMPER_XS

将温度通过数码管显示出来
READ_18200

TEMPER_L
TEMPER_H
从DS18B20中读出数据并储存
7 主程序程序流程图
转换温度子程序
读温度子程序
开T1中断并赋初值
开键盘中断INT0
7290复位
开始
把数据通过数码管显示出来
采集温度值是否大于设定值
N

开T1中断,把设定值与温度差值赋给T1初值,并驱动蜂鸣器报警
Y
Y
8 程序清单

TEMPER_L EQU 36H
;存放读出温度低位数据
TEMPER_H EQU 35H
;存放读出温度高位数据
TEMPER EQU 34H
;存放转换后的8位温度值
TEMPER_XS EQU 33H
;存放转换温度的小数部分
TEMPER_NUM EQU 60H
;缓冲单元
TEMPER_NUM_XS EQU 61H
FLAG1 BIT 00H
DQ BIT
;一线总线控制端口
LIMIT EQU 14H
WSLA EQU 070H
RSLA EQU 071H
SDA BIT
SCL BIT
ORG 8000H
LJMP MAIN
ORG 8003H ;外中断Int0的入口地址
LJMP INT_7290
ORG 801BH ;定时器T1的入口地址
LJMP INT_T1
ORG 8100H
MAIN:
MOV SP,#70H
CLR ;7290复位
LCALL DELAY
SETB
MOV LIMIT,#0FFH
LP1:
SETB EX0 ;开外中断0
SETB EA
MOV TCON,#00H
SETB ET1 ;开T1中断
SETB EA
MOV TMOD,#10H ;T1初值
MOV TL1,#33H
MOV TH1,#0FEH
LCALL GET_TEMPER ;从DS18B20读出温度数据
LCALL TEMPER_COV ;转换读出的温度数据并保存
MOV A,TEMP