📄 main.lst
字号:
C51 COMPILER V6.02 MAIN 12/07/2004 13:03:12 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\testdtmf\C51.EXE main.c CODE SMALL SB
stmt level source
1 #include ".\pubDcl.dcl"
2 #include ".\reg52.h"
3 #include ".\extio.h"
4 #include ".\valuedef.h"
5
6 #include ".\display.c"
7 #include ".\otimer.c"
8 #include ".\ht9200.c"
9 //#include ".\okey.c"
10 #include ".\serial.c"
11 /*
12 void senddata_init()
13 {
14 uchar i ;
15 send_number[0] = 8 ;
16 send_number[1] = 0 ;
17 send_number[2] = 5 ;
18 for(i=3;i<Maxnumber;i++)
19 {
20 send_number[i] = 0xff ; //初始化拨号的号码
21 }
22 }
23
24 void mem_move(uchar *out,uchar *in,uchar Len)
25 {
26 uchar i ;
27
28 for(i=0;i<Len;i++)
29 *(out +i) = *(in +i) ;
30 }
31
32 void sendnumber() //拨号
33 {
34 uchar i ;
35 for(i=0;i<Maxnumber;i++)
36 {
37 if(send_number[i] != 0xff)
38 {
39 disp_buf[0] = send_number[i] + 0x80;
40 delay(100) ;
41 send_ht9200(send_number[i]) ;
42 }
43 else return ;
44 }
45 }
46
47 void send_dtmf(uchar in)
48 {
49 uchar i ;
50 for(i=0;i<10;i++) //send 0-9
51 {
52 disp_buf[0] = i + 0x80;
53 delay(100) ;
54 send_ht9200(i) ;
55 }
C51 COMPILER V6.02 MAIN 12/07/2004 13:03:12 PAGE 2
56 disp_buf[0] = in + 0x80;
57 delay(100) ;
58 send_ht9200(in) ; //send in
59 }
60 */
61 void SysInit()
62 {
63 1 P0=0xff;
64 1 P1=0x0f;
65 1 P2=0xef;
66 1 P3=0xfb;
67 1 keylen = 0 ;
68 1 channel = 1 ;
69 1 set_flag = 0 ;
70 1 play_flag = 0 ;
71 1 ring_flag = 0 ;
72 1 zaiji_flag = 0 ;
73 1 P2_BUF = 0xff ;
74 1 send_time = 0xff ;
75 1 mem_set(send_flag,FALSE,4) ;
76 1 mem_set(key_buf,0xff,Maxnumber) ;
77 1 checkRING_Init() ;
78 1 checkDV_Init() ;
79 1 checkDXC_Init() ;
80 1 // senddata_init() ;
81 1 }
82
83 void Sys_Start()
84 {
85 1 SysInit() ;
86 1 Sys_TimerInit () ;
87 1 // OKey_RP_Init() ;
88 1 disp_Init();
89 1 Serial_Init() ;
90 1 delay(800) ;
91 1 while(check_DXC() == TRUE)
92 1 {
93 2 Updata_1Led(17,20,0,20) ; //disp PHDX
94 2 ALARM = 0 ;
95 2 delay(100) ;
96 2 ALARM = 1 ;
97 2 delay(250) ;
98 2 ALARM = 0 ;
99 2 delay(100) ;
100 2 ALARM = 1 ;
101 2 }
102 1 }
103
104 main()
105 {
106 1 uchar temp_ret;
107 1 uchar temp_data;
108 1
109 1 Sys_Start();
110 1 Serial_SendCommand("ok",2) ;
111 1 while(1)
112 1 {
113 2 /* if((send_time>=0)&&(send_time<4)&&(send_flag[send_time] == FALSE))
114 2 {
115 2 SW = 1 ;
116 2 zaiji_flag = 1 ;
117 2 Updata_1Led(send_time+1,25,25,25) ; //disp channel
C51 COMPILER V6.02 MAIN 12/07/2004 13:03:12 PAGE 3
118 2 P3 = 0xdc | (send_time&0x03) ; //选择通道 0-3
119 2 sendnumber() ; //拨号
120 2 send_flag[send_time] = TRUE ;
121 2 temp_ret = Sys_TimerReqire(OTimerID0,200,0) ; //超时处理
122 2 }*/
123 2 temp_ret = check_RING() ; //ring check
124 2 if(temp_ret == TRUE)
125 2 {
126 3 disp_buf[0] = 21 + 0x80 ;
127 3 disp_buf[1] = 0 + 0x80 ;
128 3 disp_buf[2] = 18 + 0x80 ;
129 3 disp_buf[3] = 2 + 0x80 ;
130 3 Serial_SendCommand("ring",4) ;
131 3 /* ALARM = 0 ;
132 3 delay(400) ;
133 3 ALARM = 1 ;
134 3 delay(500) ;
135 3 ALARM = 0 ;
136 3 delay(400) ;
137 3 ALARM = 1 ;
138 3 SW = 1 ;
139 3 delay(100) ;
140 3 zaiji_flag = 1 ;
141 3 send_ht9200(0x0a) ; //send A
142 3 temp_ret = Sys_TimerReqire(OTimerID0,200,0) ; //超时处理*/
143 3 ring_flag++ ;
144 3 delay(800) ;
145 3 }
146 2 temp_ret = check_DV() ; //check dtmf dv
147 2 if(temp_ret == TRUE)
148 2 {
149 3 temp_data = DTMF_read() ; //in data
150 3 if(temp_data != 0xff )
151 3 {
152 4 // disp_buf[1] = 0 ;
153 4 // disp_buf[2] = 0 ;
154 4 disp_buf[0] = temp_data + 0x80; //display
155 4 Serial_SendCommand(&temp_data,1) ;
156 4 // Sys_TimerRelease(OTimerID0) ; //release timer
157 4 /* if(temp_data == 0x0a)
158 4 {
159 4 delay(800) ;
160 4 ALARM = 0 ; //SEND MUSIC
161 4 delay(1000) ;
162 4 ALARM = 1 ;
163 4 send_dtmf(0x0b) ; //send 0-9,b
164 4 temp_ret = Sys_TimerReqire(OTimerID0,200,0) ; //超时处理
165 4 }
166 4 else if(temp_data == 0x0b)
167 4 {
168 4 delay(300) ;
169 4 send_dtmf(0x0c) ; //send c end now start check next channel
170 4 delay(100) ;
171 4 SW = 0 ;
172 4 mem_set(disp_buf,0,4) ;
173 4 delay(500) ;
174 4 }
175 4 else if(temp_data == 0x0c)
176 4 {
177 4 send_time ++ ;
178 4 if(send_time > 3)
179 4 {
C51 COMPILER V6.02 MAIN 12/07/2004 13:03:12 PAGE 4
180 4 SW = 0 ;
181 4 delay(400) ;
182 4 send_time = 0xff ;
183 4 mem_set(send_flag,FALSE,4) ;
184 4 Updata_1Led(12,16,21,0) ; //disp CEND
185 4 ALARM = 0 ;
186 4 delay(200) ;
187 4 ALARM = 1 ;
188 4 }
189 4 else
190 4 {
191 4 SW = 0 ;
192 4 delay(1000) ;
193 4 }
194 4 }*/
195 4 // if(ring_flag == 1)
196 4 // {
197 4 /* key_buf[keylen] = temp_data ;
198 4 if(keylen<Maxnumber) keylen ++ ;
199 4 if(keylen>=12)
200 4 {
201 4 Serial_SendCommand(key_buf,keylen) ;
202 4 keylen = 0 ;
203 4 ring_flag = 0 ;
204 4 }
205 4 // }*/
206 4 }
207 3 }
208 2 temp_ret = Analyse_OTimerID() ;
209 2 if(temp_ret == OTimerID0)
210 2 {
211 3 SW = 0 ;
212 3 zaiji_flag = 0 ;
213 3 send_time = 0xff ;
214 3 mem_set(send_flag,FALSE,4) ;
215 3 Updata_1Led(16,23,23,0) ;
216 3 ALARM = 0 ;
217 3 delay(100) ;
218 3 ALARM = 1 ;
219 3 delay(250) ;
220 3 ALARM = 0 ;
221 3 delay(100) ;
222 3 ALARM = 1 ;
223 3 }
224 2 /* temp_ret = OKey_RP_Scan();
225 2 if((temp_ret!=OKey_Macro_NoKey)&&(temp_ret!=Macro_UnhandEvent))
226 2 {
227 2 if((temp_ret>=0)&&(temp_ret<10))
228 2 {
229 2 if(zaiji_flag == 1)
230 2 {
231 2 Updata_1Led(channel,25,25,temp_ret) ;
232 2 send_ht9200(temp_ret) ; //send number key
233 2 }
234 2 else
235 2 {
236 2 key_buf[keylen] = temp_ret ;
237 2 if(keylen<Maxnumber) keylen ++ ;
238 2 if(keylen<2)
239 2 mem_set(disp_buf,0,4) ;
240 2 Updata_Number(temp_ret) ; //disp number
241 2 }
C51 COMPILER V6.02 MAIN 12/07/2004 13:03:12 PAGE 5
242 2 }
243 2 else if(temp_ret == 15) //# set
244 2 {
245 2 if(set_flag == 1)
246 2 {
247 2 set_flag = 0 ;
248 2 mem_move(send_number,key_buf,keylen) ;
249 2 keylen = 0 ;
250 2 ALARM = 0 ; // set ok
251 2 delay(200) ;
252 2 ALARM = 1 ;
253 2 mem_set(disp_buf,0,4) ;
254 2 }
255 2 else if(set_flag == 2)
256 2 {
257 2 set_flag = 0 ;
258 2 channel = key_buf[keylen-1]%4 ;
259 2 P3 = 0xdc|((channel-1)&0x03) ;
260 2 keylen = 0 ;
261 2 ALARM = 0 ; // set ok
262 2 delay(200) ;
263 2 ALARM = 1 ;
264 2 mem_set(disp_buf,0,4) ;
265 2 }
266 2 }
267 2 else if(temp_ret == 14) //* auto check
268 2 {
269 2 send_time = 0 ; //start send
270 2 disp_buf[3] = send_time + 0x80 ;
271 2 }
272 2 else if(temp_ret == 13) //set
273 2 {
274 2 set_flag ++ ; //start set
275 2 if(set_flag > 2)
276 2 set_flag = 0 ;
277 2 keylen = 0 ;
278 2 if(set_flag == 0)
279 2 mem_set(disp_buf,0,4) ;
280 2 else Updata_1Led(5,25,25,set_flag) ;
281 2 }
282 2 else if(temp_ret == 12) //clear
283 2 {
284 2 SW = 0 ;
285 2 keylen = 0 ;
286 2 set_flag = 0 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -