📄 kbd_drv.lst
字号:
136 =1
137 =1 #define I2C_ID0 0xa0
138 =1 #define I2C_ID1 0xa1
139 =1 #define I2C_ADD 0x00
140 =1
141 =1 /*----- Volume Control Start -----*/
142 =1 #define SC7313_ADD 0x88
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 6
143 =1 #define RADIO_IN 0x5c
144 =1 #define CD_IN 0x59 //01011001
145 =1 #define TAPE_IN 0x5e
146 =1
147 =1 /*----- Touch Pad Control Define -----*/
148 =1 #define TOUCH_REQUEST 0x52
149 =1 #define TOUCH_RETURN 0x53
150 =1
151 =1 #define FWVER_REG 0x00
152 =1 #define BUTTON_REG 0x10
153 =1 #define XY_REG 0x20
154 =1 #define ANGLE_REG 0x30
155 =1 #define TPSEN_REG 0x40
156 =1 #define FWID_REG 0xf0
157 =1
158 =1 /*----- DTS system define -----*/
159 =1 #define Mem_StartAdd 0x10
160 =1 #define Mem_EndAdd 0x1f
161 =1
162 =1 #define Mem_test 0
163 =1 #define Mem_5 5
164 =1 #define Mem_10 10
165 =1 #define DTS_Mem_Size Mem_10
166 =1
167 =1 #define DTS_FreStart 878
168 =1 #define DTS_FreEnd 1080
169 =1
170 =1 #if DTS_Mem_Size == Mem_5
=1 #define Mem_Fre0 878
=1 #define Mem_Fre1 900
=1 #define Mem_Fre2 100
=1 #define Mem_Fre3 960
=1 #define Mem_Fre4 1080
=1 #endif
177 =1
178 =1 #if DTS_Mem_Size == Mem_10
179 =1 #define Mem_Fre0 878
180 =1 #define Mem_Fre1 900
181 =1 #define Mem_Fre2 940
182 =1 #define Mem_Fre3 960
183 =1 #define Mem_Fre4 980
184 =1 #define Mem_Fre5 1000
185 =1 #define Mem_Fre6 1020
186 =1 #define Mem_Fre7 1040
187 =1 #define Mem_Fre8 1060
188 =1 #define Mem_Fre9 1080
189 =1 #endif
14 #include "driver\kbd_drv.h" /* scheduler definition */
1 =1 /*H**************************************************************************
2 =1 * NAME: kbd_drv.h
3 =1 *----------------------------------------------------------------------------
4 =1 * Copyright (c) 2006 Atmel.
5 =1 *----------------------------------------------------------------------------
6 =1 * RELEASE: C51 Sample
7 =1 * REVISION: 1.00
8 =1 *----------------------------------------------------------------------------
9 =1 * PURPOSE:
10 =1 *****************************************************************************/
11 =1
12 =1 /*_____ I N C L U D E S ____________________________________________________*/
13 =1
14 =1 void kbd_init (void);
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 7
15 =1 void kbd_task (void);
16 =1 Byte kbd_decode (void);
17 =1 void dts_FerInc (void);
18 =1 void I2c_WriteByte (Byte address, Byte bByte);
19 =1
20 =1 extern data Byte gl_kbd_tick; /* keyboard tick counter */
21 =1 extern bdata bit key_flag;
22 =1 extern Byte code VOL_Step_Map[];
15
16 /*F**************************************************************************
17 * NAME: kbd_init
18 *----------------------------------------------------------------------------
19 * PARAMS:
20 *
21 * return:
22 *----------------------------------------------------------------------------
23 * PURPOSE:
24 * Keyboard initialisation function
25 *----------------------------------------------------------------------------
26 * EXAMPLE:
27 *----------------------------------------------------------------------------
28 * NOTE:
29 *----------------------------------------------------------------------------
30 * REQUIREMENTS:
31 * ram/xram:
32 * cycle:
33 * stack:
34 * code:
35 *****************************************************************************/
36 void kbd_init (void)
37 {
38 1 P1 = P1|0x1f;
39 1 }
40
41 /*F**************************************************************************
42 * NAME: kbd_decode
43 *----------------------------------------------------------------------------
44 * PARAMS:
45 *
46 * return:
47 * Decoded key pressed
48 *----------------------------------------------------------------------------
49 * PURPOSE:
50 * Decode the key that generated an IT
51 *----------------------------------------------------------------------------
52 * EXAMPLE:
53 *----------------------------------------------------------------------------
54 * NOTE:
55 *----------------------------------------------------------------------------
56 * REQUIREMENTS:
57 * ram/xram:
58 * cycle:
59 * stack:
60 * code:
61 *****************************************************************************/
62 /*读键盘键值程序段*/
63 Byte kbd_decode (void)
64 {
65 1 Byte key=0;
66 1
67 1 key = P1&0x1f;
68 1 if (key != 0x1f) { key_flag = High; return(key);}
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 8
69 1 else{
70 2 P1_0 = Low;
71 2 key = P1&0x1e;
72 2 if (key != 0x1e) { key_flag = High; return(key);}
73 2 else{
74 3 P1_0 = High;
75 3 P1_1 = Low;
76 3 key = P1&0x1d;
77 3 if (key != 0x1d) { key_flag = High; return(key);}
78 3 else{
79 4 P1_1 = High;
80 4 P1_2 = Low;
81 4 key = P1&0x1b;
82 4 if (key != 0x1b) { key_flag = High; return(key);}
83 4 else{
84 5 P1_2 = High;
85 5 P1_3 = Low;
86 5 key = P1&0x17;
87 5 if (key != 0x17) { key_flag = High; return(key);}
88 5 else{
89 6 P1_3 = High;
90 6 key_flag = Low; /* Have not key process */
91 6 return(0x00);
92 6 }
93 5 }
94 4 }
95 3 }
96 2 }
97 1 }
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION kbd_init (BEGIN)
; SOURCE LINE # 36
; SOURCE LINE # 37
; SOURCE LINE # 38
0000 43901F ORL P1,#01FH
; SOURCE LINE # 39
0003 22 RET
; FUNCTION kbd_init (END)
; FUNCTION kbd_decode (BEGIN)
; SOURCE LINE # 63
; SOURCE LINE # 64
; SOURCE LINE # 65
;---- Variable 'key' assigned to Register 'R7' ----
; SOURCE LINE # 67
0000 E590 MOV A,P1
0002 541F ANL A,#01FH
0004 FF MOV R7,A
; SOURCE LINE # 68
0005 641F XRL A,#01FH
0007 6003 JZ ?C0002
0009 D200 E SETB key_flag
000B 22 RET
000C ?C0002:
; SOURCE LINE # 69
; SOURCE LINE # 70
000C C290 CLR P1_0
; SOURCE LINE # 71
000E E590 MOV A,P1
0010 541E ANL A,#01EH
0012 FF MOV R7,A
; SOURCE LINE # 72
0013 641E XRL A,#01EH
0015 6003 JZ ?C0005
0017 D200 E SETB key_flag
0019 22 RET
001A ?C0005:
; SOURCE LINE # 73
; SOURCE LINE # 74
001A D290 SETB P1_0
; SOURCE LINE # 75
001C C291 CLR P1_1
; SOURCE LINE # 76
001E E590 MOV A,P1
0020 541D ANL A,#01DH
0022 FF MOV R7,A
; SOURCE LINE # 77
0023 641D XRL A,#01DH
0025 6003 JZ ?C0007
0027 D200 E SETB key_flag
0029 22 RET
002A ?C0007:
; SOURCE LINE # 78
; SOURCE LINE # 79
002A D291 SETB P1_1
; SOURCE LINE # 80
002C C292 CLR P1_2
; SOURCE LINE # 81
002E E590 MOV A,P1
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 10
0030 541B ANL A,#01BH
0032 FF MOV R7,A
; SOURCE LINE # 82
0033 641B XRL A,#01BH
0035 6003 JZ ?C0009
0037 D200 E SETB key_flag
0039 22 RET
003A ?C0009:
; SOURCE LINE # 83
; SOURCE LINE # 84
003A D292 SETB P1_2
; SOURCE LINE # 85
003C C293 CLR P1_3
; SOURCE LINE # 86
003E E590 MOV A,P1
0040 5417 ANL A,#017H
0042 FF MOV R7,A
; SOURCE LINE # 87
0043 6417 XRL A,#017H
0045 6003 JZ ?C0011
0047 D200 E SETB key_flag
0049 22 RET
004A ?C0011:
; SOURCE LINE # 88
; SOURCE LINE # 89
004A D293 SETB P1_3
; SOURCE LINE # 90
004C C200 E CLR key_flag
; SOURCE LINE # 91
004E 7F00 MOV R7,#00H
; SOURCE LINE # 92
; SOURCE LINE # 93
; SOURCE LINE # 94
; SOURCE LINE # 95
; SOURCE LINE # 96
; SOURCE LINE # 97
0050 ?C0003:
0050 22 RET
; FUNCTION kbd_decode (END)
C51 COMPILER V8.01 KBD_DRV 08/07/2006 11:16:10 PAGE 11
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
Uint32 . . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
Uint16 . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
P1_0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
Int32. . . . . . . . . . . . . . . . . TYPEDEF ----- LONG ----- 4
P1_1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
P1_2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1
Int16. . . . . . . . . . . . . . . . . TYPEDEF ----- INT ----- 2
P1_3 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1
Byte . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
key_flag . . . . . . . . . . . . . . . EXTERN DATA BIT ----- 1
kbd_init . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Float16. . . . . . . . . . . . . . . . TYPEDEF ----- FLOAT ----- 4
Uchar. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
kbd_decode . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
key. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 85 ----
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 + -