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

📄 led2.lst

📁 51单片机实验例程
💻 LST
字号:
C51 COMPILER V7.10   LED2                                                                  10/04/2010 21:20:42 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE LED2
OBJECT MODULE PLACED IN led2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**********************************************************************************
   2          *  标题:               74HC573输出使能试验(单片机直接实现位选 共阴极)             *
   3          *                                                                                                                                                             *
   4          *  连接方法:P0与J12 用8PIN排线连接      P16与JP11(P2) 用排线连接                                         *
   5          ***********************************************************************************
   6          *  目的:熟悉74HC573的LE输出使能控制                                                              *
   7          *  请学员认真消化本例程,用573锁存器控制和单片机脚直接位选控制(非译码器控制)数码管*
   8          ***********************************************************************************/
   9          
  10          
  11          #include <reg52.h> 
  12          #include <intrins.h>
  13          
  14          void delay(unsigned int i);      //函数声名
  15          sbit LE = P1^0;  //定义输出使能控制脚在P1.0上
  16          
  17          char DelayCNT;//定义变量
  18           
  19          //此表为 LED 的字模, 共阴数码管 0-9  - 
  20          unsigned char code   Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};  //段码控制
  21          
  22          //此表为8个数码管位选控制, 共阴数码管 1-8个  - 
  23          unsigned char code   dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};    //位选控制   查表的方法控制
  24          
  25          /************主函数**********************/ 
  26          main()
  27          {  
  28   1         unsigned int i,LedNumVal=1 ;    //变量定义
  29   1         unsigned int LedOut[10];                //变量定义
  30   1         
  31   1         DelayCNT=0;
  32   1      
  33   1        while(1)
  34   1        {      
  35   2           if(++DelayCNT>=20)   //控制数字变化速度
  36   2               {
  37   3                      DelayCNT=0;               //20个扫描周期清零一次
  38   3                  ++LedNumVal;          //每隔20个扫描周期加一次
  39   3               }
  40   2      
  41   2               LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
  42   2           LedOut[1]=Disp_Tab[LedNumVal%1000/100]|0x80;
  43   2           LedOut[2]=Disp_Tab[LedNumVal%100/10];
  44   2           LedOut[3]=Disp_Tab[LedNumVal%10];
  45   2               
  46   2               LedOut[4]=Disp_Tab[LedNumVal%10000/1000];         //千位
  47   2           LedOut[5]=Disp_Tab[LedNumVal%1000/100]|0x80;  //百位带小数点
  48   2           LedOut[6]=Disp_Tab[LedNumVal%100/10];                 //十位
  49   2           LedOut[7]=Disp_Tab[LedNumVal%10];             //个位        
  50   2      
  51   2         
  52   2              
  53   2               for( i=0; i<9; i++) 
  54   2               {       
  55   3                LE = 0;  //输出使能,锁存器不输出数据
C51 COMPILER V7.10   LED2                                                                  10/04/2010 21:20:42 PAGE 2   

  56   3            P0 = LedOut[i];
  57   3            LE = 1;  //输出使能,锁存器将8位数据一口吐出
  58   3                P2 = dispbit[i];   //使用查表法进行位选
  59   3            
  60   3                delay(150);            //扫描间隔时间   太长会数码管会有闪烁感
  61   3                }
  62   2            LE = 0; //锁存器不输出数据
  63   2               
  64   2        }   
  65   1      }       
  66          
  67          /**************************************************************************
  68          *
  69          *                      延时处理
  70          *
  71          ****************************************************************************/
  72          void delay(unsigned int i)
  73          {
  74   1          char j;
  75   1          for(i; i > 0; i--)
  76   1              for(j = 200; j > 0; j--);
  77   1      }
  78          
  79          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    387    ----
   CONSTANT SIZE    =     19    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      24
   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 + -