?? keyboard.lst
字號:
C51 COMPILER V8.02 KEYBOARD 07/27/2007 22:23:38 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include"timer.h"
3 #include"keyboard.h"
4
5
6 bit FLAG0;
7
8 unsigned char ptr,m;
9 extern unsigned char dispcode[6];
10 //----------------------------------------------------------------------------------
11 //鍵盤碼數(shù)組
12 unsigned char tab[16]= {0x01,0x02,0x03,0x04,
13 0x05,0x06,0x07,0x08,
14 0x09,0x0a,0x0b,0x0c,
15 0x0d,0x0e,0x0f,0x10
16 };
17
18
19 /*-----------------------------------------------------------------------------------
20 功能:鍵盤掃描程序
21 名稱:Scan_Key
22 輸入:無
23 輸出:無
24 返回:無
25 -------------------------------------------------------------------------------------*/
26 void Scan_Key(void)
27 {
28 1 char a1,i;
29 1
30 1 FLAG0=0;
31 1
32 1 a1=0xf7; //列掃描初值
33 1
34 1 ptr=0;
35 1
36 1 for(i=0;i<4;i++) //鍵盤4個掃描列
37 1 {
38 2 P1=a1;
39 2 Delay(10);
40 2 m=P1;
41 2 switch( m & 0xf0 ) //取行的高4位,偵測那一行被按
42 2 {
43 3 case 0x70:
44 3 ptr=i*4; //第一行被按否? 如有則是tab[i*4]鍵
45 3 FLAG0=1; //表示有按鍵
46 3 break;
47 3 case 0xb0:
48 3 ptr=i*4+1; //第二行被按否? 如有則是tab[i*4+1]鍵
49 3 FLAG0=1;
50 3 break;
51 3 case 0xd0:
52 3 ptr=i*4+2; //第三行被按否? 如有則是tab[i*4+2]鍵
53 3 FLAG0=1;
54 3 break;
55 3 case 0xe0:
C51 COMPILER V8.02 KEYBOARD 07/27/2007 22:23:38 PAGE 2
56 3 ptr=i*4+3; //第四行被按否?如有則是tab[i*4+3]鍵
57 3 FLAG0=1;
58 3 break;
59 3 default:
60 3 break;
61 3 }
62 2
63 2 if( FLAG0 )
64 2 {
65 3 //----------------------------------------------------------------------------------
66 3 ////將鍵盤編碼轉(zhuǎn)換成顯示編碼
67 3 dispcode[0]=tab[ptr] % 10; //個數(shù)
68 3 dispcode[1]=tab[ptr] / 10; //十?dāng)?shù)
69 3 BEEP(200);
70 3 break; //有按鍵,則退出掃描
71 3 }
72 2
73 2 a1=a1>>1 | 0x80; //高位補1,由于P1.7~4末接+5V,而是由指令加載高電平
74 2
75 2
76 2 }
77 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 134 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 2
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -