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

📄 key.lst

📁 我改了一部分别人的USB,原来的不方便看逻辑
💻 LST
字号:
C51 COMPILER V7.20   KEY                                                                   09/11/2008 22:15:08 PAGE 1   


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

line level    source

   1          #include"key.h"
   2          #include"mytype.h"
   3           
   4          volatile uint8 idata KeyCurrent,KeyOld,KeyNoChangedTime;
   5          volatile uint8 idata KeyPress;
   6          volatile uint8 idata KeyDown,KeyUp,KeyLast;
   7          volatile uint8 KeyCanChange;
   8          
   9          
  10          
  11          
  12          /********************************************************************
  13          函数功能:定时器0初始化,用来做键盘扫描,定时时间大约为5ms。
  14          入口参数:无。
  15          返    回:无。
  16          备    注:无。
  17          ********************************************************************/
  18          void InitTimer0(void)
  19          {
  20   1       TMOD&=0xF0;
  21   1       TMOD|=0x01;
  22   1       TH0=0xDC;
  23   1       ET0=1;
  24   1       TR0=1;
  25   1      }
  26          /*******************************************************************/
  27          
  28          
  29          /********************************************************************
  30          函数功能:键盘初始化
  31          入口参数:无。
  32          返    回:无。
  33          备    注:无。
  34          ********************************************************************/
  35          void InitKeyboard(void)
  36          {
  37   1       KeyIO=0xFF;      //键盘对应的口设置为输入状态
  38   1       KeyPress=0;          //无按键按下
  39   1       KeyNoChangedTime=0;
  40   1       KeyOld=0;
  41   1       KeyCurrent=0;
  42   1       KeyLast=0;
  43   1       KeyDown=0;
  44   1       KeyUp=0;
  45   1       InitTimer0();            //初始化定时器
  46   1       KeyCanChange=1;          //允许键值改变
  47   1      }
  48          /*******************************************************************/
  49          
  50          /********************************************************************
  51          函数功能:定时器0中断处理。
  52          入口参数:22.1184M晶体约5ms中断一次。
  53          返    回:无。
  54          备    注:无。
  55          ********************************************************************/
C51 COMPILER V7.20   KEY                                                                   09/11/2008 22:15:08 PAGE 2   

  56          void Timer0Isr(void) interrupt 1
  57          { 
  58   1       TH0=(65536-Fclk/1000/12*5+15)/256;      //定时器0重装
  59   1       TL0=(65536-Fclk/1000/12*5+15)%256;
  60   1      
  61   1       if(!KeyCanChange)return;     //如果正在处理按键,则不再扫描键盘 
  62   1      
  63   1       //开始键盘扫描
  64   1       //保存按键状态到当前按键情况
  65   1       //KeyCurrent总共有8个bit
  66   1       //当某个开关按下时,对应的bit为1
  67   1            
  68   1       KeyCurrent=~KeyIO;    
  69   1      
  70   1       if(KeyCurrent!=KeyOld)  //说明按键情况发生了改变
  71   1        {
  72   2         KeyNoChangedTime=0;       //键盘按下时间为0
  73   2         KeyOld=KeyCurrent;        //保存当前按键情况
  74   2         return;
  75   2        }
  76   1       else
  77   1        {
  78   2         KeyNoChangedTime++;       //按下时间累计
  79   2         if(KeyNoChangedTime>=1)       //如果按下时间足够
  80   2          {
  81   3               KeyNoChangedTime=1;
  82   3               KeyPress=KeyOld;      //保存按键
  83   3               KeyDown|=(~KeyLast)&(KeyPress); //求出新按下的键
  84   3               KeyUp|=KeyLast&(~KeyPress);     //求出新释放的键
  85   3               KeyLast=KeyPress;                       //保存当前按键情况
  86   3              }
  87   2        }
  88   1      }
  89          /*******************************************************************/


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