图4-2 4LED引脚连接图
图4-3 89C51引脚连接图
4.1.2 报警电路
在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。
本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,P3.2接晶体管基极输入端。当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。
图4-4是一个简单的使用三极管驱动的峰鸣音报警电路:
图4-4 三极管驱动的峰鸣音报警电路
本设计是为在温湿度测量中对温湿度的上下限超出是的提示报警,接口位于单片机AT89C51的P3.2口,但温湿度过限时,P3.2口被置0,本系统开始工作。
5 软件设计
5.1标度变换的实现
温湿度主程序的设计应考虑以下问题:(1)温度显示;(2)温湿度采样,数字滤波;(3)越限报警(5)温度标度转换。通常,符合上述功能的温湿度监测程序由主程序和T0中断服务程序两部分组成。
这里所需要注意的是标度变换,下面简单的介绍一下标度变换: 标度变换的目的是要把实际采样的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区34H-3BH。对一般线性仪表来说,标度变换公式为:
测量值;
N0为仪表下限所对应的数字量;Nm为仪表上限所对应的数字量;NX为测量所得数字量。
软件部分除主程序外,还包含有中断服务、测量、显示、A/D 转换等功能模块。由于系统控制过程是由中断服务程序实现的,本文给出了中断服务程序流程图(见图4-2),从中可以看到整个程序设计的思路和概貌。
AX?A0?(Am?A0)NX?N0Nm?N0式中:A0为一次测量仪表的下限;Am为一次测量仪表的上限;AX为实际
5.2 主程序流程图
软件设计的主程序流程图如图5-1所示。
第一步,先设置堆栈,堆栈完后清标志,清除暂时存储的数据,最后再清显示的数字。
第二步进行T0初始化,然后进行串行口初始化。 第三步进行CPU开中断。
第四步进行扫描键盘之后进行温湿度采样。 第五步显示采集所得到的温湿度数据。
第六步循环进行温湿度采样,使得可以隔一段时间进行温湿度数据显示更新。
开始设堆栈清标志清暂存清显示T0初始化串行口初始化CPU开中断扫描键盘温度采样显示图5-1主程序流程图
5.3 T0中断流程图
软件的中断流程图如图5-2所示。
第一步先从中断服务程序入口进入,然后保护现场,送定时器初值,最后进行记时处理。
第二步进行温湿度采样,接着将温湿度值送显示,通过指针取设定值,与已经设定好的设定值进行比较,采用控制算法。
第三步输出温、湿度控制量。
图5-2 中断服务程序框图