📄 key.lst
字号:
182 =1 sbit Msel=optiona^2;
183 =1 sbit MIICF1=optiona^1;
184 =1 sbit MIICF0=optiona^0;
185 =1
186 =1 */
3 /*********************************/
C51 COMPILER V7.01 KEY 06/10/2003 09:42:38 PAGE 6
4
5
6 char menu_cr1;//菜单位置1
7 char menu_cr2;//菜单位置
8
9 //I2c地址
10 #define bojin_a 0x12//近距离报警区
11 #define bojin_b 0x15//中距离
12 #define bojin_c 0x1a//远距离
13 #define video_1 0x1e//视频切换
14 #define english_china 0x20//中英切换
15 #define bright_04 0x22//亮度
16 #define contrast_04 0x24//对比度
17 #define color_04 0x26//彩色
18 #define blue_04 0x28//兰屏ON-OFF
19 #define power_04 0x2a//电源自动开关
20 #define color_p_n 0x2c//P/N
21 #define x_04 0x2e//X旋转
22 #define y_04 0x30//Y旋转
23 /***********************************/
24 extern unsigned int xdata bojina;//近距离报警区
25 extern unsigned int xdata bojinb;//中距离报警
26 extern unsigned int xdata bojinc;//远距离
27 extern char xdata video;//视频切换ON-OFF
28 extern unsigned char xdata englishchina;//中英切换
29 extern unsigned char xdata bright;//亮度
30 extern unsigned char xdata contrast;//对比度
31 extern unsigned char xdata color;//彩色
32 extern unsigned char xdata blue;//兰屏
33 extern unsigned char xdata power;//电源自动光机
34 extern char xdata p_n;//P/N
35 extern unsigned char xdata x;//x
36 extern unsigned char xdata y;//y
37
38
39 void key_menu();
40 bit key1();//+
41 bit key2();//-
42 bit key3();//菜单
43 bit key4();//开关机
44 bit key5();//上
45 bit key6();//下
46 bit key7();//AV1/AV2/AV3/TV
47 void wirte_24c02a();
48 void wirte_24c02b();
49 void wirte_24c02c();
50 void wirte_24c02d();
51 void wirte_24c02e();
52 void wirte_24c02f();
53 void wirte_24c02g();
54 void wirte_24c02h();
55 void wirte_24c02q();
56 void wirte_24c02w();
57 void wirte_24c02r();
58 void wirte_24c02t();
59 void wirte_24c02u();
60
61 extern bit i2c_write(unsigned char address,unsigned char fb);
62 extern void datey(unsigned int p);
63 extern void osd_pz();
64 extern void osd_start();//osd初始化
65 extern void osd_start1();//OSD初始化
C51 COMPILER V7.01 KEY 06/10/2003 09:42:38 PAGE 7
66 extern void osd_clr();
67 extern void tuxa_menu(char r);//图像菜单
68 extern void jintu(char r);//进度条
69 extern void gonen_menu(char r);//功能菜单
70 extern void tuxa_su(char r);//图象值
71 extern void gonen_su(char r);//功能值
72
73 void key_menu()
74 {
75 1 menu_cr1=0;//菜单位置1
76 1 menu_cr2=0;//菜单位置2
77 1 if(key3())//进入1级设置菜单--图象
78 1 {
79 2 osd_start();//osd初始化
80 2 tuxa_menu(0);//打开图象菜单
81 2 tuxa_su(0);
82 2 jintu(0);
83 2 while(1)
84 2 {
85 3 if(key5())//进入上移动键
86 3 {
87 4 menu_cr1++;
88 4 if(menu_cr1>2)
89 4 menu_cr1=0;
90 4 tuxa_menu(menu_cr1);//打开图象菜单
91 4 tuxa_su(menu_cr1);
92 4 jintu(menu_cr1);
93 4 }
94 3 if(key6())//进入下移动键
95 3 {
96 4 menu_cr1--;
97 4 if(menu_cr1<0)
98 4 menu_cr1=2;
99 4 tuxa_menu(menu_cr1);//打开图象菜单
100 4 tuxa_su(menu_cr1);
101 4 jintu(menu_cr1);
102 4 }
103 3 if(key1())//+
104 3 {
105 4 if(menu_cr1==0)
106 4 {
107 5 bright++;
108 5 if(bright>=253)
109 5 bright=253;
110 5 DA0=bright;
111 5 wirte_24c02f();
112 5 }
113 4 else if(menu_cr1==1)
114 4 {
115 5 contrast++;
116 5 if(contrast>=253)
117 5 contrast=253;
118 5 DA1=contrast;
119 5 wirte_24c02g();
120 5 }
121 4 else if(menu_cr1==2)
122 4 {
123 5 color++;
124 5 if(color>=253)
125 5 color=253;
126 5 DA2=color;
127 5 wirte_24c02h();
C51 COMPILER V7.01 KEY 06/10/2003 09:42:38 PAGE 8
128 5 }
129 4 else ;
130 4 tuxa_menu(menu_cr1);//打开图象菜单
131 4 tuxa_su(menu_cr1);
132 4 jintu(menu_cr1);
133 4 }
134 3 if(key2())//-
135 3 {
136 4 if(menu_cr1==0)
137 4 {
138 5 bright--;
139 5 if(bright<=1)
140 5 bright=1;
141 5 DA0=bright;
142 5 wirte_24c02f();
143 5 }
144 4 else if(menu_cr1==1)
145 4 {
146 5 contrast--;
147 5 if(contrast<=1)
148 5 contrast=1;
149 5 DA1=contrast;
150 5 wirte_24c02g();
151 5 }
152 4 else if(menu_cr1==2)
153 4 {
154 5 color--;
155 5 if(color<=1)
156 5 color=1;
157 5 DA2=color;
158 5 wirte_24c02h();
159 5 }
160 4 else ;
161 4 tuxa_menu(menu_cr1);//打开图象菜单
162 4 tuxa_su(menu_cr1);
163 4 jintu(menu_cr1);
164 4
165 4 }
166 3 if(key3())//进入2级设置菜单--功能
167 3 {
168 4 osd_start();//osd初始化
169 4 gonen_menu(0);
170 4 gonen_su(0);
171 4 while(1)
172 4 {
173 5 if(key5())//进入上移动键
174 5 {
175 6 menu_cr2++;
176 6 if(menu_cr2>9)
177 6 menu_cr2=0;
178 6 gonen_menu(menu_cr2);//图象菜单
179 6 gonen_su(menu_cr2);
180 6 }
181 5 if(key6())//进入下移动键
182 5 {
183 6 menu_cr2--;
184 6 if(menu_cr2<0)
185 6 menu_cr2=9;
186 6 gonen_menu(menu_cr2);//图象菜单
187 6 gonen_su(menu_cr2);
188 6 }
189 5 if(key1())//+
C51 COMPILER V7.01 KEY 06/10/2003 09:42:38 PAGE 9
190 5 {
191 6 switch(menu_cr2)
192 6 {
193 7 case 0: if(blue==0)
194 7 blue=1;
195 7 else blue=0;wirte_24c02q();break;
196 7 case 1: if(power==0)
197 7 power=1;
198 7 else power=0;wirte_24c02w();break;
199 7 case 2: p_n++;
200 7 if(p_n>2)p_n=0;wirte_24c02r();break;
201 7 case 3: video++;
202 7 if(video>3)video=0;wirte_24c02e();break;
203 7 case 4: if(x==0)
204 7 x=1;
205 7 else x=0;wirte_24c02t();break;
206 7 case 5: if(y==0)
207 7 y=1;
208 7 else y=0;wirte_24c02u();break;
209 7 case 6: if(englishchina==0)
210 7 englishchina=1;
211 7 else englishchina=0;wirte_24c02d();break;
212 7 case 7: bojina=bojina+10;if(bojina>60)bojina=60;wirte_24c02a();break;
213 7 case 8: bojinb=bojinb+10;if(bojinb>100)bojinb=100;wirte_24c02b();break;
214 7 case 9: bojinc=bojinc+10;if(bojinc>200)bojinc=200;wirte_24c02c();break;
215 7 default:;
216 7 }
217 6 gonen_su(menu_cr2);
218 6 }
219 5 if(key2())//-
220 5 {
221 6 switch(menu_cr2)
222 6 {
223 7 case 0: if(blue==0)
224 7 blue=1;
225 7 else blue=0;wirte_24c02q();break;
226 7 case 1: if(power==0)
227 7 power=1;
228 7 else power=0;wirte_24c02w();break;
229 7 case 2: p_n--;
230 7 if(p_n<0)p_n=2;wirte_24c02r();break;
231 7 case 3: video--;
232 7 if(video<0)video=3;wirte_24c02e();break;
233 7 case 4: if(x==0)
234 7 x=1;
235 7 else x=0;wirte_24c02t();break;
236 7 case 5: if(y==0)
237 7 y=1;
238 7 else y=0;wirte_24c02u();break;
239 7 case 6: if(englishchina==0)
240 7 englishchina=1;
241 7 else englishchina=0;wirte_24c02d();break;
242 7 case 7: bojina=bojina-10;if(bojina<20)bojina=20;wirte_24c02a();break;
243 7 case 8: bojinb=bojinb-10;if(bojinb>100)bojinb=100;wirte_24c02b();break;
244 7 case 9: bojinc=bojinc-10;if(bojinc<150)bojinc=150;wirte_24c02c();break;
245 7 default:;
246 7 }
247 6 gonen_su(menu_cr2);
248 6 }
249 5 if(key3()|key7())//退出菜单
250 5 {
251 6 osd_clr();
C51 COMPILER V7.01 KEY 06/10/2003 09:42:38 PAGE 10
252 6 osd_start();//osd初始化
253 6 return;
254 6 }
255 5 }
256 4
257 4 }
258 3
259 3
260 3 if(key3()|key7())//退出菜单
261 3 {
262 4 osd_clr();
263 4 osd_start1();//osd初始化
264 4 return;
265 4 }
266 3
267 3 }
268 2 }
269 1
270 1 }
271
272 bit key1()
273 { unsigned int i;
274 1 i=0;
275 1 ADC_write=0x82;
276 1 datey(300);
277 1 if(ADC_read<=3)
278 1 {
279 2 do{
280 3 datey(300);
281 3 i++;
282 3 if(i>8000)
283 3 return(1);
284 3 }
285 2 while(ADC_read<=3);
286 2 return(1);
287 2 }
288 1 else return(0);
289 1 }
290
291
292 bit key2()
293 { unsigned int i;
294 1 i=0;
295 1 ADC_write=0x82;
296 1 datey(300);
297 1 if((ADC_read<=14)&(ADC_read>=9))
298 1 {
299 2 do{
300 3 datey(300);
301 3 i++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -