⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 control.c

📁 空调控制器
💻 C
字号:

#include	     <reg52.h>
#include	     <ctype.h>
#include	     <stdlib.h>
#include	     <stdio.h>
#include	     <math.h>
#include         <intrins.h>
#include         "subddc.h"
//      0           1          2          3              4                        5                 6
//  delay_time0,dleay_time1,set_temper,temper_repair,start_bit_temper_repair,defrost_delay_time0,defrost_delay_time1,
//         0        1               2
//  defrost_time0,defrost_time1,defrost_temper,

//  多长时间内收不到数据,错误指示灯亮(10秒)
#define          NORECE_TIME_MAX      10
#define          TEMPER_MIN           102
#define          TEMPER_MAX           214
#define          HUMIDITY_MIN         15
#define          HUMIDITY_MAX         100
#define          TRAN_WAIT            15
//  三次发送的总时间不能超过100MS
#define         TRAN_ALL_TIME         100
#define         TRAN_AGAIN_MAX        30
//  接收到数据进行回送时,延迟的时间不超过10MS
#define         TRAN_DATA             3
#define         INPUT_COUNT_MAX       7
//   其它的输出延迟 0.1s
#define         OUTPUT_COUNT_MAX      100
//  压缩机输出延迟 15s
#define         COMPRESSOR_DELAY_MAX  150
#define         TEMPER_OFFSET         2
//
#define         START_RUN_MAX         2
//   水泵和风扇延迟5S后判断两个设备是否确认开启
#define         START_CHECK_MAX       5
//      以秒为单位
#define         STOP_DELAY_MAX        15
//   压缩机延迟5S后  判断压缩机开启标志
#define         YSJBH_DELAY_MAX       5
#define         TEMPER_HIGH_MAX       60
#define         TEMPER_LOW_MIN        1

#define         delay_time0          ram_wr24c02[0]
#define         delay_time1          ram_wr24c02[1]
#define         set_temper           ram_wr24c02[2]
#define         temper_repair        ram_wr24c02[3]
#define         start_temper         ram_wr24c02[4]

#define         defrost_delay_time0  ram_wr24c02[5]
#define         defrost_delay_time1  ram_wr24c02[6]
#define         defrost_time0        ram_wr24c02[7]
#define         defrost_time1        ram_wr24c02[8]
#define         defrost_temper       ram_wr24c02[9]
#define         last_day             ram_wr24c02[10]




//--------------------------------------------
unsigned char code temper_table[]={
// -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0

//  0  1   2   3   4   5   6   7   8   9   10  11  12 13  14  15  16  17  18  19  20
  103,106,108,111,114,117,119,122,125,128,130,133,136,139,141,144,147,150,152,155,158,
//  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40
    161,163,166,169,172,174,177,180,183,185,188,191,194,196,199,202,205,207,210,213
    };

unsigned char code humidity_table[]={
   0x00,0x00,
}  ;

// this is write and read  24c02 and 8563 sub
extern void Read24c02(unsigned char idata *RamAddress,unsigned char RomAddress,unsigned char bytes);
extern void Write24c02(unsigned char idata *RamAddress,unsigned char RomAddress,unsigned char bytes);

// this is for communication checksum
extern unsigned char  crc8(unsigned char idata *ptr,unsigned char len);
extern unsigned int   read1543(unsigned char byte);
// this is for key_scan and key_deal


unsigned char  bdata status_ram0,status_ram1;
unsigned char  bdata protect_ram0,protect_ram1;
//  define IO port
sbit            work_bit=status_ram0^0;     //  下位机正处于工作状态

sbit            lj_bit=status_ram1^0;       //  冷机的标志位
sbit            sb_bit=status_ram1^1;       //  水泵的标志位
sbit            f1_bit=status_ram1^2;       //  阀1的标志位
sbit            f2_bit=status_ram1^3;       //  阀2的标志位
sbit            heat_bit=status_ram1^4;     //  加热标志
sbit            defrost_bit=status_ram1^5;  //  除霜标志
sbit            fan_bit=status_ram1^6;      //  风扇标志


//  define protect port

sbit            qsbh_bit=protect_ram0^0;
sbit            gybh_bit=protect_ram0^1;
sbit            dybh_bit=protect_ram0^2;
sbit            yybh_bit=protect_ram0^3;
sbit            qxbh_bit=protect_ram0^4;
sbit            ysjbh_bit=protect_ram0^5;
sbit            fjbh_bit=protect_ram0^6;
sbit            sbbh_bit=protect_ram0^7;


bit             sec_bit;                //   此标志位专为通讯而设置
bit             write_bit_24c02;

bit             rece_bit_success;  //  下位机接收的数据正确
bit             rece_bit_fail ;    //  下位机接受的数据是错误

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -