📄 dvs-v1.0.lst
字号:
165 2 auc_data=auc_data>>1;
166 2 HT9200_CLK = 1 ;
167 2 }
168 1 }
169 //===============================================================================================
170 //语法格式: SendDTMEDat(unsigned char auc_data)
171 //实现功能: 拔打电话
172 //参数: 需要拔出去的号码
173 //返回: 无
174 //创建时间:2008-11-30 修改时间:
175 //创建人员: 修改人员:
176 //===============================================================================================
177 void SendDTMEDat(unsigned char auc_data)
178 {
179 1 unsigned char data luc_temp;
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 4
180 1 Delay1Ms(100); //延时 100 ms
181 1 SUN_LED = SUN_LED_ON;
182 1 if(auc_data == 0) luc_temp = 10; //DTMF编码中的'0'是'10'
183 1 else luc_temp = auc_data;
184 1 HT9200_CE1 = 0 ;
185 1 HT9200_CLK = 1 ;
186 1 Delay1Ms(10); //延时 10 ms
187 1 EA = 0 ;
188 1 SendDTMFByte(luc_temp) ;
189 1 EA = 1 ;
190 1 Delay1Ms(100); //延时 100 ms
191 1 HT9200_CE1 = 1;
192 1 SUN_LED = SUN_LED_OFF;
193 1 }
194
195
196 //===============================================================================================
197 //语法格式:SaveInit()
198 //实现功能:保存初始化的数据
199 //参数: 无
200 //返回值: 无
201 //创建时间:2008-11-30 修改时间:
202 //创建人员: 修改人员:
203 //===============================================================================================
204 unsigned char code Init_Tab[6]={0x31,0x32,0x01,0x02,0x03,0x04};
205 void SaveInit()
206 {
207 1 unsigned char data luc_i;
208 1 for(luc_i = 0 ; luc_i < 6 ; luc_i++)
209 1 {
210 2 WrEEPROM(luc_i,Init_Tab[luc_i]); //保存初始化的值
211 2 }
212 1 PassSafeDefau; //默认密码保护
213 1 WrEEPROM(Alar_TI_Addr,ALARSOURTIME); //默认警笛时间为15秒钟
214 1 WrEEPROM(Ring_Cnt_Addr,RING_TACTI_CNT); //振铃次数
215 1 }
216
217
218
219
220 //===============================================================================================
221 //语法格式:Init()
222 //实现功能:开机初始化
223 //参数: 无
224 //返回值: 无
225 //创建时间:2008-11-30 修改时间:
226 //创建人员: 修改人员:
227 //===============================================================================================
228 void Init()
229 {
230 1 unsigned char data luc_i,luc_j;
231 1 bit bit_ok;
232 1 guc_bitbhOF = 1; //打开拔号开关
233 1 POW_GlimmLEDOF = 1; //电源指示灯闪烁打开
234 1 // guc_bit_AlarPul = 1; //拔号报警标致
235 1 guc_bitAlaSounPul = 0; //断线报警只报一次标致
236 1 guc_bit_AlLedOF = 0; //报警指示灯关闭闪烁
237 1 guc_bit_Alar_led = 1; //防区指示灯闪烁开关
238 1 guc_bitARPul = 1; //断线报警只判断一次
239 1 guc_Bit_BuChe = 1; //默认为布防
240 1 guc_bit_RemCom = 0; //2272解码清0
241 1 // guc_bit_SenAlar = 0; //传感器报警
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 5
242 1 guc_bitLineOFAlar = 1; //断线报警开关
243 1 BZZER = 0; //蜂响声
244 1 Listen_CTRL = 0; //关闭现场监听
245 1 SET = 0; //继电器
246 1 HANDUP = 0; //摘机
247 1 guc_REM_TI = 0; //315解码定时器
248 1 guc_AlarCnt = 0; //拔号计算器清0
249 1 guc_KATime = 0; //警响声计数器清0
250 1 // guc_bit_ERC = 0; //放音开闭
251 1 guc_TI = TWINLEDTIME; //防区灯闪烁定时计数器
252 1 guc_bitPhSet = 0; //电话设置蜂鸣声开关
253 1 guc_bitENCD = 0; //现场听标致
254 1 guc_74HC164LED = 0;
255 1 DispAlarLED();
256 1 for(luc_j = 0 ; luc_j < 3 ; luc_j ++) //读3次开机标致位,只要有一次成功退出
257 1 {
258 2 for(luc_i = 0 ; luc_i < 2 ; luc_i++) //读取开机标致
259 2 {
260 3 if(RdEEPROM(luc_i) == Init_Tab[luc_i]) bit_ok = 1;
261 3 else
262 3 {
263 4 bit_ok = 0;
264 4 break;
265 4 }
266 3 }
267 2 if(bit_ok == 1) break;
268 2 }
269 1 if(bit_ok == 0) SaveInit(); //没有开机初始化,则初始化
270 1 for(luc_i = 0 ; luc_i < 4 ; luc_i++)
271 1 {
272 2 guc_PassBuf[luc_i] = RdEEPROM(2+luc_i); //读取密码
273 2 }
274 1 }
275
276
277
278
279 //===============================================================================================
280 //语法格式:SetBuChe()
281 //实现功能:设置布撤防
282 //参数: 无
283 //返回值: 无
284 //创建时间:2008-11-30 修改时间:
285 //创建人员: 修改人员:
286 //===============================================================================================
287 void RemIn()
288 {
289 1
290 1 unsigned char data A[3]; //存放解码的数据
291 1 unsigned char data luc_i,luc_j;
292 1 unsigned int data luc_temp;
293 1 unsigned char data luc_Cnt;
294 1 if(!REM_DATA)
295 1 {
296 2 //ClearWatchDog();
297 2 for(luc_Cnt = 0; luc_Cnt < 2 ; luc_Cnt++) //连续解码两次,防止误码解码
298 2 {
299 3 TH0=0; TL0=0; //清定时器的计数器
300 3 while (!REM_DATA); //等待高电平
301 3 TR0=1; //启动定时器0
302 3 while(REM_DATA); //等待低电平
303 3 if (TF0==1) goto RemExit; //超时就退出
C51 COMPILER V7.06 DVS_V1_0 03/10/2009 18:23:25 PAGE 6
304 3 TR0 = 0;
305 3 luc_temp=TH0;
306 3 luc_temp=(luc_temp<<8)+TL0;
307 3 if (SynchHard) //判断同步码的宽度,同步码5ms--6ms
308 3 {
309 4 luc_temp=0;
310 4 goto RemExit;
311 4 } //同步码第一次检测成功
312 3 for (luc_i=0; luc_i<3; luc_i++) //解 3*8=24 位码
313 3 {
314 4 for (luc_j=0; luc_j<8; luc_j++)
315 4 {
316 5 while (!REM_DATA); //等待高电平
317 5 TH0=0; TL0=0; //清定时器的计数器
318 5 TR0=1;
319 5 while (REM_DATA); //等待低电平
320 5 if (TF0==1) goto RemExit; //超时就退出
321 5 TR0=0;
322 5 luc_temp=TH0;
323 5 luc_temp=(luc_temp<<8)+TL0;
324 5 if (WideSing) //宽取0.4ms--0.5ms
325 5 {
326 6 A[luc_i]=A[luc_i]<<1; //保存0
327 6 }
328 5 else if (NarrowSing) //窄取0.1ms--0.2ms
329 5 {
330 6 A[luc_i]=A[luc_i]<<1;
331 6 A[luc_i]=A[luc_i]+1; //保存 1
332 6 }
333 5 else goto RemExit;
334 5 }
335 4 luc_temp=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -