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

📄 lesson8.lst

📁 学习C程序帮助初学者入门用
💻 LST
字号:
C51 COMPILER V8.12   LESSON8                                                               05/25/2008 13:52:24 PAGE 1   


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

line level    source

   1          #include <reg52.h>   
   2          #define uchar unsigned char  
   3                          sbit k1=P3^2;   
   4                          sbit k2=P3^3;   
   5                          sbit k3=P3^4;
   6                                          sbit k4=P3^5;   
   7                          sbit l1=P1^0;
   8                          sbit l2=P1^1;
   9                                          sbit l3=P1^2;      
  10                          sbit Pwinpin=P2^0; 
  11                                          sbit s2=P2^1;
  12                                          sbit s3=P2^2; 
  13                          static   tt;
  14                                  unsigned char lit=0;
  15             
  16          void delay_ms(uchar ms);  // 延时毫秒@12M,ms最大值255    
  17            
  18          uchar code dis_code[10] = {0xc0,0xf9,0xa4,0xb0,0x99,  //段码表    
  19                                    // 0    1    2    3    4      对应内容    
  20                                     0x92,0x82,0xf8,0x80,0x90};    
  21                                    // 5    6    7    8    9   
  22          uchar count,shi,ge, t,shu ;       // 计数器    
  23          
  24          void main()    
  25          {    
  26   1         
  27   1              
  28   1          TMOD = 0x01;         // 定时/计数器0工作于方式1    
  29   1          TH0 = 0xfc;          // 装载定时常数64536(fc18)    
  30   1          TL0 = 0x18;    
  31   1          EA = 1;              // 开总中断    
  32   1          ET0 = 1;             // 定时/计数器0允许中断    
  33   1          TR0 = 1;               // 启动定时/计数器0 
  34   1                     
  35   1          while(1)             // 执行主程序,等待中断    
  36   1          {
  37   2                
  38   2             if(!k1)
  39   2                 {
  40   3                 delay_ms(1000);
  41   3                      count++;
  42   3                       delay_ms(100);  
  43   3                 }
  44   2                 if(count<10)
  45   2                 {
  46   3                 s3=0;
  47   3             P0=dis_code[count];
  48   3                 delay_ms(10);
  49   3                 s3=1;
  50   3                
  51   3                 delay_ms(10); 
  52   3                  }
  53   2               else 
  54   2               { 
  55   3               if(count>=10) 
C51 COMPILER V8.12   LESSON8                                                               05/25/2008 13:52:24 PAGE 2   

  56   3                
  57   3                 {
  58   4                  TR0 = 1;
  59   4                 s2=0; s3=1; 
  60   4                 shi=1;  
  61   4                 delay_ms(1); 
  62   4                 s2=1;  s3=0; 
  63   4                 shi=count/10;
  64   4                 P0=dis_code[ge];
  65   4                 delay_ms(1); 
  66   4      
  67   4                 s3=0;  s2=1; 
  68   4                 ge=count%10;
  69   4            P0=dis_code[shi];
  70   4                 s3=1;           
  71   4                 delay_ms(1);
  72   4                
  73   4                 delay_ms(1);
  74   4                  }
  75   3                 }
  76   2                if(count>=100) 
  77   2                {
  78   3                
  79   3                count=0; l3=0;
  80   3                
  81   3                }
  82   2                if(!k3)
  83   2                {
  84   3                 delay_ms(1);
  85   3                 P0= dis_code[shi];
  86   3                  delay_ms(100);
  87   3                      l2=1;
  88   3                count=0;
  89   3                }
  90   2      
  91   2      
  92   2      
  93   2                 if(k4==0)
  94   2                 {
  95   3                 
  96   3               
  97   3                 ;;;;;;;;;;
  98   3                 
  99   3                 }      
 100   2                 }
 101   1                 
 102   1               }         
 103          
 104             
 105            
 106          
 107          
 108          void time0(void) interrupt 1   // T/C0中断服务程序(延时1ms数码管动态显示)    
 109          {                               
 110   1          TH0 = 0xfc;                // 重置定时常数    
 111   1          TL0 = 0x18;
 112   1                      t++; 
 113   1              if(t==2)
 114   1              {
 115   2                      l1=~l1;
 116   2                      } 
 117   1               if(k2==0)
C51 COMPILER V8.12   LESSON8                                                               05/25/2008 13:52:24 PAGE 3   

 118   1                {
 119   2               TR0 = 0;
 120   2               l2=0;
 121   2               }
 122   1              
 123   1              }
 124             
 125           
 126             
 127          void delay_ms(uchar ms)       // 延时毫秒@12M,ms最大值255    
 128          {    
 129   1          uchar i;    
 130   1          while(ms--)    
 131   1              for(i = 0; i < 124; i++);    
 132   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    233    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8    ----
   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 + -