您好,欢迎来到小奈知识网。
搜索
您的当前位置:首页温度测量与控制电路

温度测量与控制电路

来源:小奈知识网
《电子技术》课程设计报告

题 目 学院(部)

______________

电子与控制工程学院 _____________

专 业 ________ 电子科学与技术 _________________ 班 级 _______________________________ 学生姓名 _______ 郭鹏 ____________________ 学 号 13 __________________________

指导教师(签字) ____________

刖言

随着数字时代的到来,人们对于温度的测量与控制的要求越来越高,

用传统的水银或酒

精温度计来测量温度,不仅测量时间长、读数不方便、精度不够高而且功能单一,已经不能满 足人们在数字化时代的要求。于是我们提出,测温电路利用温度传感器监测外界温度的变化 通过放大器将温度传感器接收到的信号进行放大,放大到比较有利于我们测量的温度范围 然后利用A/D转换器实现模拟信号到数字信号的转换

,

,最后通过编程让FPGA实现8位二进制

数与BCD码之间的转化,实现温度的显示;并利用比较器来实现对放大电压信号的控制,从 而实现对温度

的控制;再者还加载了报警装置,使它的功能更加完善,使用更加方便。

本设计是采用了温度的测量、信号放大、 A/D 转换、温度的显示、温度的控制、报警装

置六部分来具体实现上述目的。

目录

摘要与设计要求 ................................. ..4 第一章:系统概述 ............................... ..5 第二章:单元电路设计与分析 ............................... 5

1) 方案选择 ................................. 5

2) ................................................................. 设计原理与参考电路

..6

1 2

放大电路 .......................... .6 低通滤波电路 ...................... .7

温度控制电路 ...................... .8 报警电路 .......................... .9 5 A/D转换器 ......................... ..10 6译码电路 ........................... .11

第三章:系统综述、总体电路图 ............... ••…14 第四章:结束语 ................................. .15 参考文献 ....................................... .15 元器件明细表 ................................... .15 收获与体会,存在的问题等 ...................... ...16

3

4

温度测量与控制电路

摘要:

利用传感器对于外界的温度信号进行收集, 收集到的信号通过集成运算放大器进行信号

放大,放大后的信号经过 A/D转换器实现模拟信号与数字信号间的转换,再通过

FPGA编程

所实现的功能将转换后的数字信号在数码管上显示出来, 实现温度测量过程。 放大的信号可 以与所预定的温度范围进行比较, 如果超出预定范围, 则自动实现声光报警功能, 实现温度 控制过程。

关键字:温度测量 温度控制 信号放大 A/D 转换 声光报警

设计要求:

1. 测量温度范围为20°C〜165°C,精度 0.5 °C;

2. 被测量温度与控制温度均可数字显示;

3. 控制温度连续可调;

4. 温度超过设定值时,产生声光报警。

第一章 系统概述

传感器两端的电压信号变化不大, 经过放大电路和滤波电路之后就会形成一个比较大的 模拟量。这个模拟量有两个电路使用,一个是

AD转换器,另一个就是控制温度电路。当被

测温度超过控制温度时控制温度电路就会产生报警信号, 驱动报警电路达到报警要求。 当然, 控制电压分

别要接另外两个 AD转换器和译码显示电路,达到数码显示的要求。

整个系统的设计思路是从 A/D 转换器出发的, 由于 A/D 转换器的模拟电压输入量需要一

个比较大的值, 所以传感器的信号要经过放大电路, 由于放大电路本身以及传感器外界的干 扰因素, 在放大电路之后要加一级低通滤波器。 经过滤波之后的信号就是我们需要的模拟信 号。这个模拟信号分别接两个输入端, 一个是 A/D 转换器的输入端, 另一个是控制温度输入 端。 A/D 转换器的数字输出接译码显示电路 。系统的硬件流程图如下图所示:

第二章 单元电路设计与分析

1 )、方案选择

放大电路, 低通滤波电路, 报警电路以及控制电路相对比较容易实现, 在数据采集的过 程中,采集到得

八位二进制数如何转换成十二位的

BCD码,实现起来有些问题,有两种方案

可供选择:1采用组合逻辑电路,用 74系列的加法器283先形成BCD的一位加法器,再通 过级联的方式译码。2用FPGA芯片进行编程,输入为二进制数(并不一定是二进制自然码)

输出为12位BCD码。

经过比较,第二种方案可行,并且简单,方便易懂。第一种方案很难实现,并且某一

个温度所对应的 AD转换器的输出量,并不一定是这个温度对应的二进制数自然码。所以想 要实现第一种方案,还要另外在

AD转换器的输出端加一个八位的加法器,这样会使电路更

加复杂。而第二种方案用 VHDL编写程序,简单易懂,并且器件的执行速度快,还略去了组 合逻辑电路的复杂性。

数据转换器的位数也有两种方案可供选择:

1采用八位数据转换器。因为测量电路的

290个二进制数来表示温度,

要求是:量程为20到165;精确到,这样算下来需要至少产生

也就是说AD转换器至少要9位才可以。持这种意见的同学认为,八位AD转换器虽然少了一 位,但是可以用比较器额外增加一位。

2采用16位的AD转换器。采用16位AD转换器,可

以省去数模混合电路的设计,这样电路就会更加简单。

所以决定用16位AD转换器,但是只取 9位。并且只有八位译码,另外一位控制小数 点后面的•这样

即达到了设计要求,而且还简化了译码的程序。

2):设计原理与参考电路

1、放大电路:

采用三级集成运算放大电路,集成运算放大器型号为

LM324,

LM324系列器件为差动输入的四运算放大器。与单电源应用场合的标准运算放大器相 比,它们有一些显著优

点。该四放大器可以工作在低到伏或者高到

32伏的电源下,

静态电流为 MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了 在许多应用场合中采用外部偏置元件的必要性。在该放大电路中,我们将传感器收集 到的信号定义为 VEE,因为该信号过于微弱,所以需要经过集成运算放大器进行信号 放大,放大到便于我们测量的电压值,该电路采用三级集成运算放大器,放大倍数约 为1248倍,经过实际测量得到了放大后的电压值如下图所示:

单位 mV 单位 V 1 2 3 放大电路图如上图所示:

在该电路图中,放大电路的2号引线为接收传感器信号的输入端

(我们将VEE定义为传

感器的输入信号),第三级放大器的9号引线为放大信号的输出端,它接的是滤波电路。

2、低通滤波器如图所示:

因为传感器的输入和放大器本身不可避免的会带有一些高次谐波或高频干扰信号, 会对A/D转换器的数据采集造成干扰,为了削弱高次谐波或高频干扰的场合,提高测 量的精度,所以要加一级或者多级低通滤波器 由于同向比例放大电路的电压增益为

(仿真中为一级)。具体电路如上图所示。

Auf=A0+R2/R1,只要将R1的电阻值设置为远大

于R2的电阻值,则电压增益可忽略不计,例如:当

VCC=10V时,通过放大器后的输

在该电路中, 电源VCC

出电压为,电压增益对于整体电路的电压输出并无决定性影响, 实际上是从上一级放大器接收到得放大信号,而放大器接电阻 电路。

3、温度控制电路:

R3另一端接的是译码

控制温度电路主要由两个电压比较器组成, 第一个电压比较器 (上方)控制的是温度下

输出高电平,比较器的电源电压控制的适当,这个高电平就可以和门电路(或门)连接。仿 真时,电源电压为 5V,比较器输出电压为 4V。控制温度电路的输入端接电压跟随器,这个

电压跟随器再和滤波电路的输出端连接。 控制温度电路的输出端 (或门输出端) 直接连接报 警电路。温度控制电路图如下图所示:

4、 控制报警电路:

在设计报警电路时, 我们采用了 555 多谐振荡器来实现报警功能, 利用一个发光二极管来实 现光报警,蜂鸣器来实现声音报警,具体电路图如下图所示:

在该电路图中18接的是控制电路两个比较器出来的信号,当信号大于 VDD2的电压预定

值,或者小于 VDD1的电压预定值时,该 555报警电路会自动报警,发光二极管产生光报警 信号,蜂鸣器产生声音报警信号。

5、 A/D 转换器:

采用十六位的 A/D 转换器,但是由于课程设计中要求的精度为,量程为 20到 165,也就 是说小数点后面的数字不是 0就是5,所以在译码时只需要将高 8位译成BCD码,用第7位 来控制小数,当第 7 位为高电平时,小数部分为,当第 7 位为低电平时,小数部分为 0.而 高位的8位二进制数并不一定是二进制自然码,这个问题会在译码电路中得到解决。 换器的其他管脚悬空即可。

AD转

AD转换器的模拟量输入端在与放大电路连接之前要加电压跟随器, 这样可以防止压降的

变化,减小误差。假设当温度为 20 摄氏度时,传感器的电压为,当温度为 165 摄氏度时, 假设温度为 (如果温度和电压值不能对应,可以改进桥式电路,或者加一个上拉电阻, 感器的电压值增大)

使传

AD 转换器如图所示:

在该电路中,Vin接的是低通滤波器传过来的放大信号,

D7到D15接的是译码电路,即 PLD

芯片,Vref+和Vref-接的是一个电压范围,即在该范围内工作, SOC为输入的脉冲信号。

6、译码电路:

由于经过 A/D 转换器输出的为二进制数, 这些二进制数在数码管上并不能完全显示, 为了能 很好的再数码管上显示温度, 本次的课程设计采用的译码电路为 来实现译码功能。

FPGA芯片,利用VHDL编程

VHDL源程序如下: ibrary ieee; use BCD is

port(reset: in std_logic; OE: in std_logic;

Vin:in std_logic_vector(7 downto 0); Vout1: out std_logic_vector(3 downto 0); Vout2: out std_logic_vector(3 downto 0); Vout3: out std_logic_vector(3 downto 0)); end entity;

architecture behave of BCD is signal temp_q: integer range 0 to 199;

signal temp_q0,temp_q1,temp_q2,temp_q3:integer range 0 to 99; FUNCTION vector_to_int

(input :in std_logic_vector(7 downto 0))return integer is VARIABLE q,p:integer :=0; begin

for i in 7 downto 0 loop p:=0;

if(input(i)='1') then p:=2**(i-0); else null; end if; q:=q+p; end loop; return (q); end vector_to_int; begin

process(reset,OE) begin if(OE='0')then Vout1<=\"0000\"; Vout2<=\"0000\"; Vout3<=\"0000\";

elsif(OE='1' and reset='1')then Vout1<=\"0000\"; Vout2<=\"0000\"; Vout3<=\"0000\";

else temp_q<=vector_to_int(Vin); if(temp_q>=100 )then temp_q3<=1; temp_q0<=temp_q-100; temp_q1<=temp_q0 REM 10; temp_q2<=temp_q0-temp_q1; else if(temp_q<100 and temp_q>0)then temp_q3<=0; temp_q0<=temp_q;

temp_q1<=temp_q0 REM 10; temp_q2<=temp_q0-temp_q1; end if;

end if; end if;

case temp_q1 is

when 0=>Vout1<=\"0000\"; when 1=>Vout1<=\"0001\"; when 2=>Vout1<=\"0010\"; when 3=>Vout1<=\"0011\"; when 4=>Vout1<=\"0100\"; when 5=>Vout1<=\"0101\"; when 6=>Vout1<=\"0110\"; when 7=>Vout1<=\"0111\"; when 8=>Vout1<=\"1000\"; when 9=>Vout1<=\"1001\"; when others =>Vout1<=\"0000\"; end case; case temp_q2 is

when 0=>Vout2<=\"0000\"; when 10=>Vout2<=\"0001\"; when 20=>Vout2<=\"0010\"; when 30=>Vout2<=\"0011\"; when 40=>Vout2<=\"0100\";

when 50=>Vout2<=\"0101\"; when 60=>Vout2<=\"0110\"; when 70=>Vout2<=\"0111\"; when 80=>Vout2<=\"1000\"; when 90=>Vout2<=\"1001\"; when others =>Vout2<=\"0000\"; end case; case temp_q3 is

when 0=>Vout3<=\"0000\"; when 1=>Vout3<=\"0001\"; when others =>Vout3<=\"0000\"; end case; end process; end behave;

分别定义FPGA的清零端reset,使能端0E八个输入 VinO到Vin7和三个输出 Vout3( 3 downto

0)Vout2 (3 downto 0 )Vout1 (3 downto 0 )。

设计中之所以译码电路只连接

AD转换器的D15到D8,是因为这八位二进制数已经足够表示

因为设计要求是显示

20到165的十进制数,AD转换器的D7管脚直接接小数部分的数码管,

精度为,所以小数部分不是 O 就是 5,这样用一位二进制数控制即可。 电路图如图所示:

第三章 系统综述、总体电路图

为了实现对于温度的测量与控制,我们采用放大电路、低通滤波电路、

A/D转换器、译码电

路、控制电路和报警电路六部分来实现这个功能, 利用温度传感器接收到得信号非常的微小, 所以要经过一个放大电路对接受的信号进行放大, 放大到方便于我们测量的范围内即可, 放 除,得到一个不参杂志的信号,再经过一级电压跟随器,输入到电压比较电路中。电压 比较电路有两个电压比较器, 一个电压比较器控制温度下限, 放大之后的电压低于这个比较 器的电压时, 就会产生报警信号。 另一个电压比较器控制上限电压, 放大

之后的电压高于这 个比较器的电压时,也会产生一个报警信号。由于每一个报警信号产生,都应该声光报警, 所以, 两个比较器的输出经过或门, 在连接报警电路。 报警电路中的光报警时直接由或门的 输出来驱动的。而声音报警则是通过一个 555 多谐振荡器。或门的输出接发光二极管和 555 定时器的 4 号管脚(高电平) ,当或门的输出为低电平时,发光二极管不亮。

大后的电压信号经过一级低通滤波电路进行滤波,

将信号中的高次谐波或高频干扰进行消

555 定时器由于不工作,所以输出为 0;当或门输出为高电平时,发光二极管亮。 555 多谐

振荡电路开始工作, 输出的为一个方波, 这个方波会驱动蜂鸣器, 蜂鸣器就会发生时有时无 得“滴滴” 声音,产生声音报警。 放大后的信号还要经过 A/D 转换器进行模拟信号到数字信 号的转换, 放大后的电压得电压经过低通滤波, 通过一级电压跟随器和模数转换器连接, 完 成信号的采集功能。由于题目的要求为:量程

20到 165摄氏度,精度为,所以模数转换器

的输出端只需要高位的 9 个管脚, 其他管脚悬空即可。 这 9 个管脚中, 最低位可以直接驱动 一个数码管,这个数码管显示的是小数部分,因为由于参考电压的值适当,所以 D7 位,也 就是这 9 个管脚中的最低位所代表的温度变化就是摄氏度。 其他的八个管脚可以看成是一个 二进制数, 当然,这个二进制数不一定是自然码, 但是可以进行加操作,使其对应的二进制 数正好就是对应的温度值,这样,在经过 PLD的译码,就会形成 3个四位的BCD码。

PLD的程序是先将二进制数转换成 10进制数,然后在将10进制数转换成对应的 BCD码。完 成译码功能。PLD的12端输出分别对应连接三个数码管,这三个数码管表示的是温度的整 数部分。

总体电路图见附图。

第四章 结束语

在这次课程设计中, 我们遇到了很多问题, 比如说放大电路部分, 经过一级放大并没有得到 我们想要得到的倍数,于是采用了多级放大。还有在进行译码的过程中,可供选择的方法很 多,但是都出现了问题, 不是出现错误就是没办法实现,

类似的问题还很多,不过经过小组

讨论以及同学的帮助,也都解决了,总体来说,本次课设虽然没有得到自己想要的完美结果, 但是还算成功,总

之两周的时间还算没白费,学会了很多的新知识。

参考文献

1 •林涛•模拟电子技术基础•重庆大学出版社• 2 •林涛•数字电子技术基础•清华大学出版社•

2004年; 2006年6月;

2004年6月; 2005年3月;

3 •姜立东・VHDL语言程序设计及应用•北京邮电大学出版社・ 4 •李群芳,肖看•单片机原理、接口及应用•清华大学出版社•

元器件明细表:

序号 名称 型号参数 数量 备注 1 2 3 电阻 若干 电容 集成放大器 3 LM324AD 8 放大滤波比 较 4 5 6 7 8 AD转换器 PLD 数码管1 数码管2 ADC16 EPM7032-PLCC(44) DCD_HEX DCD_HEX_DIG_RED LM555CN 3 3 9 3 1 模数转换 FPGA 整数显示 小数显示 多谐振荡器 555定时器 9 发光二极管 5mA 1 10 蜂鸣器 5kHZ 4V 1 11 滑动变阻器 增量5% 2 12 13 导线 若干 电源 若干 附图:见最后的附加电路图 鸣谢:

感谢樊小红老师在本次课程设计中对于各部分电路的讲解与帮助,

感谢各位冋学对于我在课

设上的支持与帮助。

收获与体会,存在的问题等

在课程设计的初期, 我们都还信誓旦旦的以为这些都很简单,

做起来的时候,所有的麻烦都来了, 导致时间也不够充裕了,

并没有放太多的心思,但是当 在课程设计中,我们遇到了很

多的问题,比如说我所负责的放大电路部分, 不明显,而且出现的问题也很多,经过讨论,

刚开始只是采用一级放大, 但是放大的效果并 我们又选择了采用多级放大电路,用三个放大

当我们定义最

器来实现信号的放大,终于得到了想要的结果,不过信号放大后又有问题了, 初的输入电压时,当最初的输入电压为

0,经过三级放大后,输出电压还是有信号,正常情

况下输出应该为0,或者得到很微小的电压,这个问题到最后也没有解决,好在并无太大的

八位二进制数, D7位表示的是10进制数的128;

D6 D5

位表示的是10进制数的64; 位表示的是10进制数的32;

影响。还有在译码电路的选择过程中, 利用组合逻辑电路设计出的电路图如下图所示, 其中

D4 位表示的是10进制数的16;

位),这个BCD码记为BCD3. 这样可以设计出多个两位的 BCD码的加法器。 首先实现的是 D7位和D6位相加: 当D7为为高电平时,进行加 128操作; 当D6为高电平时,进行加 64操作;

因为28+64是不会像百位进位的,所以这次相加操作只需要两位 最大为1。这个1可以在下一级和 BCD4相加时再考虑。 相加的结果为三位BCD码,记为BCD1

同理,在实现 D5位(32)和D4位(16)相加,相加结果最多为两位 BCD吗,记为BCD2 这样,在用一个两位 BCD码的加法器来实现 BCD3和BCD2的相加,相加结果最大为 32+16+15=63,所以,其结果最多为两位的

这样,最后再用一个三位的来实现

BCD码的加法器;其百位

BCD码,记为BCD4

BCD1和BCD4的相加,这里就需要一个三位的 BCD全加器。

在组合电路的设计中除了麻烦一点, 设计方面并没有出现什么问题, 但是输出结果就出现了 问题,进位没有显示, 和其他的同学一起查找也没有查出错误在哪, 因此只能排除这种方法, 该电路共有9个输入端。分别接

AD转换器的高8位和D7位。输出直接连接数码管, 来显示 整数部分。D7位不需要译码,当 D7=0时候,

小数数码管 显示0,当D7=1的时候,小数部 分显示 5 。由此完成了译码电路,但是实际中就会很麻烦。因为要有三个温度的显示。选 择用FPGAt行编程来实现译码功能,既简单还容易实现。

经过这次课程设计, 我们学习了很多知识, 电子方面的知识是不分家的, 在设计过程中, 我们用到了模电知识、数电知识和

VHDL编程,在使用 A/D转换器进行模数转换时,我们也

翻阅了单片机的书籍, 做一次课程设计, 成绩好不一定就能做出东西, 还得会利用所学的知 识做出我们想要的东西, 这一点是很重要,因此, 只要提高我们的动手能力,认真的对待每 一门课的实验,将来才能在社会上有立足之地,否则得话只能被这个社会所遗弃。

评语

(评语教师写)

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

Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1

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

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