led_hardware2.lst

来自「自己的平时一些制作 现在整理一下 与大家一起分享」· LST 代码 · 共 111 行

LST
111
字号
C51 COMPILER V7.20   LED_HARDWARE2                                                         03/04/2007 15:19:57 PAGE 1   


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

line level    source

   1          #include <reg51.h>
   2          
   3          /******led 接口描述******/
   4          //P0--->(a-g,dot) 显示
   5          //选择使能控制段
   6          //P2^3--->使能左第一个数码管  P2^2--->左第二个数码管  
   7          //P2^1--->左第三个数码管  P2^0--->左第四个数码管
   8          
   9          
  10          /*********显示数据表************/ 
  11          //前16个对应0-9 ,a-f,后面三个0x73 0x40,0x00分别对应字符P,-,空
  12          
  13          unsigned char code table[19]={0x3f,6,0x5b,0x4f,
  14                            0x66,0x6d,0x7d,7,0x7f,0x6f,0x77,
  15                                            0x7c,0x58,0x5e,0x79,0x71,0x73,0x40,0x00};
  16          /**********显示选择表***********************/
  17          unsigned char code digit[4]={0xf8,0xf4,0xf2,0xf1};
  18          
  19          /*****定义一个数组用于存放将要显示的值*******/
  20          unsigned char d[4]={16,17,17,17};
  21          /*****定义一个全局变量 number******/
  22          unsigned char number;   //number 表示第几个显示 0-3 
  23          /******定义一个全局变量 flag*******/
  24          unsigned char flag;             //指示当前状态的变量 <100 显示 >100 灭.用于闪烁
  25          /****软件延时 DELAY ms****/
  26          void Software_Delay(const unsigned int DELAY)   
  27             {
  28   1         unsigned int x, y;
  29   1      
  30   1         for (x = 0; x <= DELAY; x++)
  31   1            {
  32   2            for (y = 0; y <= 120; y++);
  33   2            }
  34   1         }
  35          
  36          /********定时器0中断服务程序***************/
  37          void timer0(void) interrupt 1 
  38          {
  39   1       TR0=0;                                  //停止定时器0
  40   1       TH0=(65536-1000)/256;   //通过定时器定时延时大约1ms左右
  41   1       TL0=(65536-1000)%256;
  42   1       if (flag<100) 
  43   1       {
  44   2              for(number=0;number<=3;number++)
  45   2              {//number=(number+1)%4;
  46   3              P2=digit[number];       //选择第number个数码管显示
  47   3              P0=table[d[number]];    //查表显示要显示的值
  48   3              Software_Delay(1);
  49   3              }
  50   2       }
  51   1       else
  52   1       {
  53   2              for(number=0;number<=3;number++)
  54   2              {//number=(number+1)%4;
  55   3              P2=digit[number];       //选择第number个数码管显示
C51 COMPILER V7.20   LED_HARDWARE2                                                         03/04/2007 15:19:57 PAGE 2   

  56   3              P0=0x00;    //查表显示要显示的值
  57   3              Software_Delay(1);
  58   3              }
  59   2      
  60   2       }
  61   1       flag=(flag+1)%200;
  62   1       TR0=1;                              //启动定时器0
  63   1        
  64   1      }
  65          
  66          /******定时器初始化函数**********/
  67          void Init_Timer (void)
  68          {
  69   1      TMOD=0x01;                       //
  70   1      TH0=(65536-1000)/256;    //通过定时器定时延时大约1ms左右
  71   1      TL0=(65536-1000)%256;
  72   1      EA=1;
  73   1      ET0=1;
  74   1      TR0=1;
  75   1      }
  76          
  77          
  78          /********主函数************/
  79          //效果就是用定时器服务程序的实现数码管动态显示P---且有闪烁
  80          /*************************/
  81          void main (void)
  82          {
  83   1      Init_Timer();
  84   1      while(1);                 
  85   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    203    ----
   CONSTANT SIZE    =     23    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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