📄 366j.lst
字号:
261 3 goto SERIAL; //通过串口发送给上位机
262 3 }
263 2 else
264 2 {
265 3 if(Number_Key==11)//收到自己发送的握手信号'*'
266 3 {JISHU=4000;goto ReadStatus;} //丢弃误读的366自己发的握手信号'*',并跳回继续监听
267 3 NUMBER[Number_Note-1]=Number_Key; //把键值写入数组
268 3 Number_Note=Number_Note+1;
269 3 JISHU=3800;
270 3 goto ReadStatus;
271 3 }
272 2 }
273 1 else //没有生成键值时
274 1 {
275 2 MT8880_CP2=0; //停动8880总线
276 2 MT8880_CS=1; //停动8880总线
277 2 JISHU=JISHU-1;
278 2 if(JISHU!=0)
279 2 {
280 3 goto ReadStatus;
281 3 }
282 2 else
283 2 {
284 3 J_LineToPhone=1; //模拟挂机
285 3 return;
286 3 }
287 2 }//读键值过程结束
288 1
289 1 SERIAL:
290 1 TCLK=0; //T2CON中的位 表示发送器波特率由定时器1决定
291 1 RCLK=0; //T2CON中的位 表示接收器波特率由定时器1决定
292 1 //SCON=80; //串行控制 0101,0000,SM0,SM1,SM2,REN,TB8,RB8,TI,RI 工作于串行方式1(8位异步)
293 1 SCON=0x88; //1000,1000,串口方式2,禁止接收,9位固定频率,TB8=1,即第9位为1,f/64
294 1 //TMOD=32; //定时器1工作于方式2,自动重装
295 1 PCON=0; //使SMOD=0
296 1 IE=0; //禁止中断
297 1
298 1 SBUF=250; //发送握手信息 1111,1010
C51 COMPILER V6.10 366J 04/18/2006 16:01:28 PAGE 6
299 1 //SBUF=8; //-------------------------------------测试用值----------------------------------//
-
300 1 JISHU=4000;
301 1 check_serial_send:
302 1 if(TI!=1)
303 1 {
304 2 JISHU=JISHU-1;
305 2 if(JISHU!=0)
306 2 {
307 3 _nop_();_nop_();
308 3 goto check_serial_send;
309 3 }
310 2 else
311 2 {
312 3 _nop_(); _nop_();
313 3 return;
314 3 }
315 2 }
316 1 TI=0; //清发送完成兼中断标志
317 1
318 1 REN=1; //启动一次接收过程
319 1 JISHU=4000;
320 1 check_serial_receive:
321 1 if(RI!=1) //如果SBUF中没有接收到数据,等待
322 1 {
323 2 JISHU=JISHU-1;
324 2 if(JISHU!=0)
325 2 {
326 3 _nop_();_nop_();
327 3 goto check_serial_receive;
328 3 }
329 2 else
330 2 {
331 3 _nop_(); _nop_();
332 3 return;
333 3 }
334 2 }
335 1 RI=0;
336 1 REN=0;
337 1 // if(SBUF!=0xaa)
338 1 // goto begin_serial;
339 1 for(i=0;i<6;i++) //发送6字节信息
340 1 {
341 2 SBUF=NUMBER[i];
342 2 JISHU=4000;
343 2 check_serial_sendmessage:
344 2 if(TI!=1)
345 2 {
346 3 JISHU=JISHU-1;
347 3 if(JISHU!=0)
348 3 {
349 4 _nop_();_nop_();
350 4 goto check_serial_sendmessage;
351 4 }
352 3 else
353 3 {
354 4 _nop_(); _nop_();
355 4 return;
356 4 }
357 3 }
358 2 TI=0; //清发送完成兼中断标志
359 2 }
C51 COMPILER V6.10 366J 04/18/2006 16:01:28 PAGE 7
360 1
361 1 //发送数据到上位机结束
362 1 }
363 //-------------处理在一次下位机发送报警信息来过程中的读取 ,存储void READ_MESSAGE()子程序结束-------------
----//
364
365 //--------------------------------------主程序开始--------------------------------------//
366
367 void main(void)
368 {
369 1 P2=0xff;
370 1 P0=0xff;
371 1 P1=0xff;
372 1 P3=0xff;
373 1
374 1 MT8880_ControlRegister_Initialize();
375 1 DELAY_50ms();DELAY_50ms();DELAY_50ms();
376 1 while(1)
377 1 {
378 2 if(ToneTest==0) //检测到铃流脉冲低周期,23脚
379 2 { _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); //每行0.2ms
380 3 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();
381 3
382 3 if(ToneTest==0)
383 3 {
384 4 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); //每行0.2ms
385 4 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_(); //每行0.2ms
386 4
387 4 if(ToneTest==0)
388 4 {
389 5 J_LineToPhone=0; //模拟摘机 ,24脚
390 5 DELAY_50ms();DELAY_50ms();DELAY_50ms();DELAY_50ms();DELAY_50ms();DELAY_50ms(); //摘机之后等
-待电路稳定
391 5 MT8880_ControlRegister_Write(); //令8880处于输出,BURST,双音状态
392 5 MT8880_WriteOne(11); //发送握手信号'*'
393 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
394 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
395 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
396 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
397 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
398 5 MT8880_WriteOne(11); //再次发送握手信号'*'
399 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
400 5 _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
401 5 READ_MESSAGE();
402 5 }
403 4 }
404 3 } // if(ToneTest==0) 结束
405 2 }//while(1)的反括号
406 1 }
407
C51 COMPILER V6.10 366J 04/18/2006 16:01:28 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
C51 COMPILER V6.10 366J 04/18/2006 16:01:28 PAGE 9
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
MT8880_D0. . . . . . . . . . . . . . . ABSBIT ----- BIT 0094H 1
MT8880_D1. . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1
MT8880_D2. . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
MT8880_D3. . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1
MT8880_RW. . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
MT8880_CP2 . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
MT8880_CS. . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
MT8880_RS0 . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
ToneTest . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1
J_LineToPhone. . . . . . . . . . . . . ABSBIT ----- BIT 00A3H 1
JISHU. . . . . . . . . . . . . . . . . PUBLIC DATA INT 0000H 2
i. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
Number . . . . . . . . . . . . . . . . TYPEDEF ----- ARRAY ----- 10
DELAY_50ms . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
wait . . . . . . . . . . . . . . . . LABEL CODE LABEL ----- -----
MT8880_StatusRegister_READ . . . . . . PUBLIC CODE PROC 0000H -----
MT8880_DataRegister_READ . . . . . . . PUBLIC CODE PROC 0000H -----
MT8880_ControlRegister_Initializ . . . PUBLIC CODE PROC 0000H -----
MT8880_ControlRegister_Write . . . . . PUBLIC CODE PROC 0000H -----
_MT8880_WriteOne . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SendData . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
READ_MESSAGE . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Number_Note. . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
Number_Key . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
NUMBER . . . . . . . . . . . . . . . AUTO DATA ARRAY 0002H 10
ReadStatus . . . . . . . . . . . . . LABEL CODE LABEL ----- -----
SERIAL . . . . . . . . . . . . . . . LABEL CODE LABEL ----- -----
check_serial_send. . . . . . . . . . LABEL CODE LABEL ----- -----
check_serial_receive . . . . . . . . LABEL CODE LABEL ----- -----
check_serial_sendmessage . . . . . . LABEL CODE LABEL ----- -----
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1444 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -