📄 dvs-v1.0.lst
字号:
678 //参数: 无
679 //返回值: 无
680 //创建时间:2008-11-30 修改时间:
681 //创建人员: 修改人员:
682 //===============================================================================================
683 unsigned char code DelRFAdd[3]={0xff,0xff,0xff};
684 void ScanSetRFAddr()
685 {
686 1
687 1 unsigned char data luc_SectorCnt = 0;
688 1 unsigned char data luc_temp;
689 1 if(COOD==0) //如果有按键按下
690 1 {
691 2 Delay1Ms(30); //延时,防止误按
692 2 if(COOD==0)
693 2 {
694 3 guc_SetAddrTi = 5*KEY_TIME; //按键盘定时
695 3 SetWordDisp();
696 3 guc_bit_AlLedOF = 0 ; //报警指示闪烁灯关
697 3 SUN_LED = SUN_LED_ON; //撤防时电源指示点亮
698 3 while(COOD==0) //等待按键松开
699 3 {
700 4 //ClearWatchDog();
701 4 if(guc_SetAddrTi == 0)
702 4 {
703 5 FailBuzzer(); //设置失败时发出的声音,其实是正确设置以误导用户不能私自设置
704 5 guc_Timer0 = 0;
705 5 // guc_bitAlarPul2 = 0; //表示已经报过警了
706 5 SetRemotAddr();
707 5 return;
708 5 }
709 4 }
710 3 ClearRem(); //清除解码后的数据
711 3 POW_GlimmLEDOF = 0; //电源指示灯闪烁关闭
712 3 SUN_LED = SUN_LED_OFF; //关闭电源指示灯
713 3 guc_bit_Alar_led = 0;
714 3 guc_Timer0 = SET_REM_TIM;
715 3 guc_74HC164LED = 0;
716 3 FlickerOut(luc_SectorCnt) ;
717 3 SuccBuzzer(); //设置成功时发出的声音
718 3 while(1)
719 3 {
720 4 RemIn(); //不断扫描是否解码
721 4 if(guc_Timer0==0)
722 4 {
723 5 guc_74HC164LED = 0;
724 5 SUN_LED = SUN_LED_OFF;
725 5 DispAlarLED();
726 5 guc_bit_Alar_led = 1;
727 5 break;
728 5 }
729 4 if(guc_bit_RemCom==1) //有传感器来
730 4 {
731 5 guc_Timer0 = SET_REM_TIM; //定时器定时
732 5 luc_temp = JudgeDupAddr(guc_R315Buf);
733 5 if(luc_temp==0) //如果没有相同的编码则保存存
734 5 {
735 6 SaveRFAdd(luc_SectorCnt,guc_R315Buf,1); //保存信息
736 6 guc_74HC164LED = 0;
737 6 SUN_LED = SUN_LED_ON;
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 13
738 6 SuccBuzzer(); //设置成功时发出的声音
739 6 }
740 5 else if(luc_SectorCnt!=(luc_temp-1))FailBuzzer(); //设置失败时发出的声音
741 5 ClearRem(); //清除解码后的数据
742 5 }
743 4 if(COOD==0)
744 4 {
745 5 Delay1Ms(30); //延时,防止误按
746 5 if(COOD==0)
747 5 {
748 6 guc_SetAddrTi = KEY_TIME; //按键盘定时
749 6 while(COOD==0) //等待按键松开
750 6 {
751 7 //ClearWatchDog();
752 7 if(guc_SetAddrTi == 0)
753 7 {
754 8 SaveRFAdd(luc_SectorCnt,DelRFAdd,0); //保存信息
755 8 SuccBuzzer(); //设置成功时发出的声音
756 8 continue;
757 8 }
758 7 }
759 6 SUN_LED = SUN_LED_OFF;
760 6 guc_Timer0 = SET_REM_TIM; //定时器定时
761 6 guc_74HC164LED = 0;
762 6 luc_SectorCnt++;
763 6 FlickerOut(luc_SectorCnt) ;
764 6 }
765 5 }
766 4 if(luc_SectorCnt == 8 )
767 4 {
768 5 guc_74HC164LED = 0;
769 5 SUN_LED = SUN_LED_OFF;
770 5 DispAlarLED();
771 5 guc_bit_Alar_led = 1;
772 5 break;
773 5 }
774 4 }
775 3 // guc_bitAlarPul2 = 0; //表示已经报过警了
776 3 guc_Timer0 = 0;
777 3 }
778 2 }
779 1 }
780
781
782
783
784 //===============================================================================================
785 //语法格式: HC164Shif()
786 //实现功能:74hc164输出
787 //参数: 无
788 //返回值: 无
789 //创建时间:2008-11-30 修改时间:
790 //创建人员: 修改人员:
791 //===============================================================================================
792 void HC164Shif()
793 {
794 1 unsigned char data luc_i;
795 1 unsigned char data luc_temp;
796 1 luc_temp = guc_74HC164LED;
797 1 for(luc_i = 0 ; luc_i < 8 ; luc_i ++)
798 1 {
799 2 //ClearWatchDog();
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 14
800 2 LED_CLK = 0; //LED位
801 2 LED_DATA=luc_temp&0x80; //LED输出一位
802 2 luc_temp=luc_temp<<1;
803 2 LED_CLK =1;
804 2 }
805 1 }
806
807
808 //===============================================================================================
809 //语法格式:SetWordDisp()
810 //实现功能:各种设置时各LED指示
811 //参数: 无
812 //返回值: 无
813 //创建时间:2008-11-30 修改时间:
814 //创建人员: 修改人员:
815 //===============================================================================================
816 void SetWordDisp()
817 {
818 1 if(guc_bit_Alar_led)guc_74HC164LED = 0; //如果以前没有报过警关闭所有防区灯
819 1 guc_bit_Alar_led = 0 ; //防区指示灯闪烁关
820 1 guc_bit_AlLedOF = 1 ; //报警指示闪烁灯开
821 1 POW_GlimmLEDOF = 0 ; //电源指示灯闪烁关
822 1 SUN_LED = SUN_LED_OFF; //关闭电源指示灯
823 1 guc_bitLedDispPul = 1; //设置时各指示灯只点亮一次标致
824 1
825 1 }
826
827 //===============================================================================================
828 // 语法格式:LedWorkDisp()
829 // 实现功能:正常工作LED指示
830 // 输入参数:无
831 // 返回参数:无
832 // 创建时间:2008-11-30 修改时间:
833 // 创建人员: 修改人员:
834 //===============================================================================================
835 void LedWorkDisp()
836 {
837 1 if(guc_bitLedDispPul) //设置时各指示灯只点亮一次标致
838 1 {
839 2 if((guc_KATime == 0)&&(!guc_bit_SenAlar)&&(guc_Bit_BuChe)&&(guc_Timer0==0))
840 2 {
841 3 guc_74HC164LED = 0; //统一点亮
842 3 guc_bitLedDispPul = 0; //设置时各指示灯只点亮一次标致
843 3 guc_bit_Alar_led = 1 ; //防区指示灯闪烁开
844 3 guc_bit_AlLedOF = 0 ; //报警指示闪烁灯关
845 3 POW_GlimmLEDOF = 1 ; //电源指示灯闪烁开
846 3 SUN_LED =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -