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

📄 xlbh.c

📁 基于C51体系结构实现的电路保护的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:

#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 + -