📄 keyboard.lst
字号:
C51 COMPILER V8.08 KEYBOARD 06/01/2008 17:26:14 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: D:\Program Files\keilc\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include<reg51.h>
3
4 typedef unsigned char uchar;
5
6 sbit vclk = P1^0;
7 sbit qh = P1^1;
8 sbit sl = P1^2;
9
10 bit flag;
11
12 void delay(uchar count)
13 {
14 1 int i,j;
15 1 for(j = count ; j ; j --)
16 1 for(i = 125 ; i; i --);
17 1 }
18
19 void out_164(uchar set)
20 {
21 1 SBUF = set;
22 1 while(!TI);
23 1 TI = 0;
24 1 }
25
26 uchar in_165()
27 {
28 1 uchar i,result;
29 1 sl = 0;
30 1 sl = 1;
31 1 for(i = 8; i; i --)
32 1 {
33 2 result <<= 1;
34 2 vclk = 0;
35 2 if(qh == 1)
36 2 result = result | 0x01;
37 2 else
38 2 result = result & 0xfe;
39 2 vclk = 1;
40 2 }
41 1 return result;
42 1 }
43
44 void init()
45 {
46 1 SCON = 0x00;
47 1 TI = 0;
48 1 out_164(0x00);
49 1 vclk = 0;
50 1 }
51
52
53 void main()
54 {
55 1
C51 COMPILER V8.08 KEYBOARD 06/01/2008 17:26:14 PAGE 2
56 1 init();
57 1 do
58 1 {
59 2 while(in_165() == 0xff);
60 2 delay(10);
61 2 if(in_165() != 0xff)
62 2 flag = 0;
63 2 else
64 2 flag = 1;
65 2 }while(flag);
66 1
67 1 out_164(0x07);
68 1 if(in_165() == 0xf7)
69 1 {
70 2 P2 = 0x02;
71 2 }
72 1 if(in_165() == 0xfb)
73 1 {
74 2 P2 = 0x11;
75 2 }
76 1 //后边还可以检查其他按钮;;
77 1
78 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 130 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -