📄 xlbh.c
字号:
#pragma CODE SYMBOLS DEBUG LARGE
#include <reg320.h>
#include <absacc.h>
#include <math.h>
//modify pageset,hzk extern,(07),modify menu in output ,sample,dzset!
//disinit0 use 2 times;BC AND B2C =1//9.11 updated with the hzk02 removing the spare functions;//combine with FT
//10.19:
// modify from myallnew01.c,tr->trr in main(),add ZBGT protection conditions;
//modify return conditions
#define NBC 1
#define BB35 1
#define FOUT 1
#define FIN 0
#define L110 0
#define FD 0
#if BB35
#define BSOE 0x3fff
//#define Num_ch 10
#define Num_ch 11
#define Num_up1 17
#define Num_dp 16
//#define Num_up1 13
//#define Num_dp 12
//#define dz_number 38
#define EE 1
#define EE_num 2
#define LB_chnum 5
#define LB_zbnum 150
#define LB_firstch 2
#endif
#define ms_1 3
#define ms_num 600
#define IDT 0x9000 /* cs1 */
#define EEP 0xa000 /* cs2 */
#define TIM 0xc000 /* cs9 */
#define DIS 0xc800 /* cs4 */
#define AD1 0xd001 /* cs3 */
#define AD2 0xf001 /* cs7 */
#define IN1 0xe000 /* cs5 */
#define IN2 0xe800 /* cs6 */
#define OUT1 0xd800 /* cs10*/
#define OUT2 0xf800 /* cs8 */
#define LCD_CTRL XBYTE[0xc900]
#define LCD_DATA XBYTE[0xc800]
/*
#define FG 6
#define SHA 0
#define XIA 1
#define ZUO 2
#define YOU 3
#define QUE 4
#define REN 5
*/
#define FG 0
#define SHA 6
#define XIA 5
#define ZUO 2
#define YOU 4
#define QUE 1
#define REN 3
#define Qd_numbers 3
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
unsigned char data
i,ii,j,m,w_i,fh,fl,st,ij;
unsigned int data
f,ms,jj,jjj,time_counter;
unsigned char idata
o1,o2,i3,i4,sec_temp1,sec_temp2;
unsigned int idata i5;
int idata
// tr[13],tx[13],w1,w2,w1_status;
tr[12],tx[12],w1,w2,w1_status,w1_mem;
long idata
s1,s2,s3,s4,s5,s6;
long
s7,s8,s9,s10,s11;
unsigned char
fj_num,err,k_bz1,k_bz2,edelay,M_num,Ei[4],Et1,Et2[4],En1[4],k,in_num,p0,w1_position[3],neg_flag,
chn,ws1,ws2,ws3,ws4,a[30],bz[1540],time[7],lbtxn,Ujy_mark,ch_num,
bz1[120],CT_mark,PT_mark,PT_mark1,PT_mark2,select_mark,st1,st2,st3,o11,pro1,pro2,pro3,back,trip,trip0,times;
unsigned int
k_counter,ch_counter,Kv,Kic,Kib,mss,ring,f1,f2,f3,f4,f5,trip_t,op_relay,
Kih1,Kil1,Kim1,Kzd,sh_t,begin_t,open_t,Dnew[12],Dold1[12],Dold2[12];
p_counter,Kph1,iii;
signed int
sett[40],/*D[3400]*/D[3600],fj[260],/*rt[15]*/rt[20],et[15],up1[30],trr[13],txx[13],Kpq,
value,f6,pasd,passwd1,passwd2,ttrr,ttxx,lk,er[10],ex[10],//LB[10850],
e_dI,e_dI2,e_I0,e_dI0,e_U0,e_I,e_jwI,e_Im,e_R1,e_X1,e_R0,e_X0,Kr,Kx,
ssinA1,ssinA0,ccosA1,ccosA0,ssinB1,ssinB0,ccosB1,ccosB0,zabt,zbct,zcat,Tch[4],
BSFGT;//,btr[10],btr1[10],btr2[10],btx[10],btx1[10],btx2[10];
signed long
MSC[17][8],e0,e[17],DI1[18],DI2[18],epq[10],DI3[16],Kv0,Ki0,//CL[10],
V,Kv1,Kv2,Ki1,Ki2,chk_num,td1,td2,/*Anew[10],Aold1[10],Aold2[10],*/Dir,recval[16];
unsigned long
dis_t,time1_counter,yx_delay;
float B1,B0,A1,A0;
long *lepq;
unsigned int *pe,*eee;
unsigned char *pee,*psett,*pep,*peq,*pebz,*p,*pp,*ppp,*oo2;
unsigned char bdata
mark1,mark2,mark3,mark4,mark5,mark6,mark7,mark8,mark9,io1,io2;
sbit sck1=mark1^0; sbit xj2=mark8^0;
sbit sck2=mark1^1; sbit xj3=mark8^1;
sbit sck3=mark1^2; sbit xk2=mark8^2;
/*sbit sck4=mark1^3;*/ sbit xk22=mark8^3;
sbit fault_mark=mark1^3;
sbit oply=mark1^4; sbit xk3=mark8^4;
sbit dd0_mark=mark1^5; sbit xk33=mark8^5;
sbit BSFG1=mark1^6; sbit bisuo_mark=mark8^6;
sbit BSFG=mark1^7; sbit U0I0_mark=mark8^7;
sbit ck1=mark2^0; sbit k9=mark9^0;
sbit ck2=mark2^1; sbit k99=mark9^1;
sbit ck3=mark2^2; sbit kk1=mark9^2;
sbit ck4=mark2^3; sbit kk2=mark9^3;
sbit ck5=mark2^4; sbit kk3=mark9^4;
sbit ck6=mark2^5; sbit kk11=mark9^5;
sbit bzsf=mark2^6; sbit kk22=mark9^6;
sbit chqd_mark=mark2^7; sbit thdz_mark=mark9^7;
sbit k1=mark3^0;
sbit k2=mark3^1;
sbit k3=mark3^2;
sbit k4=mark3^3;
sbit k5=mark3^4;
sbit k6=mark3^5;
sbit k7=mark3^6;
sbit k8=mark3^7;
sbit k11=mark4^0;
sbit k22=mark4^1;
sbit k33=mark4^2;
sbit k44=mark4^3;
sbit k55=mark4^4;
sbit k66=mark4^5;
sbit k77=mark4^6;
sbit k88=mark4^7;
sbit key_mark1=mark5^0;
sbit key_mark2=mark5^1;
sbit key_no=mark5^2;
sbit k_chang=mark5^3;
sbit prun=mark5^4;
sbit t_mark=mark5^5;
sbit dz_mark=mark5^6;
sbit ztdz_mark=mark5^7;
sbit ch_mark=mark6^0;
sbit js_mark=mark6^1;
sbit qd_mark=mark6^2;
sbit qd_begin=mark6^3;
sbit dx_mark=mark6^4;
sbit qqdd_mark=mark6^5;
sbit selfcheck=mark6^6;
sbit dd1_mark=mark6^7;
sbit dd2_mark=mark7^0;
sbit in_k=mark7^1;
//sbit begin=mark7^2;//my 26
sbit ztqd_mark=mark7^2;
sbit passed=mark7^3;
sbit zt_mark=mark7^4;
sbit lbbz1=mark7^5;
sbit lbbz2=mark7^6;
sbit o1_flag=mark7^7;
//sbit lbtx=mark7^7;
sbit io1_0=io1^0; sbit io1_1=io1^1; sbit io1_2=io1^2; sbit io1_3=io1^3;
sbit io1_4=io1^4; sbit io1_5=io1^5; sbit io1_6=io1^6; sbit io1_7=io1^7;
sbit io2_0=io2^0; sbit io2_1=io2^1; sbit io2_2=io2^2; sbit io2_3=io2^3;
sbit io2_4=io2^4; sbit io2_5=io2^5; sbit io2_6=io2^6; sbit io2_7=io2^7;
unsigned char viewfirst;
//extern uchar code whjy[];
extern uchar code name_n[];
extern uchar code name_a[];
extern uchar code name_z[];
extern uchar code name_i[];
extern uchar code hzk[];
extern uchar code datadata[];
char titleview[5]={24,25,27,28,0};
unsigned char cir[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x3C,0x52,0x91,0x91,0x91,
0xBD,0x52,0xBD,0x91,0x91,0x91,0x52,0x3C,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,
};
unsigned char RECD[25]={0,0,11,0,0,13,0,0,13,0,0,14,0,0,11,0,0,11,0,0,11,0,0,0,99};
unsigned char CLOK[4][9]=
{
{0,0,13,0,0,13,0,0,80},
{0,0,11,0,0,11,0,0,80},
{0,0,13,0,0,13,0,0,80},
{0,0,11,0,0,11,0,0,80}
};
unsigned char IPUT[2][9]=
{
{0,0,0,0,0,0,0,0,80},
{0,0,0,0,0,0,0,0,80}
};
unsigned char DISKW[2][10]=
{
{0,0,0,0,0,12,0,80},
{20,19,16,80,20,15,17,18,16,80}
};
uchar lcdview[]={0,0,0,0,0};
unsigned char STR[33][14]= //lee这些矩阵应该是用来显示用的,
{
{225,0,230,0,70,71,84,85,0},//star,shuru kouling
{6,0,7,0,118,185,75,44,0},//wide arrow ,xuexian,xitong shijian
{1,0,2,0,3,0,4,0},//left,down,right,up
{132,48,14,15,0,48,131,21,0},//dongzuozhi
{55,219,220,71,0,88,89,0},//queren jinru xiugai
{221,222,223,224,0},
{7,0,49,244,0,245,246,0},//6 arrow,chongzhi tongdao
{0x46,0x47,0x48,0x49,0x50,0},//7
{5,0,230,0,143,5,33,0}, //8 %
{62,190,0,65,33,0,240,255,248,0},//9dizhi,guoya,bupingheng
{94,95,33,196,0},//10 baohuyaban
{54,68,0,48,131,75,44,0},//11 suduan dongzuoshijian
{163,75,0,48,131,21,0},//12xianshi dongzuozhi
{65,32,0,140,12,0,50,91,0},//13guoliu,beiyong,hezha
{49,50,0,143,33,0,165,233,0 },//chonghe,diya,zitou
{143,197,0,86,33,0,50,91,0},//dipin,tiaoya 15
{198,0,207,0,208,0,65,67,229,0},//gou,p,q//guo he tiao
{199,0,204,0,205,0,206,0,143,33,174,0}, //cha ,hz,u,i //di ya bi
{200,0,201,0,202,0,203,0,143,33,0},//pt,ct,kw,kv, //di ya
{13,0,14,0,15,0},//main manu
{145,147,118,185,209,0,200,68,152,0},//20 //pt duan xian
{24,25,27,28,0},
{148,52,119,210,211,212,0},
{158,169,52,211,212,0},
{158,169,52,70,71},
{213,5,214,148,215,0},//25duan lu qi
{20,21,211,212,231,20,0},//dingzhiguanli
{94,95,233,223,14,15},
{5,52,211,212,0,34,163,130,8,0},
{118,185,75,44,211,212,0},//29
{15,217,193,191,0,105,34,163,130,8,0},//30,5
{167,168,218,75,211,212,0},
{9,242,243,165,5,226,165,48,102,118,185,0},
};
#if BB35 //lee这些矩阵应该是用来显示用的,肯定是的
unsigned char name[8]={152,64,94,95,172,173,0}; //KV线路保护装置
unsigned char promain[16][5]=
{
{54,68,0}, //su duan
{163,75,0}, //xian shi
{65,32,0}, //guo liu
{65,67,0}, //过负荷
{65,181},//{39,40,0}, //lin xu
{143,33,0}, //di ya
{65,33,0}, //guo ya
{49,50,0}, //chong he
{53,54,0}, //jia su
{143,197,0}, //di ping
{54,181,0},//{143,232,0}, // 低周
{165,233,0}, //备自投
{106,35,33,0}, //检无压合闸
{106,107,120,0} , //检tongqi合闸
{11,33,0}, //5自动降压
{143,255,0}, // 低ping
};
unsigned char protect[19][9]=
{
{5,32,54,68,0}, //电流速断
{163,75,54,68,0}, //限时速断
{65,5,32,0}, //过电流
{106,35,33,49,50,91,0}, //检无压 重合闸
{39,40,65,32,0}, //零序过流
{143,232,236,237,0}, // 低周解列
{143,5,33,174,175,0}, //低电压闭锁
{49,50,91,0}, // 重合闸
{49,50,91,56,53,54,0}, //重合闸加速
{143,197,234,194,0}, // 低ping减载
{200,68,152,0}, //PT断线
{5,32,54,68,182,180,181,0}, //电流速断daifangxiang
{163,75,54,68,182,180,181,0}, //限时速断
{65,5,32,182,180,181,0}, //过电流
{143,5,33,94,95,0}, //地电压保护
{106,107,120,49,50,91,0}, // 检同期重合闸
{94,95,233,223,14,15,0}, //保护投入菜单
{233,0}, //tou
{223,0} //tui
};
unsigned char rec[18][8]=
{
{5,32,54,68,48,131,0}, //1
{163,75,54,68,48,131,0}, //2
{65,5,32,48,131,0}, //3
{39,40,65,32,0}, // 零序过流
{163,75,54,68,56,53,54,0}, //限时速断加速
{49,50,91,48,131,0},//6
{65,66,67,48,131,0}, //过负荷动作
{92,93,179,64,68,152,0},//控制回路断线
{143,197,48,131,0}, // 低pin减载
{200,68,152,0}, //PT 断线 10
{39,40,65,32,0}, // 零序过流
{65,32,56,53,54,48,131,0}, //过流加速
{65,66,67,22,23,0}, //过负荷baojin
{68,64,214,229,48,0}, //断路器拒动 13
{143,5,33,48,131,0}, //低电压dongzuo
{143,197,236,237,0}, // 低周jielie
{158,169,114,0,174,50,0},
{158,169,114,0,68,158,0}
} ;
unsigned char dzset[39][12]=
{
{20,21,247,170,0}, //0
{145,147,5,33,116,117,118,119,0},////1
{145,147,5,32,116,117,118,119,0},// //2
{146,147,5,33,116,117,118,119,0}, //1 //3
{146,147,148,52,5,32,116,117,118,119,0}, //2 //4
{146,147,94,95,5,32,116,117,118,119,0}, //3 //5
{92,93,121,145,0},//6
{92,93,121,146,0},//7
{5,32,54,68,21,0}, //8
{163,75,54,68,21,0}, //9
{65,5,32,21,0}, //10
{49,50,91,35,33,20,21,0},//重合闸无流定值 30//15 //11
{39,40,65,32,20,21,0}, //零序过流报警定值26//12
{143,232,236,237,20,21,0}, // 低zhoujielie(142,12,0),//{39,40,65,32,125,91,20,21,0}, //零序过流跳闸定值28//13
{143,5,33,174,175,20,21,0}, //低电压闭锁定值 24//14
{49,50,91,35,32,20,21,0},//重合闸无流定值 30//15
{143,197,234,194,197,138,21,0}, //11//16
{200,68,152,66,40,5,33,20,21,0}, //PT断线负序电压定值21//17
{200,68,152,5,33,20,21,0},//PT断线电压定值22//18
{200,68,152,5,32,20,21,0},//PT断线电流定值23//19
{163,75,54,68,122,75,0}, //13 //20
{65,5,32,122,75,0}, //14 //21
{49,50,91,33,160,20,21,0},//重合闸压差定值 /22
{39,40,65,32,122,75,0},//零序过流延时27 //23
{143,232,236,237,122,75,0},//dizou jielie yanshi {39,40,65,32,125,91,122,75,0},//零序过流跳闸延时29//24
{49,50,91,122,75,0}, //15 //chong he zha yan shi //25
{49,50,91,56,53,54,122,75,0}, //17 hou jia su yan shi //26
{143,197,234,194,122,75,0}, //16 di ping yan shi //27
{154,155,5,115,153,118,119,0}, //脉冲电度表系数//28
{36,37,86,231,118,119,0},//25 功率调整系数 //29
{39,40,5,33,116,117,118,119,0}, //ling xu dian ya ding zhi
{39,40,5,32,116,117,118,119,0}, //ling xu dian liu ding zhi
{143,5,33,20,21,0}, //低电压定值32
{143,5,33,122,75,0},//低电压延时33
{235,160,174,175,21,0},
{49,50,91,98,160,20,21,0},//重合闸角差定值 /35
{62,190,40,170,0},
{84,85,145,0},
{84,85,146,0}
};
unsigned char dzblank[39]={6,2,2,2,0,0,6,6,5,5,6,3,4,4,3,3,3,1,3,3,
4,5,3,4,4,5,2,4,3,4,2,2,5,5,5,3,6,7,7};
#endif
/////////////////////////////////////// for PSD954
#define CSIOP 0x8000
#define PAGE 0xe0
#define VM 0xe2
#define PORTA_Control 0x02
#define PORTA_Direction 0x06
#define PORTC_Direction 0x14
#define POATC_Data_in 0x10
unsigned char csioport[0x100] _at_ CSIOP;
///////////////////////////////////////////////////
void disinit();
//void disinit0();
void wd(unsigned char data0);
void wc(unsigned char command0);
void page();//
void page00();
void page1();//main manu
void page0();//record
//void page2();//bangxingtu06
void page3(); //sample 0...11 channel
void cp(unsigned char x,unsigned char y);
//void write_chr(uchar x,uchar y,uchar * chr);//void write_c();
void gwrite_hz(uchar x,uchar y,uchar *hz);
void writedata(uchar x,uchar y,uchar n);
void write_datastr(uchar x,uchar y,uchar *datastr);
//void tcls(void);
void gcls(void);
void writeblank(uchar x,uchar y,uchar n);
void figure(void);
void clearview(void);
void hline(uchar x1,uchar x2,uint y);
void vline(uint x,uint y1,uint y2,uchar wd);
void dot(uint x,uint y,uchar wdd);
//void arrow(uint x,uint y,uchar n);
void squre();
//void writewhjy(uchar x,uchar y,uchar n);
void writesag(uchar x,uchar y,uchar *n);
void anykey();
void password( char nn);
void set();//02
void pageset(uchar bg);
void unit();//09
void xhfg();
void inout();//04
void output();
void kwh0();//guding bufen
void kwh();//03
void diskwh();
void diskwhh();
void sample();//10
void clock();//08
void record();//05
void pagesetgz(unsigned char bg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -