📄 send8000(add_com).lst
字号:
207 2 comsbuf[13]=P3;
208 2 RLED=0;
209 2 }
210 1 }
211
212 void Ptimer1(void) interrupt 3 using 1
213 {
214 1 TH1=(65536-46080)/256; /* Fosc=733728MHz/4=1.8432MHz */
215 1 TL1=(65536-46080)%256; /* 50ms timer interrupt */
216 1 TR1=1;
217 1 if(++tim_cnt==20)
218 1 {
219 2 tim_cnt=0;
220 2 Flag_scd=1;
221 2 if(tim_scd++==60)
222 2 {
223 3 tim_scd=0;
224 3 if(tim_mnt++==60)
225 3 {
226 4 tim_mnt=0;
227 4 if(tim_hur++==24) tim_hur=0;
228 4 }
229 3 }
230 2 }
231 1 }
232
233
234 /************************************************************************************************/
235 main()
236 {
237 1 uchar i;
238 1 for(i=0;i<4;i++) comsbuf[i]=TX_ADDRESS[i];
239 1 comsbuf[4]=RX_ADDRESS_0;
C51 COMPILER V7.06 SEND8000_ADD_COM_ 01/19/2007 16:22:27 PAGE 5
240 1 comsbuf[5]=RX_ADDRESS_1;
241 1 comsbuf[6]=RX_ADDRESS_2;
242 1 comsbuf[7]=RX_ADDRESS_3;
243 1 comsbuf[8]=0xff;
244 1 comsbuf[9]=0xd7;
245 1 comsbuf[10]=0x06;
246 1 comsbuf[11]='S';
247 1 comsbuf[14]=0x00;
248 1 comsbuf[15]='E';
249 1
250 1 /*IO口模式设置00准双向;01推挽;10高阻输入;11开漏 */
251 1 //P0M1=0x00; /* P0M1: 00000000 键盘 双向*/
252 1 //P0M2=0x0F; /* P0M2: 00001111 LED 推挽*/
253 1 //P1M1=0x2C; /* P1M1: 00101100 P1.2/P1.3配置为开漏,外接上拉电阻;P1.5(RST)仅能为输入(高阻);*/
254 1 //P1M2=0x0C; /* P1M2: 00001100 中断1,串口为准双向;*/
255 1 //P2M1=0x00; /* P2M1: 00000000 */
256 1 //P2M2=0x00; /* P2M2: 00000000 */
257 1 //P3M1=0x00; /* IO口模式设置: 准双向口00,使用内部时钟 */
258 1 //P3M2=0x00;
259 1
260 1 //P0=0xFF; /* 初化P0口 */
261 1 //P1=0xFF;
262 1 //P2=0xFF; /* */
263 1 //P3=0xFF; /* */
264 1
265 1 //DIVM=2; /* 降低工作频率,以便程序移植 */
266 1 TR0 = 1;
267 1 IE = 0x82; //Enable timer0.
268 1
269 1 uart_init(); /* 串口初始化9600BPS */
270 1 Spi_init(); /* 初始化SPI端口 */
271 1
272 1 ChangeMode(Standby); /* nRF905进入待机SPI通讯模式 */
273 1 //Delayus(1000);
274 1 Delayms(2); //1
275 1 Config905(); /* 配置nRF905 */
276 1
277 1 //TMOD|=0x10; /* Timer1 mode set Mode1 */
278 1 //TH1=(65536-46080)/256; /* Fosc=1.8432MHz,50ms timer interrupt */
279 1 //TL1=(65536-46080)%256;
280 1 //ET1=1;TR1=1;
281 1 //EA=1;
282 1
283 1 //eeprom_read(E2ADRSYS,Databuf,16); /* 读取本系统地址及参数 */
284 1 //ADDRESS = BUFADR;
285 1 //if(ADDRESS==0xFF) /* 地址为0xFF时,初始化地址为1 */
286 1 //{
287 1 // BUFADR = ADDRESS = 0x01; /* 本系统地址存储为0x01 */
288 1 // for(i=1;i<16;i++)Databuf[i]=i;
289 1 // eeprom_write(E2ADRSYS,Databuf,16); /* 存储本系统地址及参数 */
290 1 //}
291 1 //mscom_snd(Databuf,16);
292 1
293 1 RF905_Read(RC,Databuf);
294 1 //mscom_snd(Databuf,16);
295 1 ChangeMode(RXMode); /**/
296 1
297 1 while(1)
298 1 {
299 2 while(RF_DR && RF_AM)
300 2 {
301 3 ChangeMode(Standby);
C51 COMPILER V7.06 SEND8000_ADD_COM_ 01/19/2007 16:22:27 PAGE 6
302 3 Delayms(2); //1
303 3 RF905_Read(RRP,Databuf);
304 3 ChangeMode(RXMode);
305 3 //Delayus(300);
306 3 //Delayms(1);
307 3 //mscom_snd(Databuf,16);
308 3 if(Databuf[15]=='E' && Databuf[14]==0x00 && Databuf[11]=='S')
309 3 {
310 4 triggle1=1;
311 4 }
312 3 }
313 2 if(triggle1)
314 2 {
315 3 //triggle=0;
316 3 triggle1=0;
317 3 ChangeMode(TXMode);
318 3 //Delayus(3100);
319 3 Delayms(5); //3
320 3 RF905_Write(WTA,TX_ADDRESS);
321 3 //RF905_Write(WTP,Databuf);
322 3 RF905_Write(WTP,comsbuf);
323 3 ChangeMode(TXData);
324 3 //mscom_snd(TX_ADDRESS,4);
325 3 //mscom_snd(Databuf,16);
326 3 //Delayus(650); // ensure nRF905 have began TX
327 3 //Delayms(2);
328 3 while(!RF_DR);
329 3 ChangeMode(RXMode);
330 3 }
331 2 if(trigglecom)
332 2 {
333 3 trigglecom=0;
334 3 mscom_snd(comsbuf,16);
335 3 }
336 2 /*
337 2 switch (URT_rcv)
338 2 {
339 2 case 0x00:
340 2 for(i=0;i<16;i++) Databuf[i]=i;
341 2 //eeprom_write(E2ADRSYS,Databuf,16);
342 2 //eeprom_read(E2ADRSYS,Databuf,16);
343 2 //mscom_snd(Databuf,16);
344 2 URT_rcv =0x10;
345 2 break;
346 2 case 0x01:
347 2 ChangeMode(Standby);
348 2 Delayus(3100);
349 2 RF905_Read(RC,Databuf);
350 2 ChangeMode(RXMode);
351 2 mscom_snd(Databuf,16);
352 2 URT_rcv =0x10;
353 2 break;
354 2 case 0x02:
355 2 ChangeMode(TXMode);
356 2 Delayus(3100);
357 2 RF905_Write(WTA,TX_ADDRESS);
358 2 RF905_Write(WTP,Databuf);
359 2 ChangeMode(TXData);
360 2 //mscom_snd(TX_ADDRESS,4);
361 2 //mscom_snd(Databuf,16);
362 2 Delayus(650); // ensure nRF905 have began TX
363 2 ChangeMode(RXMode);
C51 COMPILER V7.06 SEND8000_ADD_COM_ 01/19/2007 16:22:27 PAGE 7
364 2 URT_rcv =0x10;
365 2 break;
366 2 case 0x03:
367 2 ChangeMode(Standby);
368 2 RF905_Read(RTP,Databuf);
369 2 Delayus(650);
370 2 ChangeMode(RXMode);
371 2 mscom_snd(Databuf,16);
372 2 URT_rcv =0x10;
373 2 break;
374 2 case 0x04:
375 2 ChangeMode(Standby);
376 2 RF905_Read(RRP,Databuf);
377 2 Delayus(650);
378 2 ChangeMode(RXMode);
379 2 //mscom_snd(Databuf,16);
380 2 URT_rcv =0x10;
381 2 break;
382 2 case 0x05:
383 2 for(i=0;i<16;i++) Databuf[i]=15-i;
384 2 //eeprom_write(E2ADRSYS,Databuf,16);
385 2 //eeprom_read(E2ADRSYS,Databuf,16);
386 2 //mscom_snd(Databuf,16);
387 2 URT_rcv =0x10;
388 2 break;
389 2 case 0x06:
390 2 for(i=0;i<16;i++) Databuf[i]=0x06;
391 2 //eeprom_write(E2ADRSYS,Databuf,16);
392 2 //eeprom_read(E2ADRSYS,Databuf,16);
393 2 //mscom_snd(Databuf,16);
394 2 URT_rcv =0x10;
395 2 break;
396 2 case 0x07:
397 2 ChangeMode(PowerDown);
398 2 URT_rcv =0x10;
399 2 default:
400 2 ChangeMode(RXMode);
401 2 URT_rcv =0x10;
402 2 break;
403 2 }
404 2 */
405 2 }
406 1 }
407
408
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 639 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 5
IDATA SIZE = 65 ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -