📄 gui.lst
字号:
C51 COMPILER V8.08 GUI 07/15/2007 10:32:44 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE GUI
OBJECT MODULE PLACED IN gui.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE gui.c LARGE OPTIMIZE(9,SPEED) DEBUG OBJECTEXTEND
line level source
1 #include <at89c51xd2.h>
2 #include "common.h"
3 #include "hanzi.h"
4 #include "lm3228.h"
5 #include "ds18b20.h"
6 #include "PCA_9555.h"
7 #include "ds1302.h"
8 #include "LTC1860.h"
9 #include "stdio.h"
10 #include "lct1451.h"
11
12 #define KeyTabLen 13
13 extern uchar data keyvalue[2];
14 extern bit key_flag;
15 volatile uchar data zhen_temp[4]; //
16 volatile uchar data xiaoshu_temp[5]; //
17 extern bit ds18b20_flag;
18 extern bit dot_dis;
19 bit timeout=0;
20 uchar data time_count=0;
21 uchar data keyfuncindex=12;
22 uchar data ds18b20_1_dis,ds18b20_2_dis,ds18b20_3_dis,ds18b20_4_dis;
23 //函数申明
24 void FunctionDisp(void);
25 void Config(void);
26 void Serial(void);
27 void HelpInf(void);
28 void Temprature(void);
29 void Time(void);
30 void AD(void);
31 void CaculatorDisp(void);
32 void TempratureDisp(void);
33 void AD_Disp(void);
34 void Caculator(void);
35 void TimeDisp(void);
36 void gui_init(void);
37 void time_init(void);
38 void channel_display(void);
39
40 //结构定义
41 typedef struct
42 {
43 uchar KeyTab_MenuIndex; //当前状态索引号 //uchar KeyTab_MaxItems; //本级菜单最大条目数
44 uchar KeyTab_PressDown; //按下"向下"键时转向的状态索引号
45 uchar KeyTab_PressUp; //按下"向上"键时转向的状态索引号
46 uchar KeyTab_PressOk; //按下"回车"键时转向的状态索引号
47 uchar KeyTab_PressEsc; //按下"返回"键时转向的状态索引号
48 void (*CurrentOperate)(); //当前状态应该执行的功能操作
49 }KeyTabStruct;
50
51 void (*KeyFuncPtr)(); //按键功能指针
52 //结构数组
53 KeyTabStruct xdata KeyTab[KeyTabLen]={
54 {0,1,3,4,12,(*FunctionDisp)},
55 {1,2,1,1,0,(*Config)},
C51 COMPILER V8.08 GUI 07/15/2007 10:32:44 PAGE 2
56 {2,3,1,2,0,(*Serial)},
57 {3,0,2,3,0,(*HelpInf)},
58 {4,5,7,8,0,(*Temprature)},
59 {5,6,4,9,0,(*Time)},
60 {6,7,5,10,0,(*AD)},
61 {7,4,6,11,0,(*Caculator)},
62 {8,8,8,8,4,(*TempratureDisp)},
63 {9,9,9,9,5,(*TimeDisp)},
64 {10,10,10,10,6,(*AD_Disp)},
65 {11,11,11,11,7,(*CaculatorDisp)},
66 {12,11,0,12,12,(*gui_init)}
67
68 };
69 //
70 void delay(unsigned int time)
71 {
72 1 unsigned int i,j;
73 1 for(i=0;i<time;i++)
74 1 for(j=0;j<200;j++);
75 1 }
76 //开机动画
77 void open_picture_init(void)
78 {
79 1 uchar i;//data
80 1 hanzi_display(open_picture,sizeof(open_picture),0x00,0x10);
81 1
82 1 for(i=0;i<30;i++)
83 1 {
84 2 if(!key_flag)
85 2 {
86 3 set_display_area(GRAPHIC_ADDRESS,0x00+i,0x00);
87 3 delay(100);
88 3 }
89 2 else
90 2 break;
91 2 }
92 1
93 1 }
94 //开机密码
95 /*void open_code(void)
96 {
97 uint data key_code=0;
98 uchar data i;
99 bit code_ok=0;
100 uchar code *str="Please input code:";
101 uchar code *str1="code error!:";
102 clrgraphic();
103 set_point(SET_ADDRESS_POINTER,0x00,0x31);
104
105 string_display_code(0,str,0x00,0x31);
106 while(!code_ok)
107 {
108 for(i=0;i<4;i++)
109 {
110 while(!key_flag)
111 {
112 }
113 {
114 key_flag=0;
115
116 readregister(keyvalue);
117
C51 COMPILER V8.08 GUI 07/15/2007 10:32:44 PAGE 3
118 text_display('*'); // ,0x00,0x00
119 key_code=key_code*10+(keyvalue[0]&0x0f);
120 }
121 }
122 if(key_code==124)
123 code_ok=1;
124 else
125 { clrtext();
126 set_point(SET_ADDRESS_POINTER,0x00,0x31);
127 string_display_code(0,str1,0x00,0x31);
128
129 while(!key_flag)
130 {
131 }
132 key_flag=0;
133 key_code=0;
134 set_point(SET_ADDRESS_POINTER,0x00,0x31);
135 string_display_code(0,str,0x00,0x31);
136 }
137 }
138 }*/
139
140
141 //界面初始化
142 void gui_init(void)
143 {
144 1 Picture pic1={64,32,menu1}; //data
145 1 Picture pic2={64,32,menu2}; //data
146 1 Picture pic3={64,32,menu3}; //data
147 1 Picture pic4={64,32,menu4};//data
148 1 Picture *point1=&pic1;
149 1 clrgraphic();
150 1 clrtext();
151 1
152 1 picture_display(point1,0x00,0x00,0);
153 1 point1=&pic2;
154 1 picture_display(point1,0x08,0x00,0);
155 1 point1=&pic3;
156 1 picture_display(point1,0x10,0x00,0);
157 1 point1=&pic4;
158 1 picture_display(point1,0x18,0x00,0);
159 1 hanzi_display(cancel,sizeof(cancel),0x1c,0x1e);
160 1 hanzi_display(ok,sizeof(ok),0x00,0x1e);
161 1
162 1 }
163
164 //得到键
165 void get_inputkey(void)
166 {
167 1 switch(keyvalue[0]&0x0f)
168 1 {
169 2 case 0x03: //向上键
170 2 keyfuncindex=KeyTab[keyfuncindex].KeyTab_PressUp;
171 2 break;
172 2 case 0x07: //向下键
173 2 keyfuncindex=KeyTab[keyfuncindex].KeyTab_PressDown;
174 2 break;
175 2 case 0x0b: //功能键
176 2 keyfuncindex=0;
177 2 break;
178 2 case 0x0c: //cancel
179 2 keyfuncindex=KeyTab[keyfuncindex].KeyTab_PressEsc;
C51 COMPILER V8.08 GUI 07/15/2007 10:32:44 PAGE 4
180 2 break;
181 2 case 0x0e: //帮助键
182 2
183 2 break;
184 2 case 0x0f: //ok键
185 2 keyfuncindex=KeyTab[keyfuncindex].KeyTab_PressOk;
186 2 break;
187 2 default:
188 2 break;
189 2 }
190 1
191 1 KeyFuncPtr=KeyTab[keyfuncindex].CurrentOperate;
192 1 (*KeyFuncPtr)();
193 1 }
194 //
195 void FunctionDisp(void)
196 {
197 1 Picture pic1={64,32,menu1};
198 1 Picture pic2={64,32,menu2};
199 1 Picture pic3={64,32,menu3};
200 1 Picture pic4={64,32,menu4};
201 1
202 1 Picture *point2=&pic1;
203 1 clrgraphic();
204 1 clrtext();
205 1 picture_display(point2,0x00,0x00,1);
206 1 point2=&pic2;
207 1 picture_display(point2,0x08,0x00,0);
208 1 point2=&pic3;
209 1 picture_display(point2,0x10,0x00,0);
210 1 point2=&pic4;
211 1 picture_display(point2,0x18,0x00,0);
212 1 }
213 //
214 void Config(void)
215 {
216 1 Picture data pic1={64,32,menu1};
217 1 Picture data pic2={64,32,menu2};
218 1 Picture data pic3={64,32,menu3};
219 1 Picture data pic4={64,32,menu4};
220 1 Picture *point1=&pic1;
221 1 picture_display(point1,0x00,0x00,0);
222 1 point1=&pic2;
223 1 picture_display(point1,0x08,0x00,1);
224 1 point1=&pic3;
225 1 picture_display(point1,0x10,0x00,0);
226 1 point1=&pic4;
227 1 picture_display(point1,0x18,0x00,0);
228 1 }
229 //
230 void Serial(void)
231 {
232 1 Picture data pic1={64,32,menu1};
233 1 Picture data pic2={64,32,menu2};
234 1 Picture data pic3={64,32,menu3};
235 1 Picture data pic4={64,32,menu4};
236 1 Picture *point1=&pic1;
237 1 picture_display(point1,0x00,0x00,0);
238 1 point1=&pic2;
239 1 picture_display(point1,0x08,0x00,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -