参考程序
参考程序 /*************************************** config.h **************************************/ #ifndef _CONFIG_H #define _CONFIG_H /*通用头文件*/ #include<reg52.h> #include<intrins.h> #define ON 0 #define OFF 1 #define OFFSET 2 //上下限偏差 /*数据类型定义*/ typedef unsigned char uchar ;//8位无符号数 typedef unsigned int uint ;//8位无符号数 /*IO引脚分配定义*/ sbit AK_KEY=P1^0;//背光控制 sbit UP_KEY=P1^1; //增加_启动 sbit DN_KEY=P1^2;//减小_停止 sbit MA_KEY=P1^3;//手动_自动
sbit ALARM_LED=P1^4;//故障指示 sbit PUMP_LED=P1^5;//抽水指示 sbit MANUAL_LED=P1^6;//手动指示 sbit AUTO_LED=P1^7;//自动指示
sbit PUMP=P2^2;//水泵控制 sbit BUZZER=P2^3;//蜂鸣器报警
#define LCD1602_DB P0 //1602液晶数据口 sbit LCD1602_RS=P2^7; //1602液晶数据_指令选择 sbit LCD1602_RW=P2^6; //1602液晶读写选择 sbit LCD1602_E=P2^5; //1602液晶使能信号 sbit LCD1602_AK=P2^4; //1602液晶背光信号
sbit I2C_SCL=P2^1;//AD转换器 sbit I2C_SDA=P2^0; #endif /*************************************** MAIN.H ***************************************/ #ifndef _MAIN_H #define _MAIN_H
enum eStaSystem //系统运行状态枚举 { E_AUTO,E_MANUAL,E_ALARM }; //设置,自动,手动,故障报警 #ifndef _MAIN_C extern enum eStaSystem staSystem; #endif
void delayms(unsigned int t);//延时函数 void SysInit();//系统初始化 void SelfCheck();//系统自检
void AutoWork();//系统自动运行 void ShowLcd1602();//测量、状态显示 void Humidity();//土壤湿度检测 unsigned char GetADCValue(unsigned char chn); //AD转换 void ConfigTimer0(unsigned int ms); //T0 配置函数 #endif /*************************************** main.c ***************************************/ #define _MAIN_C #include"config.h" #include "main.h" #include "Keyboard.h" #include "I2C.h" #include "Lcd1602.h"
#define N 3 //AD采样次数 #define OFFSET 2//上限偏移量
enum eStaSystem staSystem=E_AUTO;//初始为自动状态 unsigned char T0RH=0; //定时器T0载值 unsigned char T0RL=0; unsigned char TestVal;//测量值 unsigned char cnt; //蜂鸣器报警15次 //---------------------------------------------------------------------------------- void main () { SysInit(); SelfCheck(); while(1) { KeyAction(); AutoWork(); }
} /**************************************** 函数功能:系统初始化 入口参数:无 *****************************************/ void SysInit() { AK_KEY=OFF;//按键IO口初始化 UP_KEY=OFF;// DN_KEY=OFF; MA_KEY=OFF;
|
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.