📄 4io_10key.lst
字号:
C51 COMPILER V8.12 4IO_10KEY 05/24/2008 17:53:04 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 4IO_10KEY
OBJECT MODULE PLACED IN 4io_10key.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 4io_10key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************
2 * *
3 * 4个IO接10个按键 *
4 * *
5 ***************************************/
6 #include <reg51.h>
7 #include <intrins.h>
8
9 #define uchar unsigned char
10 #define uint unsigned int
11 #define ulong unsigned long
12
13 sbit KeyPort0 =P2^0;
14 sbit KeyPort1 =P2^1;
15 sbit KeyPort2 =P2^2;
16 sbit KeyPort3 =P2^3;
17
18 sbit LED1=P1^0;
19 sbit LED2=P1^1;
20 sbit LED3=P1^2;
21 sbit LED4=P1^3;
22 sbit LED5=P1^4;
23 sbit LED6=P1^5;
24 sbit LED7=P1^6;
25 sbit LED8=P1^7;
26 //-------------------------------------------------------------------------------
27 unsigned char KeyScan()
28 {
29 1 uchar _keyvalue;
30 1 P2 |= 0xff;
31 1 _keyvalue=0;
32 1
33 1 if( !KeyPort0 )
34 1 _keyvalue = 1;
35 1 else if( !KeyPort1 )
36 1 _keyvalue = 2;
37 1 else if( !KeyPort2 )
38 1 _keyvalue = 3;
39 1 else if( !KeyPort3 )
40 1 _keyvalue = 4;
41 1 else
42 1 {
43 2 KeyPort0 =0;
44 2 if( !KeyPort1 )
45 2 _keyvalue = 5;
46 2 else if( !KeyPort2 )
47 2 _keyvalue = 6;
48 2 else if( !KeyPort3 )
49 2 _keyvalue = 7;
50 2 else
51 2 {
52 3 KeyPort1 =0;
53 3 if( !KeyPort2 )
54 3 _keyvalue = 8;
55 3 else if( !KeyPort3 )
C51 COMPILER V8.12 4IO_10KEY 05/24/2008 17:53:04 PAGE 2
56 3 _keyvalue = 9;
57 3 else
58 3 {
59 4 KeyPort2 =0;
60 4 if( !KeyPort3 )
61 4 _keyvalue = 10;
62 4 }
63 3 }
64 2 }
65 1 return _keyvalue;
66 1 }
67 //-------------------------------------------------------------------------------
68 void main ()
69 {
70 1 while(1)
71 1 {
72 2 switch(KeyScan())
73 2 {
74 3 case 1: P1=0x01; break;//key1 00
75 3 case 2: P1=0x02; break;//key2 01
76 3 case 3: P1=0x04; break;//key3 02
77 3 case 4: P1=0x08; break;//key4 03
78 3 case 5: P1=0x10; break;//key5 04
79 3 case 6: P1=0x20; break;//key6 05
80 3 case 7: P1=0x40; break;//key7 06
81 3 case 8: P1=0x80; break;//key8 07
82 3 default: break;
83 3 }
84 2 }
85 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 167 ----
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -