综合训练二 温度检测系统设计资料.docx
- 文档编号:18015303
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:353.31KB
综合训练二 温度检测系统设计资料.docx
《综合训练二 温度检测系统设计资料.docx》由会员分享,可在线阅读,更多相关《综合训练二 温度检测系统设计资料.docx(19页珍藏版)》请在冰点文库上搜索。
综合训练二温度检测系统设计资料
辽宁工程技术大学
专业课程综合训练项目说明书
题目:
温度检测系统设计
课程名称:
单片微型计算机原理与应用
班 级:
学号:
姓 名:
指导教师:
李文华
完成日期:
2016/12/26
一、设计题目
温度检测系统设计
二、设计内容
1-温度由8个LED小灯显式0℃~40℃的温度范围,即,8个小灯全灭表示当前温度小于0℃,全亮为大于40℃,在此其间有8个档位,每亮一盏小灯表示升高5℃。
2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。
三、综合训练要求
设计说明书(3000~5000字)1份
4、评分标准
序号
评分标准
满分
实际得分
1
设计方案是否可行,设计依据是否充分,软硬件资源分配是否合理
4
2
设计说明书设计过程是否清晰,设计内容是否全面,计算是否正确,行文章节格式是否规范
4
3
绘图是否清晰,标注是否表达准确规范
2
总分
10
补充评分要求:
对综合训练项目中,能够采用开发板调试,或软件仿真的形式实现功能,将视难易程度及能够按时提交情况酌情提分,但不超过每个综合项目满分10分的标准。
五、指导教师评语
该生设计的过程中表现,设计内容反映的基本概念及计算,设计方案,说明书撰写,答辩表现。
成绩:
指导教师
日 期
目录
1系统总体设计
1.1系统总体设计思路.......................................4
1.2设计目的...............................................4
1.3设计步骤...............................................4
1.4设计方案...............................................4
2硬件设计
2.1温度检测系统的硬件组成................................4
2.2单片机功能和特点......................................4
2.3A/D模数转换...........................................7
2.4DS18B20温度传感器.....................................8
3软件设计
3.1程序流程图...........................................10
3.2汇编语言程序.........................................11
4结论....................................................15
5参考文献.................................................15
1系统总体设计
1.1系统总体设计思路:
将DS18B20的温度寄存器与单片机相接,然后单片机没间隔多长时间就读取一下DS18B20的温度寄存器,然后判定一下温度大概的范围,找到满足的范围就跳转相应的程序段,点亮相应的小灯。
1.2设计目的:
利用单片机的8个LED小灯大概显示温度范围
1.31.明晓硬件的功能和原理。
2.设计外部电路。
3.画出程序流程图。
4.设计程序。
5.将程序输入开发板或模拟器进行验证修改。
1.4设计方案:
(1)调用延时子程序,设定读取间隔时间
(2)读取DS18B20的温度寄存器
(3)判断温度范围
(4)跳转到相应的程序段,点亮LED小灯
(5)进行循环显示
2硬件设计
2.1温度检测系统的硬件组成:
主要是由单片机、模数转换器、温度传感器三部分组成
2.2各部分的功能:
(1)单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
它主要负责各个模块的初始化工作;设置定时器、寄存器的初值;读取并处理来自温度传感器的信号;处理按键响应;控制液晶实时显示等。
AT89C51管脚图
VCC :
电源 GND:
地
P0 口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时, P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1 口:
P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个TTL 逻辑电平。
对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX) ,具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入) ,时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号
RST:
复位输入。
ALE/PROG:
地址锁存控制信号。
PSEN:
外部程序存储器选通信号。
EA/VPP:
访问外部程序存储器控制信号。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
(2)模数转换模块:
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
引脚功能(外部特性)
ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。
各引脚功能如下:
1~5和26~28(IN0~IN7):
8路模拟量输入端。
8、14、15和17~21:
8位数字量输出端。
22(ALE):
地址锁存允许信号,输入,高电平有效。
6(START):
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
7(EOC):
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))和16(VREF(-)):
参考电压输入端
11(Vcc):
主电源输入端。
13(GND):
地。
23~25(ADDA、ADDB、ADDC):
3位地址输入线,用于选通8路模拟输入中的一路
ADC808管脚图
(3)数据采集模块:
传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
其管脚图如图
1. DS18B20的特性 [9]
(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,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(9)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2.DS18B20内部结构及DS18B20的管脚排列
64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
不同的器件地址序列号不同。
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的引脚定义:
(1)DQ为数字信号输入/输出端
(2)GND为电源地
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)
3软件设计
3.1主程序流程图:
子程序流程图:
3.2主程序:
TEMPER_LDATA36H;温度寄存器的低位
TEMPER_HDATA35H;温度寄存器的高位
TEMPER_NUMDATA60H;保存温度值
FLAGBIT00H;器件是否存在的标志位,器件存在由软件置1,否则清0
DQBITP1.0
ORG0000H
AJMPSTART;/*主程序*/*
ORG0030H
START:
MOVSP,#70H
CALLGET_TEMPER;读取温度值
CALLTEMPER_COV;读取转换后的温度值
MOVR0,A
CALLDISP
CALLDELAY
AJMPSTART;
******************/*取得温度子程序*/****************************
GET_TEMPER:
SETBDQ
CALLCHECK;
MOVA,#0CCH;跳过ROM匹配(当总线上只有一个器件时可跳过读ROM命令)
CALLDSWRITE;写入命令
MOVA,#44H;发出温度转换命令
CALLDSWRITE
NOP
CALLDELAY
CALLDELAY
CALLCHECK
MOVA,#0CCH;跳过ROM匹配
CALLDSWRITE
MOVA,#0BEH;发出读温度命令
CALLDSWRITE
CALLDSREAD;读取温度的低位
MOVR0,#TEMPER_L
MOV@R0,A;存入TEMPER_L
CALLDSREAD;读取温度的低位
DECR0;存入TEMPER_H
MOV@R0,A
RET
*****************************************************************
/*读DS18B20的程序,从DS18B20中读出一个字节的数据*/*
;****************************************************************
DSREAD:
MOVR2,#8
READ1:
CLRC
SETBDQ
NOP
CLRDQ
NOP
SETBDQ
MOVR3,#01
DJNZR3,$
MOVC,DQ
MOVR3,#23
DJNZR3,$
RRCA
DJNZR2,READ1
RET
*****************************************************************
/*写DS18B20序子程序*/*
;****************************************************************
DSWRITE:
MOVR2,#8
CLRC
WRITE1:
CLRDQ
MOVR3,#6;延时12US
DJNZR3,$
RRCA
MOVDQ,C
MOVR3,#23;46US
DJNZR3,$
SETBDQ
NOP
DJNZR2,WRITE1
SETBDQ
RET
;****************************************************************
/*温度转换程序*/*
;****************************************************************
TEMPER_COV:
MOVA,#0F0H
ANLA,TEMPER_L;舍去温度低位中小数点后的四位温度数值
SWAPA
MOVTEMPER_NUM,A
MOVA,TEMPER_L
JNBACC.3,TEMPER_COV1;四舍五入去温度值,
INCTEMPER_NUM;D3为1则加1,为0则舍去
TEMPER_COV1:
MOVA,TEMPER_H;高位
ANLA,#07H;温度寄存器的高字节只有后3位有效
SWAPA
ORLA,TEMPER_NUM;拼装
MOVTEMPER_NUM,A;保存变换后的温度数据
CALLBIN_BCD
RET
*****************************************************************
;/*检查器件是否存在子程序*/*
;****************************************************************
CHECK:
CALLDSINIT;初始化
JBFLAG,CHECK1;检查标志位判断器件是否存在
AJMPCHECK;若DS18B20不存在则继续检测
CHECK1:
CALLDELAY1
RET
*****************************************************************
/*BCD码转换子程序*/*
*****************************************************************
BIN_BCD:
MOVDPTR,#TEMP_TAB
MOVA,TEMPER_NUM
MOVCA,@A+DPTR
MOVTEMPER_NUM,A
RET
;****************************************************************
;/*初始化子程序程序*/;初始化时序是由总线发出一个复位信号,然后由器件发*
;出一个应答信号,表示该器件存在,并准备好开始工作
;****************************************************************
DSINIT:
SETBDQ
NOP
CLRDQ;总线发一个复位信号
MOVR0,#80H
DJNZR0,$;延时
SETBDQ;拉高总线准备检测
MOVR0,#25H;延时
DJNZR0,$
JNBDQ,INIT2;检测是否有应答信号,有应答信号跳转
AJMPINIT3;延时
INIT2:
SETBFLAG;置标志位,表示DS1820存在
AJMPINIT4
INIT3:
CLRFLAG;清标志位,表示DS1820不存在
AJMPINIT5
INIT4:
MOVR0,#6BH
DJNZR0,$;延时
INIT5:
SETBDQ;拉高总线
RET
*****************************************************************
/*配置程序*/*
;****************************************************************
RE_CONFIG:
JBFLAG,RE_CONFIG1;若DS18B20存在,转RE_CONFIG1
RET
RE_CONFIG1:
MOVA,#0CCH;发SKIPROM命令
CALLDSWRITE
MOVA,#4EH;发写暂存存储器命令
CALLDSWRITE
MOVA,#00H;TH(报警上限)中写入00H
CALLDSWRITE
MOVA,#00H;TL(报警下限)中写入00H
CALLDSWRITE
MOVA,#7FH;选择12位温度分辨率
CALLDSWRITE
RET
;****************************************************************
;/*显示子程序*/*
;****************************************************************
DISP:
MOVA,R0;转换结果低位
ANLA,#0FH
ACALLDSEND;显示
MOVA,R0
SWAPA
ANLA,#0FH;转换结果高位
ACALLDSEND;显示
RET
DSEND:
MOVDPTR,#SGTB1
MOVCA,@A+DPTR;取字符
MOVSBUF,A
JNBTI,$
CLRTI
RET
;****************************************************************
;/*延时程序*/*
;****************************************************************
DELAY:
MOVR7,#00H
DELAY0:
MOVR6,#00H
DJNZR6,$
DJNZR7,DELAY0
RET
DELAY1:
MOVR7,#20H
DJNZR7,$
RET
4结论
经过必要的信息检索及借鉴,加上对流程图的分析。
联系课上所学的定时/计数和循环内容。
勉强达到设计要求。
本次综合训练主要加深了对单片机汇编语言编程中的延时、循环、判断程序模块的学习,其次也回顾了对单片机引脚的作用。
对于设计心得来说,不要把它想的太过复杂,学会运用流程图,然后用程序模块挨个解决。
由于条件的问题,程序没有进行调试,但对结果有一定的信心。
强调的设计心得就是一定先要画出流程图来,知道哪块用什么!
5参考文献
[1]胡乾彬,单片微型计算机原理与应用第三版[M],武汉:
华中科技大学出版社,2015。
[2]刘乐善,等.微型计算机接口技术及应用[M].武汉:
华中理工大学出版社,1993.
[3]潘新民,等.单片微型计算机实用系统设计[M].北京:
人民邮电出版社,1992.
[4]张毅刚,等.MCS-51单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社,1990.
[5]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,1994.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合训练二 温度检测系统设计资料 综合 训练 温度 检测 系统 设计 资料