📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 03/14/2005 12:06:39 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAIN.C OPTIMIZE(SIZE) REGFILE(.\gprsnew.ORC) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /***************************************************************
2 程序程序:GPRS_DTU通信程序
3 功能描述:
4 该程序是基于AT89C51RD2的GPRS_DTU通信程序,用于完成无线IP数据传输。
5 ****************************************************************/
6
7 #include <reg52.h>
8 #include <absacc.h>
9 #include <string.h>
10
11 #define uchar unsigned char
12 #define uint unsigned int
13
14 sfr WMCON = 0x96; /* Watchdog and Memory Control Register */
15 #define WDTC() (WMCON |= 0x02)
16
17 #define TIMER2_VECTOR_NUMBER 5
18
19 sbit LED = P3^7;
20 sbit PD = P3^6;
21
22 const unsigned char code menu[] =
23 "\n\r"
24 "+***************SETUP MENU for TDX-GSM Modem****************+\n\r"
25 "| 泰达鑫GPRS无线音频传输终端设置菜单 |\n\r"
26 "| 深圳泰达鑫通信技术有限公司 |\n\r"
27 "|***********************************************************|\n\r"
28 "+ 功能选择 +--------------功能描述------------------------|\n\r"
29 "| 1 |固定电话号码设置 |\n\r"
30 "| 2 |移动电话号码设置 |\n\r"
31 "| 3 |管理员密码设定 |\n\r"
32 "| 4 |状态查询 |\n\r"
33 "| Q/q |退出设置程序 |\n\r"
34 "+------------+----------------------------------------------+\n\r";
35
36 extern void setup(void);
37 extern void ReadUserBlock(uchar idata *input,uint Address,uchar Number);
38
39 //------COMM.C------------------
40
41 extern void _SysInit(void);
42 extern bit _AsyncGetTest(void);
43 extern uchar _AsyncGet(void);
44 extern void _AsyncOpen(uint Baud, uchar Parity);
45 extern void _EXP_InfoRec(void);
46 extern void Switch_OFF(void);
47 extern void Vol_control(void);
48 extern uchar data Vol_Rec;
49
50 //------GsmModem.c----------------
51 extern void Mc35Rst();
52
53 //------LOGIN.C-------------------
54 extern uchar login_ack();
55
C51 COMPILER V7.00 MAIN 03/14/2005 12:06:39 PAGE 2
56 //-----Public Variable declare----
57 unsigned char idata input[32];
58 unsigned char idata tempbuf[32];
59
60 unsigned char bdata flags; /* bit value flag declare */
61 sbit PUB_Async_TI = flags^2;
62 sbit PUB_Async_RI = flags^3;
63
64 unsigned long data SYSTIME ;
65 unsigned long data TempCount;
66
67 /***************************
68 ***get current SYSTIME value.
69 ****************************/
70 unsigned long GET_COUNT()
71 {
72 1 unsigned long tempcount;
73 1 ET2 = 0;
74 1 tempcount = SYSTIME;
75 1 ET2 = 1;
76 1 return tempcount;
77 1 }
78
79 /*************************
80 Timer 2 interval 10 ms
81 **************************/
82 void timer2() interrupt TIMER2_VECTOR_NUMBER
83 {
84 1 TF2 = 0;
85 1 SYSTIME ++;
86 1 }
87
88 /*************************
89 函数名称:Delay(uint x)
90 函数功能:延时 x * 10 ms,最长65535 * 10 ms
91 **************************/
92 void Delay(uint x)
93 {
94 1 unsigned long CT;
95 1 CT = GET_COUNT();
96 1 while(GET_COUNT() - CT < x)
97 1 {
98 2 if(Vol_Rec)
99 2 {
100 3 Vol_Rec = 0;
101 3 Vol_control();
102 3 }
103 2 WDTC();
104 2 PCON = PCON | 0x01;
105 2 }
106 1 }
107
108 /*************************
109 主函数:main()
110 **************************/
111 main()
112 {
113 1 uchar cc;
114 1 uint swconter;
115 1 bit int1_state;
116 1
117 1 int1_state = 1;
C51 COMPILER V7.00 MAIN 03/14/2005 12:06:39 PAGE 3
118 1 _SysInit();
119 1 _AsyncOpen(9600, 0); /* open the UART */
120 1 LED = 0;
121 1 PD = 0;
122 1 TempCount = GET_COUNT();
123 1 while(GET_COUNT() - TempCount < 300 )
124 1 {
125 2 if (_AsyncGetTest())
126 2 {
127 3 cc = _AsyncGet();
128 3 if(cc == 0x0D)
129 3 {
130 4 setup();
131 4 break;
132 4 }
133 3 }
134 2 }
135 1 PD = 1;
136 1 while(1)
137 1 {
138 2 _SysInit();
139 2 _AsyncOpen(9600, 0); /* open the UART */
140 2 swconter = 0;
141 2 LED=1;
142 2 // Mc35Rst();
143 2 // if(login_ack()==0)continue;
144 2 LED=0;
145 2
146 2 WMCON = 0xa3; //1010001B WDT is 512MS and enbale function.
147 2 TempCount = GET_COUNT();
148 2 while(1)
149 2 {
150 3 WDTC();
151 3 PCON = PCON | 0x01;
152 3 if(_AsyncGetTest())
153 3 _EXP_InfoRec();
154 3 if (INT0==0)
155 3 {
156 4 LED = 0;
157 4 TempCount = GET_COUNT();
158 4 if ( (++swconter) >= 300 )
159 4 {
160 5 LED = 1;
161 5 WMCON = 0x00; //1010001B WDT is 512MS and enbale function.
162 5 while(1)
163 5 {
164 6 while (INT0==0);
165 6 Delay(5);
166 6 if (INT0)
167 6 {
168 7 Switch_OFF();
169 7 }
170 6 }
171 5 }
172 4 }
173 3 else
174 3 {
175 4 swconter = 0;
176 4 }
177 3 if( (GET_COUNT() - TempCount) >= 1000)
178 3 LED=1;
179 3 if(Vol_Rec)
C51 COMPILER V7.00 MAIN 03/14/2005 12:06:39 PAGE 4
180 3 {
181 4 Vol_Rec = 0;
182 4 Vol_control();
183 4 }
184 3 }
185 2 }
186 1 }
187
188
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 347 ----
CONSTANT SIZE = 696 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 8
IDATA SIZE = 64 ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -