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

📄 pm6388.lst

📁 这是芯片PMC6388的硬件初始化程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 211   2          	XBYTE[addr_e1_pm6388 + 0x2b] = 0;
 212   2          	XBYTE[addr_e1_pm6388 + 0x2c] = 0;
 213   2          	XBYTE[addr_e1_pm6388 + 0x2d] = 0;
 214   2          	XBYTE[addr_e1_pm6388 + 0x51] = 0x00;
 215   2          	XBYTE[addr_e1_pm6388 + 0x52] = 0x00;
 216   2          	XBYTE[addr_e1_pm6388 + 0x58] = 0x03;
 217   2          	XBYTE[addr_e1_pm6388 + 0x59] = 0;
 218   2          	XBYTE[addr_e1_pm6388 + 0x5a] = 0xff;
 219   2          	XBYTE[addr_e1_pm6388 + 0x5c] = 0x00;//??????????????????
 220   2          	XBYTE[addr_e1_pm6388 + 0x60] = 0x02;
 221   2          }
 222   1         for(i = 0; i < 8; i++)
 223   1          {
 224   2          	addr_e1_pm6388 = PM6388 + i * 0x80;
 225   2          	l = 0;
 226   2          	k = 0;
 227   2          	for(k = 0x20;k < 0x40;k++)
 228   2          	{
 229   3          	   l = XBYTE[addr_e1_pm6388 + 0x61];
 230   3          	   while((l & 0x80) != 0)
 231   3          	   {
 232   4          	   		l = XBYTE[addr_e1_pm6388 + 0x61];
 233   4          	   }
 234   3          	   XBYTE[addr_e1_pm6388 + 0x63] = 0x13;
 235   3          	   XBYTE[addr_e1_pm6388 + 0x62] = k;
 236   3          	   
 237   3          	}
 238   2          	for(k = 0x40;k < 0x60;k++)
 239   2          	{
 240   3          	   l = XBYTE[addr_e1_pm6388 + 0x61];
 241   3          	   while((l & 0x80) != 0)
C51 COMPILER V3.96,  SN-83203013  PM6388                                                   06/04/06  18:58:18  PAGE 5   

 242   3          	   {
 243   4          	   		l = XBYTE[addr_e1_pm6388 + 0x61];
 244   4          	   }
 245   3          	   XBYTE[addr_e1_pm6388 + 0x63] = 0xbb;
 246   3          	   XBYTE[addr_e1_pm6388 + 0x62] = k;
 247   3          	}
 248   2          	for(k = 0x60;k < 0x80;k++)
 249   2          	{
 250   3          	   l = XBYTE[addr_e1_pm6388 + 0x61];
 251   3          	   while((l & 0x80) != 0)
 252   3          	   {
 253   4          	   		l = XBYTE[addr_e1_pm6388 + 0x61];
 254   4          	   }
 255   3          	   XBYTE[addr_e1_pm6388 + 0x63] = 0xdb;
 256   3          	   XBYTE[addr_e1_pm6388 + 0x62] = k;
 257   3          	}
 258   2          	XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
 259   2          	XBYTE[addr_e1_pm6388 + 0x64] = 0x02;
 260   2          	l = 0;
 261   2          	k = 0;
 262   2          	for(k = 0x40;k < 0x60;k++)
 263   2          	{
 264   3          	   l = XBYTE[addr_e1_pm6388 + 0x65];
 265   3          	   while((l & 0x80) != 0)
 266   3          	   {
 267   4          	   		l = XBYTE[addr_e1_pm6388 + 0x65];
 268   4          	   }
 269   3          	   XBYTE[addr_e1_pm6388 + 0x67] = 0x00;
 270   3          	   XBYTE[addr_e1_pm6388 + 0x66] = k;
 271   3          	}
 272   2          	XBYTE[addr_e1_pm6388 + 0x64] = 0x01;
 273   2          }
 274   1      }
 275          void wr_pm6388 (unsigned char sig) /* 写值 */
 276          {
 277   1          uint  xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
 278   1          uchar xdata i,l,k;
 279   1         for(i = 0; i < 8; i++)
 280   1          {
 281   2            	addr_e1_pm6388 = PM6388 + i * 0x80;
 282   2          	l = 0;
 283   2          	k = 0;
 284   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
 285   2          	XBYTE[addr_e1_pm6388 + 0x60] = 0x03;
 286   2          	for(k = 0x61;k < 0x80;k++)
 287   2          	{
 288   3          		l = XBYTE[addr_e1_pm6388 + 0x61];
 289   3          	   	while((l & 0x80) != 0)
 290   3          	   	{
 291   4          	   		l = XBYTE[addr_e1_pm6388 + 0x61];
 292   4          	   	}
 293   3      			if(k==0x70)
 294   3      			{
 295   4      				k++;
 296   4      			}
 297   3      			XBYTE[addr_e1_pm6388 + 0x63] = 0x03 + 0xd0;
 298   3      			XBYTE[addr_e1_pm6388 + 0x62] = k;
 299   3      			
 300   3          	}
 301   2          	XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
 302   2          }
 303   1         
C51 COMPILER V3.96,  SN-83203013  PM6388                                                   06/04/06  18:58:18  PAGE 6   

 304   1      }
 305          void wr_pm6388_flag(unsigned char sig) //单写1
 306          {
 307   1      	uint  xdata addr_e1_pm6388;
 308   1      	uchar xdata i,l,k; 
 309   1      	addr_e1_pm6388 = PM6388;
 310   1      	XBYTE[addr_e1_pm6388 + 0x60] = 0x02;
 311   1      	l = XBYTE[addr_e1_pm6388 + 0x61];
 312   1          while((l & 0x80) != 0)
 313   1          {
 314   2          	 l = XBYTE[addr_e1_pm6388 + 0x61];
 315   2          }
 316   1          XBYTE[addr_e1_pm6388 + 0x63] = sig + 0xd0;
 317   1      	XBYTE[addr_e1_pm6388 + 0x62] = 0x61;
 318   1          XBYTE[addr_e1_pm6388 + 0x60] = 0x01;
 319   1      }
 320          uchar rd_pm6388_flag(void) /* 读数 */
 321          {
 322   1          uint  xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
 323   1          uchar xdata i,l,k;
 324   1          k = 0;
 325   1          for(i = 0; i < 8; i++)
 326   1          {   	
 327   2          	addr_e1_pm6388 = PM6388 + i * 0x80;
 328   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
 329   2         	 	
 330   2          	XBYTE[addr_e1_pm6388 + 0x64] = 0x41;
 331   2            	l = XBYTE[addr_e1_pm6388 + 0x67];
 332   2            	if((l & 0x01) == 0x01)
 333   2          	{
 334   3          		k++;		
 335   3          	}
 336   2          	XBYTE[addr_e1_pm6388 + 0x64] = 0x01;	
 337   2          }
 338   1          return(k);
 339   1      }
 340          
 341          uchar rd_pm6388_data (void)  //读值 
 342          {
 343   1      	uint  xdata addr_e1_pm6388;
 344   1          uchar xdata i,l,k,data_pm;
 345   1          data_pm = 0;
 346   1          addr_e1_pm6388 = PM6388 + 0 * 0x80;
 347   1          XBYTE[addr_e1_pm6388 + 0x0a] = 0x0;
 348   1          XBYTE[addr_e1_pm6388 + 0x64] = 0x03;
 349   1        	l = 0x80;
 350   1          while((l & 0x80) != 0)
 351   1          {
 352   2          	l = XBYTE[addr_e1_pm6388 + 0x65];
 353   2          }
 354   1          XBYTE[addr_e1_pm6388 + 0x66] = 0x80 + 0x11;
 355   1          l = 0x80;
 356   1          while((l & 0x80) != 0)
 357   1          {
 358   2          	l = XBYTE[addr_e1_pm6388 + 0x65];
 359   2          }
 360   1          data_pm = XBYTE[addr_e1_pm6388 + 0x67]; 
 361   1          XBYTE[addr_e1_pm6388 + 0x64] = 0x01;
 362   1          return(data_pm);
 363   1      }
 364          
 365              	    
C51 COMPILER V3.96,  SN-83203013  PM6388                                                   06/04/06  18:58:18  PAGE 7   

 366          main()
 367          {
 368   1      	
 369   1      	P1 = 0xff;
 370   1      	P1 = 0x0;
 371   1      	P1 = 0xff;
 372   1      	P3= 0xff;
 373   1      	RUN_LED=1;
 374   1      	init_pm4314();
 375   1          delay();
 376   1          init_pm6388();
 377   1          delay();
 378   1          TMOD=0x21;
 379   1          IT1 = 1;	
 380   1        	TH0=-40680/256;                                 
 381   1      	TL0=-40680%256;
 382   1      	TH1 = 0xfd;
 383   1         	TL1 = 0xfd; 
 384   1         	TR0 = 1;
 385   1         	TR1 = 1;
 386   1      	IE = 0x86;
 387   1      	EA = 1;
 388   1      	led_flag = 0;
 389   1      	k = 0;
 390   1      	//wr_pm6388();
 391   1      	wr_pm6388_flag(0x03);
 392   1      	fsn = rd_pm6388_flag();
 393   1      	delay();
 394   1      	while(1)
 395   1      	{
 396   2      		if(led_flag == 1)
 397   2      		{
 398   3      			e1_alarm_led();
 399   3      			led_flag = 0;
 400   3      			fsn = rd_pm6388_flag();
 401   3      			h = rd_pm6388_data();
 402   3      			if(h != 0xbb)
 403   3      			{
 404   4      				h = 0;
 405   4      			}
 406   3      		}
 407   2      	}
 408   1      		
 409   1      }
 410          		
 411          
 412          		
 413          
 414          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3049    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     43    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       1
   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 + -