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

📄 led.lst

📁 《单片机c程序设计及应用实列》一书的源代
💻 LST
字号:
C51 COMPILER V7.00  LED                                                                    04/01/2004 16:51:58 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <reg51.h>
   3          
   4          
   5          #define         TRUE                    1
   6          #define         FALSE                   0
   7          
   8          #define         DELAY_VALVE             3
   9          
  10          
  11          
  12          
  13          #define         PinDrvKey1      P1_0
  14          #define         PinDrvKey2      P1_1
  15          #define         PinDrvKey3      P1_2
  16          #define         PinDrvKey4      P1_3            
  17          //键盘扫描的驱动线
  18          
  19          
  20          #define         PinScanKey1     P1_4
  21          #define         PinScanKey2     P1_5
  22          #define         PinScanKey3     P1_6
  23          #define         PinScanKey4     P1_7            
  24          //键盘扫描的信号获取线
  25          
  26          #define         PinSegA         P2_0    
  27          #define         PinSegB         P2_1
  28          #define         PinSegC         P2_2
  29          #define         PinSegD         P2_3            
  30          //七段码的数据线
  31          
  32          #define         PinSelectA      P2_4
  33          #define         PinSelectB      P2_5
  34          #define         PinSelectC      P2_6            
  35          //选择器的数据位
  36          
  37          #define         PinSelectCS     P2_4            
  38          //选择器的片选位
  39          
  40          #define         LedSelect0      0x80
  41          #define         LedSelect1      0x90
  42          #define         LedSelect2      0xa0
  43          #define         LedSelect3      0xb0
  44          #define         LedSelect4      0xc0
  45          #define         LedSelect5      0xd0
  46          
  47          #define         PinLamp         P0_0            
  48          //指示灯驱动管脚
  49          #define         PinSpeaker      P0_1            
  50          //蜂鸣器驱动管脚
  51          
  52          sbit            P0_0=P0^0;
  53          sbit            P0_1=P0^1;
  54          sbit            P0_2=P0^2;
  55          sbit            P0_3=P0^3;
C51 COMPILER V7.00  LED                                                                    04/01/2004 16:51:58 PAGE 2   

  56          sbit            P0_4=P0^4;
  57          sbit            P0_5=P0^5;
  58          sbit            P0_6=P0^6;
  59          sbit            P0_7=P0^7;
  60          
  61          sbit            P1_0=P1^0;
  62          sbit            P1_1=P1^1;
  63          sbit            P1_2=P1^2;
  64          sbit            P1_3=P1^3;
  65          sbit            P1_4=P1^4;
  66          sbit            P1_5=P1^5;
  67          sbit            P1_6=P1^6;
  68          sbit            P1_7=P1^7;
  69          
  70          sbit            P2_0=P2^0;
  71          sbit            P2_1=P2^1;
  72          sbit            P2_2=P2^2;
  73          sbit            P2_3=P2^3;
  74          sbit            P2_4=P2^4;
  75          sbit            P2_5=P2^5;
  76          sbit            P2_6=P2^6;
  77          sbit            P2_7=P2^7;
  78          
  79          
  80          void initial(void);              
  81          //初始化子程序
  82          void delay(short i);             
  83          //延时子程序
  84          void display(unsigned char i,unsigned char num);
  85          //显示子程序,其中变量i,num含义为在第i个数码管显示数字num.
  86          
  87          void main(void)
  88          {
  89   1              unsigned char i;
  90   1              initial();                      
  91   1      //键盘驱动信号,发光二极管,以及蜂鸣器都设在无效状态
  92   1              while(1)
  93   1              {
  94   2                      for(i=0;i<=5;i++) 
  95   2                      {
  96   3                              display(i,1);
  97   3                              delay(DELAY_VALVE);
  98   3                              display(i,8);
  99   3      //所有数码管显示都为8,只有数字1在各个数码管之间循环闪动
 100   3                      }
 101   2                      
 102   2              }
 103   1              
 104   1      }
 105          
 106          void initial(void)
 107          {
 108   1              P1_0=FALSE;
 109   1              P1_1=FALSE;
 110   1              P1_2=FALSE;
 111   1              P1_3=FALSE;                     
 112   1      //键盘驱动信号都设为低,避免干扰。
 113   1              P0_0=TRUE;                      
 114   1      //发光二极管设为不亮
 115   1              P0_1=TRUE;              
 116   1      //蜂鸣器不响
 117   1      }
C51 COMPILER V7.00  LED                                                                    04/01/2004 16:51:58 PAGE 3   

 118          
 119          void delay(short i)
 120          {
 121   1              int j=0;
 122   1              int k=0;
 123   1              k=i*DELAY_VALVE;
 124   1              while (j<k)j++;
 125   1      }
 126          
 127          void display(unsigned char i,unsigned char num)
 128          {
 129   1              if(num >= 0 && num <=9)
 130   1              {switch(i)
 131   2              { case 0:P2= LedSelect0 | num;  
 132   3      //LedSelect0的高四位为选择第0个数码管的逻辑,低四位则为数码管显示的数字。
 133   3              break;
 134   3                case 1:P2= LedSelect1 | num;
 135   3      //LedSelect1的高四位为选择第1个数码管的逻辑,低四位则为数码管显示的数字。
 136   3                        break;
 137   3                case 2:P2= LedSelect2 | num;
 138   3      //LedSelect2的高四位为选择第2个数码管的逻辑,低四位则为数码管显示的数字。
 139   3                        break;
 140   3                case 3:P2= LedSelect3 | num;
 141   3      //LedSelect3的高四位为选择第3个数码管的逻辑,低四位则为数码管显示的数字。
 142   3                        break;
 143   3                case 4:P2= LedSelect4 | num;
 144   3      //LedSelect4的高四位为选择第4个数码管的逻辑,低四位则为数码管显示的数字。
 145   3                        break;
 146   3                case 5:P2= LedSelect5 | num;
 147   3      //LedSelect5的高四位为选择第5个数码管的逻辑,低四位则为数码管显示的数字。
 148   3                        break;
 149   3                default:break;
 150   3              }
 151   2              }
 152   1      }
 153          


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