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

📄 key.lst

📁 STC89C52单片机平台上实现用外线通讯并能与PC实现USB的通讯
💻 LST
字号:
C51 COMPILER V6.12  KEY                                                                    09/21/2007 12:44:30 PAGE 1   


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

stmt level    source

   1          /******************************************************************
   2             本程序只供学习使用,未经作者许可,不得用于其它任何用途
   3                我的邮箱:computer-lov@tom.com
   4                  欢迎访问我的blog:  http://computer00.21ic.org
   5          
   6          KEY.C  file
   7          
   8          作者:Computer-lov
   9          建立日期: 2007.03.20
  10          修改日期: 2007.03.22
  11          版本:V1.1
  12          版权所有,盗版必究。
  13          Copyright(C) Computer-lov 2007-2017
  14          All rights reserved            
  15          *******************************************************************/
  16          
  17          
  18          #include "Key.h"
  19          #include "my_type.h"
  20          
  21          uint16 idata KeyMapCurrent,KeyMapOld,KeyMapOk,KeyNoChangedTime;
  22          uint8 KeyMapCanChange;
  23          
  24          #define KeyIO P1
  25          
  26          /*************************定时器0初始化***************************************/
  27          void InitTimer0(void)
  28          {
  29   1       TMOD&=0xF0;
  30   1       TMOD|=0x01;
  31   1       TH0=0xDC;
  32   1       ET0=1;
  33   1       TR0=1;
  34   1      }
  35          /******************************************************************************/
  36          
  37          /*************************定时器0中断处理***************************************/
  38          void Timer0Isr(void) interrupt 1
  39          { 
  40   1       uint8 temp;
  41   1       TH0=0xDC;	 //定时器0重装
  42   1       KeyIO=0x0F;
  43   1       if((KeyIO&0x0F)==0x0F)  //如果现在没有按键按下
  44   1        {
  45   2         KeyMapCurrent=0;   //没有键按下
  46   2        }
  47   1       else
  48   1        {
  49   2         //开始键盘扫描
  50   2      
  51   2         //扫描第一行
  52   2         KeyIO=~0x10;
  53   2      
  54   2         //保存四个开关状态	
  55   2         temp=KeyIO&0x0F;
C51 COMPILER V6.12  KEY                                                                    09/21/2007 12:44:30 PAGE 2   

  56   2      
  57   2         //扫描第二行	  
  58   2         KeyIO=~0x20;
  59   2      
  60   2         //保存四个开关状态		  
  61   2         temp|=KeyIO<<4;
  62   2      
  63   2         //保存按键状态到当前按键情况      
  64   2         KeyMapCurrent=(~temp)&0xFF;
  65   2      
  66   2         //扫描第三行
  67   2         KeyIO=~0x40;	
  68   2      
  69   2         //保存四个开关状态 	 
  70   2         temp=KeyIO&0x0F;
  71   2      
  72   2         //扫描第四行	 
  73   2         KeyIO=~0x80;
  74   2      
  75   2         //保存四个开关状态	  
  76   2         temp|=KeyIO<<4; 
  77   2           
  78   2         //保存全部16个开关的状态
  79   2         //KeyMap总共有16个bit,当某个开关按下时,
  80   2         //对应的bit为1
  81   2         KeyMapCurrent|=(((uint16)~temp)<<8);
  82   2        }
  83   1      
  84   1       if(KeyMapCurrent!=KeyMapOld)  //说明按键情况发生了改变
  85   1        {
  86   2         KeyNoChangedTime=0;       //键盘按下时间为0
  87   2         KeyMapOld=KeyMapCurrent;  //保存当前按键情况
  88   2         return;
  89   2        }
  90   1       else
  91   1        {
  92   2         KeyNoChangedTime++;	  //按下时间累计
  93   2         if(KeyNoChangedTime>=1)	 //如果按下时间足够
  94   2          {
  95   3      	 KeyNoChangedTime=1;
  96   3      	 if(KeyMapCanChange)
  97   3      	  {
  98   4      	   KeyMapOk=KeyMapOld;  //保存按键
  99   4      	  }
 100   3      	}
 101   2        }
 102   1      }
 103          /******************************************************************************/


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