?? key.lst
字號(hào):
C51 COMPILER V8.05a KEY 08/01/2007 10:43:24 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE KeyBord\key.c BROWSE DEBUG OBJECTEXTEND PRINT(.\key.lst) OBJE
-CT(key.obj)
line level source
1 /******************************************************************************
2 * File Name: key.c *
3 * Create Time: 2007/07/14 *
4 * Description: *
5 * Copyright : *
6 * History : *
7 * |---Data---|---Author---|--Version--|--------------Description-------------|
8 *****************************************************************************/
9 //#define KEY_ONOFF
10 #ifdef KEY_ONOFF
/******************************
* Head File *
*****************************/
#include"key.h"
/******************************
* Global Variable *
*****************************/
int row=0; //鍵盤行數(shù)
int column=0;//鍵盤列數(shù)
uchar keybuf=0x00;//鍵盤按鈕顯示內(nèi)容中間量*/
uchar keybit = 0;//用以計(jì)數(shù)鍵盤掃描行數(shù)
/******************************
* Const Segment *
*****************************/
uchar key_row[4] = {0x0e,0x0d,0x0b,0x07};//令鍵盤1-4行依次有效
/******************************
* Function Implement *
*****************************/
/**********************************************************************************************
Function Name:按鍵顯示函數(shù) *
Target : 將按鍵相應(yīng)的數(shù)值顯示在數(shù)碼管上 *
Input Parameter : 8位的unsigned char *
Output Parameter : 無 *
Function Description : *
**********************************************************************************************/
uchar keyValue(uchar temp)
{
switch(temp&0xf0) //判斷高四位的值
{
case 0x70:column = 0x00;break; //7位
case 0xb0:column = 0x04;break; //6
case 0xd0:column = 0x08;break; //5
case 0xe0:column = 0x0c;break; //4
}
switch(temp&0x0f) //判斷第四位的值
{
case 0x0e:row = 0x00;break; //0
case 0x0d:row = 0x01;break; //1
case 0x0b:row = 0x02;break; //2
case 0x07:row = 0x03;break; //3
}
return row+column;
}
C51 COMPILER V8.05a KEY 08/01/2007 10:43:24 PAGE 2
/**********************************************************************************************
Function Name:鍵盤按下函數(shù) *
Target : 判斷鍵盤是否按下 *
Input Parameter : 無 *
Output Parameter : 1或0 *
Function Description : 用全掃描的方法判斷鍵盤是否有鍵按下,有鍵按下返回1,鍵值保存在中間量 *
temp中,沒有返回0. *
**********************************************************************************************/
uchar isKeyDown(void)
{
P2=0xf0; //將低四位置0
if((P2&0xf0)<0xf0)//判斷是否有鍵按下,即高四位不全為1即有鍵按下
{
keybuf=P2&0xf0;//保存高四位的值
P2=0x0f; //將高四位置0
keybuf|=P2&0x0f;//保存低四位的值
return 0x01;
}
return 0x00; //輸出該鍵值
}
/**********************************************************************************************
Function Name:對(duì)按下鍵的操作函數(shù) *
Target : 按下相應(yīng)鍵做相應(yīng)功能 *
Input Parameter : 無 *
Output Parameter : 無 *
Function Description : 若有鍵按下,顯示鍵碼 *
**********************************************************************************************/
void keyOperate(void)
{
if(isKeyDown()==0x01)
DisPrint(keyValue(keybuf));
}
uchar downKeyValue()
{
return keybuf;
}
/**********************************************************************************************
Function Name:定時(shí)器0中斷函數(shù) *
Target : 定時(shí)器中斷并產(chǎn)生相應(yīng)功能 *
Input Parameter : 無 *
Output Parameter : 無 *
Function Description : 間隔2.5ms產(chǎn)生一次中斷 *
**********************************************************************************************/
#endif
100
101 /*******************************************************************************
102 * The end of the entire file *
103 ******************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = ---- ----
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -