📄 current1.lst
字号:
C51 COMPILER V7.06 CURRENT1 07/15/2005 11:04:46 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CURRENT1
OBJECT MODULE PLACED IN C:\DOCUME~1\HH\桌面\050706\CURRENT\CURRENT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\HH\桌面\050706\CURRENT\CURRENT1.C DB SB OE
stmt level source
1 #include <current.h>
2 sbit con_hf=P4^0;
3 sbit con_water=P4^1;
4 sbit con_gas1=P4^6;
5 sbit con_gas2=P4^7;
6 sbit current_out=P4^4;
7 sbit current_enable=P4^5;
8 sbit send_enable=P3^4;
9 sbit stop=P3^5;
10
11 xdata unsigned char sbuffer[7] _at_ 0x6000;
12 xdata unsigned char rbuffer[55] _at_ 0x6007;
13 xdata unsigned int *point _at_ 0x603E;
14 xdata unsigned int adl _at_ 0x6040;
15 xdata unsigned int adh _at_ 0x6042;
16 xdata unsigned int ad _at_ 0x6044;
17 xdata unsigned int numbers _at_ 0x6046;
18 xdata unsigned int I1 _at_ 0x6048;
19 xdata unsigned int I2 _at_ 0x604A;
20 xdata unsigned int ad_v _at_ 0x604C;
21 xdata unsigned int ad_i _at_ 0x604E;
22 xdata unsigned long delt _at_ 0x6050;
23 xdata unsigned long delt1 _at_ 0x6054;
24 xdata unsigned long c_t0 _at_ 0x6058;
25 xdata unsigned long AD1 _at_ 0x605C;
26 xdata unsigned long AD2 _at_ 0x6060;
27 xdata unsigned long AD3 _at_ 0x6064;
28 xdata unsigned long AD4 _at_ 0x6068;
29 xdata unsigned long AD5 _at_ 0x606C;
30 xdata unsigned long da _at_ 0x6070;
31 xdata unsigned char c_cm1 _at_ 0x6074;
32 xdata unsigned char n_pulse _at_ 0x6076;
33 xdata unsigned char n_base _at_ 0x6078;
34 xdata unsigned int IM _at_ 0x6080;
35 xdata unsigned int IMM _at_ 0x6084;
36 xdata unsigned int IB _at_ 0x6088;
37 xdata unsigned int IBB _at_ 0x608C;
38 unsigned char COMM,SLA,FF,GET,S_ANSW,R_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,
39 err,tab2,tab3,c_adc,c_t1,p_sec,s_byte_nums,r_byte_nums,
40 nonce_sec,c_cm2,avc_ok,delt_state;
41 unsigned int I11,I12,I21,I22,delt_ahf,last_i_p,last_i_b;
42 unsigned long t,c_ahf_p,c_ahf_b;
43 bit receive_p_out,receive_p_in,demand,in_sector,YOUHU,ad_finish,
44 pre_melt_ok,igniting,new_sec,close_gas1,close_gas2,i_v,decrease,overtime,
45 start,urgent_stop,edge,resend,send,called,open_gas1,open_gas2,close_gas1_ok,
46 close_gas2_ok,close_gas_ok,ans,i_slope_ok,need_para,to_begin,ignit_ok,
47 current_add,current_dec,kk,err_ok,current_err,ahf_ok,ahf_p_b;
48 float temp_delt;
49
50 void delay(unsigned int num)
51 {
52 1 data unsigned int i,ii;
53 1 for(i=0;i<num;i++)
54 1 {
55 2 for(ii=0;ii<255;ii++);
C51 COMPILER V7.06 CURRENT1 07/15/2005 11:04:46 PAGE 2
56 2 }
57 1 }
58
59 void start_i2()
60 {
61 1 data unsigned int time;
62 1 P1_6=1; //SCL
63 1 P1_7=1; //SDA
64 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
65 1 PS1=1;FF=0;
66 1 EA=1;
67 1 ES1=1;
68 1 STA=1;
69 1 time=0;
70 1 do
71 1 {
72 2 time++;
73 2 if(time>10000)
74 2 {
75 3 FF=1;
76 3 }
77 2 }while(FF==0);
78 1 FF=0;
79 1 ES1=0;
80 1 }
81
82 void start_i2a()
83 {
84 1 P1_6=1; //SCL
85 1 P1_7=1; //SDA
86 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
87 1 PS1=1;
88 1 EA=1;
89 1 ES1=1;
90 1 STA=1;
91 1 }
92
93 void ini_sbuf(unsigned char a,b,c,d,e,f,g)
94 {
95 1 sbuffer[0]=a;
96 1 sbuffer[1]=b;
97 1 sbuffer[2]=c;
98 1 sbuffer[3]=d;
99 1 sbuffer[4]=e;
100 1 sbuffer[5]=f;
101 1 sbuffer[6]=g;
102 1 }
103
104 unsigned char get_byte_nums(unsigned char type)
105 {
106 1 unsigned char numbers;
107 1 switch(type)
108 1 {
109 2 case infor_sec:
110 2 case command:
111 2 case program:
112 2 case answer: numbers=4;
113 2 break;
114 2 case err_infor:
115 2 case parameter1: numbers=5;
116 2 break;
117 2 case parameter:
C51 COMPILER V7.06 CURRENT1 07/15/2005 11:04:46 PAGE 3
118 2 case infor: numbers=6;
119 2 break;
120 2 case parameter2: numbers=7;
121 2 break;
122 2 case call_result: numbers=8;
123 2 break;
124 2 case p_out_sec: numbers=55;
125 2 break;
126 2 case p_in_sec: numbers=24;
127 2 break;
128 2 case edit_sec: numbers=64;
129 2 break;
130 2 default: break;
131 2 }
132 1 return numbers;
133 1 }
134
135 void TR_noans()
136 {
137 1 REN=0;
138 1 POINTER0=0;
139 1 SSUM=0;
140 1 send=1;
141 1 send_enable=0;
142 1 c_t1=0;
143 1 TR1=1;
144 1 while(POINTER0<s_byte_nums);
145 1 TR1=0;
146 1 send_enable=1;
147 1 REN=1;
148 1 }
149
150 void TR_ans()
151 {
152 1 ans=1;
153 1 REN=0;
154 1 POINTER1=0;
155 1 RSUM=0;
156 1 // TB8=1;
157 1 POINTER0=0;
158 1 SSUM=0;
159 1 send=1;
160 1 send_enable=0;
161 1 c_t1=0;
162 1 TR1=1;
163 1 while(POINTER0<s_byte_nums);
164 1 TR1=0;
165 1 send_enable=1;
166 1 if(overtime==1)
167 1 overtime=0;
168 1
169 1 REN=1;
170 1 send=0;
171 1 c_t1=0;
172 1 TR1=1;
173 1 while(POINTER1<r_byte_nums&&overtime==0);
174 1 TR1=0;
175 1 POINTER1=0;
176 1 RSUM=0;
177 1 if(overtime==1)
178 1 {
179 2 err=2;
C51 COMPILER V7.06 CURRENT1 07/15/2005 11:04:46 PAGE 4
180 2 overtime=0;
181 2 }
182 1 ans=0;
183 1 }
184
185 void com_type()
186 {
187 1 switch(rbuffer[2])
188 1 {
189 2 case com_calling: called=1;break;
190 2 case com_start: start=1;break;
191 2 case com_decrease: decrease=1;break; //衰减
192 2 // case com_decrease_ok: kk=0;break;
193 2 case com_current_add: current_add=1;break; //电流加
194 2 case com_current_dec: current_dec=1;break; //电流减
195 2 case com_demand: demand=1;break;
196 2 case com_open_gas1: open_gas1=1;break;
197 2 case com_open_gas2: open_gas2=1;break;
198 2 case com_close_gas1: close_gas1=1;break;
199 2 case com_close_gas2: close_gas2=1;break;
200 2 case com_ignit: igniting=1;break;
201 2 case com_ignit_ok: ignit_ok=1;break;
202 2 case com_i_slope_ok: i_slope_ok=1;break;
203 2 case com_pre_melt_ok: pre_melt_ok=1;break;
204 2 case com_need_para: need_para=1;break;
205 2 case com_goto_begin: to_begin=1;break;
206 2 case com_err_ok: err_ok=1;break;
207 2 default: break;
208 2 }
209 1 }
210
211 void data_type() //对接收到的数据分辨类型
212 {
213 1 switch(rbuffer[1])
214 1 {
215 2 case command: com_type();break;
216 2
217 2 case answer: R_ANSW=rbuffer[1];break;
218 2
219 2 case infor: {
220 3 switch(rbuffer[2])
221 3 {
222 4 case com_sector: {
223 5 nonce_sec=rbuffer[3];
224 5 in_sector=1;
225 5 new_sec=1;
226 5 }break;
227 4 case com_weld_simu: YOUHU=rbuffer[3];break;
228 4 case com_delt_switch: delt_state=rbuffer[3];break;
229 4 default: break;
230 4 }
231 3 }break;
232 2
233 2 case p_out_sec: receive_p_out=1;break;
234 2
235 2 case p_in_sec: {
236 3 nonce_sec=rbuffer[2];
237 3 receive_p_in=1;
238 3 }break;
239 2 default: break;
240 2 }
241 1 }
C51 COMPILER V7.06 CURRENT1 07/15/2005 11:04:46 PAGE 5
242
243 void answer_judge()
244 {
245 1 unsigned char c_err;
246 1 c_err=0;
247 1 resend: if(R_ANSW!=OK)
248 1 {
249 2 c_err++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -