📄 current.lst
字号:
C51 COMPILER V7.06 CURRENT 06/21/2005 15:24:34 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CURRENT
OBJECT MODULE PLACED IN D:\程序05~1\CURRENT\CURRENT.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\程序05~1\CURRENT\CURRENT.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
35 unsigned char COMM,SLA,FF,GET,S_ANSW,R_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,
36 err,tab2,tab3,c_adc,c_t1,p_sec,s_byte_nums,r_byte_nums,
37 nonce_sec,c_cm2,avc_ok,delt_state;
38 bit receive_p_out,receive_p_in,demand,in_sector,YOUHU,ad_finish,
39 pre_melt_ok,igniting,new_sec,close_gas1,close_gas2,i_v,decrease,overtime,
40 start,urgent_stop,edge,resend,send,called,open_gas1,open_gas2,close_gas1_ok,
41 close_gas2_ok,close_gas_ok,ans,i_slope_ok,need_para,to_begin,ignit_ok,
42 current_add,current_dec,kk,err_ok,current_err;
43 xdata unsigned int IM _at_ 0x6080;
44 xdata unsigned int IB _at_ 0x6084;
45
46 void delay(unsigned int num)
47 {
48 1 data unsigned int i,ii;
49 1 for(i=0;i<num;i++)
50 1 {
51 2 for(ii=0;ii<255;ii++);
52 2 }
53 1 }
54
55 void start_i2()
C51 COMPILER V7.06 CURRENT 06/21/2005 15:24:34 PAGE 2
56 {
57 1 data unsigned int time;
58 1 P1_6=1; //SCL
59 1 P1_7=1; //SDA
60 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
61 1 PS1=1;FF=0;
62 1 EA=1;
63 1 ES1=1;
64 1 STA=1;
65 1 time=0;
66 1 do
67 1 {
68 2 time++;
69 2 if(time>10000)
70 2 {
71 3 FF=1;
72 3 }
73 2 }while(FF==0);
74 1 FF=0;
75 1 ES1=0;
76 1 }
77
78 void start_i2a()
79 {
80 1 P1_6=1; //SCL
81 1 P1_7=1; //SDA
82 1 S1CON=0x47; //ENS1=1 STA=0 STO=0 SI=0 AA=1
83 1 PS1=1;
84 1 EA=1;
85 1 ES1=1;
86 1 STA=1;
87 1 }
88
89 void ini_sbuf(unsigned char a,b,c,d,e,f,g)
90 {
91 1 sbuffer[0]=a;
92 1 sbuffer[1]=b;
93 1 sbuffer[2]=c;
94 1 sbuffer[3]=d;
95 1 sbuffer[4]=e;
96 1 sbuffer[5]=f;
97 1 sbuffer[6]=g;
98 1 }
99
100 unsigned char get_byte_nums(unsigned char type)
101 {
102 1 unsigned char numbers;
103 1 switch(type)
104 1 {
105 2 case infor_sec:
106 2 case command:
107 2 case program:
108 2 case answer: numbers=4;
109 2 break;
110 2 case err_infor:
111 2 case parameter1: numbers=5;
112 2 break;
113 2 case parameter:
114 2 case infor: numbers=6;
115 2 break;
116 2 case parameter2: numbers=7;
117 2 break;
C51 COMPILER V7.06 CURRENT 06/21/2005 15:24:34 PAGE 3
118 2 case call_result: numbers=8;
119 2 break;
120 2 case p_out_sec: numbers=55;
121 2 break;
122 2 case p_in_sec: numbers=24;
123 2 break;
124 2 case edit_sec: numbers=64;
125 2 break;
126 2 default: break;
127 2 }
128 1 return numbers;
129 1 }
130
131 void TR_noans()
132 {
133 1 REN=0;
134 1 POINTER0=0;
135 1 SSUM=0;
136 1 send=1;
137 1 send_enable=0;
138 1 c_t1=0;
139 1 TR1=1;
140 1 while(POINTER0<s_byte_nums);
141 1 TR1=0;
142 1 send_enable=1;
143 1 REN=1;
144 1 }
145
146 void TR_ans()
147 {
148 1 ans=1;
149 1 REN=0;
150 1 POINTER1=0;
151 1 RSUM=0;
152 1 // TB8=1;
153 1 POINTER0=0;
154 1 SSUM=0;
155 1 send=1;
156 1 send_enable=0;
157 1 c_t1=0;
158 1 TR1=1;
159 1 while(POINTER0<s_byte_nums);
160 1 TR1=0;
161 1 send_enable=1;
162 1 if(overtime==1)
163 1 overtime=0;
164 1
165 1 REN=1;
166 1 send=0;
167 1 c_t1=0;
168 1 TR1=1;
169 1 while(POINTER1<r_byte_nums&&overtime==0);
170 1 TR1=0;
171 1 POINTER1=0;
172 1 RSUM=0;
173 1 if(overtime==1)
174 1 {
175 2 err=2;
176 2 overtime=0;
177 2 }
178 1 ans=0;
179 1 }
C51 COMPILER V7.06 CURRENT 06/21/2005 15:24:34 PAGE 4
180
181 void com_type()
182 {
183 1 switch(rbuffer[2])
184 1 {
185 2 case com_calling: called=1;break;
186 2 case com_start: start=1;break;
187 2 case com_decrease: decrease=1;break; //衰减
188 2 case com_decrease_ok: kk=0;break;
189 2 case com_current_add: current_add=1;break; //电流加
190 2 case com_current_dec: current_dec=1;break; //电流减
191 2 case com_demand: demand=1;break;
192 2 case com_open_gas1: open_gas1=1;break;
193 2 case com_open_gas2: open_gas2=1;break;
194 2 case com_close_gas1: close_gas1=1;break;
195 2 case com_close_gas2: close_gas2=1;break;
196 2 case com_ignit: igniting=1;break;
197 2 case com_ignit_ok: ignit_ok=1;break;
198 2 case com_i_slope_ok: i_slope_ok=1;break;
199 2 // case com_ignit_fail: ignit_fail=1;break;
200 2 case com_pre_melt_ok: pre_melt_ok=1;break;
201 2 case com_need_para: need_para=1;break;
202 2 case com_goto_begin: to_begin=1;break;
203 2 case com_err_ok: err_ok=1;break;
204 2 default: break;
205 2 }
206 1 }
207
208 void data_type() //对接收到的数据分辨类型
209 {
210 1 switch(rbuffer[1])
211 1 {
212 2 case command: com_type();break;
213 2
214 2 case answer: R_ANSW=rbuffer[1];break;
215 2 /*
216 2 case infor_sec: nonce_sec=rbuffer[2];break;
217 2
218 2 case edit_sec: if(in_sector==0)
219 2 {
220 2 nonce_sec=rbuffer[2];
221 2 in_sector=1;
222 2 }break;
223 2 */
224 2 case infor: {
225 3 switch(rbuffer[2])
226 3 {
227 4 case com_sector: {
228 5 nonce_sec=rbuffer[3];
229 5 in_sector=1;
230 5 new_sec=1;
231 5 }break;
232 4 case com_weld_simu: YOUHU=rbuffer[3];break;
233 4 case com_delt_switch: delt_state=rbuffer[3];break;
234 4 default: break;
235 4 }
236 3 }break;
237 2
238 2 case p_out_sec: receive_p_out=1;break;
239 2
240 2 case p_in_sec: {
241 3 nonce_sec=rbuffer[2];
C51 COMPILER V7.06 CURRENT 06/21/2005 15:24:34 PAGE 5
242 3 receive_p_in=1;
243 3 }break;
244 2 default: break;
245 2 }
246 1 }
247
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -