📄 test.lst
字号:
142 {
143 1 TH1=(65536-46080)/256; /* Fosc=733728MHz/4=1.8432MHz */
144 1 TL1=(65536-46080)%256; /* 50ms timer interrupt */
145 1 TR1=1;
146 1 if(++tim_cnt==20)
147 1 {
148 2 tim_cnt=0;
149 2 Flag_scd=1;
150 2 if(tim_scd++==60)
151 2 {
152 3 tim_scd=0;
153 3 if(tim_mnt++==60)
154 3 {
155 4 tim_mnt=0;
156 4 if(tim_hur++==24) tim_hur=0;
157 4 }
158 3 }
159 2 }
160 1 }
161
162
163 /************************************************************************************************/
164 main()
165 {
166 1 uchar i;
167 1 /*IO口模式设置00准双向;01推挽;10高阻输入;11开漏 */
168 1 P0M1=0x00; /* P0M1: 00000000 键盘 双向*/
169 1 P0M2=0x0F; /* P0M2: 00001111 LED 推挽*/
170 1 P1M1=0x2C; /* P1M1: 00101100 P1.2/P1.3配置为开漏,外接上拉电阻;P1.5(RST)仅能为输入(高阻);*/
171 1 P1M2=0x0C; /* P1M2: 00001100 中断1,串口为准双向;*/
172 1 P2M1=0x00; /* P2M1: 00000000 */
173 1 P2M2=0x00; /* P2M2: 00000000 */
174 1 P3M1=0x00; /* IO口模式设置: 准双向口00,使用内部时钟 */
175 1 P3M2=0x00;
176 1
177 1 P0=0xFF; /* 初化P0口 */
178 1 P1=0xFF;
179 1 P2=0xFF; /* */
C51 COMPILER V7.50 TEST 03/30/2006 09:07:30 PAGE 4
180 1 P3=0xFF; /* */
181 1
182 1 DIVM=2; /* 降低工作频率,以便程序移植 */
183 1 uart_init(); /* 串口初始化9600BPS */
184 1 Spi_init(); /* 初始化SPI端口 */
185 1
186 1 ChangeMode(Standby); /* nRF905进入待机SPI通讯模式 */
187 1 Delayus(1000);
188 1 Config905(); /* 配置nRF905 */
189 1
190 1 TMOD|=0x10; /* Timer1 mode set Mode1 */
191 1 TH1=(65536-46080)/256; /* Fosc=1.8432MHz,50ms timer interrupt */
192 1 TL1=(65536-46080)%256;
193 1 ET1=1;TR1=1;
194 1 EA=1;
195 1
196 1 eeprom_read(E2ADRSYS,Databuf,16); /* 读取本系统地址及参数 */
197 1 ADDRESS = BUFADR;
198 1 if(ADDRESS==0xFF) /* 地址为0xFF时,初始化地址为1 */
199 1 {
200 2 BUFADR = ADDRESS = 0x01; /* 本系统地址存储为0x01 */
201 2 for(i=1;i<16;i++)Databuf[i]=i;
202 2 eeprom_write(E2ADRSYS,Databuf,16); /* 存储本系统地址及参数 */
203 2 }
204 1 mscom_snd(Databuf,16);
205 1
206 1 RF905_Read(RC,Databuf);
207 1 mscom_snd(Databuf,16);
208 1 ChangeMode(RXMode); /**/
209 1
210 1 while(1)
211 1 {
212 2 while(RF_DR)
213 2 {
214 3 /* ChangeMode(Standby); /**/
215 3 RF905_Read(RRP,Databuf);
216 3 ChangeMode(RXMode);
217 3 Delayus(500);
218 3 mscom_snd(Databuf,16);
219 3 }
220 2 switch (URT_rcv)
221 2 {
222 3 case 0x00:
223 3 for(i=0;i<16;i++) Databuf[i]=i;
224 3 eeprom_write(E2ADRSYS,Databuf,16);
225 3 eeprom_read(E2ADRSYS,Databuf,16);
226 3 mscom_snd(Databuf,16);
227 3 URT_rcv =0x10;
228 3 break;
229 3 case 0x01:
230 3 ChangeMode(Standby);
231 3 Delayus(3100);
232 3 RF905_Read(RC,Databuf);
233 3 ChangeMode(RXMode); /**/
234 3 mscom_snd(Databuf,16);
235 3 URT_rcv =0x10;
236 3 break;
237 3 case 0x02:
238 3 ChangeMode(TXMode);
239 3 Delayus(3100);
240 3 RF905_Write(WTA,TX_ADDRESS);
241 3 RF905_Write(WTP,Databuf); /**/
C51 COMPILER V7.50 TEST 03/30/2006 09:07:30 PAGE 5
242 3 ChangeMode(TXData);
243 3 mscom_snd(TX_ADDRESS,4);
244 3 mscom_snd(Databuf,16);
245 3 Delayus(650); /* ensure nRF905 have began TX */
246 3 ChangeMode(RXMode); /**/
247 3 URT_rcv =0x10;
248 3 break;
249 3 case 0x03:
250 3 ChangeMode(Standby);
251 3 RF905_Read(RTP,Databuf);
252 3 Delayus(650);
253 3 ChangeMode(RXMode); /**/
254 3 mscom_snd(Databuf,16);
255 3 URT_rcv =0x10;
256 3 break;
257 3 case 0x04:
258 3 /* ChangeMode(Standby); /**/
259 3 RF905_Read(RRP,Databuf);
260 3 Delayus(650);
261 3 ChangeMode(RXMode); /**/
262 3 mscom_snd(Databuf,16);
263 3 URT_rcv =0x10;
264 3 break;
265 3 case 0x07:
266 3 ChangeMode(PowerDown);
267 3 URT_rcv =0x10;
268 3 default:
269 3 ChangeMode(RXMode); /**/
270 3 URT_rcv =0x10;
271 3 break;
272 3 }
273 2 }
274 1 }
275
276
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 689 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 14
IDATA SIZE = 31 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -