?? key.lst
字號(hào):
C51 COMPILER V8.02 KEY 03/10/2008 17:48:48 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 // File Name: key.c
2 // Header: 得到鍵盤的鍵碼并將鍵碼顯示
3 // Author: Wang Xiaorong
4 // Date: 20070409
5
6 #define GO_OUT 10
7 unsigned char xdata KEYOUT _at_ 0xdfff;
8 unsigned char xdata KEYIN _at_ 0xefff;
9 unsigned char xdata LEDSEG _at_ 0x7fff;
10 unsigned char xdata LEDBIT _at_ 0xbfff;
11 unsigned char code KEYMAP[] =
12 {0X00,0,6,0X00,12,0X00,0X00,0X00,18};
13 unsigned char code LEDMAP[] =
14 {
15 0x3f, 0x06, 0x5b, 0x4f, 0x66,
16 0x6d, 0x7d, 0x07, 0x7f, 0x6f,0x00
17 };
18 unsigned char LEDBuf[6];
19 delay1ms()
20 {
21 1 unsigned char i;
22 1 for(i = 250; i > 0; i--);
23 1 for(i = 247; i > 0; i--);
24 1 }
25 display()
26 {
27 1 unsigned char i;
28 1 unsigned char outbit;
29 1 outbit = 0x01; // 從右邊開始顯示
30 1 for (i = 0; i < 6; i++)
31 1 {
32 2 LEDBIT = 0x00; // 關(guān)所有LED
33 2 LEDSEG = LEDMAP[LEDBuf[i]];
34 2 LEDBIT = outbit;
35 2 delay1ms();
36 2 outbit <<= 1; // 顯示下一位
37 2 }
38 1 }
39 unsigned char testKey()
40 {
41 1 KEYOUT = 0x00;
42 1 return(~KEYIN & 0x0f);
43 1 }
44 unsigned char getKey()
45 {
46 1 unsigned char outkey;
47 1 unsigned char inkey;
48 1 unsigned char i;
49 1 unsigned char keyNO;
50 1 while(1)
51 1 {
52 2 if(testKey())
53 2 {
54 3 display();
55 3 display();
C51 COMPILER V8.02 KEY 03/10/2008 17:48:48 PAGE 2
56 3 if(testKey())
57 3 {
58 4 outkey = 0x01;
59 4 for(i = 0;i < 6;i++)
60 4 {
61 5 KEYOUT = ~outkey;
62 5 outkey <<=1;
63 5 inkey = ~KEYIN & 0x0f;
64 5 if(inkey)
65 5 {
66 6 keyNO = i + KEYMAP[inkey];
67 6 break;
68 6 }
69 5 }
70 4 while(testKey())
71 4 display();
72 4 return(keyNO);
73 4 }
74 3 }
75 2 else
76 2 display();
77 2 }
78 1 }
79 main()
80 {
81 1 unsigned char k;
82 1 while(1)
83 1 {
84 2 k = getKey();
85 2 LEDBuf[0] = k%10;
86 2 LEDBuf[1] = k/10;
87 2 LEDBuf[2] = GO_OUT;
88 2 LEDBuf[3] = GO_OUT;
89 2 LEDBuf[4] = GO_OUT;
90 2 LEDBuf[5] = GO_OUT;
91 2 display();
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 171 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -