📄 6.5.lst
字号:
C51 COMPILER V7.09 6_5 09/12/2005 08:36:31 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 6_5
OBJECT MODULE PLACED IN 6.5.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 6.5.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #define SIZE_OF_KEYBD_MENU 20
4 unsigned DummyJob=0;
5 unsigned DspUserInfo=0;
6 unsigned DspServiceInfo=0;
7 unsigned DspVoltInfo=0;
8 unsigned DspCurrInfo=0;
9 unsigned DspFreqInfo=0;
10 unsigned DspCableInfo=0;
11 unsigned DspSetVoltLevel=0;
12 unsigned KeyFuncIndex=0;
13
14 void (*KeyFuncPtr)(); //按键功能指针
15
16 typedef struct
17 {
18 unsigned char KeyStateIndex; //当前状态索引号
19 unsigned char KeyDnState; //按下"向下"键时转向的状态索引号
20 unsigned char KeyUpState; //按下"向上"键时转向的状态索引号
21 unsigned char KeyCrState; //按下"回车"键时转向的状态索引号
22 void (*CurrentOperate)(); //当前状态应该执行的功能操作
23 } KbdTabStruct;
24
25 KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=
26 {
27 { 0, 0, 0, 1,(&DummyJob)}, //顶层
28
29 { 1, 2, 0, 3,(&DspUserInfo)}, //第二层
30 { 2, 1, 1, 9,(&DspServiceInfo)}, //第二层
31
32 { 3, 0, 0, 1,(&DspVoltInfo)}, //第三层>>DspUserInfo的展开
33 { 4, 0, 0, 1,(&DspCurrInfo)}, //第三层>>DspUserInfo的展开
34 { 5, 0, 0, 1,(&DspFreqInfo)}, //第三层>>DspUserInfo的展开
35 { 6, 0, 0, 1,(&DspCableInfo)}, //第三层>>DspUserInfo的展开
36 //...........
37 { 9, 0, 0, 1,(&DspSetVoltLevel)} //第三层>>DspServiceInfo的展开
38 //..........
39 };
40
41 void GetKeyInput(void)
42 {unsigned char KeyValue;
43 1 KeyValue=P1&0x07; //去掉高5位
44 1 // delay(50000);
45 1 switch(KeyValue)
46 1 {
47 2 case 1: //回车键,找出新的菜单状态编号
48 2 {
49 3 KeyFuncIndex=KeyTab[KeyFuncIndex].KeyCrState;
50 3 break;
51 3 }
52 2 case 2: //向上键,找出新的菜单状态编号
53 2 {
54 3 KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;
55 3 break;
C51 COMPILER V7.09 6_5 09/12/2005 08:36:31 PAGE 2
56 3 }
57 2 case 4: //向下键,找出新的菜单状态编号
58 2 {
59 3 KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;
60 3 break;
61 3 }
62 2 default: //按键错误的处理
63 2 //......
64 2 break;
65 2 }
66 1 KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
67 1 (*KeyFuncPtr)();//
68 1 }
69
70
71
72
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 95 ----
CONSTANT SIZE = 140 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 ----
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 + -