📄 菜单.lst
字号:
C51 COMPILER V8.08 菜单 03/31/2008 11:58:34 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 菜单
OBJECT MODULE PLACED IN 菜单.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 菜单.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<12864driver.h>
3 #include<ziku.h>
4 #include<state.h>
5 #include<Menu_Tab.h>
6
7 unsigned char Func_Index=0; //存放当前的菜单索引
8
9 void (*Func_Ptr)(); //定义按键功能指针
10
11
12
13 /***********菜单操作函数*************/
14 void MenuOperate(uchar key)
15 {
16 1 switch(key)
17 1 {
18 2 case 0x06: //Up键
19 2 {
20 3 Func_Index=Menu_Tab[Func_Index].Up;
21 3 break;
22 3 }
23 2
24 2 case 0x05: //Enter键
25 2 {
26 3 Func_Index=Menu_Tab[Func_Index].Enter;
27 3 break;
28 3 }
29 2
30 2 case 0x03: //Down键
31 2 {
32 3 Func_Index=Menu_Tab[Func_Index].Down;
33 3 break;
34 3 }
35 2 //可添加按键错误代码
36 2 }
37 1 Func_Ptr=Menu_Tab[Func_Index].Operate; //执行当前操作
38 1 (*Func_Ptr)();
39 1
40 1 }
41
42
43 /*********键扫描函数**************/
44 uchar keyscan()
45 {
46 1 uchar key;
47 1 P1=0xFF; // 1111 1111
48 1 Delay_ms(10); // 防抖动
49 1 key=P1&0x07; // 0000 0111
50 1 return key;
51 1 }
52
53
54 /*******中断处理函数*************/
55 void int_0(void) interrupt 0 using 0
C51 COMPILER V8.08 菜单 03/31/2008 11:58:34 PAGE 2
56 {
57 1 uchar key;
58 1 key=keyscan();
59 1 MenuOperate(key);
60 1 }
61
62
63
64
65 void main()
66 {
67 1
68 1
69 1 LCD_Initial();
70 1 LCD_Clear();
71 1 EX0=1; //开中断
72 1 IT0=1; //电平触发
73 1 EA =1; //开所有中断
74 1
75 1
76 1 MenuOperate(0);
77 1
78 1 while(1)
79 1 {
80 2
81 2
82 2
83 2
84 2
85 2 }
86 1
87 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2580 ----
CONSTANT SIZE = 848 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 20
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -