显示功能:在计算机终端和图形设备上以文字、图形等形式显示各个测控基站采集的信息和控制设备的状态。
数据通讯功能:主机和测控基站之间通过 RS-485 总线实现双向数据传输。
报警显示功能:当测控基站检测到温度值超标、可燃气体超标,立即将此信息发送给主机,主机接收到此信息后进行报警提示。
测控基站报警阈值设定功能:可以在主机上设定温度值超标的阈值,当温度值超过此阈值时才进行报警。
继电器控制功能:主机可发送命令驱动继电器动作,控制继电器的闭合让继电器处于需要的工作状态。
步进电机驱动功能:主机可发送命令驱动步进电机。可以驱动的项目如下:
正转;
反转
转速。
故障诊断功能:在主机上能实时反映测控基站的工作状态,自动诊断其是否在线并能进
行报警提示。
如果对您有帮助,那就很好了;
单片机源程序如下:
- /****************************************Copyright (c)****************************************************
- **
- **
- **
- **--------------File Info---------------------------------------------------------------------------------
- ** File name:
- ** Last modified Date:
- ** Last Version:
- ** Descriptions:
- **--------------------------------------------------------------------------------------------------------
- ** Created by: FiYu
- ** Created date: 2016-9-18
- ** Version: 1.0
- ** Descriptions: iM-Net温湿度监控系统(RS485总线)
- **--------------------------------------------------------------------------------------------------------
- ** Modified by: FiYu
- ** Modified date:
- ** Version:
- ** Descriptions:
- ** Rechecked by:
- **********************************************************************************************************/
- /****-----请阅读PDF文档 项目实战1:iM-Net温湿度监控系统(RS485总线)进行实验--***********/
- #include <intrins.h>
- #include <string.h>
- #include "uart.h"
- #include "improtocol.h"
- #include "gas.h"
- #include "DHT11.h"
- #include "relay.h"
- #include "timer.h"
- #define UART_BUF_MAX 30
- /**********************
- 全局变量
- ***********************/
- uint8_t DevStat[8];//LED(1) DHT11或DS18B20(4) MQ-2(1) 继电器(1) 步进电机(1)
- /***************************************************************************
- * 描 述 : 主函数
- * 入 参 : 无
- * 返回值 : 无
- **************************************************************************/
- int main()
- {
- uint16_t loop = 0;
- /////////////////////////////////////////////////
- //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为
- // 高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用
- //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
- // P2.3/P2.7/P3.7/P4.2/P4.4/P4.5
- /////////////////////////////////////////////////
- P0M1 = 0; P0M0 = 0; //设置P0.0~P0.7为准双向口
- P1M1 = 0; P1M0 = 0; //设置P1.0~P1.7为准双向口
- P2M0 = 0; P2M1 = 0; //设置P2.0~P2.7为准双向口
- P3M1 = 0; P3M0 = 0; //设置P3.0~P3.7为准双向口
- P4M1 = 0; P4M0 = 0; //设置P4.0~P4.7为准双向口
- P5M1 = 0; P5M0 = 0; //设置P5.0~P5.7为准双向口
- rs485_dr=0; // 控制485接收
- Timer0Init();
- Uart1_Init(); // 初始化串口
- Uart3_Init(); //初始化串口3
-
- EA = 1; // 总中断打开
- RELAY_PIN = RELAY_RELEASE;
-
- while(1)
- {
- loop++;
- if(Get_ConfigDev(MQ2_CONFIG_OS))//只有配置了MQ-2气体传感器的情况下,才会检测其状态
- {
- if(Check_MQ2_Stat() == GAS_ABNORMAL)DevStat[MQ2_STAT_OS] = GAS_ABNORMAL;
- else DevStat[MQ2_STAT_OS] = GAS_NORMAL;
- }
-
- if(UartReceFrame() == UART_FRAME_AVAIL)
- {
- IM_RS485_Handle();
- if(loop >= 20000)
- {
- if(Get_ConfigDev(DHT11_CONFIG_OS))DHT11(); //获取温湿度值,只有配置了DHT11,才会读取温度
- loop = 0;
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
项目实战1 - iM-Net温湿度监控系统(RS-485总线).rar
(3 MB, 下载次数: 123)
|