第一章 绪论1. 1 选题背景 防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。 1.2 设计过程及工艺要求一、基本功能 ~ 检测温度、湿度 ~ 显示温度、湿度 ~ 过限报警 二、 主要技术参数 ~ 温度检测范围 : -30℃-+50℃ ~ 测量精度 : file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCBD.tmp.png0.5℃ ~ 湿度检测范围 : 10%-100%RH ~ 检测精度 : file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCBE.tmp.png1%RH ~ 显示方式 : 温度:四位显示 湿度:四位显示 ~ 报警方式 : 三极管驱动的蜂鸣音报警 第二章 方案的比较和论证当将单片机用作测控系统时,系统总要有被测信号懂得输入通道,由计算机拾取必要的输入信息。对于测量系统而言,如何准确获得被测信号是其核心任务;而对测控系统来讲,对被控对象状态的测试和对控制条件的监察也是不可缺少的环节。 传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。 2. 1温度传感器的选择方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、测量范围大、便于远距离测量。 铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准测温范围-200~650℃,百度电阻比W(100)=1.3850时,R0为100Ω和10Ω,其允许的测量误差A级为±(0.15℃+0.002 |t|),B级为±(0.3℃+0.005 |t|)。 铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50~180℃测温。 方案二:采用AD590,它的测温范围在-55℃~+150℃之间,而且精度高。M档在测温范围内非线形误差为±0.3℃。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。使用可靠。它只需直流电源就能工作,而且,无需进行线性校正,所以使用也非常方便,借口也很简单。作为电流输出型传感器的一个特点是,和电压输出型相比,它有很强的抗外界干扰能力。AD590的测量信号可远传百余米。综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。 2. 2 湿度传感器的选择测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。 方案一:采用HOS-201湿敏传感器。HOS-201湿敏传感器为高湿度开关传感器,它的工作电压为交流1V以下,频率为50HZ~1KHZ,测量湿度范围为0~100%RH,工作温度范围为0~50℃,阻抗在75%RH(25℃)时为1MΩ。这种传感器原是用于开关的传感器,不能在宽频带范围内检测湿度,因此,主要用于判断规定值以上或以下的湿度电平。然而,这种传感器只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。 方案二:采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。 相对湿度在1%---100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04 pF/℃。可见精度是较高的。 综合比较方案一与方案二,方案一虽然满足精度及测量湿度范围的要求,但其只限于一定范围内使用时具有良好的线性,可有效地利用其线性特性。而且还不具备在本设计系统中对温度-30~50℃的要求,因此,我们选择方案二来作为本设计的湿度传感器。 2. 3 信号采集通道的选择 在本设计系统中,温度输入信号为8路的模拟信号,这就需要多通道结构。 方案一、采用多路并行模拟量输入通道。 这种结构的模拟量通道特点为: (1) 可以根据各输入量测量的饿要求选择不同性能档次的器件。总体成本可以作得较低。 (2) 硬件复杂,故障率高。 (3) 软件简单,各通道可以独立编程。 方案二、采用多路分时的模拟量输入通道。 这种结构的模拟量通道特点为: (1) 对ADC、S/H要求高。 (2) 处理速度慢。 (3) 硬件简单,成本低。 (4) 软件比较复杂。 综合比较方案一与方案二,方案二更为适合于本设计系统对于模拟量输入的要求,比较其框图,方案二更具备硬件简单的突出优点,所以选择方案二作为信号的输入通道。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCBF.tmp.png 图2-1多路并行模拟量输入通道 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCC0.tmp.png 图2-2多路分时的模拟量输入通道 第三章 系统总体设计本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,我设计了以8031基本系统为核心的一套检测系统,其中包括A/D转换、单片机、复位电路、温度检测、湿度检测、键盘及显示、报警电路、系统软件等部分的设计。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCD0.tmp.png 图3-1 系统总体框图 本设计由信号采集、信号分析和信号处理三个部分组成的。 (一) 信号采集 由AD590、HS1100及多路开关CD4051组成; (二) 信号分析 由A/D转换器MC14433、单片机8031基本系统组成; (三) 信号处理 由串行口LED显示器和报警系统等组成。 3.1 信号采集3.1.1 温度传感器集成温度传感器AD590 是美国模拟器件公司生产的集成两端感温电流源。 一. 主要特性 AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分挡,AD590的后缀以I,J,K,L,M表示。AD590L,AD590M一般用于精密温度测量电路,其电路外形如图3-2所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。集成温度传感器的电路符号如图3-2所示。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCD1.tmp.png 图3-2 AD590外形(图1)及电路符号(图2) 1、流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数,即: I T/T=1μA /K 式中:IT—— 流过器件(AD590)的电流,单位μA。 T——热力学温度,单位K。 2、 AD590的测温范围-55℃- +150℃。 3、 AD590的电源电压范围为4V-30V。电源电压可在4V-6V范围变化,电流IT变化1μA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会损坏。 4、输出电阻为710MΩ。 5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线形误差±0.3℃。 2 AD590的工作原理
在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串接一个1kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。其基本电路如图3-3所示。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCD2.tmp.png 图3-3 AD590内部核心电路 图3-3是利用ΔUBE特性的集成PN结传感器的感温部分核心电路。其中T1、T2起恒流作用,可用于使左右两支路的集电极电流I1和I2相等;T3、T4是感温用的晶体管,两个管的材质和工艺完全相同,但T3实质上是由n个晶体管并联而成,因而其结面积是T4的n倍。T3和T4的发射结电压UBE3和UBE4经反极性串联后加在电阻R上,所以R上端电压为ΔUBE。因此,电流I1为:
I1=ΔUBE/R=(KT/q)(lnn)/R
对于AD590,n=8,这样,电路的总电流将与热力学温度T成正比,将此电流引至负载电阻RL上便可得到与T成正比的输出电压。由于利用了恒流特性,所以输出信号不受电源电压和导线电阻的影响。图3中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了其电阻值,因而在基准温度下可得到1μA/K的I值。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCE3.tmp.png 图3-4 AD590内部电路 图3-4所示是AD590的内部电路,图中的T1~T4相当于图3-3中的T1、T2,而T9,T11相当于图3-3中的T3、T4。R5、R6是薄膜工艺制成的低温度系数电阻,供出厂前调整之用。T7、T8,T10为对称的Wilson电路,用来提高阻抗。T5、T12和T10为启动电路,其中T5为恒定偏置二极管。
T6可用来防止电源反接时损坏电路,同时也可使左右两支路对称。R1,R2为发射极反馈电阻,可用于进一步提高阻抗。T1~T4是为热效应而设计的连接防式。而C1和R4则可用来防止寄生振荡。该电路的设计使得T9,T10,T11三者的发射极电流相等,并同为整个电路总电流I的1/3。T9和T11的发射结面积比为8:1,T10和T11的发射结面积相等。
T9和T11的发射结电压互相反极性串联后加在电阻R5和R6上,因此可以写出:
ΔUBE=(R6-2 R5)I/3
R6上只有T9的发射极电流,而R5上除了来自T10的发射极电流外,还有来自T11的发射极电流,所以R5上的压降是R5的2/3。
根据上式不难看出,要想改变ΔUBE,可以在调整R5后再调整R6,而增大R5的效果和减小R6是一样的,其结果都会使ΔUBE减小,不过,改变R5对ΔUBE的影响更为显著,因为它前面的系数较大。实际上就是利用激光修正R5以进行粗调,修正R6以实现细调,最终使其在250℃之下使总电流I达到1μA/K。 二. 基本应用电路 图3-8是AD590用于测量热力学温度的基本应用电路。因为流过AD590的电流与热力学温度成正比,当电阻R1和电位器R2的电阻之和为1kΩ时,输出电压V0随温度的变化为1mV/K。但由于AD590的增益有偏差,电阻也有偏差,因此应对电路进行调整,调整的方法为:把AD590放于冰水混合物中,调整电位器R2,使V0=273.2+25=298.2(mV)。但这样调整只保证在0℃或25℃附近有较高的精度。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsCCE4.tmp.jpg 图3-5 AD590应用电路 三. 摄氏温度测量电路 如图3-5所示,电位器R2用于调整零点,R4用于调整运放LF355的增益。调整方法如下:在0℃时调整R2,使输出V0=0,然后在100℃时调整R4使V0=100mV。如此反复调整多次,直至0℃时,V0=0mV,100℃时V0=100mV为止。最后在室温下进行校验。例如,若室温为25℃,那么V0应为25mV。冰水混合物是0℃环境,沸水为100℃环境。 四.多路检测信号的实现 本设计系统为八路的温度信号采集,而MC14433仅为一路输入,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图3-6所示 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD001.tmp.jpg 图3-6八路分时的模拟量信号采集电路硬件接口 3. 1. 2 湿度传感器测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。下面 介绍HS1100/HS1101湿度传感器及其应用。 一、特点 不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。 图3-7a为湿敏电容工作的温、湿度范围。图3-7b为湿度-电容响应曲线。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD011.tmp.png file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD012.tmp.png 图3-7a、湿敏电容工作的温、湿度范围 图3-7b、湿度-电容响应曲线。 相对湿度在1%---100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04 pF/℃。可见精度是较高的。 二、湿度测量电路 HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运方与租蓉组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集 频率输出的555测量振荡电路如图3-7所示。集成定时器555芯片外接电阻R4、R2与湿敏电容C,构成了对C的充电回路。7端通过芯片内部的晶体管对地短路又构成了对C的放电回路,并将引脚2、6端相连引入到片内比较器,便成为一个典型的多谐振荡器,即方波发生器。另外,R3 是防止输出短路的保护电阻,R1 用于平衡温度系数。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD013.tmp.jpg 图3-7、频率输出的555振荡电路 该振荡电路两个暂稳态的交替过程如下:首先电源Vs通过R4、R2 向C充电,经t充电时间后,Uc达到芯片内比较器的高触发电平,约0.67Vs,此时输出引脚3端由高电平突降为低电平,然后通过R2放电,经t放电时间后,Uc下降到比较器的低触发电平,约0.33Vs 此时输出,此时输出引脚3端又由低电平突降为高电平,如此翻来覆去,形成方波输出。其中,充放电时间为 t充电=C(R4+R2)Ln2 t放电=CR2 Ln2 因而,输出的方波频率为 f=1/(t放电+t充电)=1/[ C(R4+R2)Ln2] 可见,空气湿度通过555测量电路就转变为与之呈反比的频率信号,表3-1给出了其中的一组典型测试值。 表3-1、空气湿度与电压频率的典型值 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD024.tmp.png 三、多路检测信号的实现 本设计系统为八路的湿度信号采集,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图3-8所示 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD025.tmp.jpg 图3-8八路分时的模拟量信号采集电路硬件接口 3.1.3 多路开关多路开关,有称“多路模拟转换器”。多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。反之,当模拟信号有公共输出端输入时 ,作为信号分离器,实现了1线到n线的分离功能。因此,多路开关通常是一种具有双向能力的器件。 在本设计中,由于采用了温湿度双量控制,所以在信号采集中将有两个模拟量被提取,这时选用多路开关就是很必要的。 我选用的是CD4051多路开关,它是一种单片、COMS、8通道开关。该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。CD4051的内部原理框图如图3-9所示。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD035.tmp.jpg 图3-9、CD4051的内部原理框图 图中功能如下: 通道线IN/OUT(4、2、5、1、12、15、14、13):该组引脚作为输入时,可实现8选1功能,作为输出时,可实现1分8功能。 XCOM(3):该引脚作为输出时,则为公共输出端;作为输入时,则为输入端。 A、B、C(11、10、9):地址引脚 INH(6):禁止输入引脚。若INH为高电平,则为禁止各通道和输出端OUT/IN接至;若INH为低电平,则允许各通道按表3-2关系和输出段OUT/IN接通。VDD(16)和VSS(8):VDD为正电源输入端,极限值为17V;VSS为负电源输入端,极限值为-17V。 VGG(7);电平转换器电源,通常接+5V或-5V。 CD4051作为8选1功能时,若A、B、C均为逻辑“0”(INH=0),则地址码00013经译码后使输出端OUT/IN和通道0接通。其它情况下,输出端OUT/IN输出端OUT/IN和各通道的接通关系如下 表 3-2 3.2 信号分析与处理3.2.1 A/D转换一.A/D转换器的特点 为了把温度、湿度检测电路测出的模拟信号转换成数字量送CPU处理,本系统选用了双积分A/D转换器MC14433,它精度高,分辨率达1/1999。由于MC14433只有一路输入,而本系统检测的多路温度与湿度信号输入,故选用多路选择电子开关,可输入多路模拟量。 MC14433 A/D 转换器 由于双积分方法二次积分时间比较长,所以A/D转换速度慢,但精度可以做得比较高;对周期信号变化的干扰信号积分为零,抗干扰性能也比较好。 目前,国内外双积分A/D转换器集成电路芯片很多,大部分是用于数字测量仪器上。常用的有3.5位双积分A/D装换器MC14433和4.5位双积分A/D转换器ICL7135 二.MC14433A/D转换器件简介 MC14433是三位半双积分型的A/D转换器,具有精度高,抗干扰性能好的优点,其缺点是转换速率低,约1—10次/秒。在不要求高速转换的场合,例如,在低速数据采集系统中,被广泛采用。MC14433A/D转换器与国内产品5G14433完全相同,可以互换。 MC14433A/D转换器的被转换电压量程为199.9mV或1.999V。转换完的数据以BCD码的形式分四次送出(最高位输出内容特殊,详见表3-3)。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD046.tmp.png 图3-10 MC14433A/D转换器的内部逻辑框图 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD057.tmp.jpg 图3-11 MC14433引脚图 MC14433 的框图(图3-10)和引脚(图3-11)功能说明 各引脚的功能如下: 电源及共地端 VDD: 主工作电源+5V。 VEE: 模拟部分的负电源端,接-5V。 VAG: 模拟地端。 VSS: 数字地端。 VR: 基准电压。 外界电阻及电容端 RI: 积分电阻输入端,VX=2V时,R1=470Ω;VX=200Mv时,R1=27KΩ。 C1: 积分电容输入端。C1 一般为0.1μF。 C01、C02: 外界补偿电容端,电容取值约0.1μF。 R1/C1: R1 与C1的公共端。 CLKI、CLKO : 外界振荡器时钟调节电阻Rc,Rc一般取 470 KΩ左右。 转换启动/结束信号端 EOC:转换结束信号输出端,正脉冲有效。 DU: 启动新的转换,若DU与EOC相连,每当A/D转换结束后,自动启动新的转换。 过量程信号输出端 /OR : 当|Vx|›VR,过量程/OR 输出低电平。 位选通控制线 DS4----DS1: 选择个、十、百、千位,正脉冲有效。 DS1 对应千位,DS4 对应个位。每个选通脉冲宽度为18个时钟周期,两个相应脉冲之间间隔为2个时钟周期。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD058.tmp.png 图3-12 MC14433选通脉冲时序图 BCD码输出线 Q0---Q3: BCD码输出线。其中Q0为最低位,Q3 为最高位。当DS2、DS3和DS4选通期间,输出三位完整的BCD码数,但在DS1选通期间,输出端Q0-------Q3 除了表示个位的0或1外,还表示了转化值的正负极性和欠量程还是过量程其含意见表3-3 表3-3、DS1选通时Q3~Q0表示的结果 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD059.tmp.png 由表可知Q3 表示1/2位,Q3=“0”对应1,反之对应0。 Q2 表示极性,Q2=“1”为正极性,反之为负极性。 Q0=“1”表示超量程:当Q3=“0”时,表示过量程;当Q3=“1”时,表示欠量程; 一. MC14433与8031单片机的接口设计 由于MC14433的A/D转换结果是动态分时输出的BCD码,Q0~Q3HE DS1~DS4都不是总线式的。因此,MCS-51单片机只能通过并行I/O接口或扩展I/O接口与其相连。对于8031单片机的应用系统来说,MC14433可以直接和其P1口或扩展I/O口8155/8255相连。下面是MC14433与8031单片机P1口直接相连的硬件接口,接口电路如图3-13所示 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD069.tmp.jpg 图3-13 MC14433与8031单片机P1口直接相连的硬件接口 3. 2. 2单片机8031 为了设计此系统,我们采用了8031单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为计算机能识别的数字信号,再送入计算机系统的相应端口。 由于8031中无片内ROM,且数据存储器也不能满足要求,,经扩展2762和6264来达到存储器的要求,其结果通过显示器来进行显示输出。 3. 2. 2. 1 8031的片内结构8031是有8个部件组成,即CPU,时钟电路,数据存储器,并行口(P0~P3)串行口,定时计数器和中断系统,它们均由单一总线连接并被集成在一块半导体芯片上,即组成了单片微型计算机, 8031就是MCS-51系列单片机中的一种。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD06A.tmp.jpg 图 3-14 8031基本组成 CPU中央处理器: 中央处理器是8031的核心,它的功能是产生控制信号,把数据从存储器或输入口送到CPU或CPU数据写入存储器或送到输出端口。还可以对数据进行逻辑和算术的运算。 时钟电路: 8031内部有一个频率最大为12MHZ的时钟电路,它为单片机产生时钟序列,需要外接石英晶体做振荡器和微调电容。 内存: 内部存储器可分做程序存储器和数据存储器,但在8031中无片内程序存储器 。 定时/计数器: 8031有两个16位的定时/计数器,每个定时器/计数器都可以设置成定时的方式和计数的方式,但只能用其中的一个功能,以定时或计数结果对计算机进行控制。 并行I/O口: MCS-51有四个8位的并行I/O口,P0,P1,P2,P3,以实现数据的并行输出。 串行口: 它有一个全双工的串行口,它可以实现计算机间或单片机同其它外设之间的通信,该并行口功能较强,可以做为全双工异步通讯的收发器也可以作为同步移位器用。 中断控制系统: 8031有五个中断源,既外部中断两个,定时计数中断两个,串行中断一个,全部的中断分为高和低的两个输出级。 3. 2. 2. 2 8031的引脚图 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD07B.tmp.jpg 3-15 8031引脚图 8031的制作工艺为HMOS,采用40管脚双列直插DIP封装,引脚说明如下: VCC(40引脚)正常运行时提供电源。 VSS(20引脚)接地。 XTAL1(19引脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的震荡器,可以提供单片机的时钟信号,该引脚也是可以接外部的晶振的一个引脚,如采用外部振荡器时,对于8031而言此引脚应该接地。 XTAL2(18引脚)在内部,接至上述振荡器的反向输入端,当采用外部振荡器时, 对MCS51系列该引脚接收外部震荡信号,即把该信号直接接到内部时钟的输入端。 RST/VPD(9引脚)在振荡器运行时,在此引脚加上两个机器周期的电平将单片机复位,复位后应使此引脚电平保持不高于0.5V的低电平以保证8031正常工作。在掉电时,此引脚接备用电源VDD,以保持RAM数据不丢失,当BVCC低于规定的值时,而VPD在其规定的电压范围内时,VPD就向内部数据存储器提供备用电源。 ALE/PROG(30引脚)当8031访问外部存储器时,包括数据存储器和程序存储器,ALE9地址锁存允许0输入的脉冲的下沿用于锁存16位地址的低8位,在不访问外部存储器的时候,ALE仍有两个周期的正脉冲输出,其频率为振荡器的频率的1/6,在访问外存储器的是候,在两个周期中,ALE只出现一次,ALE断可驱动8个LS TTL负载,对于有片内EPROM的而言,在EPROM编程期间,此脚用于输入编程脉冲PROG。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD07C.tmp.jpg(29引脚)此脚输出为 单片机内访问外部程序存储器的读选通信号,在读取外部指令期间, PSEN非有两次在每个周期有效,在此期间,每当访问外部存储器时,两个有效的PSEN非将不再出现,同样这个引脚可驱动8个LSTTL负载。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD07D.tmp.jpg/VPP(31引脚)当file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD07E.tmp.jpg保持高电平时,单片机访问内部存储器,当PC值超过0FFFH时,将自动转向片外存储器。当file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD08E.tmp.jpg保持低电平时,则只访问外部程序存储器,对8031而言,此脚必须接地。 P0,P1,P2,P3:8031有四个并行口,在这四个并行口中,可以在任何一个输出数据,又可以从它们那得到数据,故它们都是双向的,每一个I/O口内部都有一个8位数据输出锁存器和一个8位数据输入缓冲器,各成为SFR中的一个,因此CPU数据从并行I/O口输出时可以得到锁存,数据输入时可以得到缓冲,但他们在功能和用途上的差异很大,P0和P2口内部均有个受控制器控制的二选一选择电路,故它们除可以用做通用I/O口以外还具有特殊的功能,P0口通常用做通用I/O口为CPU传送数据,P2口除了可以用做通用口以外,还具有第一功能,除P0口以外其余三个都是准双向口。 8031有一个全双工串行口,这个串行口既可以在程序下把CPU的8位并行数据变成串行数据一位一位的从发送数据线发送出去,也可以把串行数据接受进来变成并行数据给CPU,而且这种串行发送和接收可以单独进行也可以同时进行。 8031的 串行发送和接收利用了P3口的第二功能,利用P3.1做串行数据接收线,串行接口的电路结构还包括了串行口控制寄存器SCON,电源及波特率选择寄存器PCON和串行缓冲寄存器SBUF,他们都属于SFR,PCON和SCON用于设置串行口工作方式和确定数据发送和接收,SBUF用于存放欲发送的数据起到缓冲的作用。 3. 2. 2. 3 8031程序存储器 MCS-51系列单片机的内部ROM是不同的,8051有4K的ROM,而8751则是4K光可擦写EPROM,而我们所采用的8031则没有片内的ROM,但是无论那种型号的芯片都可以在片外扩展多达64K的片外程序存储器,外部程序存储器扩展的大小以满足系统要求即可,或有特殊要求或为了以后升级方便采用大容量的片外程序存储器。当外接程序存储器的时候,单片机通过P2口和P0口输出16位的地址,即可寻址的外部程序存储器单元的地址,使用ALE作为低8位地址锁存器信号,再由P0口读回指令的代码,用PSEN非作为外部程序存储器的选通信号。 单片机有一个程序计数器PC,它始终存着CPU要读取的机器码的所在地址,单片机工作时,PC自动加一,此时程序开始顺序执行,因为单片机程序 访问空间是64K,故需要16条地址线,当file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD08F.tmp.jpg接“0”则8031在片外程序存储器中读取指令,此时片外程序存储器从0000H开始编址,因为8031无片内程序存储器,故在此系统中file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD090.tmp.jpg必须接地使CPU到外部ROM中去寻址。 在程序存储器中有六个单元有特定的含义: 0000H单元:单片机复位后,PC=0000H即从此处开始执行指令。 0003H单元:外部中断0入口地址。 000BH单元:定时器0溢出中断入口地址。 0013H单元:外部中断1入口地址。 001BH单元:定时器溢出中断入口地址。 0023H单元:串行口中断入口地址。 使用时常在这些入口外安放一条绝对跳转指令,使程序跳转到拥护安排的中断处理程序的起始地址,或从0000H外执行一跳转指令,跳转到用户设计的初始程序入口。 3. 2. 2. 4 8031数据存储器数据存储器用于存放运算中间的结果、数据暂存、缓冲、标志位、待测程序等功能。 片内的128B的RAM地址为00H~7FH,供用户做RAM用,但是在这中间的前32单元,00H~1FH即引用地址寻址做用户RAM用,常常做工作寄存器区,分做四组,每组由8个单元组成通用寄存器R0~R7,任何时候都由其中一组作为当前工作寄存器,通过RS0,RS1的内容来决定选择哪一个工作寄存器。 低128字节中的20H~2FH共16字节可用位寻址方式访问各位,共128个位地址,30H~7FH共80个单元为用户RAM区,作堆栈或数据缓冲用,片内RAM不够用时,须扩展片外数据存储器。此时单片机通过P2口和P0口选出6位地址,使用ALE作低8位的锁存信号,再由P0口写入或读出数据。写时用file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0A1.tmp.jpg,读时用file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0A2.tmp.jpg做外部数据存储器的选通信号 3. 2. 2. 5 特殊功能寄存器SFR8031有21个专用寄存器,他们是用来管理CPU和I/O口以及内部逻辑部件的,在指令中专用寄存器是以存储单元方式被读写的,专用寄存器虽有名称,但寻址时都做专用寄存器用,它们的地址是与片内RAM的地址相连的。下面就专用寄存器作以简单的介绍: 累加器A:在绝大多数情况下它参与运算的一方并存放运算的结果。 寄存器B:进行乘除运算时,寄存器B有特定的用途,在乘时存放一个乘数以及积的最高位,A中存放另一个乘数以及积的低位。除法时,B中存放除数及余数,而在A中存放被除数和商,其他情况可作为普通寄存器用。 堆栈指针SP:在子程序调用或中断时,用来暂存数据和地址,它按先进后出的原则存储数据,它是一个八位寄存器它指出堆栈顶部在片内RAM中的位置,系统复位后,SP变成07H,使堆栈从00单元开始。; 数据指针DPTR:由两个字节组成,DPH字地址由83H,DPL由82H,存放一个16位的二进制数做地址用。 程序状态字PSW:七位用来表征各种标志,另一位无意义。 C AC FO RS1 RS0 OV -- P C:进位标志位,用于表示加减运算时最高位有无进位和借位,在加法运算中,若累加器最高位有进位则CY=1,否则CY=0,在减法时则有借位CY=1,否则CY=0,在执行算术逻辑运算时可以被硬件或软件置位或清除,CPU在进行移位操作也会影响该位。 AC:当进行加法或减法运算时并产生由低四位向高四位的进位或借位时,AC置1,否则清0。若AC=0时则在加减过程中A3没有向A4进位或借位,否则正好相反。 F0:F0常不是由机器来指令执行中形成的,而是用户根据程序的需要进行设置的,这个位一经确定就可通过软件测试来决定用户程序的流向。 RS1,RS0:8031有四个8位工作寄存器R0~R7,用户可以改变RS1和RS0的状态来决定R0~R7的物理地址。 OV:用以指示运算是否发生溢出,由机器执行指令自动形成,若机器在执行指令过程中累加器A超过8位,则OV=1否则为0。 P:用来来表示累加器A中的值为1的二进制位的奇偶数,若‘1’的个数为奇数P=1,为偶数P=0。在串行通信中常用奇偶校验数据传输结果的正确性。 3. 2. 2. 6 工作方式它的工作方式可以分做复位,掉电和低功耗方式等。 一、 复位方式 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图 (3-15a)中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图 (3-15a)中所示。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如图 (3-15b)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0A3.tmp.jpg 图3-16 单片机的复位电路 图(3-16a)中:Cl=10-30uF,R1=1kO
图(3-16b)中:C:=1uF,Rl=lkO,R2=10kO 二、掉电和低功耗方式 人们往往在程序运行中系统发生掉电的故障,使RAM和寄存器中的数据内容丢失,使人们丢失珍贵的数据而束手无策,8031有掉电保护,是先把有用的数据保存,再用备用电源进行供电。 3. 2. 3存储器的设计在8031芯片的外围电路中必须对其进行程序存储器的扩展,和根据系统的需要对其进行数据存储器的扩展。8031对程序存储器和数据存储器均可进行0000H~FFFFH的64K字节地址内容的有效寻址。在前面我们已经讲过8031外扩展存储器时,P2作高位的地址输出,P0作低位地址输出和数据线。 一、程序存储器的扩展 由于8031无内部ROM ,故扩展的程序存储器地址为0000H~FFFFH,考虑系统的需要,我们将8031的程序存储器扩展为4K EPROM,采用2764作为ROM芯片。 程序存储器扩展的容量大于256字节,故EPROM片内地址线除了由P0口经地址存储器提供低8位地址外,还需要由P2口提供若干条地址线,我们选用8K的2764 EPROM,故地址线应该是13条,因为系统中只扩展一片EPROM,所以不用片选信号,即EPROM 的file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0B4.tmp.jpg接地。在程序扩展中,我们选用的地址锁存器是74LS373 当三态门的file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0B5.tmp.jpg为低电平时,三态门处于导通状态,允许Q端输出,否则file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0B6.tmp.jpg为高电平,输出为三态门断开,输出端对外电路呈高阻态,所以在这里file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0B7.tmp.jpg为低电平,这时当G端为高电平时,锁存器输出和输入的状态是相同的,当G由高电平下落为低电平时,输入端1D~8D的数据锁入1Q~8Q中。 当2764处于读方式下file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0B8.tmp.jpg和file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0C8.tmp.jpg均为低电平有效。当VPP=+5V时,EPROM处于读工作方式:这时由给定地址信号决定被选中存储器单元信息。被读出到数据输出端D0~D7上。维持方式:当file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0C9.tmp.jpg为高电平时,VPP为+5V,EPROM处于低功耗方式,输出端均为高阻态,这与file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0CA.tmp.jpg输入无关。编程方式:在VPP加上+25V编程电源并在file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0CB.tmp.jpg和地端跨接一个0.1uf的电容以干扰电压的瞬间对2764进入编程方式,被编程的8位数据以并行方式送到数据输出断编程校验。 2764与8031的连接如图3-17所示 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0DC.tmp.jpg 图3-16 程序存储器的扩展 在选用芯片扩展的同时要考虑满足系统的要求的前提下,使电路简化,尽量选择大容量的芯片,以减少芯片组合的数量,在芯片型号的选择上选用满足应用环境要求的芯片型号。二、数据存储器的扩展 在单片机中有128 字节的数据存储器。但往往在系统的要求下片内RAM不能满足要求,用户只有选择扩展片外的数据存储器,以进行存储系统采集的数据。根据系统对数据采集的要求。我们采用8K静态RAM6264进行扩展。与动态RAM相比,静态RAM无须考虑保持数据而刷新电路,所以扩展电路较为简单且能满足系统的要求。 6264是8K*8位的静态随机存储器芯片。 它采用CMOS工艺制作,单一的+5V电源供电,额定功耗是200mW,典型存取时间200ms,为28线双列直插封装。 数据存储器的扩展与程序存储器的扩展类似,读写控制信号与8031的file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0DD.tmp.jpg和file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0DE.tmp.jpg相连。P0口通过74LS373与A0~A7相连,P2.0~P2.4与A8~A12相连,P2.7与file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0EE.tmp.jpg相连,P0口与D0~D7相连作为数据线,同时CE2接+5V电源,GND接地。如图3-18:所示: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD0EF.tmp.jpg 图3-18数据存储器的扩展 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD100.tmp.png 3. 2. 4数据存储器的掉电保护单片机系统内的RAM数据是非常容易丢失的,特别是一些珍贵的科研数据,一旦丢失后果不堪设想,因此掉电保护是必须要做的,一旦电源发生掉电现象,在掉电的瞬间系统能自动保护RAM中的数据和系统的运行状态,当电源恢复正常供电后能恢复到掉电前的工作状态。 3. 2. 5系统时钟的设计时钟电路是用来产生8031单片机工作时所必须的时钟信号,8031本身就是一个复杂的同步时序电路,为保证工作方式的实现,8031在唯一的时钟信号的控制下严格的按时序执行指令进行工作 ,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。 我们系统采用内部时钟方式来为系统提供时钟信号。8031内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器 电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。 file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD101.tmp.jpg 图3-19系统时钟 3. 3 显示与报警的设计3. 3. 1 显示电路 在单片机应用系统设计中,一般都是把键盘和显示器放在一起考虑。本设计是利用8031的串行口实现键盘/显示器接口。 当8031的串行口未作它用时,使用8031的串行口来外扩键盘/显示器。应用8031的串行口方式0的输出方式,在串行口外接移位寄存器74LS164,构成键盘/显示器接口,其硬件接口电路如图3-20所示: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD112.tmp.jpg 图3-20 键盘及显示与主机的硬件接口 图中下边的8个74LS164:74LS164(0)~74LS164(7)作为8位段码输出口,74LS138的Y0作为键输入线,Y2作为同步脉冲输出控制线。这种静态显示方式亮度大,很容易作到显示不闪烁。静态显示的优点是CPU不必频繁的为显示服务,因而主程序可不必扫描显示器,软件设计比较简单,从而使单片机有更多的时间处理其他事务。 3. 3. 2 报警电路在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。 本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,P3.2接晶体管基极输入端。当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。 图3-21是一个简单的使用三极管驱动的峰鸣音报警电路: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD113.tmp.jpg 图3-21 三极管驱动的峰鸣音报警电路 本设计是为在温湿度测量中对温湿度的上下限超出是的提示报警,接口位于单片机AT89C51的P3.2口,但温湿度过限时,P3.2口被置0,本系统开始工作。 第四章 软件设计温度控制主程序的设计应考虑以下问题:(1)键盘扫描、键码识别和温度显示;(2)温湿度采样,数字滤波;(3)越限报警和处理;(5)温度标度转换。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序两部分组成。 这里所需要注意的是标度变换,下面简单的介绍一下标度变换: 标度变换: 目的是要把实际采样的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区34H-3BH。对一般线性仪表来说,标度变换公式为: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD114.tmp.png file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD115.tmp.png 式中:A0为一次测量仪表的下限;Am为一次测量仪表的上限;AX为实际测量值; N0为仪表下限所对应的数字量;Nm为仪表上限所对应的数字量;NX为测量所得数字量。 主程序流程图: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD125.tmp.png T0中断流程图: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD136.tmp.png 温度采样子程序流程图: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD146.tmp.png 键扫描程序流程图: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD157.tmp.png 报警子程序流程图: file:///C:\Users\ADMINI~1.USE\AppData\Local\Temp\ksohtml\wpsD158.tmp.png 结束语 参考文献1 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999 2 沈德金,陈粤初.MCS-51系列单片机接口电路与应用程序实例.北京航空航天大学出版社,1990 3 胡汉才.单片机原理及接口技术.清华大学出版社,1996 4 李志全等.智能仪表设计原理及应用.国防工业出版社,1998.6 5 何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社,1990.1 6 李建民.单片机在温度控制系统中的应用.江汉大学学报,1996.6 7 张毅刚、彭喜元、姜守达、乔立岩.新编MCS-51系列单片机应用设计.哈尔滨工业大学出版社,2003.6 8 潘其光.常用测温仪表技术问答.国防工业出版社,1989 9 杨世成.信号放大电路.电子工业出版社,1995 10 高光天.仪表放大器应用.科学出版社,1995 11 潘立民,王燕芳.微型计算机控制技术.人民邮电出版社,1990 12 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,1995.1 13 陈汝全.实用微机与单片机控制技术.电子科技大学出版社,1995.7 14 王森.仪表使用数据手册.化学工业出版社,1998.7 15 李华. MCS-51系列单片机应用接口技术.北京航空航天大学出版,1993 16 何希才,虹敏.传感器应用接口电路.机械工业出版社,1997年 17 杨中华、汪蕙、刘润生.模拟集成电路的自动综合方法.科学出版,1999 18 <美>M考夫曼、AH塞德.电子计算手册.国防工业出版社,1985 19刘笃仁、韩保君.传感器原理及应用技术。机械工业出版社,2003.8 20 于微波、林晓梅、刘俊萍.微型机算计控制系统.吉林人民出版社,2002.5 21 童诗白.模拟电子技术基础。高等教育出版社,2001 22 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版社,2001.12 23 周航慈.单片机应用程序设计.北京航空航天大学出版社,1991.8 24王毅.单片机器件应用手册.人民邮电出版社,1994 25 <美>M考夫曼、AH塞德.电子计算手册.国防工业出版社,1985 26 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版社,2001.12 附录A 程序清单主程序
|