📄 test.lst
字号:
if(log_pos>=MAX_LOGS)
log_pos=0;
read12887(date);
log.index=log_index;
log.year=date[6];
log.month=date[5];
log.day=date[4];
log.hou=date[2];
log.min=date[1];
log.sec=date[0];
ee_write(log_pos>>5, (log_pos<<3)&0xff, sizeof(log_t), (unsigned char*)&log);
log_pos++;
log_index++;
}
void clear_log(){
log_t log;
memset((void *)&log, 0xff, sizeof(log_t));
for(log_pos=0; log_pos<MAX_LOGS; log_pos++){
ee_write(log_pos>>5, log_pos<<3, sizeof(log_t), (unsigned char*)&log);
sleep(100);
}
}
typedef struct arg_s{
unsigned int ir_addr;
unsigned char ir_data;
unsigned int delay1;
unsigned int delay2;
unsigned int delay3;
}arg_t;
arg_t arg;
#define arg_addr 0x300
void get_arg(){
C51 COMPILER V7.20 TEST 11/01/2004 17:44:53 PAGE 5
ee_read(arg_addr>>8, arg_addr&0xff, sizeof(arg_t), (unsigned char*)&arg);
}
void save_arg(){
arg.ir_addr=(ir_buf[0]<<8)|ir_buf[1];
arg.ir_data=ir_buf[2];
arg.delay1=10000;
arg.delay2=10000;
arg.delay3=10000;
// ee_write(arg_addr>>8, arg_addr&0xff, sizeof(arg_t), (unsigned char*)&arg);
}
#endif
254
255 void sys_init(){
256 1 clock_init();
257 1 init_serialcomm();
258 1 // start12887();
259 1 // find_log_pos();
260 1 // get_arg();
261 1 // save_arg();
262 1 }
263
264 unsigned char fs1_circle;
265 unsigned char fs2_circle;
266 bit fs1_open=0;
267 bit fs2_open=0;
268
269 #define OPEN_CIRCLE 0
270 void fs_drive(){
271 1 if(fs1_open){
272 2 fs1_circle--;
273 2 if(fs1_circle>OPEN_CIRCLE)
274 2 FS1 = 0;
275 2 else
276 2 FS1 = 1;
277 2 if(fs1_circle == 0)
278 2 fs1_circle=OPEN_CIRCLE+2;
279 2 }else
280 1 FS1 = 1;
281 1 if(fs2_open){
282 2 fs2_circle--;
283 2 if(fs2_circle>OPEN_CIRCLE)
284 2 FS2 = 0;
285 2 else
286 2 FS2 = 1;
287 2 if(fs2_circle == 0)
288 2 fs2_circle=OPEN_CIRCLE+2;
289 2 }else
290 1 FS2 = 1;
291 1 }
292
293 unsigned int key_disable_timer=0;
294 void main(){
295 1
296 1 sys_init();
297 1
298 1 while(1){
299 2 ir_test();
300 2 fs_drive();
301 2 if(key_disable_timer)
302 2 key_disable_timer--;
C51 COMPILER V7.20 TEST 11/01/2004 17:44:53 PAGE 6
303 2 if(ir_step == 50){
304 3 int t=key_disable_timer-jiffies;
305 3 if(1){//ir_addr == arg.ir_addr){
306 4 if(key_disable_timer==0){
307 5 if(ir_data == 0xFC){
308 6 fs1_open=!fs1_open;
309 6 if(fs1_open){
310 7 fs1_circle=255;
311 7 LED1=0;
312 7 }else
313 6 LED1=1;
314 6 }else
315 5 if(ir_data == 0xF3){
316 6 fs2_open=!fs2_open;
317 6 if(fs2_open){
318 7 fs2_circle=255;
319 7 LED2=0;
320 7 }else
321 6 LED2=1;
322 6 }
323 5 }
324 4 ir_step=0;
325 4 key_disable_timer=10000;
326 4 // serial_out(ir_buf[0]);
327 4 // serial_out(ir_buf[1]);
328 4 // serial_out(ir_buf[2]);
329 4 // write_log();
330 4 }
331 3 }
332 2 if (RI){
333 3 unsigned char ch = SBUF;
334 3 RI=0;
335 3 #if 0
if(ch=='w'){
unsigned char sbuf[3];//r addr_h addr_l len
if(wait_serial(sbuf, 3, 0)==0){
unsigned char dbuf[32];
if(wait_serial(dbuf, sbuf[2], 200)==0){
ee_write(sbuf[0], sbuf[1], sbuf[2], dbuf);
}else
serial_out(0x56);
}else
serial_out(0x57);
}
else
if(ch=='r'){
unsigned char i;
unsigned char sbuf[3];//r addr_h addr_l len
unsigned char dbuf[32];
if(wait_serial(sbuf, 3, 200)==0){
ee_read(sbuf[0], sbuf[1], sbuf[2], dbuf);
for(i=0; i<sbuf[2]; i++)
serial_out(dbuf[i]);
}else{
#if 0 //测试用0.
serial_out(0x55);
#else
unsigned char seg;
for(seg=0; seg<32; seg++){
ee_read(seg>>3, seg<<5, 32, dbuf);
for(i=0; i<32; i++)
serial_out(dbuf[i]);
C51 COMPILER V7.20 TEST 11/01/2004 17:44:53 PAGE 7
}
#endif
}
}
else
if(ch=='d'){
unsigned char i;
if(wait_serial(date, 7, 200)==0){
setup12887(date);
}else{
read12887(date);
for(i=0; i<7; i++)
serial_out(date[i]);
}
}
else
if(ch=='s'){
save_arg();
}
else
if(ch=='c'){
clear_log();
}
else
#endif
390 3 if(ch=='i'){
391 4 serial_out(ir_buf[0]);
392 4 serial_out(ir_buf[1]);
393 4 serial_out(ir_buf[2]);
394 4 }
395 3 }
396 2 }
397 1 }
398
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 553 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 10
IDATA SIZE = ---- ----
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 + -