?? 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 + -