HB70X环保监测仪部分代码 点击:235 | 回复:1



steelen

    
  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2015-01-27 14:43:10
楼主

在一个仅有8K RAM的16为单片机上实现的HJ212协议
而且得到过非常广泛的应用,下面把代码贴出来,供大家参考这是2007年的产品,

好像现在也没有什么用途了

慢慢连载中




steelen

  • 精华:1帖
  • 求助:2帖
  • 帖子:164帖 | 1497回
  • 年度积分:4
  • 历史总积分:5171
  • 注册:2002年3月15日
发表于:2015-01-27 14:45:49
1楼

#include "cpu.h"
#include "types.h"
#include "const.h"
#include "var.h"
#include "sub.h"
#include <ctype.h>
#include <stdio.h>
#include <string.h>


#define LOGIN_TMR       900


void sio1_led_on(void);
INT16U  seek_day(INT16U year,INT16U day );
INT16U  seek_time (INT16U tmp_pos,INT16U day,INT16U min);

INT16U  cmp_str(INT8U *buf,INT8U *dest, INT16U lenth );
INT16U  read_int ( INT8U *buf,INT8U lenth );
INT16U  read_hex ( INT8U *buf,INT8U lenth );
INT16U  write_int (INT8U *buf,INT16U tmp_data );
INT16U  write_int5(INT8U *buf,INT16U tmp_data );
INT16U write_int3 (INT8U *buf,INT16U tmp_data );
INT16U  write_lenth (INT8U *buf,INT16U tmp_data );
INT16U  write_hex (INT8U *buf,INT16U tmp_data );
FP32 asc_read_float(INT8U *p );
INT8U at45db_rd (INT16U page_adr,\
                 INT16U in_page_adr,\
                 INT8U *buf,\
                 INT16U lenth );
void dc_get_avr( INT8U type );

const INT8U *syscode_tab[]=
{
  "ST=21;",
  "ST=22;",
  "ST=23;",
  "ST=31;",
  "ST=32;",
  "ST=33;",
  "ST=34;",
  "ST=35;",
  "ST=36;",
  "ST=37;",
  "ST=38;",
  "ST=41;",
  "ST=91;"
};
const INT8U *polution_tab[]=
{
"B03",  //0  噪声  单位 DB  N3.1
"L10",  //1  噪声  单位 DB  N3.1
"L5",   //2  噪声  单位 DB  N3.1
"L50",  //3  噪声  单位 DB  N3.1
"L90",  //4  噪声  单位 DB  N3.1
"L95",  //5  噪声  单位 DB  N3.1
"Ld",   //6  噪声  单位 DB  N3.1
"Ldn",  //7  噪声  单位 DB  N3.1
"Leq",  //8  噪声  单位 DB  N3.1
"LMn",  //9  噪声  单位 DB  N3.1
"LMx",  //10 噪声  单位 DB  N3.1
"Ln",   //11 噪声  单位 DB  N3.1
//---------------------------
"S01",  //12  O2含量   废气  %  N3.1
"S02",  //13  烟气流速 米/秒    N5.2
"S03",  //14  烟气温度 摄氏度   N3.1
"S04",  //15  烟气动压 MPa      N4.2
"S05",  //16  烟气湿度  %       N3.1
"S06",  //17  制冷温度  摄氏度   N3.1
"S07",  //18  烟道截面积  M2     N4.2
"S08",  //19   烟气压力   MPa      N4.2
"B02",  //20
//---------------------------
"01",   //21   烟尘      mg/M3    N5.2
"02",   //22   二氧化硫  mg/M3    N5.2
"03",   //23   氮氧化物  mg/M3    N5.3
"04",   //24   一氧化碳  mg/M3    N2.3
"05",   //25   硫化氢    mg/M3    N3.2
"06",   //26   氟化物    mg/M3    N2.3
"07",   //27   氰化物(含氰化氢) mg/M3   N3.3
"08",   //28   氯化氢    mg/M3    N4.3
"09",   //29   沥青烟    mg/M3    N4.3
"10",   //30   氨        mg/M3    N4.3
"11",   //31   氯气      mg/M3    N4.3
"12",   //32   二硫化碳  mg/M3    N4.3
"13",   //33   硫醇      mg/M3    N4.3
"14",   //34   硫酸雾    mg/M3    N4.3
"15",   //35   铬酸雾    mg/M3    N2.4
"16",   //36   苯系物    mg/M3    N4.2
"17",   //37   甲苯      mg/M3    N4.2
"18",   //38   二甲苯    mg/M3    N4.2
"19",   //39   甲醛      mg/M3    N3.3
"20",   //40   苯并(a)芘 mg/M3    N3.6
"21",   //41   苯氨类    mg/M3    N4.3
"22",   //42   硝基苯类  mg/M3    N3.4
"23",   //43   氯苯类    mg/M3    N4.3
"24",   //44   光气      mg/M3    N3.3
"25",   //45   碳氢化合物(含非甲烷总烃) mg/M3   N5.2
"26",   //46   乙醛      mg/M3    N4.3
"27",   //47   酚类      mg/M3    N3.3
"28",   //48   甲醇      mg/M3    N5.2
"29",   //49   氯乙烯    mg/M3    N4.3
"30",   //50   二氧化碳  mg/M3    N4.3
//-------------------------------------------------
"31",   //51   汞及其化合物 mg/M3   N4.4
"32",   //52   铅及其化合物 mg/M3   N2.4
"33",   //53   镉及其化合物 mg/M3   N3.4
"34",   //54   锡及其化合物 mg/M3   N4.3
"35",   //55   镍及其化合物 mg/M3   N3.3
"36",   //56   铍及其化合物 mg/M3   N4.4
"37",   //57   林格曼黑度           N1
"99",   //58   其他污染物
//---------------------------------------------------
"B01",  //59   污水
"001",  //60   PH值                 N2.1
"002",  //61   色度       色度单位  N5.1
"003",  //62   悬浮物     mg/l     N5.1
"010",  //63   生化需氧量(BOD5)   mg/l  N5.1
"011",  //64   化学需氧量(CODcr)  mg/l  N6.1
"015",  //65   总有机碳     mg/l    N3.2
"020",  //66   总汞         mg/l    N2.3
"021",  //67   烷基汞       mg/l    N2.1
"022",  //68   总镉         mg/l    N2.2
"023",  //69   总铬         mg/l    N3.2
"024",  //70   六价铬   mg/l    N2.2
"025",  //71   三价铬   mg/l    N3.2
"026",  //72   总砷     mg/l    N2.2
"027",  //73   总铅     mg/l    N3.2
"028",  //74   总镍     mg/l    N3.2
"029",  //75   总铜     mg/l    N3.2
"030",  //76   总锌     mg/l    N3.2
"031",  //77   总锰     mg/l    N3.2
"032",  //78   总铁     mg/l    N3.2
"033",  //79   总银     mg/l    N2.2
"034",  //80   总铍     mg/l    N2.3
"035",  //81   总硒     mg/l    N2.2
"036",  //82   锡       mg/l    N3.6
"037",  //83   硼       mg/l    N3.6
"038",  //84   钼       mg/l    N3.6
"039",  //85   钡       mg/l    N3.6
"040",  //86   钴       mg/l    N3.6
"041",  //87   铊       mg/l    N3.6
"060",  //88   氨氮     mg/l    N2.3
"061",  //89   有机氮   mg/l    N3.2
"065",  //90   总氮     mg/l    N3.2
"080",  //91   石油类   mg/l    N3.2
"101",  //92   总磷     mg/l    N3.2

"P1",   //93   模拟量1
"P2",   //94   模拟量2
"P3",   //95   模拟量3
"P4",   //96   模拟量4
"P5",   //97   模拟量5
"P6",   //98   模拟量6
"P7",   //99   模拟量7
"P8",   //100   模拟量8
"P9",   //101   模拟量 9
"P10",  //102   模拟量 9
"P11",  //103   模拟量 9
"P12",  //104   模拟量 9
"Pfk",  //105
"###"
};
const INT8U *ext_tab[]=
{
  "-Rtd",
  "-Min",
  "-Avg",
  "-MAx",
  "-ZsRtd",
  "-ZsMax",
  "-ZsAvg",
  "-ZsMax",
  "-Flag",
  "-Cou",
  "SBx-RS",
  "SBx-RT",
  "-Ala",
  "-UpValue",
  "-LowValue",
  "-Data",
  "-DayData",
  "-NightData",
  "-Data"


};

const INT8U *CMD_TAB[]=
{
"ERR",   //0
"QN",    //1
"PNUM",   //2
"PNO",   //3
"ST",    //4
"CN",    //5
"PW",    //6
"MN",    //7
"CP",    //8
"QnRtn",  //9
"Logon",  //10
"ExxRtd",  //11
"RtdInterval",//12
"AlarmTime",  //13
"AlarmType", //14
"ReportTarget",  //15
"PolId",         //16
"BeginTime",     //17
"EndTime",       //18
"DataTime",      //19
"ReportTime",    //20
"DayStdValue",   //21
"NightStdValue",  //22
"Flag",           //23
"OverTime",       //24
"ReCount",        //25
"WarTime",        //26
"CTime",          //27
"NOEXIST"         //28
};


const INT8U mn_number[]=
{
  "MN=73510493500001;"
};
const  INT8U start[]=
{
  "##0000"
};
const INT8U log_on_pack1[]=
{
  "ST=91;CN=9021;"
};
const INT8U log_on_pack2[]=
{
  "Flag=1;CP=&&&&"
};




INT8U  pass_word[11]={"PW=123456;"};

struct {
        INT16U pack_lenth;
        INT8U  qn[25];
        INT8U  mn[20];
        INT16U  st_num;
        INT8U   st[7];
        INT8U  passwd[11];
        INT16U cn_num;
        INT16U flag;
        INT8U  *data;
       } hj212_cmd;

INT16U  hj212_avr_tmr,hj212_real_tmr;
INT16U  hj212_tmr;
INT16U  hj212_di_old;
INT16U  hj212_alt_tmr;
INT8U   hj212_send_state;
INT8U   hj212_logon_cnt;
INT16U  hj212_st_year,hj212_st_day,hj212_st_min;
INT16U  hj212_end_year,hj212_end_day,hj212_end_min;

INT16U tmp_pos, tmp_inpage_adr;
INT16U tmp_end_pos,tmp_end_padr;
INT16U pnum,pno;
INT16U  exe_result;


热门招聘
相关主题

官方公众号

智造工程师