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

📄 led_display.lst

📁 AT89S52控制的18B20数字温度传感器
💻 LST
字号:
C51 COMPILER V8.02   LED_DISPLAY                                                           08/15/2007 11:24:53 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LED_DISPLAY
OBJECT MODULE PLACED IN LED_Display.OBJ
COMPILER INVOKED BY: D:\电子软件\Keil8.02\C51\BIN\C51.EXE LED_Display.c BROWSE DEBUG OBJECTEXTEND SRC(.\LED_Display.SRC)

line level    source

   1          /*==========================================
   2                          LED显示驱动程序
   3          
   4                          文件名:LED_Display.c
   5          
   6                          作者 YOUJJYY 
   7                          时间:2007.4.6 
   8          ============================================*/
   9          
  10          #include <at89x52.h>
  11          #include <LED_Display.h>
  12          #define uchar unsigned char
  13          
  14          //***********显示数据的转换***************//
  15          uchar TO_DATA(bit n_s,uchar I,uchar led_data)
  16           {
  17   1         uchar x[3],y;
  18   1        if(n_s==1)
  19   1         {
  20   2          switch(I)
  21   2               {  
  22   3                 case 0:if(led_data!=y){P0=P0^0x20;y=led_data;}
  23   3                        break;      
  24   3                 case 1: {x[2]=(led_data>>4)+1;x[3]=(led_data&0x0f)+1;}
  25   3                         break;
  26   3                 case 2: {x[0]=(led_data>>4)+1;x[1]=(led_data&0x0f)+1;}
  27   3                         break;
  28   3                 default:break;
  29   3                  
  30   3                 }
  31   2                return x[I];
  32   2              }
  33   1              else 
  34   1                {
  35   2                 if(led_data<46)led_data=0;
  36   2                 else led_data-=47;
  37   2                 return led_data;
  38   2                 }
  39   1         }
  40            
  41          /*****************LED显示程序***************/
  42          void LED_Display(bit N_S,uchar data_size,uchar S_D,uchar *LED_data)//N_S是数字和字符串显示选择,
  43                                                                             //data_size显示多少位
  44                                                                                                                                            //S_D是显示方式(0x00:静态,0x01:半动态,0x02:全动态)
  45                                                                                                                                           //LED_data是要显示的数据
  46          {
  47   1       uchar t,y,i,x,z,a,k=20,size=0;
  48   1      
  49   1      //*****************显示方式S_D***************//
  50   1               switch(S_D)
  51   1                {
  52   2                 case 0:a=0;
  53   2                       break;
  54   2                 case 1:a=4,k=80,size/=4;
  55   2                       break;
C51 COMPILER V8.02   LED_DISPLAY                                                           08/15/2007 11:24:53 PAGE 2   

  56   2                 case 2:a=1;//size-=4;
  57   2                      break;
  58   2                 default:break;
  59   2                      }
  60   1      
  61   1      //*************显示个数data_size***********//
  62   1         for(i=0;i<data_size;i++)                                                       //BCD码转换成LED码
  63   1          {
  64   2               if(N_S==1)size=0; 
  65   2            else size+=1;
  66   2          }             
  67   1      
  68   1      //****************显示程序**************//                                       
  69   1         for(t=0;t<=size;t++)   //要显示的位数
  70   1           {
  71   2                for(y=0;y<=k;y++)               //循环20显示
  72   2                  {
  73   3                        z=0x7f;                 
  74   3                    for(i=0;i<=3;i++)       //一次显示
  75   3                     {
  76   4                           P2=z;
  77   4                               z>>=1;
  78   4                               z+=0x80;
  79   4                               x=TO_DATA(N_S,i,LED_data[i+t*a]);
  80   4                                P0=BCD_ASCII[x];
  81   4                                Delay_1ms(3);//延时时间
  82   4                               }            
  83   3                              }
  84   2               }
  85   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    263    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      19
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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