温度检测系统设计.docx
《温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《温度检测系统设计.docx(9页珍藏版)》请在冰豆网上搜索。
温度检测系统设计
辽宁工程技术大学
专业课程综合训练项目说明书
题目:
温度检测系统设计
课程名称:
单片微型计算机与应用
班 级:
机电14-4
学号:
1407060430
姓 名:
指导教师:
李文华
完成日期:
2016.12
一、设计题目
温度检测系统设计
二、设计内容
1-温度由8个LED小灯显式0℃~40℃的温度范围,即,8个小灯全灭表示当前温度小于0℃,全亮为大于40℃,在此其间有8个档位,每亮一盏小灯表示升高5℃。
2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。
三、综合训练要求
设计说明书(3000~5000字)1份
四、评分标准
序号
评分标准
满分
实际得分
1
设计方案是否可行,设计依据是否充分,软硬件资源分配是否合理
4
2
设计说明书设计过程是否清晰,设计内容是否全面,计算是否正确,行文章节格式是否规范
4
3
绘图是否清晰,标注是否表达准确规范
2
总分
10
补充评分要求:
对综合训练项目中,能够采用开发板调试,或软件仿真的形式实现功能,将视难易程度及能够按时提交情况酌情提分,但不超过每个综合项目满分10分的标准。
五、指导教师评语
该生设计的过程中表现,设计内容反映的基本概念及计算,设计方案,说明书撰写,答辩表现。
成绩:
指导教师
日 期
:
:
:
:
:
:
:
:
:
1系统总体设计
1.1设计思路:
1.读DS18B20的温度寄存器,获得当前温度,存入80H和81H,80H存低8位,81H存高8位。
2.温度小数只显示一位,采用只舍不进。
2..每升高5度,亮一盏灯
1.2设计目的:
1、通过课程设计,熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。
2、熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法
1.3设计步骤:
1.分析问题
2.确定算法
3.设计程序流程图
4.分配内存单元
5.编写汇编语言源程序
6.调试程序
方案:
本设计要求温度由8个LED小灯显式0℃~40℃的温度范围,即,8个小灯全灭表示当前温度小于0℃,全亮为大于40℃,在此其间有8个档位,每亮一盏小灯表示升高5℃。
2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。
读取DS18B20传感器的温度,判断温度的大小,在0~5区间时亮一盏灯,每升高5度再亮一盏,以此类推。
2硬件设计
1.硬件组成:
51单片机,DS18B20温度寄存器,8个LED灯。
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
2.DS18B20测温原理:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
2.1硬件电路基本结构
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:
4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位等电路和必要的软件组成的单个单片机。
2.2各部分电路基本功能
1.晶振电路
此次流水灯设计,我们用12MHZ晶振和30pf的电容,它们组成一个稳定的自己振荡器。
电容的大小可以影响震荡频率的高低,振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
2.复位电路
此次流水灯设计,我们采用上电复位,每次单片机通电时。
单片机都从初始状态开始运动。
单片机复位后,除P1.0~P1.7的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。
片内RAM不受复位的影响,上电后RAM中的内容是随机的。
P1端口初始FFH即八个发光二极管全部不亮,随着单片机的运作,八个发光二极管按程序发光。
3.LED电路
上图中A端为发光二极管的阳极,B端为发光二极管的阴极,要想点亮发光二极管,阴极必须加一个低电平(0V),发光二极管允许的电流在3mA至10mA之间,发光二极管被点亮的最小电流为3mA。
已知发光二极管被点亮后的压降值为1.7V,VCC=+5V,电阻上的电压为3.3V,根据欧姆定律R=3.3V/3mA=1.1K,因此要选用1K的电阻
4. 基于DS18B20多点温度测量系统以AT89C51为核心器件,以KEIL为系统开发平台,用C语言进行程序设计,以PROTEUS作为仿真软件设计而成的。
系统主要由传感器电路、、电源电路组成,系统图如图所示
DS18B20是数字温度传感器,它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。
主机按照通信协议用一个IO口模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。
在系统启动之时,可以通过4×4键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。
3软件设计
ORG0000H复位入口
LJMPMAIN调到主函数
MAIN:
DS18B20DATA0100H温度寄存器地址
MOVA,DS18B20把DS18B20中数给A
MOVR0,#05H把5给R0
MOVR1,#05H把5给R1
MOVR2,#01H把01H给R2
CLRC把C清零
SUBBA,#0A减0
JNCLOOP1A小于0跳转
CLRC将C清0
SUBBA,#40A减40
JCLOOP2A大于40跳转
CLRC将C清0
L1:
SUBBA,R0A减R0
JCLOOP3A大于R0跳转
MOVA,R2把R2给A
MOVP1,A把A给P1
MOVA,R3把R3给A
LOOP1:
MOVA,R2把R2给A
MOVP1,A把A给P1
LOOP2:
MOVA,#0FFH把0FFH给A
MOVP1A把A给P1
LOOP3:
INCR0R0加1
DJNZR1,LOOP3判断R1是否为0
MOVA,R2把R2给A
RLCA把A左移
INCAA加1
MOVR2,A把A给R1
MOVA,R3把R3给A
SJMPL1返回L1
END
4结论
这次设计中,我收获最大的是对于关于位指令的掌握,比如,温度寄存器向单片机输出一位二进制数字的时候,一般用C语言来说,可以用循环结构,以达到能够循环的次数,而对于单片机语言来说,只有加一指令,比如INCRn,它的意思是Rn此时所指向的地址加一,而每个地址里面是8位二进制数字,所以它只能用八次相同的方式,一位一位的输入,同时应用比较转移指令CJNZ实现跳转,才能不停输入。
还有就是应用更多的是,位数据传送指令,通过MOV实现数字的传递,还应该注意,位数据传送指令中必须要用到累加器中的CY,所以在设计中,要涉及到很多通过CY来传送数据。
还有是位地址的表示方法比如:
ACC.7
以及位逻辑运算指令主要用来区分不同温度下属于哪一组,首先要找出一组(在此次设计中具体指五个数),有什么共同点,由于八位二进制数,只能用零和一表示,很难找到共同点,但是应用逻辑运算指令,可以找到一组的相同点,然后才可以给P2口赋值,以实现LED灯的显示。
参考文献
[1]胡乾彬,单片微型计算机原理与应用第三版[M],武汉:
华中科技大学出版社,2015。
[2]]喻萍, 郭文川主编,单片机原理及接口技术。
[3]边春元,李文涛,江杰,杜萍,C51单片机典型模块设计与应用,机械工业出版社,2008。
[4]张 萌,和 湘,姜 斌,杜萍,单片机应用系统开发综合实例,清华大学出版社,2007。
[5]从宏寿,电子设计自动化-proteus在电子电路与51单片机中的应用,西安电子科技大学出版社。