电气课程设计.docx
《电气课程设计.docx》由会员分享,可在线阅读,更多相关《电气课程设计.docx(41页珍藏版)》请在冰豆网上搜索。
电气课程设计
1设计任务书
1.设计任务
设计一台消毒柜控制系统
2.设计要求
(1)显示消毒柜温度、保持时间;
(2)可以键盘设定消毒柜温度、定时时间;
(3)可以实现实时中断功能;
(4)消毒后自动关机;
(5)测温误差:
<0.5℃:
(6)定时误差:
f<20s/月。
2基于单片机消毒柜控制电路设计
2.1系统的组成及工作原理
2.1.1系统设计要求[2]
A.设置三个功能键:
消毒、保温、停止;
B.按下消毒键,加热装置进行加热,当温度达到125度时,停止加热,其加热的时间可通过键盘设定;
C.按下保温键,在50度以下接通加热器,达到70度关闭,一直持续工作,其加热的时间可通过键盘设定;
D.按下停止键,就停止工作;
E.采用的是PT-100铂热电阻测温,A/D转换采用的是ADC0809;
F.采用的是7279芯片管理键盘显示。
2.1.2系统组成框图
电桥电路
电压放大
A/D
功能键盘
单片机
数码显示
加热装置
图2-1系统组成框图
2.1.3系统工作原理[3]
本次设计采用铂热电阻PT-100温度传感器实现从温度到电阻值的转换,PT-100的温度每上升1度,其阻值就增大0.38欧姆,电桥将PT-100电阻值的变化转换成电压变化、再经集成运放TL084放大成0-5V的电压(值不会超过5Ⅴ),然后经ADC0809转换成8位数字的信号送89C51单片机系统,89C51单片机对所采集的数据经滤波、变换等处理后送入7279显示模块中进行显示,从而完成对温度的采集。
89C51单片机再对键盘的扫描结果和即时温度值的处理,实现对温度的控制,系统设计了加热,保温,停止三键,按下加热功能键时,单片机控制加热器,开始进行加热,当温度到达125度时停止加热,按下保温键时,温度小于50度,加热器开始加热,温度超过70度,停止加热,当按下停止键时,一切程序停止运作。
在此基础上,设置了一个校时键,当按下校时键时,无论加热器加热与否,要到达设定的时间才停止工作。
如此达到实验要求。
完成实验。
2.2硬件电路设计
2.2.1方案论证
方案一:
本方案采用的是新型的温度传感器LM35构成前端温度传感电路,LM35输出可以从0度开始,该器件采用的是塑料封装TO992,工作的电压4~30V。
LM35前端电路直接与ADC0809温度采样电路相连接。
系统采用的是以51单片机为核心的微电脑控制,主要通过单片机启动ADC0809电路,对前端电路直接进行采样,得到采样的数字值由单片机将其经数学变换处理,转换成真正的温度值。
键盘控制则采用的是以HD7279为核心的键盘显示电路,由它来控制消毒、保温、停止等功能,并设置校时键,随时设置当前工作状态和需要保持的时间。
7279键盘显示电路带有8个数码管,用来显示当前系统工作情况,如倒计时时间,实时温度等。
加热器与单片机用继电器来隔开,继电器用来智能控制消毒柜的加热。
本方案的特点是:
前端温度电路直接采用LM35温度传感器,具有转换速度快,灵敏度高的特点,但是测量精度不够,抗干扰性能差的,受工作环境因素的影响较大。
方案一电路原理图如下所示:
图2-2方案一电路原理图
方案二:
在此次实验中也可以采用铂热电阻温度传感器PT-100,由含铂热电阻PT-100为桥臂的电桥,过程中其温度的变化将引起PT-100电阻值的改变,最终转变成电压的变化,但电桥输出的电压最多只能有几十毫伏,所以必须经ICL7650放大后才能输出0~5V的电压,达到实验所要求的电压,再经ADC0809转换成8位数字信号送至单片机。
单片机开发系统对所采集的数据经过滤波、变换等处理后送到7279进行显示,以实现对温度的测量。
测量出即时温度值之后要进行的就是根据温度的值和7279对键盘的扫描结果进行相应的处理,比如加热、保温、停止等,这些就需要靠软件程序来辅助完成,还要通过加热装置来进行相应的操作,从而完成此次设计的要求。
加热器是由单片机控制,安全管理加热器的启动与停止,加热装置将单片机核心系统与加热器隔离,防止加热器的高温对系统造成损伤,起到了以小电流控制大电流而安全控制的作用。
2.2.2方案确定
由于设计要求最高的温度需要达到了125℃,而LM35系列传感器达不到要求的这个温度,而且价格也高。
所以不采用这一方案。
而在实验中已经采用过方案二,并且成功的测量出了温度值,因此对用PT-100测温的性能及参数都比较了解,做起来也是得心应手,对整个电路如何调试,分析,工作原理都比较熟悉,就算是出现了什么问题也能很好的得到解决,所以我最终决定采用方案二。
2.2.3单片机最小系统设计
主控机系统采用了Atmel公司的89C51单片机,它包含有128字节数据存储器,内置4K的电可擦除FLASHROM,可以进行重复的编程,大小可以满足主控机软件系统设计,故不必再扩展程序存储器。
复位电路和晶振电路是89C51工作所需的最简的外围电路。
单片机最小系统电路图如图2-3所示。
89C51的复位端是一个史密特触发输入,高电平有效,而系统中的时钟接口和CAN总线接口的复位信号都是低电平有效。
在复位电路中,按一下复位开关就使在RS端出现一段时间的高电平,经过74LS14的一次反相整形,提供给单片机复位端。
再经过一次反相整形,通过I/ORST端提供给外部接口电路。
外接12M晶振和两个20P电容组成系统的内部时钟电路。
图2-3单片机最小系统电路图
2.2.4温度转换与放大电路
温度转换与放大电路模块如图2-4所示,它主要由电桥电路和放大电路构成。
本电路主要采用的是以PT-100为核心的电桥电路,将当前温度的变化转换成电阻的变化,从而造成电桥的不平衡,使得电桥输出在一定范围的微小且精确电压,再由放大电路对这个微小电压进行放大,放大之后才送到ADC0809的IN0口进行采样转换。
[4]
图2-4温度转换与放大电路
电桥电路如图2-5中所示,电桥电路中采用的是PT-100铂热电阻作为一条桥臂,构成温度传感器,PT-100铂热电阻是利用阻值随温度而变化的特性来测量温度,PT-100的温度每上升1度,其阻值相应增大0.38欧姆,且在0℃~500℃范围内的电阻温度曲线的线性度都比较好。
消毒柜要求的温度范围是0-130℃之间,在这范围之内PT-100的线性度是最好的,它有很好的稳定性和测量精度,测温范围比较宽。
[5]
图2-5电桥电路
铂热电阻与温度之间的关系近似线性关系如下:
在-200℃~0℃范围,温度为t℃时的阻值Rt的表达式为:
(2-1)
在温度为0℃~650℃范围内:
(2-2)
式中的分度常数为:
A=3.96847×
(1/℃) ,B=-5.847×
(1/℃),C=-422×
(1/℃)
是在0℃时阻值为100Ω。
下面列出铂热电阻在0℃~100℃时的电阻值:
表2-6铂热电阻与温度之间的关系表
0
1
2
3
4
5
6
7
8
9
0℃
100.0
100.4
100.8
101.2
101.6
102.0
102.3
102.7
103.1
103.5
10
103.9
104.3
104.7
105.1
105.5
105.8
106.2
106.6
107.0
107.4
20
107.8
108.2
108.6
109.0
109.3
109.7
110.1
110.5
110.9
111.3
30
111.7
112.1
112.4
112.8
113.2
113.6
114.0
114.4
114.8
115.2
40
115.5
115.9
116.3
116.7
117.1
117.5
117.9
118.2
118.6
119.0
50
119.4
119.8
120.2
120.5
120.9
121.3
121.7
122.1
122.5
122.9
60
123.2
123.6
124.0
124.4
124.8
125.2
125.5
125.9
126.3
126.7
70
127.1
127.5
127.8
128.2
128.6
129.0
129.4
129.7
130.1
130.5
80
130.9
131.3
131.7
132.0
132.4
132.8
133.2
133.6
133.9
134.3
90
134.7
135.1
135.5
135.8
136.2
136.6
137.0
137.4
137.7
138.1
100
138.5
电桥计算:
(2-3)
设
(
为100Ω)
(2-4)
当T=0℃时,
即
,电桥处于平衡
(2-5)
T>0℃时 ∵
<<
∴
(2-6)
取T=100℃时,
=138.5Ω,
=10K,
=100Ω,VDD=12V
(2-7)
所以,当温度T变化在0~100℃时,△U的变化范围是0~45.7mV。
测量放大电路
三运放结构的测量放大器由两级组成,两个对称的同相放大器构成第一级,第二级为差动放大器—减法器,如图2-7所示。
图2-7测量放大电路
设加在运放A1同相端的输入电压为V1,加在运放A2同相端的输入电压为V2,若A1、A2、A3都是理想运放,则V1=V4,V2=V5
(2-8)
(2-9)
(2-10)
所以,测量放大器第一级的闭环放大倍数为:
(2-11)
整个放大器的输出电压为:
(2-12)
为了提高电路的抗共模干扰能力和抑制漂移的影响,应根据上下对称的原则选择电阻,若取R1=R2,R4=R6,R5=R7,则输出电压为:
(2-13)
第二级的闭环放大倍数:
(2-14)
整个放大器的闭环放大倍数为:
(2-15)
若取Rk=R5=R6=R7,则Vo=V6-V3,Af2=-1
(2-16)
由上可看出,改变电阻RG的大小,可方便的调节放大器的增益,在集成化的测量放大器中,RG是外接电阻,用户可根据整机的增益要求来选择RG的大小。
此外,由上述推导可见,输出电压Vo与输入电压的差值是正比,所以在共模电压作用下,输出电压Vo为0,这是因共模电压作用在RG的两端不会产生电位差,故RG上不存在共模分量对应的电流,也就不会它的输出,即使共模输入电压发生了变化,也不会引起输出。
因此,测量放大器具有比较高的共模抑制能力,通常选取R1=R2,其目的是为了抵消A1和A2本身共模抑制比不等造成的误差和克服失调参数及其漂移的影响。
然而,对高流共模电压,一般接法的测量放大器不能完全抑制,在实际应用中,常采用驱动屏蔽技术来克服高流共模电压的影响。
2.2.5数模转换电路
数模转换电路是以ADC0809为核心的A/D转换电路,如图2-8所示。
图2-8数模转换电路
在使用ADC0809进行模数转换时,应注意以下问题:
A.ADC0809的零点不用调整。
满刻度调整时,先给输入端加入电压,使满刻度所对应的电压值是:
(2-17)
式中VIN+表示实际输入电压值;
Vmax表示输入电压的最大值;
Vmin表示输入电压的最小值;
当输入电压与VIN+值相当时,调整VREF2端电压值使输出码为FEH或者FH。
B.参考电压的调节。
在使用A/D转换器时,为保证其转换精度,要求输入电压满量程使用。
如输入电压动态范围较小,则可调节参考电压,以保证小信号输入时ADC0809芯片8位的转换精度。
C.接地。
模数、数模转换电路中要特别注意到地线的正确连接,否则干扰很严重,以至影响转换结果的准确性。
A/D、D/A及取样保持芯片上都提供了独立的模拟地(AGND)和数字地(DGND)的引脚。
在线路设计中,必须将所有的器件的模拟地和数字地分别连接,然后将模拟地与数字地仅在一点上相连。
其中:
Vin(+)为模拟电压输入端,A-GND为模拟地,作为输入模拟电压和基准电压基地端的接地参考点。
VREF为基准电压输入端,接MC1403提供稳定的参考电压。
WR和RD接89C51的读写端。
ADC0804在数据采集系统中的工作过程:
采集数据时,首先微处理器执行一条传送指令,在该指令执行过程中,微处理器在控制总线的同时产生CS、WR低电平信号,启动A/D转换器工作,ADC0804经100us后将输入模拟信号转换为数字信号存于输出锁存器,并在等待转换结束后,通知微处理器可来取数。
微处理器立即执行输入指令,以产生CS、RD低电平信号到ADC0804相应引脚,将数据取出并存入存储器中。
整个数据采集过程中,由微处理器有序的执行若干指令完成。
本次设计在AD采样部分电路设计没有选用中断方式,因为在加热装置选取的部分,选用的为小功率加热器,在一定时间内温度的变化不是很明显。
在本系统实时要求不是很高情况下,采用延时方式对系统执行速度影响不是很大。
2.2.6温度控制电路
图2-9温度控制电路
本设计采用的是单片机利用PWM波来控制加热的温控电路,其电路图如图2-9所示,由两级三极管放大电路组成,第一级放大采用9014三极管,其放大倍数可达1000以上,而第二级采用大功率的达林顿管TIP122,当P1.4脚输出低电平时,三极管导通,控制加热器进行加热[6]。
TIP122是大功率三极管,当Vce=3V,Ic=0.5A时,其放大倍数为Hfe=1000。
其等效电路见图2-10。
图2-10TIP122等效电路
2.2.7显示模块
图2-11HD7279的管脚图
HD7279是一种管理键盘和LED显示器的专用智能控制芯片。
HD7279的管脚图如图2-11。
DIG0~DIG7和SA~SG是64键盘的列线和行线端口,完成对键盘的监视,译码和键值的识别。
在8×8阵列中每个键的键码是用十六进制表示的,可用读键盘数据指令读出,其范围是00H~3FH。
HD7279与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。
当微处理器访问HD7279(读键号或写指令)时,应将片选端置为低电平。
DATA为串行数据端,当向HD7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。
CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。
KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。
RC引脚用于连接HD7279的外接振荡元件,其典型值R=1.5kΩ,C=15pF。
RESET为复位端。
该端口由低电平变成高电平并保持25ms即复位结束。
通常,该端口接+5V即可。
DIG0~DIG7分别为8个LED管的位驱动输出端。
SA~SG分别为LED数码管的A段~G段的输出端。
DP为小数点的驱动输出端。
HD7279片内具有驱动电路,它可以直接驱动1英寸及以下的LED数码管,使外围电路变得简单可靠。
A-G和DP为显示数据,分别对应7段LED数码管的各段。
当对应的数据位为
‘1’时,该段点亮,为‘0’时则不亮。
此指令灵活,通过造字形表,可以显示用户所需的字符。
字形码表如表2-12所示:
表2-127279字形表
显示字符
显示码
显示字符
显示码
0
7EH
8
7FH
1
30H
9
7BH
2
6DH
g
5FH
3
79H
o
1DH
4
33H
d
3DH
5
5BH
p
67H
6
5FH
L
16H
7
70H
熄灭码
00H
HD7279键盘显示电路如图附录2。
2.3系统软件设计
2.3.1系统软件设计原理[7]
本程序中使用T0定时器启动A/D转换0809,用T0产生100ms的定时,晶振为6MHz,记数脉冲周期T=2us,设定时初值为X,(2^16-X)*2us=100ms,X=3CB0H,所以TH0=3CH,TL0=0B0H。
用INT1中断处理,当0809转换完成后,从P0口读数、再转换成十进制数、送显缓区、再根据键盘扫描的结果对温度值进行比较判断,当按下的键是加热功能键时,系统要控制加热器,开始加热,当温度到达125度时停止加热,当按下保温键时,当温度低于50度时,加热器开始加热,当温度高于70度,停止加热,当按下停止键时;一切动作停止。
通过在主程序里面设立标志,中断程序查询标志的方法实现温度与按键的统一和“同步”,实时的控制加热器的工作,以达到人们所要求达到的效果。
主程序主要完成初始化、显示处理、送7279显示、键盘扫描以及键处理等功能,其中初始化又涉及内存单元,显缓区,堆栈,及各寄存器的初始化,其流程框图见图
2-13。
有键按下否?
是加热键否?
是消毒键否?
是停止键否?
是校时键否?
开始
初始化
显示处理
显示
键盘扫描
清保温标志,置消毒标志,启动加热器
清加热标志,置保温标志
清消毒、保温标志,关闭加热器
rtrrt
N
N
N
Y
Y
Y
N
N
校正定时时间,并启动定时器
Y
Y
图2-13主程序框图
2.3.2中断服务程序设计[8]
中断服务程序先保护现场后,再完成温度的采集与滤波,和加热器的控制,定时时间的控制,定时时间采用倒计时方式,使得定时时间易于控制。
中断服务程序流程框图如图2-14。
中断入口
保护现场,定时器初值重装,中断次数加1
控制分和秒的倒计时
温度采样,再滤波
调消毒子程序
倒计时是否已到?
消毒标志为1否?
保温标志为1否?
调保温子程序
调停止子程序
恢复现场
中断返回
N
N
N
Y
Y
Y
图2-14中断服务程序流程框图
2.3.3系统子程序设计
本软件设计中,系统子程序的设计是整个程序设计的重中之重,子程序以模块化的方式实现各个独立功能,再通过主程序来调用功能子程序,使整个程序实现完整的功能。
温度采样及滤波子程序
温度采样及滤波子程序是先启动ADC0809并延时后对0通道采样,采样十次后,将采样值存放于以50H为首址的内存单元中。
采样完成后,调用滤波子程序,先去最大值,去最小值,再求平均值,从而得到比较准确的采样值。
其流程框图如图
2-15所示。
开始
启动AD0809的0通道
找出最大值并去掉
找出最小值并去掉
9个采样值求和后再求平均值
平均值保存至5AH中
返回
采样次数R7=10
存放指针R0=50
启动采样,采样值送@R0所指单元
R7-1=0?
R0-1→R0
N
Y
图2-15采样滤波子程序流程框图
在滤波程序中,利用冒泡法,逐个比较找出最大值与最小值并去掉,将各个值移位到50H~57H中,再将50H~57H的8个采样值相加,求平均值,保存到5AH中,至此就得到了比较准确,消除了干扰后的稳定的温度采样值。
显示处理子程序[9]
显示处理主要完成将要显示的字符查表得到其字形码后送到7279显示模块显示出来。
7279采用串行接口,每发送一位都要延时,且要对其初始化后才可能正确地显示。
显示处理子程序流程框图如图2-16所示。
开始
显缓指针R0、显示码R1、循环次数R7初始化
置CS为低电平,并延时50us
延时8us,去除片选信号,修改R0和R1
发显示码到7279,并延时25us
@R0单元内容查表,将得到的字形码发送至7279
R7-1=0?
返回
Y
N
图2-16显示处理子程序流程框图
消毒子程序主要是将消毒标志置为1,将保温标志置为0,再点亮消毒指示灯,判断计时时间到达否,到达则关加热器,没到则开加热器。
消毒子程序流程框图如图2-17所示。
开始
消毒标志置为1,
保温标志置为0
P1.5置为1,点亮消毒指示灯
计时到达否?
温度大于125度?
启动加热,置P1.4为低
停止加热,置P1.4高
关消毒指示灯
返回
Y
N
Y
N
图2-17消毒子程序流程框图
保温子程序主要用于当用户按下保温键时对系统进行保温。
先点亮保温指示灯,置保温标志为1,再判断倒计时是否到0,若没到则再检测当前系统的温度是否在50-70度之间,大于70度时关加热器,小于50度时开加热器。
若倒计时归零时,直接停止保温,其流程框图如图2-18所示。
开始
返回
启动加热,置P1.4为低
温度小于50度?
关消毒指示灯
停止加热,置P1.4高
N
Y
温度大于70度?
Y
N
N
Y
消毒标志置为0,
保温标志置为1
计时到达否?
P1.6置为1,点亮保温指示灯
图2-18保温子程序流程框图
停止子程序主要在用户按下停止键以后被调用,停止子程序运行后将消毒、保温标志置零,将消毒、保温指示灯熄灭,关闭加热器,再让键盘重新显示PGOOD。
其流程图如图2-19所示。
开始
标志03H、04H置零,清除消毒、保温标志
TR0置零,停止计时
关指示灯和加热器
6AH送R0,45H送R1,04H送R7
@R0送@R1
R7-1=0?
返回
N
Y
图2-19停止子程序流程框图
键盘处理主要是不断的扫描7279模块中的键盘,若有键按下时,则根据得到的键值查表求出其键号,将键号存放于寄存器ACC中供主程序处理。
其流程图如图2-20所示。
开始
置7279的CS有效,并延时30us
发送读键指令码15H到7279,并延时12us
接收键值存于A中,CS信号
置键标志00H
A为FFH否
清键标志00H
由键值查键号
返回
N
Y
图2-20键盘处理子程序流程图
2.4仿真结果与分析
HD7279键盘显示电路
电路原理图
经过详细的硬件调试和软件调试之后,系统工作正常,7279模块8位数码管前三位实时显示当前温度在000-150范围内,第四位显示“-”,后四位倒计时显示分和秒。
按下“消毒键”时,系统接通加热器,点亮加热指示灯,当温度到达到125度时,停止加热;按下“保温键”,当温度低于50度时,系统启动加热,当温度高于70度时,系统停止加热;按下“停止键”时,系统回到初始状态。
若按下“校时键”,输入2位数字后,再按“确认键”,则系统启动定时,倒计时显示当前时间,当时间走到00.00时,系统复位,停止消毒/保温。
3参考文献:
[1]张友德:
单片微型机原理、应用与实验,上海复旦大学出版社,2000.11,P7-P21
[2]陈黎娟、聂鹏程:
单片微型计算机实验教程,南昌航空大学,2006.2,P17-P32
[3]沈美明、温冬婵:
IMBPC汇编语言程序设计,清华大学出版社,1991.6,P12-P22
[4]吴金戍、郭庭吉:
89C51单片机实践与应用,清华大学出版社,2002.9,P132-P143
[5]王福瑞:
单片微机测控系统设计大全,北京航空大学出版社,1998.4,P7-P15
[6]何立民:
单片机应用技术选编,北京航空航天大学出版社,2001,P18-P43
[7]邬宽明:
单片机外围器件实用手册,北京