资源描述
. 辽宁工程技术大学专业课程综合训练项目说明书题 目: 温度检测系统设计 课程名称:单片微型计算机与应用 班级: 机电14-4 学 号: 1407060430 姓名: 指导教师: 李文华 完成日期: 2016.12 一、 设计题目温度检测系统设计二、设计内容1-温度由8个LED小灯显式040的温度范围,即,8个小灯全灭表示当前温度小于0,全亮为大于40,在此其间有8个档位,每亮一盏小灯表示升高5。2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。三、综合训练要求设计说明书(30005000字) 1份4、 评分标准序号评分标准满分实际得分1设计方案是否可行,设计依据是否充分,软硬件资源分配是否合理42设计说明书设计过程是否清晰,设计内容是否全面,计算是否正确,行文章节格式是否规范43绘图是否清晰,标注是否表达准确规范2总分10补充评分要求:对综合训练项目中,能够采用开发板调试,或软件仿真的形式实现功能,将视难易程度及能够按时提交情况酌情提分,但不超过每个综合项目满分10分的标准。五、指导教师评语该生设计的过程中表现 ,设计内容反映的基本概念及计算 ,设计方案 ,说明书撰写 ,答辩表现 。成 绩: 指导教师日期. 目录1 系统总体设计1.1 1.2 :2 硬件设计2.1 2.2 :3 软件设计3.1 3.2 :4 结论参考文献.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小灯显式040的温度范围,即,8个小灯全灭表示当前温度小于0,全亮为大于40,在此其间有8个档位,每亮一盏小灯表示升高5。2-单片机通过读取DS18B20的温度寄存器,获得当前温度值并显示在8个LED灯上。读取DS18B20传感器的温度,判断温度的大小,在05区间时亮一盏灯,每升高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公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位等电路和必要的软件组成的单个单片机。2.2 各部分电路基本功能1.晶振电路 此次流水灯设计,我们用12MHZ晶振和30pf的电容,它们组成一个稳定的自己振荡器。电容的大小可以影响震荡频率的高低,振荡器的稳定性和起振的快速性。为单片机提供标准时钟。2.复位电路 此次流水灯设计,我们采用上电复位,每次单片机通电时。单片机都从初始状态开始运动。单片机复位后,除P1.0P1.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,转换完成之后读取温度值,在内部进行相应的数值处理,用图形液晶模块显示各点的温度。在系统启动之时,可以通过44键盘设置各点温度的上限值,当某点温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值,从而实现了对各点温度的实时监控。3 软件设计ORG 0000H 复位入口 LJMP MAIN 调到主函数MAIN: DS18B20 DATA 0100H 温度寄存器地址 MOV A, DS18B20 把DS18B20中数给A MOV R0, #05H 把5给R0 MOV R1, #05H 把5给R1 MOV R2, #01H 把01H给R2 CLR C 把C清零 SUBB A, #0 A减0 JNC LOOP1 A小于0跳转CLR C 将C清0SUBB A, #40 A减40 JC LOOP2 A大于40跳转CLR C 将C清0L1: SUBB A, R0 A减R0 JC LOOP3 A大于R0跳转 MOV A, R2 把R2给A MOV P1, A 把A给P1 MOV A, R3 把R3给ALOOP1:MOV A, R2 把R2给A MOV P1, A 把A给P1LOOP2: MOV A , #0FFH 把0FFH给A MOV P1 A 把A给P1LOOP3:INC R0 R0加1 DJNZ R1 ,LOOP3 判断R1是否为0MOV A, R2 把R2给ARLC A 把A左移INC A A加1MOV R2, A 把A给R1 MOV A, R3 把R3给ASJMP L1 返回L1END4结论 这次设计中,我收获最大的是对于关于位指令的掌握,比如,温度寄存器向单片机输出一位二进制数字的时候,一般用C语言来说,可以用循环结构,以达到能够循环的次数,而对于单片机语言来说,只有加一指令,比如INC Rn,它的意思是Rn此时所指向的地址加一,而每个地址里面是8位二进制数字,所以它只能用八次相同的方式,一位一位的输入,同时应用比较转移指令CJNZ实现跳转,才能不停输入。还有就是应用更多的是,位数据传送指令,通过MOV实现数字的传递,还应该注意,位数据传送指令中必须要用到累加器中的CY,所以在设计中,要涉及到很多通过CY来传送数据。还有是位地址的表示方法比如:ACC.7以及位逻辑运算指令主要用来区分不同温度下属于哪一组,首先要找出一组(在此次设计中具体指五个数),有什么共同点,由于八位二进制数,只能用零和一表示,很难找到共同点,但是应用逻辑运算指令,可以找到一组的相同点,然后才可以给P2口赋值,以实现LED灯的显示。参考文献1 胡乾彬,单片微型计算机原理与应用 第三版M,武汉: 华中科技大学出版社, 2015。2 喻萍,郭文川主编,单片机原理及接口技术。3 边春元,李文涛,江杰,杜萍,C51单片机典型模块设计与应用,机械工业出版社,2008。4 张萌,和湘,姜斌,杜萍,单片机应用系统开发综合实例,清华大学出版社,2007。5从宏寿, 电子设计自动化-proteus在电子电路与51单片机中的应用,西安电子科技大学出版社。.
展开阅读全文