请教 nRF905无线收发模块的编程

[复制链接]
 楼主| 许世霞 发表于 2007-12-24 18:17 | 显示全部楼层 |阅读模式
编程应该注意哪些?这是无线收发模块的接收程序!我有点看不明白.能不能给我讲一讲这个接收的过程。尤其是StartUART();time0sym();这两个程序的作用不太清楚!好心人给我讲讲吧!十分感谢<br />#include&nbsp;&ltreg52.h&gt<br />#include&nbsp;&ltABSACC.h&gt<br />#include&nbsp;&ltintrins.h&gt<br />#include&nbsp;&ltstdio.h&gt<br />#define&nbsp;uint&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0&nbsp;~&nbsp;255<br />#define&nbsp;uchar&nbsp;unsigned&nbsp;char<br />/////////////////<br />#define&nbsp;BYTE_BIT0&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />#define&nbsp;BYTE_BIT1&nbsp;&nbsp;&nbsp;&nbsp;0x02<br />#define&nbsp;BYTE_BIT2&nbsp;&nbsp;&nbsp;&nbsp;0x04<br />#define&nbsp;BYTE_BIT3&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />#define&nbsp;BYTE_BIT4&nbsp;&nbsp;&nbsp;&nbsp;0x10<br />#define&nbsp;BYTE_BIT5&nbsp;&nbsp;&nbsp;&nbsp;0x20<br />#define&nbsp;BYTE_BIT6&nbsp;&nbsp;&nbsp;&nbsp;0x40<br />#define&nbsp;BYTE_BIT7&nbsp;&nbsp;&nbsp;&nbsp;0x80<br />////////////////<br />#define&nbsp;WC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />#define&nbsp;RC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x10<br />#define&nbsp;WTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x20<br />#define&nbsp;RTP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x21<br />#define&nbsp;WTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x22<br />#define&nbsp;RTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x23<br />#define&nbsp;RRP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x24<br />bdata&nbsp;unsigned&nbsp;&nbsp;char&nbsp;DATA_BUF;<br />#define&nbsp;DATA7&nbsp;&nbsp;&nbsp;&nbsp;((DATA_BUF&BYTE_BIT7)&nbsp;!=&nbsp;0)<br />#define&nbsp;DATA0&nbsp;&nbsp;&nbsp;((DATA_BUF&BYTE_BIT0)&nbsp;!=&nbsp;0)<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;&nbsp;&nbsp;&nbsp;=DATA_BUF^7;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;flag1&nbsp;&nbsp;&nbsp;&nbsp;=DATA_BUF^0;<br />#define&nbsp;TxRxBuf_Len&nbsp;4<br />unsigned&nbsp;char&nbsp;TxRxBuffer[TxRxBuf_Len];<br />char&nbsp;temp[4];<br />uint&nbsp;&nbsp;&nbsp;&nbsp;count=1;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;TXEN=P1^0;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=P3^2;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;PWR=P1^1;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;MISO=P1^6;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;MOSI=P1^5;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;SCK=P1^7;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;CSN=P1^3;<br />/////////////////////////////////////////////////////<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;AM=P1^4;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;DR=P3^3;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;CD=P1^2;<br />///////////////////////////////////////////////////////<br /><br />/////////////////////////////////////////////<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;led1=P2^1;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;led0=P2^0;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;led2=P2^2;<br />sbit&nbsp;&nbsp;&nbsp;&nbsp;led3=P2^3;<br />/////////////////////////////////////////////////////<br />uchar&nbsp;seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0~~9段码<br />//uchar&nbsp;seg1[10]={0x02,0xf2,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x08};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0~~9段码<br />//RF寄存器配置//<br />unsigned&nbsp;char&nbsp;idata&nbsp;RFConf[11]=<br />{<br />&nbsp;&nbsp;0x00,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//配置命令//<br />&nbsp;&nbsp;0x4c,0x0c,0x44,0x04,0x04,0xcc,0xcc,0xcc,0xcc,0x58,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振<br />};<br />bit&nbsp;lcdbit;<br />///////////80us延时/////////////////<br />void&nbsp;Delay(uchar&nbsp;n)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint&nbsp;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(n--)<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt8;k++);<br />}<br />void&nbsp;delay1(uint&nbsp;i)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;i&gt0;i--);&nbsp;&nbsp;&nbsp;<br />}<br />///////////////<br />unsigned&nbsp;char&nbsp;SpiRead(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;j;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j=0;j&lt8;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUF=DATA_BUF&lt&lt1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(MISO)&nbsp;&nbsp;&nbsp;&nbsp;//读取最高位,保存至最末尾,通过左移位完成整个字节<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUF|=BYTE_BIT0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUF&=~BYTE_BIT0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCK=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;DATA_BUF;<br />}<br /><br />void&nbsp;SpiWrite(unsigned&nbsp;char&nbsp;send)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUF=send;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt8;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(DATA7)&nbsp;&nbsp;&nbsp;&nbsp;//总是发送最高位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOSI=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOSI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCK=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DATA_BUF=DATA_BUF&lt&lt1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCK=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />////////////////初始化nRF905///////////////////<br />void&nbsp;nRF905Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;CSN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Spi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disable<br />&nbsp;&nbsp;&nbsp;&nbsp;SCK=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Spi&nbsp;clock&nbsp;line&nbsp;init&nbsp;low<br />&nbsp;&nbsp;&nbsp;&nbsp;DR=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Init&nbsp;DR&nbsp;for&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;AM=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Init&nbsp;AM&nbsp;for&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;CD=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Init&nbsp;CD&nbsp;for&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;PWR=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;nRF905&nbsp;power&nbsp;on<br />&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;nRF905&nbsp;in&nbsp;standby&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;TXEN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;radio&nbsp;in&nbsp;Rx&nbsp;mode<br />}<br />////////初始化寄存器<br />void&nbsp;Config905(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;CSN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Spi&nbsp;enable&nbsp;for&nbsp;write&nbsp;a&nbsp;spi&nbsp;command<br />&nbsp;&nbsp;&nbsp;&nbsp;//SpiWrite(WC);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;config&nbsp;command写放配置命令<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&lt11;i++)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Write&nbsp;configration&nbsp;words&nbsp;&nbsp;写放配置字<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiWrite(RFConf);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;CSN=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Disable&nbsp;Spi<br />}<br />void&nbsp;SetRxMode(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TXEN=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;delay&nbsp;for&nbsp;mode&nbsp;change(&gt=650us)<br />}<br /><br />unsigned&nbsp;char&nbsp;CheckDR(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检查是否有新数据传入&nbsp;Data&nbsp;Ready<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(DR=1&&TRX_CE==1&nbsp;&&&nbsp;TXEN==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delay(50)&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />void&nbsp;RxPacket(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读数据<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);<br />//&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;nRF905&nbsp;in&nbsp;standby&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;CSN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Spi&nbsp;enable&nbsp;for&nbsp;write&nbsp;a&nbsp;spi&nbsp;command<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;SpiWrite(RRP);<br />&nbsp;&nbsp;//&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;//&nbsp;Delay(10000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;payload&nbsp;command<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0&nbsp;;i&nbsp;&lt&nbsp;4&nbsp;;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;Delay(10000);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TxRxBuffer=SpiRead();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;data&nbsp;and&nbsp;save&nbsp;to&nbsp;buffer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;Delay(10000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;CSN=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delay(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;TRX_CE=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />////////////////<br />void&nbsp;&nbsp;RX(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetRxMode();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Set&nbsp;nRF905&nbsp;in&nbsp;Rx&nbsp;mode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(CheckDR()==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Delay(10000);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RxPacket();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Delay(10000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Recive&nbsp;data&nbsp;by&nbsp;nRF905<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(10);<br />}<br />void&nbsp;StartUART(&nbsp;void&nbsp;)<br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//波特率4800<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SCON&nbsp;=&nbsp;0x50;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMOD&nbsp;=&nbsp;0x20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH1&nbsp;=&nbsp;0xFA;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL1&nbsp;=&nbsp;0xFA;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCON&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TR1&nbsp;=&nbsp;1;<br />}<br />void&nbsp;R_S_Byte(uchar&nbsp;R_Byte)<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF&nbsp;=&nbsp;R_Byte;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;TI&nbsp;==&nbsp;0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//查询法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;&nbsp;&nbsp;&nbsp;time0sym()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH0=0xE2&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重载计数初始值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0=0x00&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TR0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ET0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EA=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TF0=0&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清中断&nbsp;<br /><br />}<br />void&nbsp;time0_int()&nbsp;&nbsp;&nbsp;&nbsp;interrupt&nbsp;1<br />{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(TF0==1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//10ms中断<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TF0=0&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清中断&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH0=0xE2&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重载计数初始值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0=0x00&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count=count+1&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(count==100)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//1s<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//每1秒清count&nbsp;,重新开始等待1秒&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StartUART();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time0sym();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nRF905Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Config905();<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RX();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSN=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />if(TxRxBuffer[0])<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(TxRxBuffer[0]==0x29)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;R_S_Byte(TxRxBuffer[0]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=seg[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=1;led1=1;led2=1;led3=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay1(50);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//led0=1;led1=1;led2=1;led3=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(TxRxBuffer[0]==0x30)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;R_S_Byte(TxRxBuffer[0]);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0=seg[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;led0=1;led1=1;led2=0;led3=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay1(50);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;led0=1;led1=1;led2=1;led3=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSN=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay(1);<br />}<br /><br />
 楼主| 许世霞 发表于 2007-12-26 21:21 | 显示全部楼层

前辈给我留下点痕迹吧!谢谢了

  
gaobc 发表于 2007-12-27 16:55 | 显示全部楼层

StartUART配置串口,time0sym配置定时器

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

3781

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

439

主题

3781

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部