📄 ia500.lst
字号:
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE IA500
OBJECT MODULE PLACED IN IA500.obj
COMPILER INVOKED BY: D:\topice\bin\C51.EXE IA500.c NOREGPARMS OE OT(0) DB PR RB(0) LARGE OJ(IA500.obj)
stmt level source
1 //design by pengdingyong
2 //20050711 89s4051
3 //version 1.0
4 #include <my_89x51.h>
5
6
7 #define LAMP P2_6 //灯
8 #define BUSY P2_5 //IA500
9
10
11 #define RLED P1_3
12 #define GLED P1_4
13 #define ON 1
14 #define OFF 0
15
16 #define uint unsigned int
17 #define uchar unsigned char
18 #define ulong unsigned long
19
20
21 uchar mode; //工作模式
22 bit init; //中断标志
23 bit ird;
24 uchar asp;
25 uint tcount;
26 uchar tdelay;
27 bit timeout;
28 bit stopall;
29 uchar ia500;
30 uchar ispcount;
31 uchar workmode;
32 uchar manypicture;
33
34 void s_out(uchar);
35 void serial_out(char *outdata,int len);
36 extern void jump_to(uchar asp,uint code *address);
37 //--------------------------------------------------------
38 uchar idata Key_Store; //键码存储
39 uchar idata Key_Use_High; //用户码高位
40 uchar idata Key_Use_Low; //用户码低位
41
42 uchar idata Key_High; //键码高位
43 uchar idata Key_Low; //键码地位
44 uchar idata Key_Temp; //键码暂存
45 bit bdata Key_Exit; //按键结束
46 bit bdata Key_Finish; //间隔码接收完成
47 bit bdata Key_Key; //按键间隔码
48 uchar key_pd;
49 uchar key_pd_time;
50 uchar read_key();
51 void tv();
52 void stop();
53 void start();
54 void image_size(uchar temp);
55 void diag_test(uchar temp);
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 2
56 //=============================================================
57 void isp_number();
58 //---------------------------------------------------------------
59 uchar check_config();
60 //==================================================================
61 void delay_s(uint); //延时秒
62 void redled(uchar ); //red led
63 void greenled(uchar ); //green led
64 void rgled(uchar );
65 //===================================================================
66 //about time
67 void set_cpu(); //CPU设置
68 //===================================================================
69 //about cmd //
70 void cmd_start();
71 void cmd_end();
72 void time_mode();
73 void init_ia500();
74 void idle();
75 void send_ncap(uchar );
76 void send_snap(uchar );
77 void send_ocap(uchar );
78 void send_del();
79 void send_show(uchar );
80 void send_idnum();
81 void send_remote_pd();
82 void send_mbpd();
83 void send_time();
84 //void send_burst(uchar );
85
86 void send_useird();
87 void send_usetel();
88 void send_usestop();
89 void send_ispno();
90
91 //====================================================================
92 //改为你们自己的邮箱
93 /*
94 uchar code mbaddr[] = "mbaddr=peng@homesafe.cn";
95 uchar code mbun[] = "mbun=peng";//
96 uchar code mbpd[] = "mbpd=888888";//
97 uchar code smtp[] = "smtp=mail.minrel.com";
98 uchar code sport[]="SPORT=2500";
99 */
100
101 uchar code mbaddr[] = "mbaddr=supertiger@minrel.com";
102 uchar code mbun[] = "mbun=supertiger";//
103 //uchar code mbun[] = "mbun=id";//
104 uchar code mbpd[] = "mbpd=888888";//
105 uchar code smtp[] = "smtp=mail.minrel.com";
106 //uchar code sport[]="SPORT=2500";
107 uchar code sport[]="SPORT=25";
108
109
110 uchar code receivead[] = "to=supertiger@minrel.com";
111
112 //id@homesafe.cn
113 uchar code ispno[] = "ispno=";
114 uchar code ispun[] = "ispun=16300";
115 uchar code isppd[] = "isppd=16300";
116
117 uchar code size[]="res=";//1,2,3,4 vga,qvga....
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 3
118 uchar code ncap[] = "ncap=";
119 uchar code snap[] = "snap=";
120 uchar code ocap[] = "ocap=";
121 uchar code id[]="id=MR0505170002";//ID号
122 uchar code usedef[]="urdef=";//用户定义名
123 uchar code cudef[]="cudef=hzmr";//厂家名
124 uchar code abt[]="abt=9";//厂家名
125 uchar code atname[]="atname=poto";//附件名
126 uchar code repd[]="repd=1234";//拍照密码
127 uchar code ring[]="ring=3";//多少次后自动转移
128 uchar code mvol[]="mvol=1";//open the volice
129 uchar code del[]="del=99";//
130 uchar code clock[]="time=";//show time year month day
131 uchar code show[]="maft=";//show picture or not
132 uchar code burst[]="burst=";//continue five picture
133 uchar code unit[]="UNIT=1";
134 uchar code diag[]="DIAG=";
135
136 //============================================================
137 main ( )
138 {
139 1 // delay_s(10);
140 1 set_cpu();
141 1 init_ia500();
142 1 stop();
143 1 send_useird();
144 1 EX0 = 0;
145 1 EX1 = 1;
146 1 delay_s(10);
147 1 RLED = 1;
148 1 GLED = 0;
149 1
150 1 while(1)
151 1 {
152 2 if(ird)
153 2 {
154 3 EX1 = 0;
155 3 if (Key_Store == 0x58)//vol -
156 3 start();
157 3 if (Key_Store == 0xf0)//tv
158 3 tv(); //show tv or not
159 3 if (Key_Store == 0x78)//vol +
160 3 {
161 4 diag_test(3); //test sensor
162 4 send_del(); //del
163 4 }
164 3 if (Key_Store == 0xf8)//ch -
165 3 ;
166 3 // diag_test(2); //format flash
167 3 if (Key_Store == 0xd8)//ch +
168 3 {
169 4 send_show(0);
170 4 jump_to(asp,main);
171 4 }
172 3 Key_Store = 0x00;
173 3 Key_Key = 0;
174 3 Key_Finish = 0;
175 3 Key_Exit = 0;
176 3 ird = 0;
177 3 EX1 = 1;
178 3 }
179 2 if (stopall)
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 4
180 2 {
181 3 stop();
182 3 ia500 = 0;
183 3 stopall = 0;
184 3 }
185 2 if (tdelay == 0x20)
186 2 {
187 3 ia500 = 0x41;
188 3 tdelay = 0;
189 3 TR0 = 0;
190 3 }
191 2 switch (ia500)
192 2 {
193 3
194 3 case 0x35://fail three times
195 3 send_del();
196 3 while(!init)
197 3 init = 0;
198 3 ia500 = 0;
199 3 break;
200 3
201 3 case 0x37:
202 3 send_del();
203 3 while(!init)
204 3 init = 0;
205 3 ia500 = 0;
206 3 break;//busy
207 3
208 3 case 0x38:
209 3 RLED = 0;
210 3 GLED = 1;
211 3 send_time();
212 3 send_usetel();
213 3 EX0 = 0;
214 3 send_ncap(1);
215 3 while(!init)
216 3 {
217 4 if (stopall)
218 4 stop();
219 4 }
220 3 send_del();
221 3 EX0 = 1;
222 3 break;//valid
223 3
224 3 case 0x40:
225 3 EX0 = 0;
226 3 RLED = 0;
227 3 GLED = 1;
228 3 send_time();
229 3 send_ncap(manypicture);
230 3 while(!init)
231 3 {
232 4 if (stopall)
233 4 stop();
234 4 }
235 3 send_del();
236 3 EX0 = 1;
237 3 break;//ex0 int
238 3
239 3 case 0x41:
240 3 RLED = 0;
241 3 GLED = 1;
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 5
242 3 send_time();
243 3 send_snap(1);
244 3 workmode++;
245 3 if (manypicture == workmode)
246 3 {
247 4 tdelay = 0;
248 4 send_ocap(manypicture);
249 4 while(!init)
250 4 {
251 5 if (stopall)
252 5 stop();
253 5 }
254 4 manypicture = workmode = 0;
255 4 send_del();
256 4 }
257 3 EX0 = 1;
258 3 break;//ex0 int
259 3
260 3 default:
261 3 break;
262 3 }
263 2 continue;
264 2 }//end while
265 1 }
266
267 //======================================================================
268 void set_cpu( )
269 {
270 1 TMOD |= 0x21; //定时器1:模式2;定时器0:模式1
271 1 SCON = 0x50; //8data 1stop 1start
272 1 PCON = 0X80;
273 1 TH1 = 0xff; //22.1184M.115200bps
274 1 TR1 = ON; //启动定时器1
275 1 ES = ON; //串行口中断允许
276 1 EA = ON; //开中断
277 1 EX0 = OFF; //红外探测
278 1 EX1 = OFF; //红外摇控
279 1 ET0 = ON;
280 1 PS = ON;
281 1 PX1 = ON;
282 1 IT0 = 0;
283 1 IT1 = ON; //跳变触发
284 1
285 1 RLED = GLED= OFF;
286 1 LAMP = OFF;
287 1
288 1 init = 0;
289 1 tcount = 0;
290 1 ia500 = 0;
291 1 ird = 0;
292 1 ispcount = 0;
293 1 asp = SP;
294 1 tdelay = 0;
295 1 workmode = 0;
296 1 manypicture = 0;
297 1 stopall = 0;
298 1 Key_Key = 0;
299 1 Key_Finish = 0;
300 1 Key_Exit = 0;
301 1
302 1 Key_Store = 0;
303 1 key_pd = 0;
C51 COMPILER V6.02 IA500 07/18/2005 11:04:42 PAGE 6
304 1 key_pd_time = 0;
305 1
306 1
307 1 }
308 //=============================================
309 void tv()
310 {
311 1 mode = 1;
312 1 while (Key_Store == 0xf0)
313 1 {
314 2 delay_s(2);
315 2 nop;
316 2 if (mode|Key_Finish)
317 2 {
318 3 GLED = RLED = ON;
319 3 EX0 = 0;
320 3 send_show(1);
321 3 Key_Key = 0;
322 3 Key_Finish = 0;
323 3 Key_Exit = 0;
324 3 mode = 0;
325 3 EX1 = 1;
326 3 }
327 2 }
328 1 }
329 //========================================
330 void stop()
331 {
332 1 redled(10);
333 1 cmd_start();
334 1 serial_out(abt,strlen(abt));
335 1 cmd_end();
336 1 GLED = 0;
337 1 RLED = 1;
338 1 while(!init);
339 1 EX0 = 0;
340 1 }
341 //=============================================
342 void start()
343 {
344 1 greenled(10);
345 1 delay_s(50);
346 1 RLED = 0;
347 1 GLED = 1;
348 1 EX0 = 1;
349 1
350 1 }
351 //=======================================
352 void redled(uchar time)
353 {
354 1 uchar i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -