需要说明的是,在本系统6路电源信号中只有一路负电源信号符合ADC0809 0V~5v的输入特性,因此必须配备相应的反相电路,则通过LM358型运算放大器来完成。利用LM358还可以扩展监测范围(以降低测量精度为前提),这对于精度要求不太高的场合是可行的。图2中PC817型光耦用于检测负电压信号,当IN4为低电平信号时对应负电压信号,此时在MSl2232B的相应行位置给出“-”号标志,这不仅解决了正负电压同行显示的兼容性问题,而且减少了软件设计量(由6路简化为3路),同时使系统实时性相应提升。
2.4 温度传感器模块
DS18820是Dallas公司推出的l—Wire式数字温度传感器,它能实时采集现场环境的温度数据,并将相应的值转换为数字量输出。该温度传感器与AT89S52的连接如图3所示。
2.5 语音报警模块
该模块主要实现异常情况下告警信息的输出,只要配电箱电压信号的波动值超出一定的范围,音频告警装置即给出不同的频率信号使蜂鸣器发声,以提示相关操作人员注意。
3 系统软件设计
按RTOS系统的程序结构要求,软件工程主要由如下4部分组成:初始化、数据采集与A/D转换、显示子程序、温度监测与告警模块。
如果将初始化设置为任务0,那么除了要完成相应的硬件配置与变量赋初值外,还必须启动所有其他任务,另外,因为初始化过程只须进行一次,所以Task 0还应当删除其自身。具体的程序代码如下所示:
void Init(void)_task_Intia l
{
variable=0;
LcdInitialO;
ClrScreenO;
0s_create_task(AI)C0809I)ata);
os_create_task(DS18820Temperate);