⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ia500.lst

📁 解码2272模拟程序,调试通过,需要者也可和我联系
💻 LST
📖 第 1 页 / 共 3 页
字号:
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 + -