📄 inital.lst
字号:
C51 COMPILER V7.06 INITAL 09/18/2007 10:26:07 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE INITAL
OBJECT MODULE PLACED IN inital.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE inital.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<string.h>
2 #include <AT898252.H>
3 #include<absacc.h>
4
5
6 #define uchar unsigned char
7 #define uint unsigned int
8
9 extern uchar mod_buff_tail;
10 extern uchar mod_buff[16];
11
12 extern uchar k_stat;
13
14
15 #define LCDCOM_W XBYTE[0x7f00]
16
17 extern void wait(void);
18 extern void mod_comd(uchar *str);
19
20 void delay(void)
21 {
22 1 uchar i,j;
23 1 for(i=0;i<100;i++)
24 1 for(j=0;j<100;j++);
25 1 }
26
27
28 /*系统初始化函数*/
29
30 void init(void)
31 {
32 1
33 1 IP=0x10; /*串口中断为最高优先级*/
34 1 TMOD=0x21; /*定时器1方式2,定时器0方式1*/
35 1
36 1 TH1=0xf3; /*2400baud*/
37 1 TL1=0xf3;
38 1
39 1 SCON=0x50; /*串口方式1,允许接收*/
40 1 PCON=0x80; /*smod=1;*/
41 1 ET1=0; /*定时器1作为波特率发生器不需要中断*/
42 1 TR1=1; /*开定时器1*/
43 1
44 1 EA=1; /*开总中断*/
45 1 }
46
47 /*液晶屏初始化*/
48 void init_lcd(void )
49 {
50 1 LCDCOM_W=0x30;
51 1 delay();
52 1 LCDCOM_W=0x30;
53 1 delay();
54 1 LCDCOM_W=0x30;
55 1 delay();
C51 COMPILER V7.06 INITAL 09/18/2007 10:26:07 PAGE 2
56 1 wait();
57 1 LCDCOM_W=0x38;
58 1 wait();
59 1 LCDCOM_W=0x06;
60 1 wait();
61 1 LCDCOM_W=0x0f;
62 1 wait();
63 1 LCDCOM_W=0x01;
64 1 wait();
65 1 }
66
67
68 /*MODEM初始化函数,为防止通信死锁,使当地安排喂狗s*/
69 void modem_init(void )
70 {
71 1 uchar i,j,k;
72 1 WMCON|=WDTRST_; /*喂狗*/
73 1
74 1 mod_buff_tail=0; /*缓存器尾指针清零*/
75 1 for(i=0;i<16;i++)
76 1 mod_buff[i]=0; /*缓存区清零*/
77 1 for(i=0;i<5;i++)
78 1 for(j=0;j<100;j++)
79 1 for(k=0;k<40;k++);
80 1
81 1
82 1 WMCON|=WDTRST_; /*喂狗*/
83 1
84 1 mod_comd("ATZ0"); /*复位MODEM*/
85 1 for(i=0;i<5;i++)
86 1 for(j=0;j<100;j++)
87 1 for(k=0;k<40;k++);
88 1
89 1
90 1 WMCON|=WDTRST_; /*喂狗*/
91 1 mod_comd("ATVE0"); /*V0:数字格式回显,E0:抑制命令回显主机*/
92 1
93 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
94 1 for(i=0;i<16;i++)
95 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
96 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
97 1
98 1 WMCON|=WDTRST_; /*喂狗*/
99 1 mod_comd("ATS0=1S9=255");
100 1
101 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
102 1 for(i=0;i<16;i++)
103 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
104 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
105 1
106 1 WMCON|=WDTRST_; /*喂狗*/
107 1
108 1 /*为适应三线制通信,必须进行以下设置*/
109 1 mod_comd("AT&D0"); /*MODEM忽略DTR信号*/
110 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
111 1 for(i=0;i<16;i++)
112 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
113 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
114 1 for(i=0;i<10;i++)
115 1 for(j=0;j<100;j++)
116 1 for(k=0;k<40;k++);
117 1
C51 COMPILER V7.06 INITAL 09/18/2007 10:26:07 PAGE 3
118 1 WMCON|=WDTRST_; /*喂狗*/
119 1 mod_comd("AT&S0"); /*MODEM长开启DSR信号*/
120 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
121 1 for(i=0;i<16;i++)
122 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
123 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
124 1 for(i=0;i<10;i++)
125 1 for(j=0;j<100;j++)
126 1 for(k=0;k<40;k++);
127 1
128 1 WMCON|=WDTRST_; /*喂狗*/
129 1 mod_comd("AT&Q0"); /*MODEM异步通信*/
130 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
131 1 for(i=0;i<16;i++)
132 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
133 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
134 1
135 1 WMCON|=WDTRST_; /*喂狗*/
136 1 mod_comd("AT&C1"); /*MODEM跟踪远程来的载波信号*/
137 1 mod_buff_tail=0; /*从队形缓冲区头部开始存放数据*/
138 1 for(i=0;i<16;i++)
139 1 mod_buff[i]=0; /*缓存区清零,是否有必要重复清零??*/
140 1 while(!((mod_buff[0]==0x30)&(mod_buff[1]==0x0d))); /*等待回显*/
141 1
142 1 WMCON|=WDTRST_; /*喂狗*/
143 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 631 ----
CONSTANT SIZE = 48 ----
XDATA SIZE = ---- 2
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -