?? main.lst
字號(hào):
172 1 {
173 1 OLT9=0;
174 1 }//正方向 轉(zhuǎn)
175 1 else
176 1 {
177 1 if(pwm4<PWM100) //關(guān)斷時(shí)間 9-10
178 1 {
179 1 OLT9=1;
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 4
180 1 }//停
181 1 else
182 1 { pwm4=0; }
183 1 }
184 1 pwm4++;
185 1 }
186 1 else {
187 1 OLT9=1;
188 1 } //停
189 1
190 1 if(cardlamp)
191 1 {
192 1 if(pwm3<=PWM50)//導(dǎo)通時(shí)間 1-8
193 1 {
194 1 OLTA=0;
195 1 }//正方向 轉(zhuǎn)
196 1 else
197 1 {
198 1 if(pwm3<PWM100) //關(guān)斷時(shí)間 9-10
199 1 {
200 1 OLTA=1;
201 1 }//停
202 1 else
203 1 { pwm3=0; }
204 1 }
205 1 pwm3++;
206 1 }
207 1 else {
208 1 OLTA=1;
209 1 } //停
210 1 */
211 1 XBYTE[0x1000] = outputByte2; //公用
212 1
213 1 RCAP2H=LD_T2H;
214 1 RCAP2L=LD_T2L;
215 1
216 1 TR2=1; //開(kāi)始定時(shí)
217 1 }
218
219 /////////////////////////////
220 //名稱(chēng): timerSet
221 //功能: 設(shè)置定時(shí)器2
222 //輸入: ms,定時(shí)時(shí)間,毫秒 1ms 最小單位
223 //輸出: 定時(shí)時(shí)間到時(shí),
224 ///////////////////////
225 /*void timerSet(uchar ms)
226 {
227 TR2=0; // 停止定時(shí)器
228 timerOver = 0;
229 timeCounter = ms;
230 TR2=1; // 重新啟動(dòng)定時(shí)器
231 }*/
232 /////////////////////////////
233 //名稱(chēng): setTimer
234 //功能: 設(shè)置定時(shí)器
235 //輸入: ms,定時(shí)時(shí)間,毫秒 10ms 最小單位
236 //輸出: 定時(shí)時(shí)間到時(shí),輸出TF0
237 ///////////////////////
238 void setTimer(WORD ms)
239 {
240 1 TR0=0; // 停止定時(shí)器
241 1 timerHap = 0;
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 5
242 1 counter = ms/10;
243 1 //TF0=0; //清除標(biāo)志位
244 1 TR0=1; // 重新啟動(dòng)定時(shí)器
245 1 }
246
247 main()
248 {
249 1 INIT_TIME2(); //first
250 1 //releaseAllMotor(); //鎖住所有電機(jī)
251 1 init_serialcom();
252 1 INIT_TIME0();
253 1 // send_string_com(STAOUT,LENGTH);//發(fā)送 for test
254 1 while(1)
255 1 {
256 2 P2_0=!P2_0; //喂狗
257 2
258 2 switch(workState)
259 2 {
260 3 case HALT_STATUS:
261 3 if(RECE_flag) //1/ 如果有新數(shù)據(jù) //pass
262 3 {
263 4 workState=EXEC_STATUS;
264 4 }
265 3 break;
266 3
267 3 case EXEC_STATUS: //執(zhí)行報(bào)文
268 3 if(RECE_flag) //1/ 如果有新數(shù)據(jù) //pass
269 3 {
270 4 execCommand();
271 4 RECE_flag=0;
272 4 }
273 3 break;
274 3
275 3
276 3 default:
277 3 break;
278 3 }
279 2
280 2 }//while end
281 1 }//main end
282
283 /**********************************************************************
284 ** 函數(shù)名稱(chēng): serial_recive //pass
285 ** 功能描述: 串口接收中斷函數(shù)接收一個(gè)字符串
286 ** 輸 入: 無(wú)
287 ** 輸 出: 無(wú)
288 ** 全局變量: count: 接收字符個(gè)數(shù)統(tǒng)計(jì)變量
289 inbuf1[LENGHT] 數(shù)據(jù)接收緩沖區(qū)
290 LENGHT 接收數(shù)據(jù)總長(zhǎng)度
291 RECE_flag 接收標(biāo)志位
292 ** 調(diào)用模塊: 無(wú)
293 ***********************************************************************/
294 void serial_recive () interrupt 4
295 {
296 1 if(RI)
297 1 {
298 2 unsigned char ch;
299 2 RI = 0;
300 2 ch=SBUF;
301 2 if(first_DLE==0)
302 2 {
303 3 if(ch==DLE) //
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 6
304 3 {
305 4 first_DLE=1;
306 4 //丟掉 ch
307 4 }
308 3 else //(ch!=0x10)
309 3 {
310 4 if(ch==ETX)// 03 03 未處理
311 4 {
312 5 CMDIN[count++]=ch;
313 5 RECE_flag=1; //表示已經(jīng)完成一次完整接收
314 5 IN_LENGTH=count; //接收到數(shù)據(jù)的總長(zhǎng)度
315 5 count=0;
316 5 }
317 4 else
318 4 {
319 5 CMDIN[count++]=ch;
320 5 }
321 4 first_DLE=0;
322 4 }
323 3 }
324 2
325 2 else //first_DLE==1
326 2 {
327 3 // if(ch==DLE||ch==ETX||ch==STX) //
328 3 // {}//
329 3 // else {} //
330 3 CMDIN[count++]=ch;
331 3 first_DLE=0;
332 3 }
333 2 }
334 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 341 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 47 1
IDATA SIZE = ---- ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -