📄 dvs-v1.0.lst
字号:
507 2 }
508 1 }
509
510
511
512 //===============================================================================================
513 //语法格式:SaveRFAdd()
514 //实现功能:保存设置解码地址
515 //参数: 要存入的位置,和数据
516 //返回值: 无
517 //创建时间:2008-11-30 修改时间:
518 //创建人员: 修改人员:
519 //===============================================================================================
520 void SaveRFAdd(unsigned char auc_sea,unsigned char *p_data,bit SD)
521 {
522 1 unsigned char data luc_i;
523 1 for(luc_i = 0; luc_i < 3 ; luc_i ++)
524 1 {
525 2 WrEEPROM(R315_STAR_ADDR+3*auc_sea+luc_i,*(p_data+luc_i));
526 2 }
527 1 if(SD==1) WrEEPROM(Alar_Star_Addr+auc_sea,'O'); //保存解码数据
528 1 else WrEEPROM(Alar_Star_Addr+auc_sea,'C'); //删除解码数据
529 1 }
530
531
532
533 //===============================================================================================
534 //语法格式:SetRemAddr()
535 //实现功能:设置遥控地址并保存
536 //参数: 无
537 //返回值: 无
538 //创建时间:2008-11-30 修改时间:
539 //创建人员: 修改人员:
540 //===============================================================================================
541 void SetRemAddr() //设置地址
542 {
543 1 unsigned char data luc_i,luc_j;
544 1 ClearRem(); //清除解码后的数据
545 1 SuccBuzzer(); //设置成功时发出的声音
546 1 while(1)
547 1 {
548 2 if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
549 2 RemIn(); //不断扫描是否解码
550 2 if(guc_bit_RemCom==1) //有传感器来
551 2 {
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 10
552 3 for(luc_j = 0; luc_j < 4 ; luc_j ++)
553 3 {
554 4 for(luc_i = 0; luc_i < 2 ; luc_i ++)
555 4 {
556 5 WrEEPROM(REM_STAR_ADDR+3*luc_j+luc_i,guc_R315Buf[luc_i]);//保存地址
557 5 }
558 4 WrEEPROM(REM_STAR_ADDR+3*luc_j+2,RemDataTab[luc_j]); //保存数据
559 4 }
560 3 SuccBuzzer(); //设置成功时发出的声音
561 3 ClearRem();
562 3 break;
563 3 }
564 2 }
565 1 }
566
567
568
569 //===============================================================================================
570 //语法格式:StarSetFun()
571 //实现功能:开始设置各种功能
572 //参数: 无
573 //返回值: 无
574 //创建时间:2008-11-30 修改时间:
575 //创建人员: 修改人员:
576 //===============================================================================================
577 void StarSetFun()
578 {
579 1 HANDUP = 1; //摘机
580 1 if(guc_bitPhSet)SET = 0; //如果是远程控不用打开继电器
581 1 else SET = 1; //继电器打开
582 1 guc_Timer0 = SET_REM_TIM; //按键定时
583 1 }
584
585
586
587 //===============================================================================================
588 //语法格式:OverSetFun()
589 //实现功能:结束设置各种功能
590 //参数: 无
591 //返回值: 无
592 //创建时间:2008-11-30 修改时间:
593 //创建人员: 修改人员:
594 //===============================================================================================
595 void OverSetFun()
596 {
597 1 guc_Timer0 = 0; //计数器清0
598 1 // guc_bitAlarPul2 = 0; //表示已经报过警了
599 1 HANDUP = 0; //挂机
600 1 SET = 0; //继电器打开
601 1 Delay1Ms(60); //等待继电器延时,防止干扰断线报警
602 1 }
603
604
605 //===============================================================================================
606 //语法格式:SetRemotAddr()
607 //实现功能:设置遥控地址
608 //参数: 无
609 //返回值: 无
610 //创建时间:2008-11-30 修改时间:
611 //创建人员: 修改人员:
612 //===============================================================================================
613 void SetRemotAddr()
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 11
614 {
615 1 unsigned char data luc_i;
616 1 unsigned char data luc_data; //DTMF解码数据
617 1 unsigned char data luc_DataLen = 0; //DTMF解码数据长度
618 1 unsigned char data luc_Buf[4];
619 1 bit bit_ok;
620 1 StarSetFun(); //开始设置各种功能
621 1 while(1)
622 1 {
623 2 if(guc_Timer0 == 0) break;
624 2 luc_data = DTMF();
625 2 if(luc_data==0x0c)
626 2 {
627 3 FailBuzzer(); //设置失败时发出的声音
628 3 ALARM_LED = 1;
629 3 while(1)
630 3 {
631 4 luc_data = DTMF();
632 4 if(guc_Timer0 == 0) break; //如果按键长时间没有按,则退出函数
633 4 if((0<luc_data)&&(luc_data<=10))
634 4 {
635 5 if(luc_data==10)luc_data = 0;
636 5 luc_Buf[luc_DataLen++] = luc_data;
637 5 }
638 4 if((4<luc_DataLen)&&(luc_data!=0))
639 4 {
640 5 luc_DataLen = 0; //重新输入
641 5 FailBuzzer(); //设置失败时发出的声音
642 5 }
643 4 if(luc_data==0x0b)
644 4 {
645 5 SuccBuzzer(); //设置成功时发出的声音
646 5 luc_DataLen = 0; //"*"键重新输入
647 5 }
648 4 if(luc_data==0x0c)
649 4 {
650 5 guc_Timer0 = 800;
651 5 for(luc_i = 0 ; luc_i < 4 ; luc_i ++)
652 5 {
653 6 if(luc_Buf[luc_i] == RemotNubTab[luc_i]) bit_ok = 1;
654 6 else
655 6 {
656 7 bit_ok = 0;
657 7 break;
658 7 }
659 6 }
660 5 if(bit_ok == 1)SetRemAddr(); //设置地址
661 5 else FailBuzzer(); //设置失败时发出的声音
662 5 break;
663 5 }
664 4 }
665 3 break;
666 3 }
667 2 else if(luc_data!=0) FailBuzzer(); //设置失败时发出的声音
668 2 }
669 1 OverSetFun(); //结束设置各种功能
670 1 }
671
672
673
674
675 //===============================================================================================
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 12
676 //语法格式:ScanSetRFAddr()
677 //实现功能:设置解码地址
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -