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