1266.lst

来自「51单片机C程序」· LST 代码 · 共 194 行

LST
194
字号
C51 COMPILER V6.12  1266                                                                   03/27/2007 19:49:44 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 1266
OBJECT MODULE PLACED IN .\1266.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\1266.c DEBUG OBJECTEXTEND

stmt level    source

   1          //利用动态扫描和定时器1在数码管上显示出从765432开始以1%秒的速度
   2          //往下递减直至765400并保持显示此数,与此同时利用定时器0以500MS速度
   3          //进行流水灯从上至下移动,同时蜂鸣器发声,当数码管上数减到停止时,
   4          //实验板上流水灯全部闪烁5次,数码管全熄灭。单片机进入休眠状态。
   5          
   6          #include<reg52.h>
   7          #include<intrins.h>
   8          #define uc unsigned char
   9          #define ui unsigned int
  10          sbit beep=P2^3;
  11          sbit dus=P2^6;
  12          sbit wes=P2^7;
  13          uc i,k,a,b,c;
  14          ui count0,count1,num,j;
  15          uc code table[]={
  16          0x3f,0x06,0x5b,0x4f,0x66,0x6d,
  17          0x7d,0x07,0x7f,0x6f,0x77};
  18          
  19          void delay(ui x)
  20          {
  21   1      	for(i=10;i>0;i--)
  22   1      	 for(j=x;j>0;j--);
  23   1      }
  24          
  25          void display(ui qi,ui bi,ui si,ui ge)
  26          {
  27   1      	P0=0xff;
  28   1      	wes=1;
  29   1      	wes=0;
  30   1      	P0=table[7];
  31   1      	dus=1;
  32   1      	dus=0;
  33   1      	P0=0xfe;
  34   1      	wes=1;
  35   1      	wes=0;
  36   1      	delay(1);
  37   1      	
  38   1      	P0=0xff;
  39   1      	wes=1;
  40   1      	wes=0;
  41   1      	P0=table[6];
  42   1      	dus=1;
  43   1      	dus=0;
  44   1      	P0=0xfd;
  45   1      	wes=1;
  46   1      	wes=0;
  47   1      	delay(1);
  48   1      	
  49   1      	P0=0xff;
  50   1      	wes=1;
  51   1      	wes=0;
  52   1      	
  53   1      	P0=table[qi];
  54   1      	dus=1;
  55   1      	dus=0;
C51 COMPILER V6.12  1266                                                                   03/27/2007 19:49:44 PAGE 2   

  56   1      	P0=0xfb;
  57   1      	wes=1;
  58   1      	wes=0;
  59   1      	delay(1);
  60   1      	
  61   1      	P0=0xff;
  62   1      	wes=1;
  63   1      	wes=0;
  64   1      	P0=table[bi];
  65   1      	dus=1;
  66   1      	dus=0;
  67   1      	P0=0xf7;
  68   1      	wes=1;
  69   1      	wes=0;
  70   1      	delay(1);
  71   1      	
  72   1      	P0=0xff;
  73   1      	wes=1;
  74   1      	wes=0;
  75   1      	P0=table[si];
  76   1      	dus=1;
  77   1      	dus=0;
  78   1      	P0=0xef;
  79   1      	wes=1;
  80   1      	wes=0;
  81   1      	delay(1);
  82   1      	
  83   1      	P0=0xff;
  84   1      	wes=1;
  85   1      	wes=0;
  86   1      	P0=table[ge];
  87   1      	dus=1;
  88   1      	dus=0;
  89   1      	P0=0xdf;
  90   1      	wes=1;
  91   1      	wes=0;
  92   1      	delay(1);
  93   1      }
  94          
  95          
  96          void main()
  97          {
  98   1      	EA=1;
  99   1      	ET1=1;
 100   1      	ET0=1;
 101   1      	TMOD=0x11;
 102   1      	TH1=(65536-5000)/256;
 103   1      	TL1=(65536-5000)%256;
 104   1      	TH0=(65536-5000)/256;
 105   1      	TL0=(65536-5000)%256;
 106   1      	TR1=1;
 107   1      	TR0=1;
 108   1      	a=0xfe;
 109   1      	num=5432;
 110   1      	while(1)
 111   1      	{
 112   2      		
 113   2      		if(count1==50)
 114   2      		  {
 115   3      			count1=0;			
 116   3      			num--;				    
 117   3      		   }
C51 COMPILER V6.12  1266                                                                   03/27/2007 19:49:44 PAGE 3   

 118   2      		display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
 119   2      		P1=a;	
 120   2      		beep=1;
 121   2      		if(count0==50)
 122   2      		{
 123   3      			a=_crol_(a,1);
 124   3      			count0=0;
 125   3      			beep=0;			         
 126   3      		}		
 127   2      		//if(count0==25)
 128   2                  //beep=~beep;
 129   2      	  	
 130   2      		if(num==5400)
 131   2      		 {			
 132   3      			beep=1;	
 133   3      			TR1=0;
 134   3      			TR0=0;
 135   3      			for(b=5;b>0;b--)
 136   3        			{				
 137   4      				for(c=100;c>0;c--)
 138   4      				display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
 139   4      	            P1=0x00;
 140   4      				for(c=100;c>0;c--)
 141   4      				display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
 142   4      				P1=0xff;				
 143   4      			}
 144   3      			P0=0xff;
 145   3      			wes=1;
 146   3      			wes=0;			
 147   3      			while(1);	
 148   3      		}		
 149   2      
 150   2      	}
 151   1      
 152   1      
 153   1      }
 154          void time1() interrupt 3 using 1
 155          {
 156   1      TH1=(65536-5000)/256;
 157   1      TL1=(65536-5000)%256;
 158   1      count1++;
 159   1      }
 160          void time0() interrupt 1 using 3
 161          {
 162   1      TH0=(65536-5000)/256;
 163   1      TL0=(65536-5000)%256;
 164   1      count0++;
 165   1      }
 166          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    801    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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