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

📄 electric.lst

📁 使用AT52单片机控制矩阵键盘
💻 LST
字号:
C51 COMPILER V7.06   ELECTRIC                                                              05/18/2009 02:01:18 PAGE 1   


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

stmt level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          
   4          #define N8155CMD    XBYTE[0x1000]       
   5          #define PA     XBYTE[0x1001]
   6          #define PB     XBYTE[0x1002]
   7          
   8          
   9          sbit speaker=P1^4;      
  10          
  11          void delay_MS(unsigned int count)//延时函数 延时=1ms*count
  12          {
  13   1       unsigned int i,j;
  14   1       for(i=0;i<count;i++)
  15   1       for(j=0;j<120;j++);
  16   1      } 
  17          
  18          int keyscan(void)//键盘扫描函数,使用行列反转扫描法
  19          {
  20   1        unsigned char cord_h,cord_l;//行列值
  21   1        N8155CMD=0x03;
  22   1        PA=0x00;            
  23   1        PB=0x0f; 
  24   1        cord_l=PB;
  25   1        N8155CMD=0x01;
  26   1        if(cord_l!=0x0f)    //先检测有无按键按下
  27   1         {                 
  28   2           delay_MS(5);      //去抖动干扰
  29   2           cord_l=PB;  //读入列线值        
  30   2           if(cord_l!=0x0f)
  31   2             {
  32   3                
  33   3               cord_l|=0x00;
  34   3                       PA|=0xf0;
  35   3                       N8155CMD=0x00;
  36   3                   cord_h=PA&0xf0;  //读入行线值
  37   3               return(cord_l+cord_h);//键盘最后组合码值并返回
  38   3             }
  39   2          }
  40   1        else return(0xff);     //否则返回固定值0xff
  41   1      }
  42          
  43          
  44          void main()
  45                  {
  46   1                      TMOD=0x01; //定时器/计数器方式1
  47   1                      EA=1;      //允许中断
  48   1                      ET0=1;     //定时器/计数器0
  49   1                      TH0=0;     //设定初值
  50   1                      TL0=0;
  51   1                      TR0=1;     //开始定时
  52   1                      while(1);  
  53   1               }
  54          
  55          
C51 COMPILER V7.06   ELECTRIC                                                              05/18/2009 02:01:18 PAGE 2   

  56          void Timer0_int() interrupt 1        //定时器0中断方式
  57          {
  58   1       
  59   1              switch(keyscan())  //判断按键
  60   1                {
  61   2                   case 0x7e:  TH0=64021/256;  TL0=64021%256; break; 
  62   2                   case 0x7d:  TH0=64103/256;  TL0=64103%256; break; 
  63   2                   case 0x7b:  TH0=64260/256;  TL0=64260%256; break; 
  64   2                   case 0x77:  TH0=64400/256;  TL0=64400%256; break; 
  65   2                   case 0xbe:  TH0=64522/256;  TL0=64522%256; break; 
  66   2                   case 0xbd:  TH0=64620/256;  TL0=64620%256; break; 
  67   2                   case 0xbb:  TH0=64684/256;  TL0=64684%256; break; 
  68   2                   case 0xb7:  TH0=64777/256;  TL0=64777%256; break; 
  69   2                   case 0xde:  TH0=64840/256;  TL0=64840%256; break;
  70   2                   case 0xdd:  TH0=64898/256;  TL0=64898%256; break; 
  71   2                   case 0xdb:  TH0=64968/256;  TL0=64968%256; break; 
  72   2                   case 0xd7:  TH0=65030/256;  TL0=65030%256; break; 
  73   2                   case 0xee:  TH0=65078/256;  TL0=65078%256; break; 
  74   2                   case 0xed:  TH0=65110/256;  TL0=65110%256; break; 
  75   2                   case 0xeb:  TH0=65157/256;  TL0=65157%256; break; 
  76   2                   case 0xe7:  TH0=65178/256;  TL0=65178%256; break;
  77   2                               default:       ET0=0; speaker=0;
  78   2              }
  79   1          speaker=!speaker;
  80   1        
  81   1      }
  82                          


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