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

📄 main_t.lst

📁 利用89S51将6*6键盘转换成PS/2协议
💻 LST
字号:
C51 COMPILER V7.06   MAIN_T                                                                08/18/2008 14:23:14 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN_T
OBJECT MODULE PLACED IN main_t.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE main_t.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <head.c>
   2          bit scan_on,last_f;
   3          unsigned char data last_key;
   4          extern unsigned char data delay_count,send_delay;
   5          unsigned char bdata clu;
   6          sbit clu0=clu^0;
   7          
   8          
   9          unsigned char scankb(unsigned char row)
  10          /*
  11          键盘扫描函数,P2.7-P2.3为5条行扫描线,P2.2-P2.0为3条列输出线。每次扫描一行,该行的扫描线为0,其余为1,
  12          返回列输出线的值
  13          */
  14          {
  15   1        unsigned char data c;
  16   1        switch(row)
  17   1          {
  18   2                case 0://P0=8'b11111110;
  19   2                      P0=0xFE;
  20   2                          break;
  21   2                case 1://P0=8'b11111101;
  22   2                      P0=0xFD;
  23   2                          break;
  24   2                case 2://P0=8'b11111011;
  25   2                      P0=0xFB;
  26   2                      break;
  27   2                case 3://P0=8'b11110111;
  28   2                  P0=0xF7;
  29   2                          break;
  30   2          case 4://P0=8'b11101111;
  31   2                  P0=0xEF;
  32   2                  break;
  33   2          case 5://P0=8'b11101111;
  34   2                  P0=0xDF;
  35   2                  break;
  36   2      
  37   2            default:
  38   2                  P0=0xff;
  39   2                  break;         
  40   2              }
  41   1         c=P2&0x3f;//取P2.5-P2.0的列值
  42   1         P0=0xff;
  43   1         return c;
  44   1      }
  45          void scan(void)
  46          /*
  47          函数功能:扫描键状态,将被按键的位置号存入缓冲区中;
  48          连续扫描5行,如果列扫描线输出全为1,表明当前行没有按键按下,继续扫描下一行,否则将记下当前的列输出值,然后
             -延时一段时间(该值可以设定),
  49          再次扫描该行,如果列输出值跟第一次的不一样,则将其判为抖动,不予处理,如果相同则表明当前按键被按下,进行下
             -一步处理。
  50          从列输出线的最低位P2.0开始判断列输出线的该位是否为0,如果为1则表明其对应按键未被按下,不予处理,如果为0则

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -