📄 rf315_attand.lst
字号:
C51 COMPILER V7.50 RF315_ATTAND 06/10/2007 23:11:22 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RF315_ATTAND
OBJECT MODULE PLACED IN .\out\RF315_ATTAND.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RF315_ATTAND.C LARGE OPTIMIZE(SIZE) REGFILE(.\out\mbtest.ORC) BROWSE INCDIR
-(C:\Keil\C51\LIB\;D:\TEST_C020\MC_55_C\) DEBUG OBJECTEXTEND OBJECT(.\out\RF315_ATTAND.obj)
line level source
1 #include "all.h"
2
3 bit Is_DiZh_Rx_Buff_Ok() ;
4
5 uchar Spk_At89341_cnt;
6
7 /**********************************************************************
8 **函数原型: void YU_YIN (void)
9 **入口参数: Xin_485_b=1
10 **出口参数: 无
11 **返 回 值: 无
12 **说 明: 语音任务。
13 ************************************************************************/
14
15
16 uint Mobile_Sigal_Cnt=0; //手机信号定时查询计数器
17 uchar RF315_addr=0xff; // 不等于0xff: 正在放音
18 void RF315_YIN (void) _task_ RF315 {
19 1
20 1 uchar Tem_lei ;
21 1 //os_wait2(K_SIG, 0);
22 1
23 1 while (1) {
24 2 os_wait2(K_TMO, 1);
25 2 Dog_RF315_cnt=0; //看门狗计数器
26 2
27 2 if( XinRf315_B) {
28 3 // RF_Address24_Xin.Address=(uint)((XinRf315_Value[1]>>8)&0xffff);
29 3 // RF_Address24_Xin.Lei=(uchar)((XinRf315_Value[1])&0xff);
30 3
31 3 XinJingLei_Byte=0;
32 3 if( Is_DiZh_Rx_Buff_Ok()==1&&DiZh_Rx_Buff[0]==8) {
33 4 RF_Address24_Xin.Lei=DiZh_Rx_Buff[2];
34 4 switch(RF_Address24_Xin.Lei) {
35 5 case YAO_CE:
36 5 CeFang_Once();
37 5 break;
38 5 case YAO_BU:
39 5 BuFang_Once();
40 5 break;
41 5 case YAO_ZAI:
42 5 ZaiJia_BuFang_Once();
43 5 break;
44 5 //case YAO_tan_HU:
45 5 case YAO_HU:
46 5 XinJingLei_Byte=5;
47 5 break;
48 5 case YAO_1:
49 5 XinJingLei_Byte=1;
50 5 break;
51 5 case YAO_2:
52 5 XinJingLei_Byte=2;
53 5 break;
54 5 case YAO_3:
C51 COMPILER V7.50 RF315_ATTAND 06/10/2007 23:11:22 PAGE 2
55 5 XinJingLei_Byte=3;
56 5 break;
57 5 case YAO_4:
58 5 XinJingLei_Byte=4;
59 5 break;
60 5 case YAO_YouXian: // 报警板的有线输入
61 5 XinJingLei_Byte=0x85;
62 5 break;
63 5
64 5 default:
65 5 XinJingLei_Byte=0;
66 5 break;
67 5 }
68 4 }
69 3 XinRf315_B=0;
70 3 }
71 2
72 2 if( XinJingLei_Byte!=0) {
73 3 //struct_Variale_True.XinCeFang_B=0;
74 3 Tem_lei=XinJingLei_Byte&0x7f;
75 3 if(( Tem_lei==5)|| ( Tem_lei==6)) { //当是呼救或地需时
76 4 struct_Variale_True.Attand_One_Jing_B=1;
77 4 XinPhone_JingLei_Byte= XinJingLei_Byte;
78 4
79 4
80 4 }
81 3 else {
82 4 switch(Para_all_True.Work_Mode) {
83 5 case 0: //撤防时
84 5
85 5
86 5 break;
87 5 case 1: //布防时
88 5 struct_Variale_True.Attand_One
-_Jing_B=1;
89 5 XinPhone_JingLei_Byte= XinJingLei_Byte;
90 5
91 5 break;
92 5 case 2: //在家布防时
93 5 //在家布防时只有1,2防区有效
94 5 if(Tem_lei==1||Tem_lei==2)
95 5 struct_Variale_Tr
-ue.Attand_One_Jing_B=1;
96 5 XinPhone_JingLei_Byte= XinJingLei_Byte;
97 5
98 5 break;
99 5 default:
100 5
101 5
102 5 break;
103 5
104 5 }
105 4 }
106 3 }
107 2 XinJingLei_Byte=0;
108 2
109 2 }
110 1 }
111
112
113
114 //系统进行一次撤防
C51 COMPILER V7.50 RF315_ATTAND 06/10/2007 23:11:22 PAGE 3
115 void CeFang_Once() {
116 1
117 1
118 1 Spk_cnt=0; //如报警警号响则停止响
119 1 Close_Spkk_P; //如报警警号响则停止响
120 1
121 1 Sound_DiDi_B=1;
122 1 Para_all_True.Work_Mode=0;
123 1 struct_Variale_True.XinCeFang_B=1;
124 1
125 1
126 1
127 1 }
128
129
130 //系统进行一次布防
131 uchar BuDelay_Time=0;
132 void BuFang_Once() {
133 1 Sound_Di_B=1;
134 1 Para_all_True.Work_Mode=5;
135 1 BuDelay_Time=0;
136 1
137 1
138 1 }
139
140
141 //系统进行一次在家布防
142 void ZaiJia_BuFang_Once() {
143 1
144 1 Sound_DiDiDi_B=1;
145 1 Para_all_True.Work_Mode=2;
146 1
147 1
148 1
149 1 }
150
151
152
153
154 // 保存一条记录之子程序
155
156
157 //读时间的6个字节到BUFFF
158
159
160 uchar ReadTime(uchar *Bufff) {
161 1 uchar i;
162 1 //得到权限
163 1 while(KEY_TX_Right_B==0 ) os_wait2(K_TMO,2);
164 1 KEY_TX_Right_B=0;
165 1
166 1 Xin_Time_in_B=0; //读到新时间 标志
167 1 DaBao_JTX_0x24_And_Send(55, &i, 0); // 55 查询屏的当前时间
168 1 // os_wait2(K_TMO,100);
169 1
170 1 //放弃到权限 在后面
171 1 i=0;
172 1 /*
173 1 Xin_KEY_RX_B=0;
174 1 while(++i<50) { // //1.2秒时
175 1 os_wait2(K_TMO,5);
176 1 if( Xin_KEY_RX_B) {
C51 COMPILER V7.50 RF315_ATTAND 06/10/2007 23:11:22 PAGE 4
177 1 Xin_KEY_RX_B=0;
178 1 break;
179 1
180 1 }
181 1
182 1 }
183 1
184 1 if(i==50) {
185 1 goto Lassrt;
186 1
187 1 }
188 1 */
189 1
190 1 //以上是接收确认
191 1
192 1 i=0;
193 1
194 1 Xin_KEY_RX_B=0;
195 1 while(++i<100) { // //1.2秒时
196 2 os_wait2(K_TMO,5);
197 2 if( Xin_KEY_RX_B) {
198 3 Xin_KEY_RX_B=0;
199 3 if(IS_CS_OK()==1&&KEY_RX_Buff[0]==55) {
200 4 *Bufff++=KEY_RX_Buff[2]; //年
201 4 *Bufff++=KEY_RX_Buff[3];
202 4 *Bufff++=KEY_RX_Buff[4];
203 4 *Bufff++=KEY_RX_Buff[5];
204 4 *Bufff++=KEY_RX_Buff[6];
205 4 *Bufff++=KEY_RX_Buff[7]; //秒
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -