
第一章 绪论 1
1.1 选题背景 1
1.2 计要求设 2
第二章 方案的比较和论证 2
2. 1温度传感器的选择 2
2. 2 湿度传感器的选择 3
2. 3 信号采集通道的选择 4
第三章 系统总体设计 5
3.1 信号采集 5
3.1.1 温度传感器 5
3. 1. 2 湿度传感器 8
3.1.3 多路开关 11
3.2 信号分析与处理 12
3.2.1 A/D转换 12
3. 2. 2单片机ATS52 14
3. 4显示与报警的设计 23
3. 4. 1 显示电路 23
3. 4. 2 报警电路 23
第四章 软件设计 24
主程序流程图: 25
T0中断流程图: 26
采样子程序流程图: 27
键扫描程序流程图: 28
报警子程序流程图: 29
第一章 绪论
1.1 选题背景
仓库日常工作的重要内容包括防潮、防霉、防腐、防爆等,这也是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量装置。
1.2 计要求设
一、基本功能
1. 检测温度、湿度
2. 显示温度、湿度
3. 过限报警
二、主要技术参数
1. 温度检测范围 :-30℃-+50℃
2. 测量精度 :0.5℃
3. 湿度检测范围 :10%-100%RH
4. 检测精度 :0.5%RH
5. 显示方式 :温度:四位显示 湿度:四位显示
6. 报警方式 :三极管驱动的蜂鸣音报警
三、系统总体框图,硬件全图,必要程序框图及代码
第二章 方案的比较和论证
当将单片机用作测控系统时,系统总要有被测信号懂得输入通道,由计算机拾取必要的输入信息。对于测量系统而言,如何准确获得被测信号是其核心任务;而对测控系统来讲,对被控对象状态的测试和对控制条件的监察也是不可缺少的环节。
传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。
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℃测温。
方案二:采用LM35, LM35系列是精密集成电路温度传感器,其输出的电压线性地与摄氏温度成正比。因此 ,LM35比按绝对温标校准的线性温度传感器优越感得多。LM35系列传感器生产制作时已经过校准,输出电压与摄氏温度一一对应,使用极为方便。灵敏度为10.0mV/℃,精度在0.4℃至0.8℃(-55℃至+150℃温度范围内),重复性好,低输出阻抗,线性输出和内部精密校准使其与读出或控制电路接口简单和方便,可单电源和正负电源工作。
综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。
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)软件比较复杂。
综合比较方案一与方案二,方案二更为适合于本设计系统对于模拟量输入的要求,比较其框图,方案二更具备硬件简单的突出优点,所以选择方案二作为信号的输入通道。
图2-1多路并行模拟量输入通道
图2-2多路分时的模拟量输入通道
第三章 系统总体设计
本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,我设计了以8031基本系统为核心的一套检测系统,其中包括A/D转换、单片机、复位电路、温度检测、湿度检测、键盘及显示、报警电路、系统软件等部分的设计。
图3-1 系统总体框图
本设计由信号采集、信号分析和信号处理三个部分组成的。
(一) 信号采集 由LM35、HS1100及多路开关CD4051组成;
(二) 信号分析 由A/D转换器AD574A、单片机ATS52基本系统组成;
(三) 信号处理 由串行口LED显示器和报警系统等组成。
3.1 信号采集
3.1.1 温度传感器
LM35系列精密摄氏温度传感器(美国NS公司产品)
一、简述
LM35系列是精密集成电路温度传感器,其输出的电压线性地与摄氏温度成正比。因此,LM35比按绝对温标校准的线性温度传感器优越感得多。LM35系列传感器生产制作时已经过校准,输出电压与摄氏温度一一对应,使用极为方便。灵敏度为10.0mV/℃,精度在0.4℃至0.8℃(-55℃至+150℃温度范围内),重复性好,低输出阻抗,线性输出和内部精密校准使其与读出或控制电路接口简单和方便,可单电源和正负电源工作。
二、特性
1、在摄氏温度下直接校准
2、+10.0mV/℃的线性刻度系数
3、确保0.5℃的精度(在25℃)
4、额定温度范围为-55℃至+150℃
5、适合于远程应用
6、工作电压范围宽,4V至30V
7、低功耗,小于60uA
8、在静止空气中,自热效应低,小于0.08℃的自热
9、非线性仅为±1/4℃
10输出阻抗,通过1mA电流时仅为0.1Ω
LM35 是由国半公司所生产的温度传感器,其输出电压与摄氏温标呈线性关系,转换公式如式,0 时输出为0V,每升高1℃,输出电压增加10mV。
LM35 有多种不同封装型式,外观如图所示。在常温下,LM35 不需要额外的校准处理即可达到 ±1/4℃的准确率。其电源供应模式有单电源与正负双电源两种,其接脚如图所示,正负双电源的供电模式可提供负温度的量测;两种接法的静止电流-温度关系如图 所示,在静止温度中自热效应低(0.08℃),单电源模式在25℃下静止电流约50μA,工作电压较宽,可在4—20V的供电电压范围内正常工作非常省电。
TO-92封装引脚图 SO-8 IC式封装引脚图
TO-46金属罐形封装引脚图 TO-220 塑料封装引脚图
供电电压35V到-0.2V
输出电压6V至-1.0V
输出电流10mA
指定工作温度范围
LM35A -55℃ to +150℃
LM35C, LM35CA -40℃ to +110℃
LM35D 0℃ to +100℃
| 封装形式与型号关系 | |
| TO-46金属罐形封装引脚图 | LM35H,LM35AH,LM35CH,LM35CAH,LM35DH |
| TO-220 塑料封装引脚图 | LM35DT |
| TO-92封装引脚图 | LM35CZ,LM35CAZ LM35DZ |
| SO-8 IC式封装引脚图 | LM35DM |
传感器电路原理图
LM35是一种内部电路已校准的集成温度传感器,其输出电压与摄氏温度成正比,线性度好,灵敏度高,精度适中.其输出灵敏度为10.0MV/℃,精度达0.5℃.其测量范围为-55——150℃。在静止温度中自热效应低(0.08℃).工作电压较宽,可在4——20V的供电电压范围内正常工作,且耗电极省,工作电流一般小于60uA.输出阻抗低,在1MA负载时为0.1Ω。
3. 1. 2 湿度传感器
测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。下面 介绍HS1100/HS1101湿度传感器及其应用。
一、特点
不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。
图3-7a为湿敏电容工作的温、湿度范围。图3-7b为湿度-电容响应曲线。
图3-7a、湿敏电容工作的温、湿度范围 图3-7b、湿度-电容响应曲线。
相对湿度在1%---100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5S;温度系数为0.04 pF/℃。可见精度是较高的。
二、湿度测量电路
HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常有两种方法:一是将该湿敏电容置于运方与租蓉组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再A/D转换为数字信号;另一种是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。
本设计选用它与NE555组成一方波发生电路,湿度改变对应频率的变化,用单片机采集频率值进行转化得出湿度值,具体的湿度检测电路如图3-10所示,把HS1101和NE555同时接入电路中的电路设计原理图如图3-10所示。NE555电路功能的简单概括为:当6端和2端同时输入为“1”时,3端输出为“0”;当6端和2端同时输入为“0”时,3端输出为“1”。在此电路中,555定时器正是根据这一功能用作多稳态触发器输出频率信号的。
频率输出的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、空气湿度与电压频率的典型值
三、多路检测信号的实现
本设计系统为八路的湿度信号采集,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图3-8所示
图3-8八路分时的模拟量信号采集电路硬件接口
3.1.3 多路开关
多路开关,有称“多路模拟转换器”。多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。反之,当模拟信号有公共输出端输入时 ,作为信号分离器,实现了1线到n线的分离功能。因此,多路开关通常是一种具有双向能力的器件。
在本设计中,由于采用了温湿度双量控制,所以在信号采集中将有两个模拟量被提取,这时选用多路开关就是很必要的。
我选用的是CD4051多路开关,它是一种单片、COMS、8通道开关。该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。CD4051的内部原理框图如图3-9所示。
图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
| 输入状态 | 接通 通道 | 输入状态 | 接通 通道 | ||||||
| INH | C | B | A | INH | C | B | A | ||
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 5 |
| 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 6 |
| 0 | 0 | 1 | 0 | 2 | 0 | 1 | 1 | 1 | 7 |
| 0 | 0 | 1 | 1 | 3 | 1 | x | x | x | 均不显示 |
| 0 | 1 | 0 | 0 | 4 | |||||
3.2.1 A/D转换
一.A/D转换器的特点
为了把温度、湿度检测电路测出的模拟信号转换成数字量送CPU处理,本系统选用了一种高性能的12位逐次逼进式A/D转换器AD574A。由于AD574A只有一路输入,而本系统检测的多路温度与湿度信号输入,故选用多路选择电子开关,可输入多路模拟量。
AD574A A/D 转换器转换时间为25μs,线性误差为±1/2LSB,内部有时钟脉冲源和基准电压源,单通道单极性或双极性电压输入,采用28脚双立直插式封装。AD574A由12位A/D转换器,控制逻辑,三态输出锁存缓冲器,10V基准电压源四部分构成。
(1) 12位A/D转换器
可以单极性也可以双极性的。单极性应用时,BIPOFF接0V,双极性时接10V。量程可以是10V也可以是20V。 输入信号在10V范围内变化时,将输入信号接至10V(IN);输入信号在20V范围内变化时,将输入信号接至20V(IN); 所以量化单位相应的就是10V/(2^12)和20V/(2^12)
(2)三态输出锁存缓冲器
用于存放12位转换结果D(D=0~2^12-1)。D的输出方式有两种, 引脚12/8=1时(8的上面有一横杠),D的D(11)~D(0)并行输出; 引脚12/8=0时(8的上面有一横杠),D的高8位与低4位分时输出。
(3)逻辑控制
任务包括:启动转换、控制转换过程和控制转换结果D的输出。 CE CS(即CS上面一横杠) R/C(C上一横杠) 12/8(8的上面有一横杠)
A(0) 操作功能 1 0 0 X 0 启动12位转换
1 0 0 0 0 启动8位转换
1 0 1 1 X 输出12位数字
1 0 1 0 0 输出高8位数字
1 0 1 0 1 输出低4位数字
0 X X X X 无操作
X 1 X X X 无操作 ;
3. 2. 2单片机ATS52
为了设计此系统,我们采用了ATS52单片机作为控制芯片,在前向通道中是一个非电信号的电量采集过程。它由传感器采集非电信号,从传感器出来经过功率放大过程,使信号放大,再经过模/数转换成为计算机能识别的数字信号,再送入计算机系统的相应端口。
ATS52是美国AMTEL公司生产的一种低功耗、宽电压、高性能8位CMOS微控制器,具有8k在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器,在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,能为众多嵌人式控制应用系统提供灵活、有效的解决方案。AT系列单片机的基本组成如图所示。
ATS52具有以下主要功能特性:
(1)一个8位微处理器(CPU)。这是单片机的核心,负责读入和分析每条指令,根据每条指令的功能要求,控制单片机各个部件具体地执行指令操作。主要包括运算器和控制器两大部分.
(2)256字节的数据存储器(RAM)和32个特殊功能寄存器(SFR),用于存放可读/写的数据。
(3)8k字节的内部程序存储器(Flash ROM)。用于存放程序、原始数据或表格。
(4)3个16位定时/计数器。用以对外部事件进行计数,也可用作定时器。
(5)4个8位可编程的输入/输出(I/O)并行端口,每个端口既可做输入。也可做输出.
(6)一个全双工异步串行口(UART)串行通道,用于数据的串行通讯。
(7)6个中断源2个优先级:两个外部中断(INT0 和 INT1),三个定时中断(定时器0、1、2)和一个串行中断。
(8)可寻址各kB的外部程序存储器、数据存储器空间。
(9)有位寻址功能,适于布尔处理的位处理机。
(10)片内振荡器即内部时钟电路,石英晶体和微调电容需要外接。最高允许振荡预率为33MHz。
(11)可降至0Hz静态逻辑操作,具有支持2种软件可选择节电工作方式,即休闲方式(idle mode)及掉电方式(power down mode)。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
(12)ISP在线编程功能。
(13)内部集成看门狗计时器(WDT)。
(14)双数据指示器。
(15)电源关闭标记。
(16)全新的加密算法。
(17)向下完全兼容MCS-51全部子系列产品,兼容MCS-51指令系统。
引脚说明
ATS52引脚图 DIP封装
VCC : 电源
GND: 地
P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5 MOSI(在系统编程用)
P1.6 MISO(在系统编程用)
P1.7 SCK(在系统编程用)
P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为ATS52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。
端口引脚 第二功能:
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 INTO(外中断0)
P3.3 INT1(外中断1)
P3.4 TO(定时/计数器0)
P3.5 T1(定时/计数器1)
P3.6 WR(外部数据存储器写选通)
P3.7 RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当ATS52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:振荡器反相放大器的输出端。
存储器结构
MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以K寻址。
程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。
对于 S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。
数据存储器:ATS52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV 0A0H , #data使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 MOV @R0 , #data堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。
特殊功能寄存器SFR
累加器A:在绝大多数情况下它参与运算的一方并存放运算的结果。
寄存器B:进行乘除运算时,寄存器B有特定的用途,在乘时存放一个乘数以及积的最高位,A中存放另一个乘数以及积的低位。除法时,B中存放除数及余数,而在A中存放被除数和商,其他情况可作为普通寄存器用。
堆栈指针SP:在子程序调用或中断时,用来暂存数据和地址,它按先进后出的原则存储数据,它是一个八位寄存器它指出堆栈顶部在片内RAM中的位置,系统复位后,SP变成07H,使堆栈从00单元开始。;
数据指针DPTR:由两个字节组成,DPH字地址由83H,DPL由82H,存放一个16位的二进制数做地址用。
程序状态字PSW:七位用来表征各种标志,另一位无意义。
CY AC FO RS1 RS0 OV -- P
CY:进位标志位,用于表示加减运算时最高位有无进位和借位,在加法运算中,若累加器最高位有进位则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-3所示:
复位电路
在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。
那么,开机的时候为什么为复位?在电路图中,电容的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在单片机启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
按键按下的时候为什么会复位?在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。
总结: (1)复位电路的原理是单片机RST引脚接收到2US以上的高电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。 (2)按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
时钟引脚为XTAL1、XTAL2,时钟引脚外接晶体与片内的反向放大器构成了一个振荡器,它提供单片机的时钟控制信号,时钟引脚也可外接晶体振荡器。
XTAL1(19脚):接外部晶体的一个引脚。在单片机内部,它是一个反向放大器的输入端。这个放大器构成了片内振荡器。当采用外接晶体振荡器时,此引脚应接地。 XTAL2(18脚):接外部晶体的另一端,在单片机内部接至内部反向放大器的输出端。若采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。
本系统采用晶振时钟电路。外部晶振以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格要求,但电容的大小多少会影响振荡器频率的高低,振荡器的稳定性,起振的快速性和稳定性。外接晶振时,C1和C2通常选择30pf,晶振采用12MHz。本设计时钟电路如下图3-4所示。
3.3 按键和报警电路
本设计采用7个按键完成对温、湿度上下限的设定。7个按键的功能分别是:
(1)选择温度进行设限,
(2)选择湿度进行设限,
(3)选择温度或湿度上限进行改变,
(4)选择温度或湿度下限进行改变,
(5)加1,
(6)减1,
(7)退出设定界面,显示检测到的温度、湿度。
按 键 电 路
在监测系统中,对于重要的参数一般都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把单片机采集到的数据单进行数据处理、数字滤波,标度变换之后,与单片机中该参数上下限设定值进行比较,如果高于上限值或低于下限值则进行报警,否则就作为采样的正常值,进行显示。 本设计采用蜂鸣器报警电路。蜂鸣器报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过单片机的1根口线经驱动器驱动蜂鸣器发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在本设计中,P3.2接晶体管基极输入端。当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。
3. 4显示与报警的设计
3. 4. 1 显示电路
在单片机应用系统设计中,一般都是把键盘和显示器放在一起考虑。本设计是利用8031的串行口实现键盘/显示器接口。
当8031的串行口未作它用时,使用8031的串行口来外扩键盘/显示器。应用8031的串行口方式0的输出方式,在串行口外接移位寄存器74LS1,构成键盘/显示器接口,其硬件接口电路如图3-20所示:
图3-20 键盘及显示与主机的硬件接口
图中下边的8个74LS1:74LS1(0)~74LS1(7)作为8位段码输出口,74LS138的Y0作为键输入线,Y2作为同步脉冲输出控制线。这种静态显示方式亮度大,很容易作到显示不闪烁。静态显示的优点是CPU不必频繁的为显示服务,因而主程序可不必扫描显示器,软件设计比较简单,从而使单片机有更多的时间处理其他事务。
3. 4. 2 报警电路
在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。
本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过ATS52的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,P3.2接晶体管基极输入端。当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。
图3-21是一个简单的使用三极管驱动的峰鸣音报警电路:
图3-21 三极管驱动的峰鸣音报警电路
本设计是为在温湿度测量中对温湿度的上下限超出是的提示报警,接口位于单片机ATC51的P3.2口,但温湿度过限时,P3.2口被置0,本系统开始工作。
第四章 软件设计
温度控制主程序的设计应考虑以下问题:(1)键盘扫描、键码识别和温度显示;(2)温湿度采样,数字滤波;(3)越限报警和处理;(5)温度标度转换。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序两部分组成。
这里所需要注意的是标度变换,下面简单的介绍一下标度变换:
标度变换:
目的是要把实际采样的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区34H-3BH。对一般线性仪表来说,标度变换公式为:
式中:A0为一次测量仪表的下限;Am为一次测量仪表的上限;AX为实际测量值;
N0为仪表下限所对应的数字量;Nm为仪表上限所对应的数字量;NX为测量所得数字量。
主程序流程图:
T0中断流程图:
采样子程序流程图:
键扫描程序流程图:
报警子程序流程图:
