?? key.lst
字號(hào):
C51 COMPILER V7.50 KEY 04/16/2007 15:22:48 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\Obj\Key.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\Driver\Io\Key.c LARGE OPTIMIZE(2,SPEED) BROWSE MODP2 PRINT(.\Obj\Key.
-lst) OBJECT(.\Obj\Key.obj)
line level source
1 /*------------------------------------------------------------------
2 * CopyRight (C) 2005,江蘇盛唐電子產(chǎn)品有限公司
3 * All Rights Reserved.
4 *
5 * 文件名稱:Key.c
6 * 文件標(biāo)識(shí):
7 * 摘 要:板載按鍵功能函數(shù)
8 *
9 * 當(dāng)前版本:1.0
10 * 作 者:熊剛
11 * 完成日期:2005年10月7日
12 *
13 * 取代版本:
14 * 原作者 :
15 * 完成日期:
16 --------------------------------------------------------------------*/
17
18 //實(shí)現(xiàn)鍵盤按鍵的讀取.
19
20
21 /*文件名:Key.c
22 作者: 熊剛
23 時(shí)間: 2006-08-02
24 */
25
26 #include "..\inc\includes.h"
27
28 #ifdef IBMPC_SYSTEM
#else
31 sbit KEY1Pin = P3^4;
32 sbit KEY2Pin = P3^5;
33 #endif
34
35 #define c_LowLevel 0
36 #define c_HighLevel 1
37 /**************************************************
38 功能介紹:實(shí)現(xiàn)檢查是否有鍵按下.
39 入口參數(shù): 無
40 出口參數(shù): 1表示有鍵按下,0表示無鍵按下。
41 備注:
42 ***************************************************/
43 bool KbHit(void)
44 {
45 1 bool bK1Press;
46 1 bool bK2Press;
47 1
48 1
49 1 KEY1Pin = 1;
50 1 KEY2Pin = 1;
51 1 bK1Press = false;
52 1 bK2Press = false;
53 1
54 1 if(KEY1Pin == 0)
C51 COMPILER V7.50 KEY 04/16/2007 15:22:48 PAGE 2
55 1 {
56 2 bK1Press = true;
57 2 }
58 1 if(KEY2Pin == 0)
59 1 {
60 2 bK2Press = true;
61 2 }
62 1
63 1 return (bK1Press || bK2Press);
64 1
65 1 }
66
67 static uchar GetKeyScanCode(void)
68 {
69 1 uchar ucScanCode;
70 1
71 1 KEY1Pin = 1;
72 1 KEY2Pin = 1;
73 1
74 1 ucScanCode = 0;
75 1
76 1 if(KEY1Pin == 0)
77 1 {
78 2 ucScanCode |= K1_SCANCODE;
79 2 }
80 1
81 1 if(KEY2Pin == 0)
82 1 {
83 2 ucScanCode |= K2_SCANCODE;
84 2 }
85 1 return ucScanCode;
86 1 }
87
88 /**************************************************
89 功能介紹:讀取按鍵掃描碼.
90 入口參數(shù): 無
91 出口參數(shù): 鍵盤按鍵的掃描碼。
92 備注:
93 ***************************************************/
94 uchar KbGet(void)
95 {
96 1 uchar ucKeyTemp;
97 1
98 1 if(KbHit()==0) //無鍵按下時(shí),
99 1 {
100 2 return( c_KeyScan_ErrCode); //直接返回
101 2 }
102 1 else
103 1 {
104 2 ucKeyTemp = GetKeyScanCode();
105 2 Delay_10MS(1);
106 2 // BeepShort(); //響應(yīng)按鍵
107 2 // delay(10); //延時(shí)10ms去抖動(dòng)。
108 2 }
109 1
110 1 if (ucKeyTemp != GetKeyScanCode()) //再次檢測(cè)按鍵情況
111 1 {
112 2 return( c_KeyScan_ErrCode); //與前次檢測(cè)值不相符時(shí),是抖動(dòng)時(shí),返回。
113 2 }
114 1
115 1 // while(KbHit()) ; //等待按鍵釋放。
116 1
C51 COMPILER V7.50 KEY 04/16/2007 15:22:48 PAGE 3
117 1 return (ucKeyTemp); //返回鍵碼。
118 1 }
119
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 147 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 4
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 + -