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