?? 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 + -