📄 gy33485.lst
字号:
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 1
C51 COMPILER 6.00i, COMPILATION OF MODULE GY33485
OBJECT MODULE PLACED IN E:\电表程序\GY8_17\GY33485.OBJ
COMPILER INVOKED BY: C:\C516uv1\Bin\C51.EXE E:\电表程序\GY8_17\GY33485.C DB SB OE
stmt level source
1 #include "mylib.h"
2
3 #define RELEASE
4
5 uchar Curtime[7] = {0x07,0x05,0x06,0x08,0x15,0x04,0x25};//年,周,月,日,时,分,秒
6 uchar disnum[9] = {0,0,0,0,0,0,0,0,0};
7 bdata uint fbase;
8 bdata uint prefbase;
9 bdata uint disnum_flag;
10 bit send_flag=0;//发送标志
11 bit times_flag=0; //1~9次,次数增加标志
12 bit swith_phase=0;
13 bit error_flag=0;
14 uchar n=0;
15 uchar m1=0;//地址加k1值提取下一个故障时间
16 uchar m2=1;//
17 uint Fault_adress;
18 uchar CountTimer=0;
19
20
21 ////---------------------------////////
22 sbit Ua_enable = disnum_flag^0;
23 sbit Ub_enable = disnum_flag^1;
24 sbit Uc_enable = disnum_flag^2;
25 sbit Ia_enable = disnum_flag^3;
26 sbit Ic_enable = disnum_flag^4;
27 sbit Ip_enable = disnum_flag^5;
28
29 sbit UaIflag = disnum_flag^8;
30 sbit UbIflag = disnum_flag^9;
31 sbit UcIflag = disnum_flag^10;
32 sbit IaIflag = disnum_flag^11;
33 sbit IcIflag = disnum_flag^12;
34 sbit IpIflag = disnum_flag^13;
35
36 uchar IdNum = 0;
37 uchar Key3Num = 0;//5_18 added
38 bit ResetNum = 0; //
39
40 bit mail_box_flag = 0; //every second set this flag with 1
41
42 bit a_start = 0; //display "起始" while a_start is 1
43 bit a_stop = 0; //display "终/到" while a_stop is 1
44 //flag for interval min
45 sbit IntervalUaFlag = fbase^8;
46 sbit IntervalUbFlag = fbase^9;
47 sbit IntervalUcFlag = fbase^10;
48 sbit IntervalIaFlag = fbase^11;
49 sbit IntervalIbFlag = fbase^12; //for low voltage ammeter
50 sbit IntervalIcFlag = fbase^13;
51 sbit IntervalIpFlag = fbase^14;
52 sbit IntervalUXFlag = fbase^15; //for low voltage ammeter
53 //this flag used to reflect fault occurs
54 sbit UX_fault_flag = fbase^7;
55 sbit Ip_fault_flag = fbase^6;
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 2
56 sbit Ic_fault_flag = fbase^5;
57 sbit Ib_fault_flag = fbase^4;
58 sbit Ia_fault_flag = fbase^3;
59 sbit Uc_fault_flag = fbase^2;
60 sbit Ub_fault_flag = fbase^1;
61 sbit Ua_fault_flag = fbase^0;
62 //this flag used to reflect fault prestatus
63 sbit preUX_fault_flag = prefbase^7;
64 sbit preIp_fault_flag = prefbase^6;
65 sbit preIc_fault_flag = prefbase^5;
66 sbit preIb_fault_flag = prefbase^4;
67 sbit preIa_fault_flag = prefbase^3;
68 sbit preUc_fault_flag = prefbase^2;
69 sbit preUb_fault_flag = prefbase^1;
70 sbit preUa_fault_flag = prefbase^0;
71 //this flag used to reflect prestatus of Ua.Ub.....UX
72 sbit PreUaIn = prefbase^15;
73 sbit PreUbIn = prefbase^14;
74 sbit PreUcIn = prefbase^13;
75 sbit PreIaIn = prefbase^12;
76 sbit PreIbIn = prefbase^11;
77 sbit PreIcIn = prefbase^10;
78 sbit PreIpIn = prefbase^9;
79 sbit PreUXIn = prefbase^8;
80
81 //start_min is the time(min) that fault occur,interval_min is the lasting time of fault
82 uchar idata Ua_start_min,Ua_start_hour,Ua_interval_min=0;
83 uchar idata Ub_start_min,Ub_start_hour,Ub_interval_min=0;
84 uchar idata Uc_start_min,Uc_start_hour,Uc_interval_min=0;
85 uchar idata Ia_start_min,Ia_start_hour,Ia_interval_min=0;
86 //uchar idata Ib_start_min,Ib_start_hour,Ib_interval_min=0;
87 uchar idata Ic_start_min,Ic_start_hour,Ic_interval_min=0;
88 uchar idata Ip_start_min,Ip_start_hour,Ip_interval_min=0;
89 //uchar idata UX_start_min,UX_start_hour,UX_interval_min=0;
90
91 //this struct used to store fault.hour,fault.min,fault.sec
92 struct fault_time idata Ua_fault;
93 struct fault_time idata Ub_fault;
94 struct fault_time idata Uc_fault;
95 struct fault_time idata Ia_fault;
96 struct fault_time idata Ib_fault;
97 struct fault_time idata Ic_fault;
98 struct fault_time idata Ip_fault;
99 struct fault_time idata UX_fault;
100
101 //#define sending_data_x_axial 8
102 //#define sending_data_y_axial 6
103 /*
104 uchar idata sendingdata[sending_data_x_axial][sending_data_y_axial]=
105 {{0x00,0x00,0x00,0x00,0x00,0x00}, //UA //Ua
106 {0x00,0x00,0x00,0x00,0x00,0x00}, //UB //Ub
107 {0x00,0x00,0x00,0x00,0x00,0x00}, //UC //Uc
108 {0x00,0x00,0x00,0x00,0x00,0x00}, //IA //Ia
109 {0x00,0x00,0x00,0x00,0x00,0x00}, //IC //Ib
110 {0x00,0x00,0x00,0x00,0x00,0x00}, //I- //Ic
111 {0x00,0x00,0x00,0x00,0x00,0x00}, //I.. //Ip
112 {0x00,0x00,0x00,0x00,0x00,0x00},};//U..//Ux*/
113 //this array used to store fault start_time and stop_time
114 uchar idata FaultTime[6];
115
116 uchar SpIntval = 0;
117
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 3
118 /*uint UaStartEeprom = 72;
119 uint UbStartEeprom = 96;
120 uint UcStartEeprom = 120;
121 uint IaStartEeprom = 144;
122 uint IcStartEeprom = 168;
123 uint IpStartEeprom = 192;*/
124
125 uint UaStartEeprom = 80;
126 uint UbStartEeprom = 200;
127 uint UcStartEeprom = 320;
128 uint IaStartEeprom = 440;
129 uint IcStartEeprom = 560;
130 uint IpStartEeprom = 680; // 修改定义位置,定义在库函数中
131
132 void KickDog(void)
133 {
134 1 #ifdef RELEASE
135 1 WDT = 0x1E;
136 1 WDT = 0x0E1;
137 1 #else
;
#endif
140 1 }
141 /*
142 void s_send (void) interrupt 4 using 3
143 {
144 void str(void); //发送数据块
145 uchar mm;
146 RI = 0;
147 ES = 0;
148 mm = SBUF;
149 if(mm!='0'){goto reti;}
150 while(RI==0);
151 RI=0;
152 mm=SBUF;
153 if(mm!='3'){goto reti;}
154 while(RI==0);
155 RI=0;
156 mm=SBUF;
157 if(mm!='1'){goto reti;}
158 while(RI==0);
159 RI=0;
160 mm=SBUF;
161 if(mm!='2'){goto reti;}
162 while(RI==0);
163 RI=0;
164 mm=SBUF;
165 if(mm!='8'){goto reti;}
166 while(RI==0);
167 RI=0;
168 mm=SBUF;
169 if(mm!='5'){goto reti;}
170 //P3_2=1;
171 SM2=0;
172 str();
173 //P3_2=0;
174 reti:;
175 SM2=1;
176 ES=1;
177 }
178
179 void str(void) //发送数据块
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 4
180 {
181 uchar i,j;
182 for(j=0;j<8;j++)
183 {
184 for(i=0;i<6;i++)
185 {
186 SBUF=sendingdata[j][i];
187 while(TI==0);
188 TI=0;
189 }
190 }
191 }*/
192 /*************************************************/
193 /* Delay 60us/unit at 11.0592 MHz crystal clock */
194 /*************************************************/
195 void delay(uint t)
196 {
197 1 uint i,j;
198 1 for(i=0;i<t;i++)
199 1 {
200 2 for(j=0;j<2;j++);
201 2 KickDog();
202 2 }
203 1 }
204 /***************************************/
205 /*void timer0() interrupt 1 using 2
206 {
207 if (SpIntval) SpIntval--;
208 }*/
209 /***************************************/
210 /***************************************/
211 void timer2() interrupt 5 using 1
212 { TF2=0;
213 1 if (SpIntval) SpIntval--;
214 1 }
215 /******************************************************/
216 /*定时器T0中断子程序,产生38.4千赫兹载波*/
217 /**************************************/
218 /*************************************设计日期*2007.6.8*****/
219 t0()interrupt 1 using 2//
220 { P2_7= !P2_7;
221 1 }
222 /******************************************************/
223 /*串行接收中断子程序***********************************/
224 /********************************************************/
225 /*************************************设计日期*2007.6.8***/
226 void serial(void) interrupt 4 using 3//
227 {uchar mm;
228 1 if(RI)
229 1 {RI=0;
230 2 mm=SBUF;
231 2 if(!(mm^0xaa))
232 2 send_flag=1;
233 2 if(!(mm^0xbb))
234 2 swith_phase=1;
235 2 if(!(mm^0xee))
236 2 error_flag=1;
237 2 }
238 1 }
239 void faultcount(void)
240 {
241 1 uchar i;
C51 COMPILER V6.00i GY33485 08/16/2007 20:55:35 PAGE 5
242 1 if(Ua_fault_flag&& !preUa_fault_flag)
243 1 {
244 2 disnum[0]++;
245 2 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
246 2 disnum[1]++;
247 2 wr_s_eeprom(disnum+1, 66, sizeof(disnum[1]));
248 2 }
249 1 if(Ub_fault_flag && !preUb_fault_flag)
250 1 {
251 2 disnum[0]++;
252 2 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
253 2 disnum[2]++;
254 2 wr_s_eeprom(disnum+2, 67, sizeof(disnum[2]));
255 2 }
256 1 if(Uc_fault_flag && !preUc_fault_flag)
257 1 {
258 2 disnum[0]++;
259 2 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
260 2 disnum[3]++;
261 2 wr_s_eeprom(disnum+3, 68, sizeof(disnum[3]));
262 2 }
263 1 if(Ia_fault_flag && !preIa_fault_flag)
264 1 {
265 2 disnum[0]++;
266 2 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
267 2 disnum[4]++;
268 2 wr_s_eeprom(disnum+4, 69, sizeof(disnum[4]));
269 2 }
270 1 /* if(Ib_fault_flag && !preIb_fault_flag)
271 1 {
272 1 disnum[0]++;
273 1 wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
274 1 disnum[5]++;
275 1 }*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -