📄 key.lst
字号:
C51 COMPILER V7.50 KEY 04/10/2009 16:27:31 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<C8051F020.h>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 extern void xspdelay(unsigned int x);
6 extern char key;
7 char oldkey,rekey;
8 extern uchar read_lcd(uint i);
9 extern void wlcdi(uchar i);
10 extern void wlcdd(uchar i);
11 extern uchar rlcdd(void);
12 extern void bwlcdi(uchar i);
13 extern void bwlcdd(uchar i);
14
15 extern void line(uint x,y,x1,y1,bit WR);
16
17
18
19 //-----------------------------------------------------------------------------
20 // 16-bit SFR Definitions for 'F02x
21 //-----------------------------------------------------------------------------
22
23 sfr16 DP = 0x82; // data pointer
24 sfr16 TMR3RL = 0x92; // Timer3 reload value
25 sfr16 TMR3 = 0x94; // Timer3 counter
26 sfr16 ADC0 = 0xbe; // ADC0 data
27 sfr16 ADC0GT = 0xc4; // ADC0 greater than window
28 sfr16 ADC0LT = 0xc6; // ADC0 less than window
29 sfr16 RCAP2 = 0xca; // Timer2 capture/reload
30 sfr16 T2 = 0xcc; // Timer2
31 sfr16 RCAP4 = 0xe4; // Timer4 capture/reload
32 sfr16 T4 = 0xf4; // Timer4
33 sfr16 DAC0 = 0xd2; // DAC0 data
34 sfr16 DAC1 = 0xd5; // DAC1 data
35
36 //-----------------------------------------------------------------------------
37 // Global CONSTANTS
38 //-----------------------------------------------------------------------------
39
40
41
42
43
44 //-----------------------------------------------------------------------------
45 // Function PROTOTYPES
46 //-----------------------------------------------------------------------------
47
48
49 void key_Init (void);
50 void key_PORT_Init(void);
51 uchar kbscan(void);
52 void disp_key (void);
53
54
55
C51 COMPILER V7.50 KEY 04/10/2009 16:27:31 PAGE 2
56
57 void key_PORT_Init (void)
58 {
59 1
60 1
61 1 P2MDOUT |= 0xf0;//suo doing
62 1 P3MDOUT &= 0xff;//0xbf;
63 1 P74OUT |= 0x02;//0x02
64 1 P4&=0xef;//0xeff
65 1
66 1 }
67
68
69 void key_Init(void)
70 {
71 1 key_PORT_Init();
72 1
73 1 P3IF=0x04;//0x04;
74 1 EIE2|=0x10;
75 1 P2=0xff;
76 1 P2=0x0f;
77 1 P3|=0xe0;//0xf0
78 1 }
79
80 void key_ISR (void) interrupt 18
81
82 {
83 1
84 1 int keydata;
85 1 EA=0;
86 1
87 1 P3IF&=0xbf;
88 1 keydata=kbscan();
89 1 if (keydata==0x42) key=1;
90 1 if (keydata==0x82) key=2;
91 1 if (keydata==0x41) key=3;
92 1 if (keydata==0x81) key=4;
93 1 if (keydata==0x48) key=5;
94 1 if (keydata==0x88) key=6;
95 1 if (keydata==0x44) key=7;
96 1 if (keydata==0x84) key=8;
97 1 if (keydata==0x24) key=9;
98 1 if (keydata==0x14) key=10;
99 1
100 1 if (keydata==0x28) key=11;
101 1 if (keydata==0x18) key=12;
102 1 if (keydata==0X21) key=13;
103 1 if (keydata==0x11) key=14;
104 1 if (keydata==0x22) key=15;
105 1 if (keydata==0x12) key=16;
106 1
107 1
108 1
109 1
110 1 P2=0xff;//?
111 1 P2=0x0f;//?
112 1
113 1 if (keydata==0)
114 1 {
115 2 rekey++;
116 2 if (rekey<4) P3IF|=0x40;
117 2 else rekey=0;
C51 COMPILER V7.50 KEY 04/10/2009 16:27:31 PAGE 3
118 2 }
119 1 else
120 1 rekey=0;
121 1 EA=1;
122 1 }
123
124
125
126
127 uchar kbscan(void)
128 {
129 1 uchar sccode,recode;
130 1
131 1 P2=0x0f;
132 1
133 1 xspdelay(1000);
134 1 P4|=0x20;
135 1
136 1 if((P2&0x0f)!=0x0f)
137 1 { P4|=0x20;//on spack
138 2 xspdelay(500);
139 2 if((P2&0x0f)!=0x0f)
140 2 {
141 3 sccode=0xef;
142 3 while((sccode&0x01)!=0)
143 3 {P2=sccode;
144 4 xspdelay(500);
145 4 if((P2&0x0f)!=0x0f)
146 4 {recode=(P2&0x0f)|0xf0;
147 5 xspdelay(100000);
148 5 xspdelay(100000);
149 5 P4&=0xdf;//off spack
150 5 return((~sccode)+(~recode));
151 5 }
152 4
153 4 else
154 4 sccode=(sccode<<1)|0x01;
155 4 if (sccode==0xff)sccode=0xfe;
156 4 }
157 3 }
158 2 }
159 1 P4&=0xdf;//off spack
160 1 return(0);
161 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 392 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 2
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 + -