kbd_task.lst
来自「本人at89c51snd1c主控IC增加了128*32点阵驱动显示」· LST 代码 · 共 408 行 · 第 1/2 页
LST
408 行
C51 COMPILER V7.20 KBD_TASK 03/24/2007 10:02:38 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE KBD_TASK
OBJECT MODULE PLACED IN .\Output\kbd_task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE modules\kbd\kbd_task.c OPTIMIZE(7,SPEED) BROWSE INCDIR(.\modules\system;.\;
-.\;.\lib_refd) DEFINE(KEIL) DEBUG OBJECTEXTEND PRINT(.\Output\kbd_task.lst) OBJECT(.\Output\kbd_task.obj)
line level source
1 /*C**************************************************************************
2 * NAME: kbd_task.c
3 *----------------------------------------------------------------------------
4 * Copyright (c) 2003 Atmel.
5 *----------------------------------------------------------------------------
6 * RELEASE: snd1c-refd-nf-4_0_3
7 * REVISION: 1.3.2.16
8 *----------------------------------------------------------------------------
9 * PURPOSE:
10 * This file contains the keyboard task and attached routines
11 *
12 * NOTES:
13 * Global Variables:
14 * - gl_key_press: bit in bdata space
15 * - gl_key: byte in idata space
16 * - gl_kbd_tick: byte in data space
17 *****************************************************************************/
18
19 /*_____ I N C L U D E S ____________________________________________________*/
20
21 #include "config.h" /* system configuration */
22 #include "board.h" /* board definition */
23 #include "lib_mcu\kbd\kbd_drv.h" /* Keyboard driver definition */
24 #include "modules\kbd\kbd_task.h" /* Keyboard task definition */
25
26 #include "modules\file\file.h" /* file definition */
27 #include "modules\mem\mem_task.h" /* memory task definition */
28 #include "modules\display\led.h" /* led definition */
29 #include "modules\mode\mode_task.h" /* mode task definition */
30
31 #define REF_STATE_SONG 0
32 #define REF_STATE_VOICE 1
33 #define REF_STATE_USB 2
34 #define REF_STATE_FORMAT 3
35
36
37 /*_____ M A C R O S ________________________________________________________*/
38
39
40 /*_____ D E F I N I T I O N ________________________________________________*/
41
42 extern bdata bit gl_key_press; /* set to TRUE if a key is decoded */
43 extern idata Byte gl_key; /* value of the key pressed */
44 extern data Byte gl_kbd_tick; /* keypad tick counter */
45
46 extern idata Uint16 gl_act_tick; /* Activity tick */
47 extern Byte song_state; /* task state */
48 extern data Byte mode_state; /* task state */
49
50 extern xdata Byte LED_ON;
51 extern xdata Byte LED_FAST;
52
53 xdata Byte func_state;
54 xdata Byte func_timeout; /* Time out special function */
C51 COMPILER V7.20 KBD_TASK 03/24/2007 10:02:38 PAGE 2
55 xdata Byte ref_state = REF_STATE_SONG;
56 bit playing = FALSE;
57 bit pause = FALSE;
58 bit recording = FALSE;
59 bit connected = FALSE;
60 bit bargraph = FALSE;
61
62 static Byte kbd_state; /* keyboard task state */
63 Uchar BackLightPeriod=1;
64 // BackLightPeriod=1;
65 Uint16 BLCount;
66
67 Uint16 code BackLightTable[4] =
68 { 100*5,100*10,100*15,100*30
69 // EL_CONSTANT * 5,
70 //EL_CONSTANT * 10,
71 //EL_CONSTANT * 15,
72 // EL_CONSTANT * 30
73 };
74
75 void BLTurnOnAndReload(void);
76 /*_____ D E C L A R A T I O N ______________________________________________*/
77
78 void usb_task_init (void);
79
80
81 /*F**************************************************************************
82 * NAME: kbd_task_init
83 *----------------------------------------------------------------------------
84 * PARAMS:
85 *
86 * return:
87 *----------------------------------------------------------------------------
88 * PURPOSE:
89 * Keyboard task initialisation
90 *----------------------------------------------------------------------------
91 * EXAMPLE:
92 *----------------------------------------------------------------------------
93 * NOTE:
94 *----------------------------------------------------------------------------
95 * REQUIREMENTS:
96 *****************************************************************************/
97 void kbd_task_init (void)
98 {
99 1 kbd_state = KBD_IDLE;
100 1 gl_key_press = FALSE; /* no key pressed */
101 1 gl_key = NO_KEY;
102 1 kbd_init(); /* keyboard initialization */
103 1 }
104
105
106 /*F**************************************************************************
107 * NAME: ref_mode_task
108 *----------------------------------------------------------------------------
109 * PARAMS:
110 *
111 * return:
112 *----------------------------------------------------------------------------
113 * PURPOSE:
114 * Mode task
115 *----------------------------------------------------------------------------
116 * EXAMPLE:
C51 COMPILER V7.20 KBD_TASK 03/24/2007 10:02:38 PAGE 3
117 *----------------------------------------------------------------------------
118 * NOTE:
119 * STATES:
120 * MODE_BOOT boot state
121 * MODE_DOWNLOAD file download mode
122 * MODE_SONG song playing mode
123 * MODE_VOICE voice playing & recording mode
124 * MODE_TOOL tool mode
125 * MODE_IDLE idle mode (switch back to first task)
126 *----------------------------------------------------------------------------
127 * REQUIREMENTS:
128 *****************************************************************************/
129 void ref_mode_task (void)
130 {
131 1 gl_key_press = FALSE;
132 1 func_timeout = 0;
133 1 gl_act_tick = 0;
134 1 if (connected)
135 1 {
136 2 if (gl_key != KEY_FUNC) return;
137 2 connected = FALSE;
138 2 mode_state = MODE_SONG;
139 2 ENA_USB = !connected;
140 2 goto Label_init_ihm;
141 2 }
142 1 else if (gl_key == KEY_PLUS)
143 1 {
144 2 gl_key_press = TRUE;
145 2 if (func_state) { gl_key = KEY_INC; bargraph=TRUE; }
146 2 else gl_key = KEY_NEXT;
147 2 }
148 1 else if (gl_key == KEY_MINUS)
149 1 {
150 2 gl_key_press = TRUE;
151 2 if (func_state) { gl_key = KEY_DEC; bargraph=TRUE; }
152 2 else gl_key = KEY_PREV;
153 2 }
154 1 else if (recording)
155 1 {
156 2 if (gl_key == KEY_FUNC)
157 2 {
158 3 gl_key_press = TRUE;
159 3 if (playing) gl_key = KEY_PAUSE;
160 3 else gl_key = KEY_REC;
161 3 SHUT_MIC = playing;
162 3 }
163 2 else if (gl_key == KEY_VALID)
164 2 {
165 3 if (pause || playing)
166 3 {
167 4 gl_key_press = TRUE;
168 4 gl_key = KEY_STOP;
169 4 }
170 3 else recording=FALSE;
171 3 LED_ON = (8 >> ref_state);
172 3 LED_FAST = 3;
173 3 }
174 2 }
175 1 else if (playing)
176 1 {
177 2 bargraph=FALSE;
178 2 if (gl_key == KEY_FUNC)
C51 COMPILER V7.20 KBD_TASK 03/24/2007 10:02:38 PAGE 4
179 2 {
180 3 gl_key_press = TRUE;
181 3 if ((func_state == 2) && (ref_state == REF_STATE_VOICE)) gl_key = KEY_STOP;
182 3 else gl_key = KEY_PAUSE;
183 3 }
184 2 else if (gl_key == KEY_VALID)
185 2 {
186 3 if (ref_state == REF_STATE_VOICE)
187 3 {
188 4 if (func_state == 1) { func_state=2; LED_ON = 4; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?