您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页单片机课程设计报告:温度计测试

单片机课程设计报告:温度计测试

来源:意榕旅游网


课程设计

课程名称 单片机原理与接口技术课程设计

题目名称 温度计测试

学 院 物理与光电工程学院 专业班级 13电子科学与技术2班 学 号 姓 名

联系方式 任课教师

2015年12月28号

1

目录

一 1、引言 2、设计目的

1. 设计任务和要求……………………………………………………1 2. 方案设计与论证…………………………………………………… 2.1各方案的优点……………………………………………

2.2各方案的缺点…………………………………………… 2.3对比选择…………………………………………………

二 系统设计原理

1. 主控制器……………………………………

2. 显示电路……………………………………

3. 温度传感器的简介与工作原理……………………………………

4、74HC573 引脚与工作原理……………………………………

三 总原理图…………………………………… 四、主程序设计 五. 电路安装调试及结果 六.元件清单图 七.个人总结与体会 附录: 1、PCB 2、实物图 3、参考文献 4、程序代码

1

一、 引言

在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器DS18B20进行范围的温度检测。

本课程设计介绍一种基于stm8单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,stm8单片机功能和应用。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。

关键词:温度测量 DS18B20 stm8

1

2、课程设计目的

1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。

2. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。

3. 通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤

一. 设计任务和功能要求:

(1) 温度测量范围 0 - 99℃。 (2) 温度分辨率±1℃。 (3) 选择合适的温度传感器。

(4) 使用键盘输入温度的最高点和最低点

(5) 温度超出范围时候报警。(报警温度不需要保存) (6)四位数码管LED显示

二.方案设计与论证

2.1.各方案的优点

对于温度采集系统,在设计,综合考虑了两种电路设计,一种是利用C51系列芯片,用C语言编写程序设计的,另一种是用STM8芯片,用汇编语言编写程序设计。对于前一种,个人认为前一种设计的优点在于80C51芯片比较容易入手,程序相比汇编程序容易编写,在焊接和做工方面可以做的比较好,采用数字温度芯片DS18B20 测量温度,输出信号全数字化。采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,它直接输出

1

温度的数字信号。采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。第二种设计的优点在于STM8芯片功能齐全,可以省去比较多的外围电路,在电路图和PCB设计和实体设计方面都比较方便, 2.2.各方案的缺点

前一种设计的缺点在于C51系列芯片,在设计时,要加上最小系统和晶振,在电路图和PCB的制作上带来比较大的麻烦,而后一种设计的缺点在于,实体STM8系列芯片比较小,在焊接的时候要比较有耐心和细心。 2.3.对比选择

通过在两种设计的对比,结合自己比较熟悉STM8芯片,而且电路设计元件较少,电路图相对简单,所以选择后一种设计。

二 系统设计原理

利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LED中显示。

系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。

系统框图如图所示。

1

单片机复位LED显示报警按键设置主控制器时钟振荡温度传感器

图3-1 系统基本方框图

1. 主控制器

stm8s105s4的各接口

选择stm8s105s4芯片就能够满足设计要求。stm8单片机的GPIOE_PIN_6口作为唤起温度传感器的输出以及温度测量数据的输入口,GPIOD_PIN_0口作为数据输入74HC573D的8位移存储器的DIN信号口,GPIOD_PIN_1口作为数据输入74HC573D的8位移存储器的CS信号口,DPIOD_PIN_2口数据输入8位移存储器的CLK信号口,GPIOD_PIN_4口作为当温度测量值超出上限时的报警的蜂鸣器输入口,GPIOE_PIN_5口作为测试程序运行的进程的LED灯输入口。

1

stm8s105s4引脚图

2. 显示电路

显示电路采用LED液晶显示数码管,从P3口RXD,TXD串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。

3. 温度传感器的简介与工作原理

DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的8位数字量方式串行输出,其工作电

1

源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。

温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。

DS18B20的初始化:

1. 先将数据线置高电平“1”。

2. 延时(该时间要求的不是很严格,但是尽可能的短一点)。 3. 数据线拉到低电平“0”。

4. 延时750微秒(该时间的时间范围可以从480到960微秒)。 5.数据线拉到高电平“1”。

6. 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不

1

能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制

7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。

8.将数据线再次拉高到高电平“1”后结束。 DS18B20的写操作: 1. 数据线先置低电平“0”。 2. 延时确定的时间为15微秒。

3. 按从低位到高位的顺序发送字节(一次只发送一位)。 4. 延时时间为45微秒。 5. 将数据线拉到高电平。

6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 7. 最后将数据线拉高。 DS18B20的读操作: 1. 将数据线拉高“1”。 2. 延时2微秒。 3. 将数据线拉低“0”。 4. 延时15微秒。 5. 将数据线拉高“1”。 6. 延时15微秒。

7. 读数据线的状态得到1个状态位,并进行数据处理。 8. 延时30微秒。

综上,在本系统中我采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0—100摄氏度时,最

1

大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。

图1温度芯片DS18B20

工作原理:DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。 4、74HC573 引脚与工作原理

1、74HC573 是8位数据锁存器. 数据锁存的意思是指:当输入的数据消 失时,在芯片的输出端,数据仍然保持; 2、如右图所示,芯片各引脚功能如下: 右图隐藏了VCC(接+5V 电源)和GND (接地)两个引脚。

1

OE:output_enable,输出使能;

LE:latch_enable,数据锁存使能,latch 是 锁存的意思; Dn:第n 路数据输入端;(D 的意思是 Data input) Qn:第n 路数据输出端;

当OE=1 是,无论Dn、LE 为何,输出端 为高阻态;

当OE=0、LE=1 时,输出端数据等于输 入端数据,芯片可以当作不存在,相当 于导线;

当OE=0、LE=0 时,输出端保持不变, 处于数据锁存状态; 在实际应用的时候是这样做的:

a. 令OE=0;LE=1

b. 将数据从单片机的口线上输出到Dn; c. 令OE=0;LE=0;

d. 这时,你所需要输出的数据就锁存在Qn 上了,输入的数据再变化也影响不到输出的数据了;

1

原理说明:

八个锁存器都是透明的D 型锁存 器,当使能(G)为高时,Q 输出 将据(D输入而变。当使能为低时,输出将锁存在已建立的数据电平上。 输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时, 新的数据可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系 统总线接口驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道, 双向总线驱动器和工作寄存器。本部分电路主要使用七段数码管和移位寄存器芯片74hd573。单片机通过I2C总线将要显示的数据信号传送到移位寄存器芯片寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12M,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态,

1

1.以下为设计电路的总原理图:包括数码管显示电路,温度控制电路,报警电路,键盘电路,复位电路。此系统是基于stm8103c最小系统设计的

1、键盘电路:包括设置功能键,温度上调和下调键,以及报警键。单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。

键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响

1

在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图示的4*4键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

键盘共有16个按键,用于方便设定温度。 0 9 … , 数字按键,输入数字0----9;

确认, 设置的确认,修改设置温度时进行确认; 清除 设置的清除,修改设置温度时进行删除;

开启电源 开启

关闭 关闭电源

1

F1 显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管 闪烁;

F2 显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管 闪烁;

当按下SW1时,进入报警状态,超过温度设置值时,就会报警。当按下SW2时,进入温度上下限设置状态,按下SW3表示在温度减少,当按下SW4时,表示温度增加。每一个按键按下是,有相应的LED会亮。

2. 共阳数码管电路图

采用的是四位一体的数码管,精度值为1°C,此数码管对于焊接比较省时省力。

3. 报警电路设计

按下报警按键时,当温度超过时,报警器就会响,否则不会响。

1

4. 复位电路设计

利用NRST接口实现复位功能,此时可以重新设置温度的上下限。

四、主程序设计

整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就

1

可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 整体电路流程图

开始 ︾

定义整体功能,启动程序 ︾

温度上下限设置…………N……………〉直接读出温度 ︾(Y)

读出温度………………精度为1°C ︾ 开报警器 ︾

温度超过上限或者下限…………N………〉蜂鸣器不响灯不亮 ︾(Y)

蜂鸣器响灯亮 ︾ 关闭报警器 ︾

复位………………N…………〉直接返回 ︾(Y) 返回

1

五. 电路安装调试及结果

做工时是采用感光板做的,但是由于stm8104芯片管脚过于密集,以及元器件的钻孔难度还是比较大的,所以用了比较长的时间焊接,而且中途也因此弄坏了2块板。板做好之后,对应程序,此系统是采用5V电源直接供电,调节功能,再多次修改程序,检测每一个设置功能是否正常,最终均显示正常,温度精度为1°C,与温度实际误差可能在1°C至2°C之间。

六.元件清单图

元器件清单: 元件名称 PNP三极管 CAP SEMI CAP2 四位共阳数码管 蜂鸣器 电阻 STM8S104 排针 74hc573 轻触开关 型号大小 10uf, 2K,4.7K,10K 四管脚 1

数量 5 5 7 1 1 12 1 若干 1 5 发光二极管 电源接口 感光板

采用5V电源供电 10cm*7cm 5 1 1块 七.个人总结与体会

对于此次课程设计,工作有点难,选择了温度采集系统设计,对于方案的选择也考虑较长时间,后来觉得用stm8系列芯片和汇编语言来写程序,在焊接工作,对于stm8比较棘手,管脚很密,程序的编写也比较难,请教了多位同学,才得以写出来,最终调试成功。总体来说,还是收获很多的,对于自己的电路设计,PCB设计和焊接做工能力都有很大的提高。不过对于此设计,个人也存在很多的不足,多方面知识没有深刻的了解透彻,所以在今后会更加努力。通过这次学设计课程使我对温度测量系统有了一个全面的的了解。之前很少接触过的STM8芯片、温湿度传感器和显示模块,在这次设计的过程中有了深刻的了解,也从中学到了很多知识。更重要的是学到了一种针对芯片开发的发现问题以及解决问题的能力。

在温度测量系统的设计过程中,我遇到了很多问题,好些是之前从未遇到过的,但是在自己的努力下与老师同学的指导帮助,一步步地解决了难题。这次的设计,我得到了很多经验,明白了只有自己真正接触尝试了,才知道自己的知识水平与各种综合能力,也使我们找出了自己的不足和差距并一步步成长。同时在制作的过程中也方发现自己还有许多薄弱与不懂的环节,在今后的学习中仍需继续向前努力探讨与深研。

附录

PCB图

1

实物图

1

1

参考文献

1. 潘永雄《新编单片机原理与应用》(第二版)

2. 潘永雄《STM8系列单片机原理与接口技术》讲义(第二版) 程序代码:

1.数码管和中断初始化

;*****控制数码管初始化********************** MOV PD_DDR,#0FEH MOV PD_CR1,#0FFH MOV PD_CR2,#1DH BSET PD_ODR,#6 BSET PD_ODR,#7 BSET PD_ODR, #4

1

;**中断初始化******************************** ;MOV PB_ODR,#0FFH MOV PB_DDR,#00110011B MOV PB_CR1,#0FFH MOV PB_CR2,#11001100B

;BRES EXTI_CR1,#3;下降沿和低电平触发 ;BRES EXTI_CR1,#2

MOV PA_DDR,#0FFH MOV PA_CR1,#0FFH MOV PA_CR2,#00H MOV PC_ODR, #00H BSET PD_ODR, #3

1. 温度上下限显示及温度显示程序

;************显示数据更新程序************************** ;***用到的资源:R18,R19,R1E,R1F,R13,A,X,****************** ;*********************************************************** DISPLAY_UPDAY.L PUSH A PUSH CC FIRST_STEPT:

1

BTJF KEY_NUM_K1,#0,SECOND_STEPT ;判断是不是该显示最低温度 JP LOWEST SECOND_STEPT:

BTJF KEY_NUM_K1,#1,THIRD_STEPT ;判断是不是该显示最高温度 JP HIGHEST THIRD_STEPT:

JP LOOP0 ;显示正常温度

;-----温度上限显示--12333333333---- HIGHEST: CLRW X CLR A

MOV R28,MAX_VALUE HIGHEST1: MOV R27,#200 HIGHEST2: LD A,R28 LD XL,A LD A,#10 DIV X,A

EXG A,XL ;反过来,十位数放在A上,个位数放在X上 LD R26,A ;十位上的数放在R26上 LD A,(LED_DATA,X) ;取表

1

BSET PD_ODR,#5

BRES PD_ODR,#3 ; LD R25,A

BTJT R25,#0,LINE5 BRES PD_ODR,#0 JP LINE6 LINE5:

BSET PD_ODR,#0 LINE6: SLL A CPL A LD PC_ODR,A CALL DELAY LD A,R26 LD XL,A

LD A,(LED_DATA,X)

BRES PD_ODR,#5 ; BSET PD_ODR,#3 LD R24,A

BTJT R24,#0,LINE7 BRES PD_ODR,#0 JP LINE8 LINE7:

1

BSET PD_ODR,#0 LINE8: SLL A CPL A LD PC_ODR,A CALL DELAY DEC R27 JRNE HIGHEST2 JP LAST

;-----温度的显示---1233333333333--- LOOP0: CLRW X CLR A

MOV R18,NOW_NUM LOOP1:

MOV R19,#200 ; 用与扫描数码管,就是让显示的数保持一定的时间的 LOOP2: LD A,R18 LD XL,A LD A,#10

DIV X,A ;十位数放在X,个位上的数放在A上 EXG A,XL ;反过来,十位数放在A上,个位数放在X上

1

LD R1E,A ;十位上的数放在R1E上 LD A,(LED_DATA,X) ;取表 BSET PD_ODR,#5

BRES PD_ODR,#3 ;让第一个数码管亮 LD R1F,A

BTJT R1F,#0,NEXT1 BRES PD_ODR,#0 JP NEXT2 NEXT1:

BSET PD_ODR,#0 NEXT2: SLL A CPL A LD PC_ODR,A CALL DELAY

LD A,R1E ; LD XL,A

LD A,(LED_DATA,X)

BRES PD_ODR,#5 ; BSET PD_ODR,#3 LD R13,A

BTJT R13,#0,NEXT3 BRES PD_ODR,#0

显示第十位数的程序让第二个数码管亮1

JP NEXT4 NEXT3:

BSET PD_ODR,#0 NEXT4: SLL A CPL A LD PC_ODR,A CALL DELAY DEC R19

JRNE LOOP2 ; JP LAST

实时温度显示完成 1

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务