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

📄 keyboard.lst

📁 LCD及键盘、RS232通信控制源代码、采用keil c51环境编译
💻 LST
字号:
C51 COMPILER V6.14  KEYBOARD                                                               07/15/2005 09:38:50 PAGE 1   


C51 COMPILER V6.14, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN .\Keyboard.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\Keyboard.C DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************************************************************************
   2          *                                                                                *
   3          *	FileName:	Keyboard.c                                                       *
   4          *	Function:	keyboard scaner                                                  *
   5          *	SystemName:	NDS18000-BSC                                                     *
   6          *	CPU:		ATMEL AT89C52                                                    *
   7          *	Startup:	14/Oct/2002                                                      *
   8          *	Author:		XuYiBo                                                           *
   9          *                                                                                *
  10          *********************************************************************************/
  11          #include <AT89X52.H>
  12          #include <intrins.h>
  13          
  14          #include "NDSBSCUI.H"
  15          #include "Keyboard.h"
  16          #include "General.h"
  17          
  18          unsigned char data ucKeyHold;			//
  19          unsigned char data ucKeyBuffer[KEYBUFFER_LEN];
  20          unsigned char data *ucKeyHead;
  21          unsigned char data *ucKeyTail;
  22          
  23          
  24          ///////////////////////////////////////////////////////////////////////////////
  25          ///////////////////////////////////////////////////////////////////////////////
  26          
  27          /******************************************************************************
  28          *                                                                             *
  29          *	Initialize Keyboard scan function                                         *
  30          *                                                                             *
  31          ******************************************************************************/
  32          void InitKeyboard(void)
  33          {
  34   1      	ucKeyHold	= HOLD_VALUE;
  35   1      	ucKeyHead	= ucKeyBuffer;
  36   1      	ucKeyTail	= ucKeyBuffer;
  37   1      }
  38          
  39          /******************************************************************************
  40          *                                                                             *
  41          *	If KeyBuffer is empty,retnrn 0                                            *
  42          *	else return 1                                                             *
  43          *                                                                             *
  44          ******************************************************************************/
  45          
  46          unsigned char IsKeyBUfEmpty(void)
  47          {
  48   1      	if( ucKeyHead != ucKeyTail)
  49   1      		return 1;
  50   1      	else
  51   1      		return 0;
  52   1      }
  53          
  54          /******************************************************************************
  55          *                                                                             *
C51 COMPILER V6.14  KEYBOARD                                                               07/15/2005 09:38:50 PAGE 2   

  56          *	Get a key from KeyBuffer                                                  *
  57          *                                                                             *
  58          ******************************************************************************/
  59          unsigned char GetKey(void)
  60          {
  61   1      unsigned char ucTmpKey;
  62   1      	ucTmpKey = *(ucKeyHead++);
  63   1      	if( ucKeyHead == ucKeyBuffer+KEYBUFFER_LEN )
  64   1      	{
  65   2      		ucKeyHead = ucKeyBuffer;
  66   2      	}
  67   1      	return ucTmpKey;
  68   1      }
  69          
  70          /******************************************************************************
  71          *                                                                             *
  72          *	Timer0,Keyboard scan                                                      *
  73          *                                                                             *
  74          ******************************************************************************/
  75          void timer0 ( ) interrupt TIMER0INT using 1
  76          {
  77   1      unsigned char ucTmpKey1;
  78   1      unsigned char ucTmpKey2;
  79   1      	if( --ucKeyHold == 0 )
  80   1      	{
  81   2      		KEYBOARDPORT=0xf0;
  82   2      		DelayCycle(0x08);
  83   2      		ucTmpKey1 = KEYBOARDPORT;		//high 4Bit
  84   2      		if( ucTmpKey1 != 0xf0)
  85   2      		{//Key down
  86   3      			KEYBOARDPORT=0x0f;
  87   3      			DelayCycle(0x08);
  88   3      			ucTmpKey2 = KEYBOARDPORT;	//low 4Bit
  89   3      			if( ucTmpKey2 != 0x0f)
  90   3      			{//Key Down
  91   4      				switch(ucTmpKey1)
  92   4      				{
  93   5      				case 0xe0:	//Key4
  94   5      					switch(ucTmpKey2)
  95   5      					{
  96   6      					case 0x0e:	//Key0
  97   6      						*(ucKeyTail++) = Key_1;
  98   6      						break;
  99   6      					case 0x0d:	//Key1
 100   6      						*(ucKeyTail++) = Key_5;
 101   6      						break;
 102   6      					case 0x0b:	//Key2
 103   6      						*(ucKeyTail++) = Key_9;
 104   6      						break;
 105   6      					case 0x07:	//Key3
 106   6      						*(ucKeyTail++) = Key_F3;
 107   6      						break;
 108   6      					default:
 109   6      						break;
 110   6      					}
 111   5      					break;
 112   5      				case 0xd0:	//Key5
 113   5      					switch(ucTmpKey2)
 114   5      					{
 115   6      					case 0x0e:
 116   6      						*(ucKeyTail++) = Key_2;
 117   6      						break;
C51 COMPILER V6.14  KEYBOARD                                                               07/15/2005 09:38:50 PAGE 3   

 118   6      					case 0x0d:
 119   6      						*(ucKeyTail++) = Key_6;
 120   6      						break;
 121   6      					case 0x0b:
 122   6      						*(ucKeyTail++) = Key_0;
 123   6      						break;
 124   6      					case 0x07:
 125   6      						*(ucKeyTail++) = Key_F4;
 126   6      						break;
 127   6      					default:
 128   6      						break;
 129   6      					}
 130   5      					break;
 131   5      				case 0xb0:	//Key6
 132   5      					switch(ucTmpKey2)
 133   5      					{
 134   6      					case 0x0e:
 135   6      						*(ucKeyTail++) = Key_3;
 136   6      						break;
 137   6      					case 0x0d:
 138   6      						*(ucKeyTail++) = Key_7;
 139   6      						break;
 140   6      					case 0x0b:
 141   6      						*(ucKeyTail++) = Key_F1;
 142   6      						break;
 143   6      					case 0x07:
 144   6      						*(ucKeyTail++) = Key_F5;
 145   6      						break;
 146   6      					default:
 147   6      						break;
 148   6      					}
 149   5      					break;
 150   5      				case 0x70:	//Key7
 151   5      					switch(ucTmpKey2)
 152   5      					{
 153   6      					case 0x0e:
 154   6      						*(ucKeyTail++) = Key_4;
 155   6      						break;
 156   6      					case 0x0d:
 157   6      						*(ucKeyTail++) = Key_8;
 158   6      						break;
 159   6      					case 0x0b:
 160   6      						*(ucKeyTail++) = Key_F2;
 161   6      						break;
 162   6      					case 0x07:
 163   6      						*(ucKeyTail++) = Key_Enter;
 164   6      						break;
 165   6      					default:
 166   6      						break;
 167   6      					}
 168   5      					break;
 169   5      				default:
 170   5      					break;
 171   5      				}
 172   4      				if( ucKeyTail == ucKeyBuffer+KEYBUFFER_LEN )
 173   4      				{
 174   5      					ucKeyTail = ucKeyBuffer;
 175   5      				}
 176   4      				ucKeyHold	= HOLD_VALUE;
 177   4      			}
 178   3      			else
 179   3      			{
C51 COMPILER V6.14  KEYBOARD                                                               07/15/2005 09:38:50 PAGE 4   

 180   4      				ucKeyHold	= 1;
 181   4      			}
 182   3      		}
 183   2      		else
 184   2      		{//
 185   3      			ucKeyHold	= 1;
 186   3      		}
 187   2      	}
 188   1      }


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