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

📄 panel.lst

📁 51单片机最小系统用的C语言程序
💻 LST
字号:
C51 COMPILER V7.50   PANEL                                                                 07/18/2008 09:56:23 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE PANEL
OBJECT MODULE PLACED IN panel.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL7.50\C51\BIN\C51.EXE panel.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************
   2                  PANEL.C
   3                  按键与显示子程序
   4                  Copyright (c) 2007.09.11
   5                  All rights reserved.
   6          ******************************************************************************/
   7          #define panel_c
   8          #include "main.h"
   9          
  10          /******************************************************************************
  11          函数名称:KeyScan()
  12          函数功能:键盘扫描子程序
  13          注意事项:
  14          提示说明:
  15          输    入:无
  16          返    回:无
  17          ******************************************************************************/
  18          void KeyScan()
  19          {
  20   1              unsigned char i,j,k;
  21   1              unsigned int m; 
  22   1      //              portd|=0xf0;                            //高4位为输入
  23   1      //        portc|=0x07;
  24   1      //              portc&=0xfe;                            //读下行
  25   1                      i=0x05;while(i--){;}            //8+3*(i-1)延时20
  26   1      //              j=(portd^0xf0)&0xf0;
  27   1              j=j>>4;
  28   1              
  29   1      //        portc|=0x07;
  30   1      //              portc&=0xfd;                            //读中行
  31   1                      i=0x05;while(i--){;}
  32   1      //              j+=((portd^0xf0)&0xf0);
  33   1      
  34   1      //        portc|=0x07;
  35   1      //              portc&=0xfb;                            //读上行
  36   1                      i=0x05;while(i--){;}    
  37   1      //              k=((portd^0xf0)&0xf0);
  38   1              k=k>>4;
  39   1      //        portc|=0x07;
  40   1      
  41   1                      //以下是去抖动                          j\k分别为key1、key2的BUF
  42   1                      if(j|k)                                 //有键
  43   1                      {       
  44   2                              if(key_Cnt>=0x08)               //采样到8次都为高电平
  45   2                              {
  46   3                                      key.halfkey[0]=j;                       //则赋当前值
  47   3                                      key.halfkey[1]=k;
  48   3                                      key_Cnt=0x00;
  49   3                              }
  50   2                              else                                    //没采样到8次
  51   2                              {
  52   3                                      key_Cnt++;
  53   3                                      key.allkey=lastkey.allkey;
  54   3                              }
  55   2                      }                       
C51 COMPILER V7.50   PANEL                                                                 07/18/2008 09:56:23 PAGE 2   

  56   1                      else                                            //没键
  57   1                      {                       
  58   2                              key.allkey=0x0000;
  59   2                              key_Cnt=0x00;
  60   2                      }
  61   1                              m=key.allkey;                           //以下是键后处理,键前沿检出
  62   1                              key.allkey=key.allkey&(lastkey.allkey^key.allkey);
  63   1                              lastkey.allkey=m;
  64   1      }
  65          /******************************************************************************
  66          函数名称:display()
  67          函数功能:
  68          注意事项:
  69          提示说明:
  70          输    入:无
  71          返    回:无
  72          ******************************************************************************/
  73          void Display(void)
  74          {
  75   1          uchar i;
  76   1          i=Bit_Select&0x03;
  77   1          porta=0xff;
  78   1      //    portc=portc|0xf0;
  79   1          if(i&0x02)
  80   1          {
  81   2              if(i&0x01)
  82   2              {
  83   3                  porta=LED8[((dsbuf[1]&0x0f)+0x10)];
  84   3                  if(dspoint&0x80)
  85   3                  {
  86   4                      if(Bit_Select&0x80){porta=0xff;}
  87   4                  }
  88   3                  if(dspoint&0x08){porta&=0x7f;}
  89   3      //            portc&=0x7f;
  90   3              }
  91   2              else
  92   2              {
  93   3                  porta=LED8[((dsbuf[1]>>4)&0x0f)+0x20];
  94   3                  if(dspoint&0x40)
  95   3                  {
  96   4                      if(Bit_Select&0x80){porta=0xff;}
  97   4                  }
  98   3                  if(dspoint&0x04){porta&=0xfe;}
  99   3      //            portc&=0xbf;
 100   3              }
 101   2          }
 102   1          else
 103   1          {
 104   2              if(i&0x01)
 105   2              {
 106   3                  porta=LED8[(dsbuf[0]&0x0f)+0x10];
 107   3                  if(dspoint&0x20)
 108   3                  {
 109   4                      if(Bit_Select&0x80){porta=0xff;}
 110   4                  }
 111   3                  if(dspoint&0x02){porta&=0x7f;}
 112   3      //            portc&=0xdf;
 113   3              }
 114   2              else
 115   2              {
 116   3                  porta=LED8[(dsbuf[0]>>4)&0x0f];
 117   3                  if(dspoint&0x10)
C51 COMPILER V7.50   PANEL                                                                 07/18/2008 09:56:23 PAGE 3   

 118   3                  {
 119   4                      if(Bit_Select&0x80){porta=0xff;}
 120   4                  }
 121   3                  if(dspoint&0x01){porta&=0xef;}
 122   3      //            portc&=0xef;
 123   3              }
 124   2          }
 125   1          Bit_Select++;
 126   1      }
 127          
 128          
 129          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    243    ----
   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 + -