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

📄 main.lst

📁 基于c8051f330芯片开发的电机正反转控制系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 1   


DOS C51 COMPILER V4.01, COMPILATION OF MODULE MAIN
NO OBJECT MODULE REQUESTED
COMPILER INVOKED BY: D:\SILABS\IDEFILES\C51\BIN\C51.EXE MAIN.C DB OE

stmt level    source

   1          #include "main.h"   //程序经过修改调整FLASH写数据正确,且每个参数分为高低位。
   2          #include "bl.h"
   3          
   4          sbit  CS=P1^2;      //7289控制键
   5          sbit  CLK=P1^3;
   6          sbit  DIO=P1^4;
   7          sbit  KEY=P1^6;
   8          
   9          sbit  P0_0=P0^0;    //二极管控制端口
  10          sbit  P1_5=P1^5;
  11          sbit  P1_7=P1^7;
  12          
  13          sbit  S1=P0^3;      //3个接近开关
  14          sbit  S2=P0^2;
  15          sbit  S3=P0^4;
  16          
  17          sbit  P0_6=P0^6;    //热保护
  18          sbit  P0_7=P0^7;    //手动
  19          sbit  P0_5=P0^5;    //屏蔽
  20          sbit  P1_0=P1^0;    //故态继电器K1触发
  21          sbit  P1_1=P1^1;    //故态继电器K2触发
  22          
  23          
  24          
  25          main()
  26          {
  27   1      	do
  28   1      	{
  29   2      		PCA0MD=0X00;
  30   2      		SysClk_Init();
  31   2      		port_Init();           //端口配置
  32   2      		timer_Init();
  33   2      		DAC_Init();
  34   2          	WDT_Init();            //系统配置
  35   2      
  36   2      		din_50=0;              //初始化
  37   2      		setcan=0;
  38   2      		pointer=4;
  39   2      		count=0;
  40   2      		freq=0;
  41   2      		idamin_l=0;
  42   2      		idamin_h=0;
  43   2      		idamax_l=0;
  44   2      		idamax_h=0;
  45   2      		t_s=15;	
  46   2      		t_m=0;	
  47   2      
  48   2      		db4=0x00;
  49   2      	    db3=0x00;
  50   2      		db2=0x00;
  51   2      		db1=0x00;                    
  52   2      
  53   2      		CS=0;
  54   2      		CLK=0;
  55   2      		delay_short();
  56   2      
  57   2      		
  58   2      		SEND_BUF=0xA4;           //7289复位
  59   2      		send7289();
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 2   

  60   2      		db_clear(1,2,3,4);		
  61   2      		ACC=0;
  62   2      
  63   2      		while(setcan<=200)
  64   2      		{
  65   3      			do
  66   3      			{
  67   4      				if (KEY==0)
  68   4      				{
  69   5      					CS = 0;
  70   5      					delay_short();
  71   5      					SEND_BUF=0X15;             // 写入读键盘数据指令
  72   5      					send7289();
  73   5      					delay_short();
  74   5      					symbol = read_key();       // 读出按键的值
  75   5      					ACC=symbol;
  76   5      					CS = 1;
  77   5      					delay_long();
  78   5      					
  79   5      					switch(symbol)
  80   5      					{
  81   6      						case(2):               //检测按下功能键
  82   6      							{
  83   7      								freq++;
  84   7      								if(freq==1)
  85   7      								{
  86   8      									P1_7=1;
  87   8      								    P1_5=0;
  88   8      									P0_0=0;	
  89   8      									
  90   8      								}
  91   7      								else if(freq==2)
  92   7      								{
  93   8      									P1_7=0;
  94   8      									P1_5=0;
  95   8      									P0_0=1;										
  96   8      								}
  97   7      								else if(freq==3)
  98   7      								{								  
  99   8      									P1_7=0;
 100   8      									P1_5=1;
 101   8      									P0_0=0;										
 102   8      								}
 103   7      								else
 104   7      								{
 105   8      								    freq=0;
 106   8      									P1_7=0;
 107   8      									P1_5=0;
 108   8      									P0_0=0;
 109   8      									EA=0;     //禁止中断;
 110   8      									FLSCL=0X80;
 111   8      									PSCTL=0X03;       //擦除指定的Flash地址;
 112   8      									FLKEY=0XA5;
 113   8      									FLKEY=0XF1;
 114   8      									ACC=FLKEY;
 115   8      									pwrite=0X1b00;
 116   8      									*pwrite=0XF0;
 117   8      									PSCTL=0X00;
 118   8      									
 119   8      									PSCTL=0X01; 
 120   8      									FLKEY=0XA5;
 121   8      									FLKEY=0XF1;
 122   8      									ACC=FLKEY;
 123   8      									*pwrite++=t_s;
 124   8      
 125   8      									PSCTL=0X01; 
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 3   

 126   8      									FLKEY=0XA5;
 127   8      									FLKEY=0XF1;
 128   8      									ACC=FLKEY;
 129   8      									*pwrite++=t_m;
 130   8      									
 131   8      									PSCTL=0X01;
 132   8      									FLKEY=0XA5;
 133   8      									FLKEY=0XF1;
 134   8      									ACC=FLKEY;
 135   8      									*pwrite++=idamin_l;
 136   8      
 137   8      									PSCTL=0X01;
 138   8      									FLKEY=0XA5;
 139   8      									FLKEY=0XF1;
 140   8      									ACC=FLKEY;
 141   8      									*pwrite++=idamin_h;
 142   8      									
 143   8      									PSCTL=0X01;
 144   8      									FLKEY=0XA5;
 145   8      									FLKEY=0XF1;
 146   8      									ACC=FLKEY;
 147   8      									*pwrite++=idamax_l;
 148   8      
 149   8      									PSCTL=0X01;
 150   8      									FLKEY=0XA5;
 151   8      									FLKEY=0XF1;
 152   8      									ACC=FLKEY;
 153   8      									*pwrite++=idamax_h;
 154   8      									
 155   8      									PSCTL=0X00; 
 156   8      									EA=1; 
 157   8      								}
 158   7      
 159   7      								while(KEY==0);
 160   7      									break;
 161   7      
 162   7      							}
 163   6      						
 164   6      						case(1):               //按键循环闪烁
 165   6      							{
 166   7      								if(pointer==4)
 167   7      								{
 168   8      									pointer--;
 169   8      									CS=0;
 170   8      									delay_short();
 171   8      									SEND_BUF=0X88;
 172   8      									send7289();
 173   8      									delay_short();
 174   8      									SEND_BUF=0xF7;
 175   8      									send7289();
 176   8      									CS=1;
 177   8      									delay_long();
 178   8      									while(KEY==0);
 179   8      									break;
 180   8      								}
 181   7      								else if(pointer==3)
 182   7      								{
 183   8      									pointer--;
 184   8      									CS=0;
 185   8      									delay_short();
 186   8      									SEND_BUF=0X88;
 187   8      									send7289();
 188   8      									delay_short();
 189   8      									SEND_BUF=0xFB;
 190   8      									send7289();
 191   8      									CS=1;
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 4   

 192   8      									delay_long();
 193   8      									while(KEY==0);
 194   8      									break;
 195   8      								}
 196   7      								else if(pointer==2)
 197   7      								{
 198   8      									pointer--;
 199   8      									CS=0;
 200   8      									delay_short();
 201   8      									SEND_BUF=0X88;
 202   8      									send7289();
 203   8      									delay_short();
 204   8      									SEND_BUF=0xFD;
 205   8      									send7289();
 206   8      									CS=1;
 207   8      									delay_long();
 208   8      									while(KEY==0);
 209   8      									break;
 210   8      								}
 211   7      								else if(pointer==1)
 212   7      								{
 213   8      									pointer--;
 214   8      									CS=0;
 215   8      									delay_short();
 216   8      									SEND_BUF=0X88;
 217   8      									send7289();
 218   8      									delay_short();
 219   8      									SEND_BUF=0xFE;
 220   8      									send7289();
 221   8      									CS=1;
 222   8      									delay_long();
 223   8      									while(KEY==0);
 224   8      									break;
 225   8      								}
 226   7      								else if(pointer==0)
 227   7      								{
 228   8      									pointer=4;
 229   8      									CS=0;
 230   8      									delay_short();
 231   8      									SEND_BUF=0X88;
 232   8      									send7289();
 233   8      									delay_short();
 234   8      									SEND_BUF=0xFF;
 235   8      									send7289();
 236   8      									CS=1;
 237   8      									delay_long();
 238   8      									while(KEY==0);
 239   8      									if(freq==1)
 240   8      									{									
 241   9      									t_s=db2*10+db1;      //1S=20次中断;
 242   9      									t_m=db4*10+db3;
 243   9      									}
 244   8      									else if(freq==2)
 245   8      									{									
 246   9      									idamin_l=db2*10+db1;
 247   9      									idamin_h=db4*10+db3;
 248   9      									
 249   9      									}
 250   8      									else if(freq==3)
 251   8      									{							
 252   9      									idamax_l=db2*10+db1;
 253   9      									idamax_h=db4*10+db3;
 254   9      									}
 255   8      									else
 256   8      									{
 257   9      										;
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 5   

 258   9      									}
 259   8      									break;
 260   8      								}
 261   7      								
 262   7      							}
 263   6      
 264   6      							case(3):          //检测按下键2,对应数码管的值加1
 265   6      								{
 266   7      									if(pointer==3)             //DB4
 267   7      									{
 268   8      										db4++;
 269   8      										if(db4==10)
 270   8      											db4=0;
 271   8      										CS=0;
 272   8      										delay_short();
 273   8      										SEND_BUF=0XCB;
 274   8      										send7289();
 275   8      										delay_short();
 276   8      										SEND_BUF=db4;
 277   8      										send7289();
 278   8      										CS=1;
 279   8      										delay_long();
 280   8      										while(KEY==0);
 281   8      										break;
 282   8      									}
 283   7      									else if(pointer==2)         //DB3
 284   7      									{
 285   8      										db3++;
 286   8      										if(db3==10)
 287   8      											db3=0;
 288   8      										CS=0;
 289   8      										delay_short();
 290   8      										SEND_BUF=0XCA;
 291   8      										send7289();
 292   8      										delay_short();
 293   8      										SEND_BUF=db3;
 294   8      										send7289();
 295   8      										CS=1;
 296   8      										delay_long();
 297   8      										while(KEY==0);
 298   8      										break;
 299   8      									}
 300   7      									else if(pointer==1)          //DB2
 301   7      									{
 302   8      										db2++;
 303   8      										if(db2==10)
 304   8      											db2=0;
 305   8      										CS=0;
 306   8      										delay_short();
 307   8      										SEND_BUF=0XC9;
 308   8      										send7289();
 309   8      										delay_short();
 310   8      										SEND_BUF=db2;
 311   8      										send7289();
 312   8      										CS=1;
 313   8      										delay_long();
 314   8      										while(KEY==0);
 315   8      										break;
 316   8      									}
 317   7      									else if(pointer==0)          //DB1
 318   7      									{
 319   8      										db1++;
 320   8      										if(db1==10)
 321   8      											db1=0;
 322   8      										CS=0;
 323   8      										delay_short();
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 6   

 324   8      										SEND_BUF=0XC8;
 325   8      										send7289();
 326   8      										delay_short();
 327   8      										SEND_BUF=db1;
 328   8      										send7289();
 329   8      										CS=1;
 330   8      										delay_long();
 331   8      										while(KEY==0);
 332   8      										break;
 333   8      									}
 334   7      									else
 335   7      									{
 336   8      									while(KEY==0);
 337   8      									break;
 338   8      									}
 339   7      								}
 340   6      							default: break;
 341   6      					}
 342   5      		}
 343   4      		else
 344   4      		{
 345   5      			break;
 346   5      		}
 347   4      		}while(1);
 348   3      	  }
 349   2      	  
 350   2      	  
 351   2      	  do{
 352   3      		  do
 353   3      		  {
 354   4      			  while((P0_7!=0)&&(din_50!=(t_m*60+t_s)*20))  //手动按钮没有按下且时间没达到设定值,则等待
 355   4      				{;}
 356   4      			  db_clear(0,0,0,0);
 357   4      			  din_50=0;
 358   4      		  }while(P0_5==0);     //外部有屏蔽信号,程序重新开始执行
 359   3      		  
 360   3      		  P1_0=1;             //触发K1;
 361   3      		  
 362   3      		  do
 363   3      		  {
 364   4      			  if(S1==0)         //脉冲计数
 365   4      			  {
 366   5      				  count++;
 367   5      				  while(S1==0)
 368   5      				  {;}
 369   5      			  }
 370   4      			  else
 371   4      			  {
 372   5      				  do{
 373   6      					  if (KEY==0)
 374   6      					  {
 375   7      						  CS = 0;
 376   7      						  delay_short();
 377   7      						  SEND_BUF=0X15; 
 378   7      						  send7289();
 379   7      						  delay_short();
 380   7      						  symbol = read_key(); 
 381   7      						  CS = 1;
 382   7      						  delay_long();
 383   7      
 384   7      						  switch(symbol)
 385   7      						  {
 386   8      						  case(2): 
 387   8      							  {
 388   9      								  freq++;
 389   9      								  if(freq==1)
C51 COMPILER V4.01,  MAIN                                                                  06/01/06  17:56:11  PAGE 7   

 390   9      								  {
 391  10      									P1_7=1;
 392  10      								    P1_5=0;
 393  10      									P0_0=0;	
 394  10      									pread=0x1b00;
 395  10      									t_s=*pread++;
 396  10      									t_m=*pread;	
 397  10      									while(KEY==0);									
 398  10      									db_clear(t_m/10,t_m%10,t_s/10,t_s%10);
 399  10      									break;
 400  10      								  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -