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

📄 k1-k4-test.lst

📁 单片机中LED显示/数码管显示/键盘控制/蜂鸣器输出/中断应用/定时器和计数器/串口通信/键控看门狗/数据交换
💻 LST
字号:
C51 COMPILER V8.02   K1_K4_TEST                                                            12/14/2006 16:44:36 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE K1_K4_TEST
OBJECT MODULE PLACED IN K1-K4-TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE K1-K4-TEST.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************
   2          *                                                                  *
   3          * ME500单片机开发系统演示程序 -  按键扫描程序                      *
   4          *                                                                  *
   5          * 作者:  伟纳电子 - Freeman                                        *
   6          * 邮箱:  freeman@willar.com                                        *
   7          * 作者: gguoqing (Email: gguoqing@willar.com)                     *
   8          * 日期:  2004-1-5                                                  *
   9          *                                                                  *
  10          * 改编: gguoqing                                                  * 
  11          * 版本: V1.0 (2006/11/20)                                         *
  12          * 作者: gguoqing (Email: gguoqing@willar.com)                     *
  13          * 时间: 2006/10/15                                                *
  14          *                                                                  *
  15          *【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved  *
  16          *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!        *
  17          *                                                                  *
  18          ********************************************************************
  19          *                                                                  *
  20          * 描述:                                                            *
  21          *       按键扫描程序                                               *
  22          *       上电时, 点亮P00口和P20口的LED                              *
  23          *       按下K1时, P0口LED向右移一位                                *
  24          *       按下K2时, P0口LED向左移一位                                *
  25          *       按下K1时, P2口LED向右移一位                                *
  26          *       按下K2时, P2口LED向左移一位                                *
  27          *                                                                  *
  28          *******************************************************************/
  29          
  30          #include <reg51.h>
  31          #include <intrins.h>
  32          
  33          #define uchar unsigned char
  34          #define uint  unsigned int
  35          
  36          sbit    K1 = P1^4;
  37          sbit    K2 = P1^5;
  38          sbit    K3 = P1^6;
  39          sbit    K4 = P1^7;
  40          
  41          void delayms(uchar ms);
  42          uchar scan_key();
  43          void proc_key(uchar key_v);
  44          
  45          /*********************************************************
  46          
  47           延时子程序
  48          
  49          *********************************************************/
  50          void delayms(unsigned char ms)  
  51          {                                               
  52   1         unsigned char i;
  53   1         while(ms--)
  54   1         {
  55   2           for(i = 0; i < 120; i++);
C51 COMPILER V8.02   K1_K4_TEST                                                            12/14/2006 16:44:36 PAGE 2   

  56   2         }
  57   1      }
  58          
  59          /********************************************************
  60          
  61           扫描健盘函数
  62          
  63          ********************************************************/
  64          uchar scan_key()
  65          {
  66   1              uchar key_s;
  67   1              key_s = 0x00;
  68   1          key_s |= K4;
  69   1              key_s <<= 1;
  70   1          key_s |= K3;
  71   1              key_s <<= 1;
  72   1              key_s |= K2;
  73   1              key_s <<= 1;
  74   1              key_s |= K1;
  75   1              return key_s;           
  76   1      }
  77          
  78          /********************************************************
  79          
  80           健功能函数
  81          
  82          ********************************************************/
  83          void proc_key(uchar key_s)
  84          {
  85   1              if((key_s & 0x01) == 0)
  86   1              {
  87   2                P0 = _cror_(P0, 1);
  88   2              }
  89   1              else if((key_s & 0x02) == 0)
  90   1              {
  91   2                P0 = _crol_(P0, 1);
  92   2              }
  93   1          else if((key_s & 0x04) == 0)
  94   1          {
  95   2            P2 =  _cror_(P2, 1);
  96   2          }
  97   1          else if((key_s & 0x08) == 0)
  98   1              {
  99   2                P2 = _crol_(P2, 1);
 100   2              }
 101   1      }
 102          
 103          /*********************************************************
 104          
 105           主函数
 106          
 107          *********************************************************/
 108          main()
 109          {
 110   1          uchar key_s,key_v;
 111   1              key_v = 0x0f;
 112   1              P0 = 0xfe;
 113   1          P2 = 0xfe;
 114   1              while(1)
 115   1              {
 116   2            key_s = scan_key();
 117   2                if(key_s != key_v)
C51 COMPILER V8.02   K1_K4_TEST                                                            12/14/2006 16:44:36 PAGE 3   

 118   2                {
 119   3                      delayms(10);         //延时去抖动
 120   3                      key_s = scan_key();   //再次判健是否按下
 121   3                      if(key_s != key_v)
 122   3                      {       
 123   4                        key_v = key_s;
 124   4                        proc_key(key_s);                                      
 125   4                      }
 126   3                }
 127   2              }       
 128   1      }
 129          
 130          /********************************************************/


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