当前位置:文档之家› (完整word版)基于MSP430的温度控制报警系统

(完整word版)基于MSP430的温度控制报警系统

(完整word版)基于MSP430的温度控制报警系统
(完整word版)基于MSP430的温度控制报警系统

微控制器应用及系统设计课程设计报告

南京理工大学

2010 年 5 月

目次

1 引言 (3)

2 系统总体设计 (3)

2.1 系统组成结构及工作原理 (3)

2.2 系统工作流程 (3)

2.3 系统核心器件选型 (4)

3 系统硬件设计 (4)

3.1 电源模块设计 (4)

3.2 LED显示模块设计 (4)

3.3 键盘输入模块设计 (5)

3.4 温度采集模块设计 (5)

3.5 报警模块设计 (6)

4 系统软件设计 (6)

4.1 系统软件总体结构及总流程图 (7)

4.2 LED显示模块程序设计 (9)

4.3 键盘输入模块程序设计 (9)

4.4 温度采集模块程序设计 (10)

4.5 报警模块程序设计 (10)

4.6 主模块程序设计 (10)

5 系统调试与结果分析 (10)

5.1 系统调试步骤 (10)

5.2 遇到的问题及解决方案 (12)

5.3 实验结果 (13)

6 结论与心得体会 (13)

参考文献 (13)

附录 (14)

1 引言

温度是一个非常重要的物理量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。温度控制失误就可能引起生产安全、产品质量、产品产量等一系列问题。因此对温度的检测的意义就越来越大。温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。

温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。

现在的生活中,所用到的电器,家具设备,包括工业产品等对温度的要求日益增高,灵敏的温度控制报警系统已成为日常生活中必不可少的产品。例如冰箱的温控系统,锅炉等等,无不都用到了这一功能部件。对于此,我们设计了基于MSP430F149单片机的温度控制报警系统,来模拟实现现实中的温度控制系统。此系统具有设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。

2 系统总体设计

2.1系统组成结构及工作原理

该系统主要由5大模块组成,其中包括DS18B20温度传感器,MSP430F149微控制器,LED显示模块,4X4矩阵键盘输入模块,报警模块5大部分组成。由温度传感器负责数据采集,经微处理器转换后由LED显示模块输出,同时由键盘模块负责输入温度报警的上下限。当到达设定的温度限定值时就报警。

其组成框图如下所示:

2.2 系统工作流程

首先设定温度报警的上下限值,然后由温度传感器进行温度数据的采集,当微处理器检测到温度超过设定的范围值时就实行报警,提醒用户做相关操作。

2.3 系统核心器件选型

MSP430F149单片机,DS18B20温度传感器,6个LED数码显示管,4x4矩阵键盘。

3 系统硬件设计

3.1 电源模块设计

整个系统采用3.3V供电,考虑到硬件系统对电源要求具有稳压功能和波纹小等特点,其使用LT1117芯片,将电压输出为3.3V。其硬件电路原理图如下:

3.2 LED显示模块设计

考虑到系统的成本,同时由于综合设计的时间限制,我们采用了最简单的LED显示方式,这样的方式能满足该系统的要求,同时也可以减低系统的成本。

LED 显示器是由8只发光二极管构成的8段数码显示显示器。其中a——g用于构成7笔字形,h用于构成小数点。本次设计中采用的是共阳极数码管,当其接低电平时点亮相应LED灯。

其硬件原理图如下:

其中共有6位,温度显示时显示2位整数,四位小数。其位选端分别与MSP430F149的P6.2——P6.7相连,显示端分别与单片机的P4.0——P4.7相连。

3.3 键盘输入模块设计

键盘输入电路主要用于输入数据,从而实现人机交互。该系统的键盘设计是采用扫描方式实现的矩阵键盘。其电路原理图如下:

由上图可以看出该矩阵键盘由行线和列线组成,P1.0——P1.3为行线,P5.4——P5.7为列线。键盘的行线作为键盘的控制输出端,键盘的列线作为键盘的输入端。同时考虑到P1端口具有中断功能,因此键盘的处理程序可以由中断产生。键盘的列线通过上拉电路将两个管脚拉高,这样在没有按键按下的情况下,该两个管脚的电平为高电平,如果有按键按下时,相应的列线管脚为低电平,这时通过设置P1口为中断方式,低电平就出发中断而进入中断服务子程序,从而获得输入的数据。同注意到,键盘的扫描时间是很短的,仅仅几微妙的时间,然而按键的时间一次至少需要几十毫秒,所以只要有键按下的话是都可以被扫描到的,但是按键按下时有一定的时间抖动,一定要加入键盘的抖动处理。

3.4 温度采集模块设计

本次系统设计采用的温度转换模块采用的是DS18B20温度传感器,其原理图如下:

其只有一个端口要接,与单片机的P3.0口相接,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源测量温度范围为-55 ° C至+125 ℃。华氏相当于是-67 ° F到257华氏度-10 ° C至+85 ° C范围内精度为±0.5 ° C

DS18B20的初始化:

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

(2)延时(该时间要求的不是很严格,但是尽可能的短一点)

(3)数据线拉到低电平“0”。

(4)延时750微秒(该时间的时间范围可以从480到960微秒)。

(5)数据线拉到高电平“1”。

(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(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微秒。

3.5 报警模块设计

该部分电路主要是驱动一个蜂鸣器,这样只需要将蜂鸣器的一段接地,另一端与单片机进行相接就可以了,其与单片机的P6.1口相接。其电路原理图如下:

同时考虑到可以分级警报,因此将LED灯加进去,从而在报警时也会将相应的LED灯点亮,以显示不同的报警级别。

4 系统软件设计

4.1 系统软件总体结构及流程图

(主程序流程图)

(按键中断服务子程序流程图)

4.2 LED显示模块程序设计

本次实验的显示是由LED数码管显示的,而温度传感器返回的是11位的二进制数值,因此如何把这11位二进制数值转换为数码管的10进制数值是这块程序的重点。经过查阅资料,了解到可以逐位进行转换。

一共11位数据,7位作为整数部分,4位作为小数部分,每次取出一位,若为第一位,若为1,则其值为0.0625,因此设置相应的数码管显示,再取出第二位,若为1,则其十进制0.125,累加上去,一次类推,最后完成整个温度的数码转换。

同时在显示温度时采用的是动显温度,是通过看门狗定时器来实现的,设置看门狗定时器为1.9ms中断,当时间到达时自动进入中断实现移位显示,由于时间间隔短,因此人眼看上去就像是数码管一起显示的一样。

4.3 键盘输入模块程序设计

键盘的功能为输入数值,此次设计采用的是4x4矩阵键盘,其功能面板如下:

其中0——9为10个数字键;

UPSET为上限温度设定选择键,完成上限温度位选功能;

DSET为下限温度设定选择键,完成上限温度位选功能;

UPS为上限温度设定完成确定键,输入完成后按下;

DWS为下限温度输入完成确定键,输入完成后按下。

按键输入程序设计时主要是确定输入的键的键值,然后与预先设定的键码表对照,在用一个选择判断语句switch,选择相应键时即执行相应的操作。

在确定键值时用的是行列式扫描法,同时考虑到如果不先按位选键,直接按其他键也会进入按键中断服务子程序,因此特别加入了消除此缺陷的语句,使得在按错键时系统也能执行显示温度的操作,使系统运行更可靠,更稳定。其实现方法如下:

default:{ //实现按其他键时不会出现死循环,无法正常显示温度 if((presskey11 == 0) && (presskey10 == 0)){

IE1 |= WDTIE; //看门狗中断使能开

TBCCTL0 |= CCIE; //定时器中断使能开

}

break;

按键程序的主要思想是首先判断是否按下功能选择键,如果按下,则置相应的功能选择键标志为1,然后再判断是否是在功能选择键标志为1(即先按了功能选择键)的情况下再按了数字键,此时才能进入温度设定程序,否则按键无效,正常显示温度。同时温度设定完后将相应的功能选择键标志位归0。

4.4 温度采集模块程序设计

温度采集模块主要是运用了温度传感器DS18B20,这款温度传感器具有温度转换功能,能通过指令将电压值转换为当前的温度值,同时还可以多个传感器一起工作,由于本次系统设计只需要一个就行,因此忽略了取产品ID号的过程,在编程时,主要是根据传感器的芯片说明的流程来思考的,通过写入函数Write_18B20()将相应的指令写进去,同时通过读出函数ReadTemp()将相应的温度数值读出来,返回给系统,从而实现温度的转换和显示。

4.5 报警模块程序设计

本次报警模块的处理相当简单,有两个部件组成,一个是蜂鸣器,通过I/O 口上送出数据来驱动蜂鸣器,而LED灯也是只要通过端口送出数据就可以。此模块包括初始化端口和数据产生两个部分,初始化端口部分只要设置相应的端口为输出方向,数据输出只要执行相应的输出操作即可。

同时在扫描检测温度情况是用到了TimerB的中断处理,用3ms中断,每过3ms检测一下温度是否在设定的范围内,若不在,则实行相应的报警参数设置,返回后,主程序通过判断报警参数实行相应的报警操作。

4.6 主模块程序设计

主模块程序的设计很简单,就包括各端口,键盘,还有时钟的初始化操作,然后就一个While()循环,此循环实现的是动显温度值,同时用于判断温度报警参数实现温度报警,其他就当相应的中断产生时转到相应的中断服务子程序中执行相应的操作。

5 系统调试与结果分析

通过“IAR Embedded Workbench”软件导入C语言程序,下载到实验板上进行相关调试。

5.1 系统调试步骤

对于此次系统设计,由于涉及到4大外围模块,如果全部一起调试,难度很大,很难发现问题,因此我们调试的步骤也为分模块调试,分别按如下顺序调试:显示模块——温度数据采集模块——报警模块——键盘输入模块。最终再逐个合起来一起调试。

显示模块调试:

我们首先将程序只实现简单的显示功能,通过预先设定好的6位数组值来实现LED的动显,若最终显示成功,则我们进入下一步调试,即将数据采集模块加进去。这一步调试由于当初实验做过,问题不大,基本上编好程序就出现了预期的结果。

温度数据采集模块:

我们将温度传感器采集回的11位数据通过转换后,存放在上面显示模块调试时设定的数组里,这样就将两个模块结合了起来初步实现了温度的显示,当实现这一步时,我们内心是无比的喜悦,因为一个简单的温度计已经完成了,接下

来我们就是进行报警模块的设计,可以说,到这一步,我们基本上没有遇到什么大的困难,有的就是参数的定义定重了,通过修改,很快就完成了。

报警模块:

将上面两个模块调试完后,我们很快又将报警模块加了进去,这次出现问题了,由于当时对程序资源的分配不是很清楚,不知道什么是由CPU来处理,什么是由外围模块来处理,两者资源是否占用同一个,因此导致了最终在报警时不能正常显示温度的结果,同时也犯了一个严重的错误,没有考虑到中断服务子程序执行的时间比设定的中断时间长后,整个系统的时序都乱掉了,系统跑得很不稳定,甚至不能正常报警,或者报警后温度就不变了,即使外界恢复到正常温度,可报警器还是在报警,LED也无法正常显示温度。后来经过老师的指点,找到了解决的办法,当初我们用的延时程序是用for循环再减1计数来实现的,后来才知道运用外围模块也可以实现,而且不占用CPU资源,因此我们想到了用定时器来实现延时,我们于是运用了TimerA计时器,通过设置相应的位,来实现了延时功能,从而使蜂鸣器和LED显示灯都能正常的工作,可以按照个人的要求来设置了,而不是单一的乱叫。其延时程序如下:

/*******************************************

函数名称:DelayNus

功能:实现N个微秒的延时

参数:n--延时长度

返回值:无

说明:定时器A的计数时钟是1MHz,CPU主频8MHz

所以通过定时器延时能够得到极为精确的

us级延时

********************************************/

void DelayNus(uint n)

{

CCR0 = n;

TACTL |= MC_1; //增计数到CCR0

while(!(TACTL & BIT0)); //判断溢出标志位,等待

TACTL &= ~MC_1; //停止计数

TACTL &= ~BIT0; //清除中断标志

}

报警模块调试完成后,就是最后的键盘输入模块了。

键盘输入模块:

此模块调试是最后的调试,遇到的问题也是相对最多的,一开始加进此模块后按键根本没有反应,由于一开始我们不知道怎么设断点和查看寄存器来调试,我们于是做了一个简单的键盘模块,把键盘输入模块单独提出来调试,只实现按某个键,LED显示相应的键值的功能,结果调出来了,当时是因为我们没有处理好按键的按下与放开的时间间隔问题,导致键盘按下标志Key_flag一直无法置位,因此一直不能进入子程序运行,因此我们加入了一个循环,不过按键按下没有置位,则一直循环等待按键,这样如果出现按下一次没反应,多按几次就行,避免了死循环。最后再把这个模块加入主程序中,又遇到了问题,当初的键值存放错位了,没有按照原来设想的顺序存放,而是都往后挪了一位,后来经老师指点才发现的,改正后,整个系统也便基本调试完了,能实现各个功能了。

整体调试:

最后,还有调试系统运行的可靠性和稳定性,当时由于时间紧,没有对这一步进行地很详细,后来经过自己的调试,总算把自己能想到的一些可能会出现系统进入死循环,跑飞的原因找到了,并逐个进行了修正,最终使程序得到了完善。

5.2 遇到的问题及解决方案

本次综合设计主要遇到了如下几个问题:

1)一开始在调试报警模块时报警时温度值无法正常显示

解决方案:后来经过吴老师指点,是自己没有注意到处理器在同一时间只处理一个进程,如果我用了for循环来实现延时的话,那么处理器就只能处理这个循环来实现,而其他的操作都无法进行,因而导致了温度无法正常显示,最后我们知道在用外围模块时可以不占用系统资源,两个可以同时运行,因此我们想到了用TimerA定时器的中断设置来实现延时的功能。经过实践证明,我们的想法是可行的,同时也解决了遇到的问题。

2)中断服务子程序的中断时间比较短,其执行的时间大于此时间时系统时序全乱了

解决方案:当初恨不能理解为什么报警模块会一直不能正常报警,老是乱报,后来但不执行程序后,才发现原来原来的报警程序还没执行完,就已经开始新的一个中断服务子程序了,才导致如此结果。后来经吴老师指点,我们了解到,在现实的编程中,一般是不在中断服务子程序里写入很长的程序的,这样会导致很多不好的后果,严重的会导致整个系统时序的错乱,因此,我们将原来在中断服务子程序里实现的报警程序移到了主程序中,而中断服务子程序里实现的只是简单的报警标志置位,这样主程序就可以根据相应的标志位来判断了,从而解决了问题。

3)系统该开始启动时就进入死循环

这个原因我们分析得知是由于刚开始温度传感器还没来得及感测周围温度,相当于实际的温度值是0,肯定小于原来预定的下限,从而进入死循环,我们的解决方案有两个,一个是在主程序前加一个等待延时程序,第二个就是上面第一个问题介绍的报警时温度还能正常显示,所以此时一开机即使会报一下警,但很快就会恢复正常,后来考虑到不浪费系统资源,我们采用了第二种方案。

4)按键不是很精确,抖动处理不好

在设置按键输入模块时,有时按下按键没反应,不是怎样的精确,后来单步执行调试后才知道是按键的抖动延时没有处理好,没有做到真正的人性化,因此我们想到了加如一个判断循环语句,如果有键按下但是按键标志没有置位,就等待用户继续按,知道置位为止,虽然也不是人性化,但至少不会引起系统的不稳定,而是使系统运行更可靠。同时当初没有考虑到如果用户不按照规定的按键顺序按键可能会造成系统死机的现象,我们后来加入了如下语句:

default:{ //实现按其他键时不会出现死循环,无法正常显示温度 if((presskey11 == 0) && (presskey10 == 0)){

IE1 |= WDTIE; //看门狗中断使能开

TBCCTL0 |= CCIE; //定时器中断使能开

}

break;

从而避免的这个问题的出现,即使按错,系统也很快会恢复显示温度的状态。

5)在按键设定温度上下限时,没能准确设定温度

这个问题应该是最难找的,因为当时我没有会用查看寄存器这一功能来调试程序,所以很难发现其中的问题,后来经吴老师指点后,才发现是由于我的移位多移了一位,从而导致整个数组都往后错位了,才会导致温度设定不准确。最终通过把减2改成减1,再加一个判断复位语句解决了。

5.3 实验结果

最终实验完成了,正常时可以显示温度,同时通过按键可以随时改变输入的温度报警上下限值,进行温度的报警,总共可以显示三级警报。

6 结论与心得体会

经过本次实验,可以说,内心是非常地兴奋,虽然是一个很简单的系统,但是通过自己的实践,从中发现了很多问题,并通过自己的努力和老师的指导最终解决了,更加激发了我对学习单片机和嵌入式的兴趣,至少说我已经走进这个门槛了,以后的学习也就是多看看书了解其他的一些资料,再加扩展运用就可以不断的提升自己。虽然当初在调试程序时很累,有时都是弄到深夜才睡的,但当自己最终完成时,那种愉悦感是非常的美妙的!从这一次小小的编程实践中,我得到了很多经验,最主要的是我学会了怎么调试程序,如果再让我调试一个程序,应该说我所花的时间肯定比第一次少,有些常见的问题自己已经记住在心里了。经验的积累就是在一次次的实践中得到的,没有实践,就没有经验的积累!

同时,对于此温度报警系统,其应用范围相当地广泛,不仅可以用于日常的报警,也可以再加一个控制线路,通过单片机的其他端口来实现相应的控制操作,比如说可以加一电机,当温度超过时可以让电机运作降温,温度低于下限时升温,实现温度的恒温控制。还可以用于灭火机器人,通过温度传感器,当检测到某块地方的温度特别高时,可以判断是否着火,从而也可以驱动相应电机灭火或做其他相应的操作。在现实生活中,这个模块可以推广到很多场合,只要稍微加一点扩展的线路即可。

当然,我们做的系统也有很多该完善的地方,比如说温度报警的级别是不是也可以通过用户设置,不一定超过1度就报警,可以通过用户的实际情况通过键盘输入,这样显得更人性化,更方便更实际,但由于当初时间原因,好多想到的功能都没能实现,在以后的学习中,我们会逐一注意加强!

参考文献

[1]胡大可.MSP430系列FLASH型超低功耗16位单片机[M].北京:北京航空航天大学出版社,2001

[2]沈建华,杨艳琴,翟骁曙. MSP430系列16位超低功耗单片机原理与应用[M].北京:清华大学出版社,2004

[3]秦龙. 单片机应用系统开发典型实例系列MSP430单片机应用系统开发典型实例[M].北京:中国电力出版社,2005

附录:

(1)DS18B20处理子程序:

/***************************************************** *文件名称:

* ds18b20.c

*程序功能描述:

* 温度数据采集转换

*输入:

* 外部温度变化

*输出:温度数据

*编程者:王卿

******************************************************/

typedef unsigned char uchar;

typedef unsigned int uint;

#define DQ1 P3OUT |= BIT0

#define DQ0 P3OUT &= ~BIT0

///////////////////////////////////// ////////

void DelayNus(unsigned int n);

unsigned char Init_18B20(void);

void Write_18B20(unsigned char wdata);

unsigned char Read_18B20(void);

void Skip(void);

void Convert(void);

void Read_SP(void);

unsigned int ReadTemp(void);

unsigned int Do1Convert(void);

/************************************ *******

函数名称:DelayNus 功能:实现N个微秒的延时

参数:n--延时长度

返回值:无

说明:定时器A的计数时钟是1MHz,CPU 主频8MHz

所以通过定时器延时能够得到极为精确的

us级延时

************************************* *******/

void DelayNus(uint n)

{

CCR0 = n;

TACTL |= MC_1; //增计数到CCR0

while(!(TACTL & BIT0)); //判断溢出标志位,等待

TACTL &= ~MC_1; //停止计数

TACTL &= ~BIT0; //清除中断标志

}

/************************************ *******

函数名称:Init_18B20

功能:对DS18B20进行复位操作

参数:无

返回值:初始化状态标志:1--失败,0--成功

************************************* *******/

uchar Init_18B20(void)

{

uchar Error;

_DINT();

DQ0;

DelayNus(500);

DQ1;

DelayNus(55);

P3DIR &=~ BIT0;

_NOP();

if(P3IN & BIT0)

{

Error = 1; //初始3化失败

P3DIR |= BIT0;

}

else

{

Error = 0; //初始化成功

P3DIR |= BIT0; DQ1;

}

_EINT();

DelayNus(400);

return Error;

}

/************************************ *******

函数名称:Write_18B20

功能:向DS18B20写入一个字节的数据

参数:wdata--写入的数据

返回值:无

************************************* *******/

void Write_18B20(uchar wdata)

{

uchar i;

_DINT();

for(i = 0; i < 8;i++)

{

DQ0;

DelayNus(6); //延时6us

if(wdata & 0X01) DQ1;

else DQ0;

wdata >>= 1; //右移一位

DelayNus(50); //延

时50us

DQ1;

DelayNus(10); //延时10us

}

_EINT();

}

/************************************ *******

函数名称:Read_18B20

功能:从DS18B20读取一个字节的数据

参数:无

返回值:读出的一个字节数据

************************************* *******/

uchar Read_18B20(void)

{

uchar i;

uchar temp = 0;

_DINT();

for(i = 0;i < 8;i++)

{

temp >>= 1;

DQ0;

DelayNus(6); //延时6us

DQ1;

DelayNus(8); //延时9us

P3DIR &= ~BIT0; _NOP();

if(P3IN & BIT0) temp |= 0x80;

DelayNus(45); //延时45us

P3DIR |= BIT0;

DQ1;

DelayNus(10); //延时10us

}

_EINT();

return temp;

}

/************************************ *******

函数名称:Skip

功能:发送跳过读取产品ID号命令

参数:无

返回值:无

************************************* *******/

void Skip(void)

{

Write_18B20(0xcc);

}

/************************************ *******

函数名称:Convert

功能:发送温度转换命令

参数:无

返回值:无

************************************* *******/

void Convert(void)

{

Write_18B20(0x44);

}

/************************************ *******

函数名称:Read_SP

功能:发送读ScratchPad命令

参数:无

返回值:无

************************************* *******/

void Read_SP(void)

{

Write_18B20(0xbe);

}

/************************************ *******

函数名称:ReadTemp

功能:从DS18B20的ScratchPad读取温度转换结果

参数:无

返回值:读取的温度数值

************************************* *******/

uint ReadTemp(void)

{

uchar temp_low;

uint temp; temp_low = Read_18B20(); //读低位

temp = Read_18B20(); //读高位

temp = (temp<<8) | temp_low;

return temp;

}

/************************************ *******

函数名称:ReadTemp

功能:控制DS18B20完成一次温度转换

参数:无

返回值:测量的温度数值

************************************* *******/

uint Do1Convert(void)

{

uchar i;

do

{

i = Init_18B20();

}

while(i);

Skip();

Convert();

for(i = 20;i > 0;i--)

DelayNus(60000); //延时800ms 以上

do

{

i = Init_18B20();

}

while(i);

Skip();

Read_SP();

return ReadTemp();

}

(2)键盘处理子程序:

/*****************************************************

*文件名称:

* KEY.cpp

*程序功能描述:

* 行列式键盘检测

*输入:

* 用户按键事件

*输出:存放用户输入的键值

*编程者:王晓

******************************************************/

unsigned char key_Pressed, // 是否有键值按下

key_val = 0xff, // 存放键值

key_Flag; // 是否一个按下的按键已经松开

// 即是按键的键值可以读取

unsigned char key_Map[16]={ //设置键盘逻辑键值与程序计算键值的映射 0,1,2,3,

4,5,6,7,

8,9,10,11,

12,13,14,15

};

unsigned char tmp = 0x0f;

/********************************************************

* 初始化键盘设备

********************************************************/ void init_Keyboard(void){

P1DIR &= ~BIT0;

P1DIR &= ~BIT1;

P1DIR &= ~BIT2;

P1DIR &= ~BIT3; //设置P1.0~P1.3为输入模式

P5DIR |= BIT4;

P5DIR |= BIT5;

P5DIR |= BIT6;

P5DIR |= BIT7; //设置P5.4~P5.7为输出模式

P5OUT &= ~0xf0; //P5.4~P5.7输出值清零

key_Flag = 0;// 初始化key_Flag

key_Pressed = 0;// 初始化key_Pressed

tmp = 0x0f;

}

/*********************************************************** * 延迟,用于消除抖动

************************************************************/ void delay(){

unsigned char tmp;

for(tmp=0xff;tmp>0;tmp--);

}

/*********************************************

* Check_Key(),检查按键,确认键值

*********************************************/

void check_Key(void){

unsigned char row ,col,tmp1,tmp2; // tmp1用来设置P5OUT的值,使P5.4~P5.7中有一个为0

tmp1 = 0x80;

for( row=0;row<4;row++){

P5OUT |= 0xf0; // p5.4~P5.7=1

P5OUT -= tmp1; // P5.4~p5.7中有一个为0

tmp1 >>= 1; //tmp1 右移一位

if((P1IN & 0x0f) < 0x0f){ //检测是否p1in的p1.0~p1.3中有一位为0

tmp2 = 0x08; //tmp2用于检测出哪一位为0

for (col=0;col<0x04;col++){ //列检测

if((P1IN & tmp2) == 0x00){ //是否是该列

key_val =key_Map[ row*4 +col]; //获取键值

return; //退出循环

}

tmp2 >>= 1; //tmp2右移

}

}

}

}

/************************************************************

* key_Event(),检测键盘是否有键按下,如果有获取键值

*************************************************************/

void key_Event(void){

水温自动控制系统实验报告汇总

水温控制系统(B题) 摘要 在能源日益紧张的今天,电热水器,饮水机和电饭煲之类的家用电器在保温时,由于其简单的温控系统,利用温敏电阻来实现温控,因而会造成很大的能源浪费。但是利用AT89C51 单片机为核心,配合温度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成的控制系统却能解决这个问题。单片机可将温度传感器检测到的水温模拟量转换成数字量,并显示于1602显示器上。该系统具有灵活性强,易于操作,可靠性高等优点,将会有更广阔的开发前景。 水温控制系统概述 能源问题已经是当前最为热门的话题,离开能源的日子,世界将失去一切颜色,人们将寸步难行,我们知道虽然电能是可再生能源,但是在今天还是有很多的电能是依靠火力,核电等一系列不可再生的自然资源所产生,一旦这些自然资源耗尽,我们将面临电能资源的巨大的缺口,因而本设计从开源节流的角度出发,节省电能,保护环境。 一、设计任务 设计并制作一个水温自动控制系统,控制对象为 1 升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。 二、要求 1、基本要求 (1)温度设定范围为:40~90℃,最小区分度为1℃,标定温度≤1℃。 (2)环境温度降低时温度控制的静态误差≤1℃。 (3)能显示水的实际温度。 第2页,共11页

2、发挥部分 (1)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 (2)温度控制的静态误差≤0.2℃。 (3)在设定温度发生突变时,自动打印水温随时间变化的曲线。 (4)其他。 一系统方案选择 1.1 温度传感器的选取 目前市场上温度传感器较多,主要有以下几种方案: 方案一:选用铂电阻温度传感器。此类温度传感器线性度、稳定性等方面性能都很好,但其成本较高。 方案二:采用热敏电阻。选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。 方案三:采用DS18B20温度传感器。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出远端引入。此器件具有体积小、质量轻、线形度好、性能稳定等优点其各方面特性都满足此系统的设计要求。 比较以上三种方案,方案三具有明显的优点,因此选用方案三。 1.2温度显示模块 方案一:采用8个LED八段数码管分别显示温度的十位、个位和小数位。数码管具有低能耗,低损耗、寿命长、耐老化、对外界环境要求低。但LED八度数码管引脚排列不规则,动态显示时要加驱动电路,硬件电路复杂。 方案二:采用带有字库的12864液晶显示屏。12864液晶显示屏具有低功耗,轻薄短小无辐射危险,平面显示及影像稳定、不闪烁、可视面积大、画面

温度控制器的设计

目录 第一章课程设计要求及电路说明 (3) 1.1课程设计要求与技术指标 (3) 1.2课程设计电路说明 (4) 第二章课程设计及结果分析 (6) 2.1课程设计思想 (6) 2.2课程设计问题及解决办法 (6) 2.3调试结果分析 (7) 第三章课程设计方案特点及体会 (8) 3.1 课程设计方案特点 (8) 3.2 课程设计心得体会 (9) 参考文献 (9) 附录 (9)

第一章课程设计要求及电路说明 1.1课程设计要求与技术指标 温度控制器的设计 设计要求与技术指标: 1、设计要求 (1)设计一个温度控制器电路; (2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图; (3)撰写设计报告。 2、技术指标 温度测量范围0—99℃,精度误差为0.1℃;LED数码管直读显示;温度报警指示灯。

1.2课程设计电路说明 1.2.1系统单元电路组成 温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。 1.2.2设计电路说明 主控制器:CPU是整个控制部分的核心,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块. 显示电路:显示电路采用4个共阳LED数码管,用于显示温度计的数值。报警电路:报警电路由蜂鸣器和三极管组成,当测量温度超过设计的温度时,该电路就会发出报警。 温度传感器:主要由DS18B20芯片组成,用于温度的采集。 时钟振荡:时钟振荡电路由晶振和电容组成,为STC89C52芯片提供稳定的时钟频率。

第二章课程设计及结果分析 2.1课程设计 2.1.1设计方案论证与比较 显示电路方案 方案一:采用数码管动态显示 使用一个七段LED数码管,采用动态显示的方法来显示各项指标,此方法价格成本低,而且自己也比较熟悉,实验室也常备有此元件。 方案二:采用LCD液晶显示 采用1602 LCD液晶显示,此方案显示内容相对丰富,且布线较为简单。 综合上述原因,采用方案一,使用数码管作为显示电路。 测温电路方案 方案一:采用模拟温度传感器测温 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案二:采用数字温度传感器 经过查询相关的资料,发现在单片机电路设计中,大多数都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 2.1.2设计总体方案 根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:

温度报警控制系统

目录 1.课程设计目的 (2) 2.课程设计的主要内容和任务分析 (2) 3.控制系统的总体要求 (2) 4.温度报警控制系统硬件部分设计分析 (3) 4.1 温度传感器DSl8B20 (3) 4.2 AT89C51单片机简介 (9) 4.3 74HC138功能介绍 (11) 4.4 74HC377功能介绍 (12) 4.5 74HC245功能介绍 (12) 4.6 温度报警控制系统电路图 (13) 5.温度报警控制系统软件部分设计分析 (14) 5.1 程序实现功能 (14) 5.2 程序流程图 (14) 5.3温度报警控制程序 (17) 6. 系统调试 (17) 课程设计体会 (18) 参考文献 (18) 附件 (19)

温度报警控制系统设计 1.设计目的: 1、通过温度报警控制系统的设计,了解数字式温度传感器DS18B20的工作原理及其控制方法; 2、通过温度报警控制系统的设计,掌握单片机AT89C51的结构原理及其控制指令的应用,熟练应用AT89C51完成一个系统的控制; 3、通过温度报警控制系统的设计,使学生了解一个控制系统设计的基本步骤,程序设计的基本方法,培养学生分析问题和解决问题的能力,将理论联系到实践中去,提高我们的动脑和动手的能力,通过课程设计,还可以使学生树立正确的世界观,培养实事求是、严肃认真、具有高度责任感的工作作风; 4、学习完成控制系统的硬件设计、软件设计、仿真调试的过程。 2.课程设计的主要内容和任务分析 任务:以单片机AT89C51作为核心,基于数字式温度传感器DS18B20的功能,设计一个具有LED显示功能、按键功能、温度检测功能及控制操作功能的控制系统。 内容:设计基于DS18B20的数字式烤箱温度控制系统,控制电路主要包括,led显示电路、按键电路、温度检测电路及控制电路。控制程序主要包括主程序、读出温度子程序、按键子程序、显示子程序、控制子程序等。要求能检测、显示烤箱温度,并控制烤箱温度在一可设定区域。 3.控制系统的总体要求: 1.对烤箱温度进行检测及控制。温度显示范围:0゜C~+99゜C,精度误差在

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

51系列单片机闭环温度控制 实验报告

成绩: 重庆邮电大学 自动化学院综合实验报告 题目:51系列单片机闭环温度控制 学生姓名:蒋运和 班级:0841004 学号:2010213316 同组人员:李海涛陈超 指导教师:郭鹏 完成时间:2013年12月

一、实验名称: 51系列单片机闭环温度控制实验 ——基于Protuse仿真实验平台实现 基本情况: 1. 学生姓名: 2. 学号: 3. 班级: 4. 同组其他成员: 二、实验内容(实验原理介绍) 1、系统基本原理 计算机控制技术实训,即温度闭环控制,根据实际要求,即加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。 闭环温度控制系统原理如图: 2、PID算法的数字实现 本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。T端输出的是电压,温度越高,电压就越高。

8031对温度的控制是通过可控硅调控实现的。可控硅通过时间可以通过可控硅控制板上控制脉冲控制。该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。 PID控制方程式: 式中e是指测量值与给定值之间的偏差 TD 微分时间 T 积分时间 KP 调节器的放大系数 将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID 增量式算法: 3、硬件电路设计 在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。输入模块主要完成对温度信号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。利用模拟加热的

加热器温度控制设计

过程控制大作业 1确定被控对象 我的课题是以加热器为被控对象,设计一个加热器出口水温控制系统。 2课题的背景和研究意义 温度是工业对象中的主要被控参数之一,在工业企业中如何提高诸如电炉这样的温度控制对象的运行性能一直是现场技术人员努力解决的问题。温度控制对于大型工业控制、制冷和制热等工程具有广阔的应用前景。温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控 制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。 3生产过程和工艺流程 当前国内小型加热器一般分为两种类型,电加热式和燃油加热式。我选用立式盘管燃油式加热器为例,由燃油供给系统、鼓风系统、燃烧器、加热管、控制系统等组成。它的工艺流程如下:首先盘管加热器的受热面是一组盘管。给水从加热器的底部进入内盘管,水沿内盘管螺旋上升至加热器上部,随即进外盘管,水沿外盘管螺旋下降至加热器底部。水在内外盘管中受热,最后从加热器底部排出同时燃油对加热器进行加热,使加热器达到一定温度,这样就可以改变流过加热器盘管的水的温度,来控制出水口水温。 4分析被控对象特性,建立数学模型 对于被控对象的特性,我选择通过实验方法应用Matlab软件仿真出来并建 立其数学模型。通过得出的实验数据确定被控对象的数学模型:W s = 2 e- i.5s。 4.5s+1

5控制方案 对于加热器出口水温的控制系统,我们可以选用水出口温度为被控参量,燃 料流量为控制变量,来进行分析。同时该系统也属于温度控制系统,具有滞后 较大、纯滞后时间较长、扰动幅值大、负荷变化频繁、剧烈等特点。对于动态 特性复杂、存在多种扰动或扰动幅度较大,控制质量要求高的生产过程,用简 单控制系统无法实现良好的性能,也满足不了工艺控制精度要求,而串级控制 系统属于复杂控制系统,主要用于对象容量滞后较大、纯滞后时间较长、扰动 幅值大、负荷变化频繁、剧烈的被控过程,所以这时可以考虑用串级控制系统。 系统的结构示意图如下: 水出口視度8 工作原理:如果出现外部干扰,使稳态工况遭到破坏,串级控制系统立即开 始控制工作。根据扰动施加点的位置不同,分 3 种情况:( 1) 扰动作用于副回 路;( 2) 扰动作用于主过程;( 3)扰动同时作用于副回路和主过程。在这里主 要介绍第二种情况。假设此时 系统的控制方框图如下:

单片机课程设计之温度控制及报警系统的设计

单片机课程设计之温度控制及报警系 统的设计

题目单片机温度控制及报警系统的设计 一、设计目的 学习温度的显示、控制及报警,实现了温度的实时显示及控制。温度控制部分,提出了用DS18B20、89C52单片机及LED的硬件电路完成对温度的实时检测及显示,利用DS18B20与单片机连接由软件与硬件电路配合来实现实时控制及超出设定的上下限温度的报警系统。 课题设计的目的: 1.掌握用51单片机控制LCD显示字符的方法。 2.掌握用单片机进行显示系统开发的方法。 3.掌握单片机软件、硬件调试技术。 4.了解单线器件DS18B20的驱动方法。 5.了解LCD显示器的一般驱动原理 二、使用主要电子元件 1.单片机89C52 2. 温度传感器DS18B20 3. 显示器LCD1602 4. 排插 5.发光二极管 6.电容若干 7.电阻若干

8.按钮开关若干。 9.导线若干 10. 12MHZ晶振1个 三.系统设计思想及主要应用器件 3.1 系统设计的总体思想 根据单片机温度控制要实现的功能,设计了基于ATMEL公司的AT89C52芯片的温度测量系统。这是一种低成本的利用单片机多余I/O口实现的温度检测电路。整个系统硬件部分包括温度检测系统、信号放大系统、A/D转换、单片机、I/O设备、控制执行系统等.。温度控制部分用DS18B20、89C52单片机及LED的硬件电路完成对温度的实时检测及显示。 3.2系统硬件简介 硬件大致构成:核心控制器件AT89C52 ,温度传感器DS18B20,显示器1602A 报警控制LED。 3.2.1 硬件设计思想 本设计是以AT89C52为单片机作为控制核心,提出了一种基于DS18B20的单总线多点温度测控系统,多个温度传感节点经过单

微机原理-期末考试题库及答案(含3套试卷)

微型计算机原理与接口技术综合测试题一 一、单项选择题(下面题只有一个答案是正确的,选择正确答案填入空白处) 1.8086CPU通过(1 )控制线来区分是存储器访问,还是I/O访问,当CPU执行IN AL,DX 指令时,该信号线为(2 )电平。 (1) A. M/ B. C. ALE D. N/ (2) A. 高 B. 低 C. ECL D. CMOS 2.n+1位有符号数x的补码表示范围为()。 A. -2n < x < 2n B. -2n ≤ x ≤ 2n -1 C. -2n -1 ≤ x ≤ 2n-1 D. -2n < x ≤ 2n 3.若要使寄存器AL中的高4位不变,低4位为0,所用指令为()。 A. AND AL, 0FH B. AND AL, 0FOH C. OR AL, 0FH D. OR AL 0FOH 4.下列MOV指令中,不正确的指令是()。 A. MOV AX, BX B. MOV AX, [BX] C. MOV AX, CX D. MOV AX, [CX] 5.中断指令INT 17H的中断服务程序的入口地址放在中断向量表地址()开始的4个存贮单元内。 A. 00017H B. 00068H C. 0005CH D. 0005EH 6.条件转移指令JNE的条件是()。 A. CF=0 B. CF=1 C. ZF=0 D. ZF=1 7. 在8086/8088 CPU中,一个最基本的总线读写周期由(1 )时钟周期(T状态)组成,在T1状态,CPU往总线上发(2 )信息。 ⑴ A. 1个 B. 2个 C. 4个 D. 6个

⑵ A. 数据 B . 地址 C. 状态 D. 其它 8. 8086有两种工作模式, 最小模式的特点是(1 ),最大模式的特点是(2 )。 ⑴ A. CPU提供全部控制信号 B. 由编程进行模式设定 C. 不需要8286收发器 D. 需要总线控制器8288 ⑵ A. M/ 引脚可直接引用 B. 由编程进行模式设定 C. 需要总线控制器8288 D. 适用于单一处理机系统 9.在8086微机系统的RAM 存储单元器0000H:002CH开始依次存放23H,0FFH,00H,和0F0H四个字节,该向量对应的中断号是( )。 A. 0AH B. 0BH C. 0CH D. 0DH 10.真值超出机器数表示范围称为溢出,,此时标志寄存器中的( )位被置位 A. OF B AF C PF D CF 11.8086 系统中内存储器地址空间为1M,而在进行I/O读写是,有效的地址线是( ) A . 高16位 B. 低16位 C. 高8位 D. 低8位 12.8086 CPU中段寄存器用来存放( ) A. 存储器的物理地址 B. 存储器的逻辑地址 C. 存储器的段基值 D. 存储器的起始地址 13.8259A可编程中断控制器的中断服务寄存器ISR用于( ) A.记忆正在处理中的中断 B. 存放从外设来的中断请求信号 C.允许向CPU发中断请求 D.禁止向CPU发中断请求 14.8253 可编程定时/计数器的计数范围是( ) A. 0-255 B. 1-256 C. 0-65535 D. 1-65536 15. 在8086中,(BX)=8282H,且题中指令已在队列中,则执行INC [BX]指令需要的总

温度控制电路实验报告

温度控制电路实验报告 篇一:温度压力控制器实验报告 温度、压力控制器设计 实 验 报 告 设计题目:温度、压力控制器设计 一、设计目的 1 ?学习基本理论在实践中综合运用的初步经验,掌握微机控制系统设计的基本方法; 2.学会单片机模块的应用及程序设计的方法; 3?培养实践技能,提高分析和解决实际问题的能力。 二、设计任务及要求 1.利用赛思仿真系统,以MCS51单片机为CPU设计系统。 2?设计一数据采集系统,每5分钟采集一次温度信号、10分钟采集一次压力信号。并实时显示温度、压力值。 3.比较温度、压力的采集值和设定值,控制升温、降温及升压、降压时间,使温度、压力为一恒值。 4?设温度范围为:-10—+40°C、压力范围为0—100P&;升温、降温时间和温度上升、下降的比例为1°C/分钟,升压、降压时间和压力上升、下降的比例为10P"分钟。

5?画出原理图、编写相关程序及说明,并在G6E及赛思 仿真系统上仿真实现。 三、设计构思 本系统硬件结构以80C51单片机为CPU进行设计,外围扩展模数转换电路、声光报警电路、LED显示电路及向上位PC机的传输电路,软件使用汇编语言编写,采用分时操作的原理设计。 四、实验设备及元件 PC机1台、赛思仿真系统一套 五、硬件电路设计 单片微型计算机又称为微控制器,它是一种面向控制的大规模集成电路芯片。使用80C51来构成各种控制系统,可大大简化硬件结构,降低成本。 1.系统构架 2.单片机复位电路 简单复位电路中,干扰易串入复位端,在大多数情况下不会造成单片机的错误复位,但会引起内部某些寄存器的错误复位,故为了保证复位电路的可靠性,将RC电路接斯密特电路后再接入单片机和外围IC的RESET引脚。 3.单片机晶振电路 晶振采用12MHz,即单片机的机器周期为1卩so 4.报警电路

温度控制器课程设计要点

郑州科技学院 《模拟电子技术》课程设计 题目温度控制器 学生姓名 专业班级 学号 院(系)信息工程学院 指导教师 完成时间 2015年12月31日

郑州科技学院 模拟电子技术课程设计任务书 专业 14级通信工程班级 2班学号姓名 一、设计题目温度控制器 二、设计任务与要求 1、当温度低于设定温度时,两个加热丝同时通电加热,指示灯发光; 2、当水温高于设定温度时,两根加热丝都不通电,指示灯熄灭; 3、根据上述要求选定设计方案,画出系统框图,并写出详细的设计过程; 4、利用Multisim软件画出一套完整的设计电路图,并列出所有的元件清单; 5、安装调试并按规定格式写出课程设计报告书. 三、参考文献 [1]吴友宇.模拟电子技术基础[M]. 清华大学出版社,2009.52~55. [2]孙梅生.电子技术基础课程设计[M]. 高等教育出版社,2005.25~28. [3]徐国华.电子技能实训教程[M]. 北京航空航天大学出版社,2006.13 ~15. [4]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2008.22~25. [5]翟玉文等.电子设计与实践[M].北京:北京中国电力出版社,2005.11~13. [6]万嘉若,林康运.电子线路基础[M]. 高等教育出版社,2006.27 ~29. 四、设计时间 2015 年12月21 日至2015 年12 月31 日 指导教师签名: 年月日

本设计是一种结构简单、性能稳定、使用方便、价格低廉、使用寿命长、具有一定的实用性等优点的温度控制电路。本文设计了一种温度控制器电路,该系统采用模拟技术进行温度的采集与控制。主要由电源模块,温度采集模块,继电器模块组成。 现代社会科学技术的发展可以说是突飞猛进,很多传统的东西都被成本更低、功能更多、使用更方便的电子产品所替代,本课程设计是一个以温度传感器采用LM35的环境温度简易测控系统,用于替代传统的低精度、不易读数的温度计。但系统预留了足够的扩展空间,并提供了简单的扩展方式供参考,实际使用中可根据需要改成多路转换,既可以增加湿度等测控对象,也能减少外界因素对系统的干扰。 首先温度传感器把温度信号转换为电流信号,通过放大器变成电压信号,然后送入两个反向输入的运算放大器组成的比较器电路,让电位器来改变温度范围的取值,最后信号送入比较器电路,通过比较来判断控制电路是否需要工作。此方案是采用传统的模拟控制方法,选用模拟电路,用电位器设定给定值,反馈的温度值与给定的温度值比较后,决定是否加热。 关键词:温度传感器比较器继电器

(完整word版)基于MSP430的温度控制报警系统

微控制器应用及系统设计课程设计报告 南京理工大学

2010 年 5 月 目次 1 引言 (3) 2 系统总体设计 (3) 2.1 系统组成结构及工作原理 (3) 2.2 系统工作流程 (3) 2.3 系统核心器件选型 (4) 3 系统硬件设计 (4) 3.1 电源模块设计 (4) 3.2 LED显示模块设计 (4) 3.3 键盘输入模块设计 (5) 3.4 温度采集模块设计 (5) 3.5 报警模块设计 (6) 4 系统软件设计 (6) 4.1 系统软件总体结构及总流程图 (7) 4.2 LED显示模块程序设计 (9) 4.3 键盘输入模块程序设计 (9) 4.4 温度采集模块程序设计 (10) 4.5 报警模块程序设计 (10) 4.6 主模块程序设计 (10) 5 系统调试与结果分析 (10) 5.1 系统调试步骤 (10) 5.2 遇到的问题及解决方案 (12) 5.3 实验结果 (13) 6 结论与心得体会 (13) 参考文献 (13) 附录 (14)

1 引言 温度是一个非常重要的物理量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。温度控制失误就可能引起生产安全、产品质量、产品产量等一系列问题。因此对温度的检测的意义就越来越大。温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。 温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。 现在的生活中,所用到的电器,家具设备,包括工业产品等对温度的要求日益增高,灵敏的温度控制报警系统已成为日常生活中必不可少的产品。例如冰箱的温控系统,锅炉等等,无不都用到了这一功能部件。对于此,我们设计了基于MSP430F149单片机的温度控制报警系统,来模拟实现现实中的温度控制系统。此系统具有设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。 2 系统总体设计 2.1系统组成结构及工作原理 该系统主要由5大模块组成,其中包括DS18B20温度传感器,MSP430F149微控制器,LED显示模块,4X4矩阵键盘输入模块,报警模块5大部分组成。由温度传感器负责数据采集,经微处理器转换后由LED显示模块输出,同时由键盘模块负责输入温度报警的上下限。当到达设定的温度限定值时就报警。 其组成框图如下所示: 2.2 系统工作流程 首先设定温度报警的上下限值,然后由温度传感器进行温度数据的采集,当微处理器检测到温度超过设定的范围值时就实行报警,提醒用户做相关操作。

温度控制电路设计---实验报告

温度控制电路设计一、设计任务 设计一温度控制电路并进行仿真。 二、设计要求 基本功能:利用AD590作为测温传感器,T L 为低温报警门限温度值,T H 为高 温报警门限温度值。当T小于T L 时,低温警报LED亮并启动加热器;当T大于 T H 时,高温警报LED亮并启动风扇;当T介于T L 、T H 之间时,LED全灭,加热器 与风扇都不工作(假设T L =20℃,T H =30℃)。 扩展功能:用LED数码管显示测量温度值(十进制或十六进制均可)。 三、设计方案 AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温度成比例。在4V至30V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1μA/K。AD590适用于150℃以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿。 主要特性:流过器件的电流(μA) 等于器件所处环境的热力学温度(K) 度数;AD590的测温范围为- 55℃~+150℃;AD590的电源电压范围为4~30 V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏;输出电阻为710mΩ;精度高,AD590在-55℃~+-150℃范围内,非线性误差仅为±0.3℃。 基本使用方法如右图。 AD590的输出电流是以绝对温度零度(-273℃)为基准, 每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其 输出电流I out =(273+25)=298μA。 V o 的值为I o 乘上10K,以室温25℃而言,输出值为 10K×298μA=2.98V 。 测量V o 时,不可分出任何电流,否则测量值会不准。 温度控制电路设计框图如下: 温度控制电路框图 由于Multisim中没有AD590温度传感器,根据它的工作特性,可以采用恒流源来替代该传感器,通过改变电流值模拟环境温度变化。通过温度校正电路得

温度控制报警器设计

温度控制报警器第一章:序论 1.1温控警报器的原理 1.2温控警报器的广泛运用 1.3温控警报器的主要功能介绍 第二章:主要元器件的介绍 2.1温度传感器的原理 2.2温度传感器的发展及运用 2.3单片机的选用及其功能介绍 2.3.1单片机引脚介绍 2.3.2单片机工作原理 2.4 DS18B20温度传感器的介绍 2.4.1引脚介绍 2.4.2DS19B20的内部结构 2.4.3DS18B20的工作原理 2.4.4DS18B20的测温原理 2.4.5DS18B20的ROM命令 2.5四位数码管工作原理 第三章:温控警报器系统硬件主要模块 3.1单片机的最小系统 3.2温度采集模块 3.3温度显示模块 3.4键盘输入控制模块 3.5输出报警模块 第四章:单片机程序设计 4.1温度采集程序 4.2温度显示程序 4.3键盘输入程序 4.4输出报警程序 总结 致谢 参考文献 附录A 总电路图 附录B 元器件清单 附录C 温控报警器总程序

第一章 1.1温控报警器的工作原理 本温控报警器由一个DS18B20温度传感器采集外部温度,然后将采集到的温度信息传送到单片机内,单片机通过处理,将信息输出到数码管上,使数码管显示当前温度传感器采集到的温度,我们通过外设键盘,可设置报警的温度范围,如果传感器采集到的温度高于设置的温度,或者低于设置的温度,单片机自动处理,输出一个警报信号,发出叫声并且红灯闪烁! 1.2温控警报器的运用 温控警报器用于防火 在炎热的夏天或者是干燥的冬天,火灾都都是人们不可小视的灾难,因此预防火患可以提高人们生活的安全性,我们将温控报警器安置在恰当的位置,如果温度过高,温控报警器就自动报警,让人们知道哪里哪里可能即将发生火灾,人们好尽快的将火灾灭杀在襁褓之中,极大的减小了火灾的可能! 温控警报器在电子产品上得运用 电子产品由于过于精密,很多电子产品只能工作于一定的温度条件下,如果环境温度高于或者是低于某个温度值,产品的性能就达不到最好,对于一些精密的测量,就会有很大的影响,反之,如果用温控警报器加以监控,就可以知道这些电子产品的工作是否正常,测量的值是否该加以修正,或者该去改变这些电子产品的工作环境!比如:温度通过影响电源中的电容和半导体元器件,进而影响到电源的性能:温度变化会引起输出电压变化,即通常讲的温飘。温度对AC/DC电源影响大是因为大部分AC/DC 电源都大量使用铝电解电容(如滤波电容、储能电容、启动电容),铝电解电容除了容量大、耐高压外无任何优点,若电脑电源使用质量差的铝电解电容,可能发生低温不启动、高温容易坏(铝电解电容中电解液干枯所致)。温度对DC/DC电源影响不大也是因为电容,DC/DC电源中不是使用铝电解而大多使用钽电容、瓷片电容等,当然他们的价格也不会是同一个档次。温度对电容的影响如下:一般情况下,电容的寿命随温度的升高而缩短,最明显的是电解电容器。一个极限工作温度为85℃的电解电容器,在温度为20℃的条件下工作时,一般可以保证180000小时的正常工作时间,而在极限温度

微机原理试题集题库(带答案)

微机原理及应用习题集库 (2) 一、填空 (2) 二、单项选择题 (8) 三、程序分析题(每小题6分,共24分) (22) 四、判断题(在对的后面画√,错的后面画×): (34) 五:分析判断题(判断对错,并指出错误原因) (42) 六、简答题: (45) 七、程序题 (51) 八、接口芯片的综合编程题 (66) (一)8255A (66) (二)8259A (72) (三). 其它端口编程题 (75)

微机原理及应用习题集库 (请认真复习4、5、7、10、11章后的习题) 一、填空 1.87的原码是 0101 0111B=57H ,补码是 01010111B ,反码 01010111B 。 2.SP总是指向栈顶,若原先SP=2000H,SS=2000H,问CPU执行指令PUSH AX 后,AL内容压入物理地址为 21FFEH 存储单元中,AH内容压入物理地址为 21FFFH 存储单元中。 3.以BX基址寻址,约定的段寄存器是 DS ,以BP基址寻址,约定的段寄存 器是 SS ,变址寻址约定的段寄存器是 DS 。 4.假设某个字的值是1234H,其低位字节地址是20H,高位字节地址是21H,那么 该字地址是 20H 。 5.8086/8088的状态标志有 6(SF、PF、AF、OF、ZF、CF)个。8086/8088系统中,存储器是分段的,每段最大长度是 64K 字节,段内偏移地址从 0000H 到 FFFFH 。 6、CPU访问存储器进行读写操作时,通常在 T3状态去检测READY ,一旦检测

到READY无效,就在其后插入一个 T w周期。 7、汇编语言源程序中的语句有三种类型,它们是指令语句,伪指令 语句,宏指令语句。 8、、8086CPU寻址外设可以有两种方式,一种是直接寻址方式,另一种是间 接寻址方式。 9、CPU与外设之间的连接部件称为 I/O接口,它的基本功能是在 CPU与外设之间起缓冲作用。 10、C PU从主存取出一条指令并执行该指令的时间称(),它通常用若干个() 来表示,而后者又包括若干个()。 ①指令周期②机器周期③时钟周期 答:1-2-3 14、数据的输入/输出指的是CPU与 I/O接口进行数据交换。 15.已知X= -120,则X的原码(用八位二进制表示)是____________,补码(用八位二进制表示)是____________。 16、8088中的指令INT n用(N )指定中断类型。 17、8088的ALE引脚的作用是(地址锁存允许)。 18.一片8255A端口A有( 3 )种工作方式,端口B有( 2 )种工作方式。 19.当8255A口工作在方式1输出时,A口输入信号联络线的名称是 IBF ,

温度测量控制系统的设计与制作实验报告(汇编)

北京电子科技学院 课程设计报告 ( 2010 – 2011年度第一学期) 名称:模拟电子技术课程设计 题目:温度测量控制系统的设计与制作 学号: 学生姓名: 指导教师: 成绩: 日期:2010年11月17日

目录 一、电子技术课程设计的目的与要求 (3) 二、课程设计名称及设计要求 (3) 三、总体设计思想 (3) 四、系统框图及简要说明 (4) 五、单元电路设计(原理、芯片、参数计算等) (4) 六、总体电路 (5) 七、仿真结果 (8) 八、实测结果分析 (9) 九、心得体会 (9) 附录I:元器件清单 (11) 附录II:multisim仿真图 (11) 附录III:参考文献 (11)

一、电子技术课程设计的目的与要求 (一)电子技术课程设计的目的 课程设计作为模拟电子技术课程的重要组成部分,目的是使学生进一步理解课程内容,基本掌握电子系统设计和调试的方法,增加集成电路应用知识,培养学生实际动手能力以及分析、解决问题的能力。 按照本专业培养方案要求,在学完专业基础课模拟电子技术课程后,应进行课程设计,其目的是使学生更好地巩固和加深对基础知识的理解,学会设计小型电子系统的方法,独立完成系统设计及调试,增强学生理论联系实际的能力,提高学生电路分析和设计能力。通过实践教学引导学生在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。 (二)电子技术课程设计的要求 1.教学基本要求 要求学生独立完成选题设计,掌握数字系统设计方法;完成系统的组装及调试工作;在课程设计中要注重培养工程质量意识,按要求写出课程设计报告。 教师应事先准备好课程设计任务书、指导学生查阅有关资料,安排适当的时间进行答疑,帮助学生解决课程设计过程中的问题。 2.能力培养要求 (1)通过查阅手册和有关文献资料培养学生独立分析和解决实际问题的能力。 (2)通过实际电路方案的分析比较、设计计算、元件选取、安装调试等环节,掌握简单实用电路的分析方法和工程设计方法。 (3)掌握常用仪器设备的使用方法,学会简单的实验调试,提高动手能力。 (4)综合应用课程中学到的理论知识去独立完成一个设计任务。 (5)培养严肃认真的工作作风和严谨的科学态度。 二、课程设计名称及设计要求 (一)课程设计名称 设计题目:温度测量控制系统的设计与制作 (二)课程设计要求 1、设计任务 要求设计制作一个可以测量温度的测量控制系统,测量温度范围:室温0~50℃,测量精度±1℃。 2、技术指标及要求: (1)当温度在室温0℃~50℃之间变化时,系统输出端1相应在0~5V之间变化。 (2)当输出端1电压大于3V时,输出端2为低电平;当输出端1小于2V时,输出端2为高电平。 输出端1电压小于3V并大于2V时,输出端2保持不变。 三、总体设计思想 使用温度传感器完成系统设计中将实现温度信号转化为电压信号这一要求,该器件具有良好的线性和互换性,测量精度高,并具有消除电源波动的特性。因此,我们可以利用它的这些特性,实现从温度到电流的转化;但是,又考虑到温度传感器应用在电路中后,相当于电流源的作用,产生的是电流信号,所以,应用一个接地电阻使电流信号在传输过程中转化为电压信号。接下来应该是对产生电压信号的传输与调整,这里要用到电压跟随器、加减运算电路,这些电路的实现都离不开集成运放对信号进行运算以及电位器对电压调节,所以选用了集成运放LM324和电位器;最后为实现技术指标(当输出端1电压大于3V时,输出端2为低电平;当输出端1小于2V时,输出端2为高电平。输出端1电压小于3V并大于2V时,输出端2保持不变。)中的要求,选用了555定时器LM555CM。 通过以上分析,电路的总体设计思想就明确了,即我们使用温度传感器AD590将温度转化成电压信号,然后通过一系列的集成运放电路,使表示温度的电压放大,从而线性地落在0~5V这个区间里。最后通过一个555设计的电路实现当输出电压在2与3V这两点上实现输出高低电平的变化。

微机原理习题及答案

一、选择 1、在微型计算机中,微处理器的主要功能是进行( )。 D A、算术运算 B、逻辑运算 C、算术、逻辑运算 D、算术、逻辑运算及全机的控制 2、Pentium I属于()位CPU C A、16 B、8 C、32 D、64 3、Intel 8086属于()位CPU A A、16 B、8 C、32 D、64 4、CPU与I/O设备间传送的信号通常有( ) D A、控制信息 B、状态信息 C、数据信息 D、以上三种都有 5、存储器用来存放计算机系统工作时所需要的信息,即( )。 D A、程序 B、数据 C、技术资料 D、程序和数据 6、运算器的核心部件是( )。 D A、加法器 B、累加寄存器 C、多路开关 D、算逻运算单元 二、填空 1、内存可分为2大类:随机存储器RAM 和 2、数据总线是向的,地址总线是向的。 3、计算机的五大部件是:、、、、输出设备 4、总线可分为三类:、、 5、存储程序工作原理最先由提出 6、在计算机内部,一切信息的存取、处理和传送都是以形式进行的。 1、只读存储器ROM 2、双、单 3、运算器、控制器、存储器、输入设备 4、地址总线、数据总线、控制总线 5、冯·诺依曼 6、二进制 三、简答 1、冯·诺依曼型计算机的特点是什么? (1).以二进制表示指令和数据 (2).程序和数据存放在存储器中,从存储器中取指令并执行 (3).由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件系统。 一、选择 1、在机器数______中,零的表示形式是唯一的()。BD A、原码 B、补码 C、反码 D、移码 2、计算机内部表示带符号整数通常采用()。C A、原码 B、反码 C、补码 D、移码

计算机温度控制实验报告1

目录 一、实验目的---------------------------------2 二、预习与参考------------------------------- 2 三、实验(设计)的要求与数据------------------- 2 四、实验(设计)仪器设备和材料清单-------------- 2 五、实验过程---------------------------------2 (一)硬件的连接- --------- ----------------------- 2 (二)软件的设计与测试结果--------------------------3 六、实验过程遇到问题与解决--------------------11 七、实验心得--------------------------------12 八、参考资料-------------------------------12

一、实验目的 设计制作和调试一个由工业控制机控制的温度测控系统。通过这个过程学习温度的采样方法,A/D变换方法以及数字滤波的方法。通过时间过程掌握温度的几种控制方式,了解利用计算机进行自动控制的系统结构。 二、预习与参考 C语言、计算机控制技术、自动控制原理 三、实验(设计)的要求与数据 温度控制指标:60~80℃之间任选;偏差:1℃。 1.每组4~5同学,每个小组根据实验室提供的设备及设计要求,设计并制作出实际电路组成一个完整的计算机温度控制测控系统。 2.根据设备情况以及被控对象,选择1~2种合适的控制算法,编制程序框图和源程序,并进行实际操作和调试通过。 四、实验(设计)仪器设备和材料清单 工业控制机、烘箱、温度变送器、直流电源、万用表、温度计等 五、实验过程 (一).硬件的连接 图1 硬件接线图

555定时器温度控制电路设计

内容摘要 在日常的生产与生活中,温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。所以人们需要用到良好的温度检测及控制装置系统来解决这些问题。本文介绍了采用A/D转换、555定时器、AT89C51芯片以及DS1620温度传感器等组成的温度控制系统的设计方法和工作原理。能够通过传感器对温度的感应自动调节加热功率的大小,并且在解决温度检测的基础上,通过555定时器完成对温度的特殊控制。 本设计应用性比较强,设计系统可以作为温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统等等。课题主要任务是完成环境温度检测,利用单片机实现温度调节并通过计算机实施温度监控。设计后的系统具有操作方便,控制灵活等优点。 本设计系统包括温度传感器,A/D转换模块,温度传感器模块,和555定时器,AT89C51芯片等。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是以555定时器进行温度监控,完成了课题所有要求。 索引关键词:自动控制系统温度传感器 MCS-51 555定时器

目录 第一章绪论 (1) 1.1研究温度控制系统的意义 (1) 1.2 温度控制系统中传感器 (1) 1.3 温度控制系统设计要点 (1) 1.4 温度控制系统设计内容 (1) 第二章硬件系统的构成 (2) 2.1 AT89C51概况 (2) 2.2功能特性概述 (2) 2.3引角功能说明 (2) 2.4时钟振荡器 (4) 2.5空闲节电模式 (4) 2.6掉电模式 (4) 2.7传感器概述 (4) 第三章数字温度测控芯片DS1620的应用 (4) 3.1 概述 (4) 3.2 引脚功能说明 (5) 3.3 操作和控制 (6) 3.4 DS1620有两种操作模式 (6) 3.5 555定时器概述 (8) 3.6 电路图 (10) 后记 (11) 参考文献 (12)

相关主题
文本预览
相关文档 最新文档