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

📄 smjp.lst

📁 (1) 程序1-跑马灯:会看到led变化。 (2) 程序2-独立键盘 :分别按“INT0/+”键和”t0/-“会看到LED变化。 (3) 程序3-定时器:会看到5个LED闪烁。 (4) 程序4-
💻 LST
字号:
C51 COMPILER V3.20,  SN-50203648  SMJP                                                     10/03/07  22:18:25  PAGE 1   


DOS C51 COMPILER V3.20, COMPILATION OF MODULE SMJP
OBJECT MODULE PLACED IN SMJP.OBJ
COMPILER INVOKED BY: C:\BIN\C51.EXE SMJP.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include<reg51.h>
   2          sbit v1=P2^2;
   3          sbit v2=P2^4;
   4          sbit v3=P2^3;
   5          sbit h1=P2^7;
   6          sbit h2=P2^6;
   7          sbit h3=P2^5;
   8          
   9          sbit led1=P1^0;
  10          sbit led2=P1^1;
  11          sbit led3=P1^2;
  12          sbit led4=P1^3;
  13          sbit led5=P1^4;
  14          sbit shu4=P2^0;
  15          sbit shu2=P2^1;
  16          sbit shu1=P3^5;
  17          sbit shu3=P3^3;
  18          
  19          void delayms(unsigned int i);
  20          unsigned int keyboar();
  21          
  22          unsigned int b;
  23          
  24          void t0()interrupt 1 using 1  /*中断程序负责显示b的值 */
  25          {
  26   1        unsigned char a1=0,a2=0,a3=0,a4=0;
  27   1        static unsigned char yima[]={0xef,0x8c,0xb7,0xbe,0xdc,0x7e,0x7f,0xac,0xff,0xfe};
  28   1        static int k=0;
  29   1        //b++;
  30   1        a1=b/1000;
  31   1        a2=(b-a1*1000)/100;
  32   1        a3=(b-a1*1000-a2*100)/10;
  33   1        a4=b-a1*1000-a2*100-a3*10;
  34   1            if(k==0){shu4=1;shu1=0;shu2=0;shu3=0;P0=yima[a1];}
  35   1       else if(k==1){shu4=0;shu1=1;shu2=0;shu3=0;P0=yima[a4];}
  36   1       else if(k==2){shu4=0;shu1=0;shu2=1;shu3=0;P0=yima[a3];}
  37   1       else if(k==3){shu4=0;shu1=0;shu2=0;shu3=1;P0=yima[a2];}
  38   1       k++;
  39   1       if(k>3)k=0;
  40   1      
  41   1       TH0=230;
  42   1      }
  43          
  44          main()
  45          {
  46   1        //write(1,60);
  47   1        //b=read(1);
  48   1        EA=1;
  49   1        TR0=1;
  50   1        ET0=1;
  51   1        TMOD=0X01;
  52   1        while(1)
  53   1          {
  54   2          b=keyboar();/*把按键的代表的值给b */
  55   2        
C51 COMPILER V3.20,  SN-50203648  SMJP                                                     10/03/07  22:18:25  PAGE 2   

  56   2           }
  57   1      
  58   1      } 
  59          
  60          
  61           unsigned int  keyboar()/*线反转法 */
  62          { 
  63   1         static unsigned int a=0;
  64   1        unsigned char a1=0,b1=0;
  65   1        /*行线为输入线,列线为输出线 */
  66   1        v1=v2=v3=0;
  67   1        h1=h2=h3=1;
  68   1        if(P2<224)/*检查行是否有按键按下 */ 
  69   1          {
  70   2           delayms(10);
  71   2           if(P2<224)
  72   2             {
  73   3               /*行线为输入线,列线为输出线 */ 
  74   3               v1=v2=v3=0;
  75   3               h1=h2=h3=1;
  76   3               a1=P2; 
  77   3               /*行线为输出线,列线为输入线 */ 
  78   3               h1=h2=h3=0;
  79   3               v1=v2=v3=1;
  80   3               b1=P2;
  81   3        
  82   3               a=a1|b1|0x03; /*与0x03相或是为了屏蔽p2.0和p2.1的影响*/
  83   3           
  84   3              }    
  85   2            }
  86   1          
  87   1         else {
  88   2                h1=h2=h3=0;
  89   2                v1=v2=v3=1;
  90   2                if(P2<28)/*检查列是否有按键按下 */ 
  91   2                  {
  92   3                    delayms(10);
  93   3                    if(P2<28)
  94   3                    {
  95   4                      /*行线为输入线,列线为输出线 */ 
  96   4                      v1=v2=v3=0;
  97   4                      h1=h2=h3=1;
  98   4                      a1=P2; 
  99   4                      /*行线为输出线,列线为输入线 */ 
 100   4                      h1=h2=h3=0;
 101   4                      v1=v2=v3=1;
 102   4                      b1=P2;
 103   4                        
 104   4                      a=a1|b1|0x03;/*与0x03相或是为了屏蔽p2.0和p2.1的影响*/
 105   4                      
 106   4                   
 107   4                     }  
 108   3                   }
 109   2         
 110   2               } 
 111   1               
 112   1                     if(a==219){return 2;}
 113   1                      else if(a==207){return 1;}
 114   1                      else if(a==215){return 3;}
 115   1                      else if(a==187){return 5;}
 116   1                      else if(a==175){return 4;}
 117   1                      else if(a==183){return 6;}
C51 COMPILER V3.20,  SN-50203648  SMJP                                                     10/03/07  22:18:25  PAGE 3   

 118   1                      else if(a==123){return 8;}
 119   1                      else if(a==111){return 7;}
 120   1                      else if(a==119){return 9;}
 121   1                      else return 0;
 122   1                   
 123   1            
 124   1        }
 125            
 126            void delayms(unsigned int i)
 127          {
 128   1        unsigned int j;
 129   1        for(;i>0;i--)
 130   1          for(j=100;j>0;j--);
 131   1      }
 132          


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