📄 main.lst
字号:
211 1 dxz(0,138,10,0);
212 1 dxz(0,144,TimeBuffer[4],0);
213 1 dxz(0,150,TimeBuffer[5],0);
214 1
215 1 dxz(0,162,TimeBuffer[6],0); //显示时分
216 1 dxz(0,168,TimeBuffer[7],0);
217 1 dxz(0,174,11,0);
218 1 dxz(0,180,TimeBuffer[8],0);
219 1 dxz(0,186,TimeBuffer[9],0);
220 1 }
221 //读取电池电量
222 #pragma disable
223 void Battery()
224 {
225 1 uchar idata BattCount = 0;
226 1 if((batt2==0)&& (batt1==0) )
227 1 BattCount=2; //1/3格
228 1
229 1 if((batt2==0)&& (batt1==1) )
230 1 BattCount=1; //1/2格
231 1 if((batt2==1)&& (batt1==1) )
232 1 BattCount=0; //满格
233 1 if((batt2==1)&& (batt1==0) )
234 1 BattCount=0; //满格
235 1
236 1
237 1
238 1 dtx(1,176,BattCount,0); //显示电池电量
239 1 /* if(BattCount==2)
240 1 {
C51 COMPILER V7.06 MAIN 12/25/2008 21:13:13 PAGE 5
241 1 lcd_init();
242 1 lcd_init();
243 1 lcd_init();
244 1 Tlc5615(daCount);
245 1 start=1;
246 1 Real_Display_Time(); //显示实时时间
247 1 dtx(1,176,BattCount,0); //显示电池电量
248 1 dh(2,40,55,0);//请启用备用电源
249 1 dh(2,56,60,0);
250 1 dh(2,72,61,0);
251 1 dh(2,88,62,0);
252 1 dh(2,104,63,0);
253 1 dh(2,120,18,0);
254 1 dh(2,136,64,0);
255 1
256 1 dh(4,40,56,0);//重新开机
257 1 dh(4,56,57,0);
258 1 dh(4,72,58,0);
259 1 dh(4,88,59,0);
260 1 dh(4,104,47,0);
261 1
262 1 while(1);
263 1
264 1 }
265 1 */
266 1 }
267 //主菜单上下键处理程序
268 #pragma disable
269
270 void Menu_Move()
271 {
272 1 lcd_init(); //清屏
273 1 Real_Display_Time(); //显示实时时间
274 1 Battery(); //显示电池电量
275 1 if ( KeyCount == 0 )
276 1 {
277 2 dh(2,52,10,1);//反白显示,测试
278 2 dh(2,68,32,1);
279 2 dh(2,84,32,1);
280 2 dh(2,100,32,1);
281 2 dh(2,108,32,1);
282 2 dh(2,124,11,1);
283 2
284 2 dh(6,52,28,0); //时钟设置
285 2 dh(6,68,32,0);
286 2 dh(6,76,29,0);
287 2 dh(6,92,32,0);
288 2 dh(6,100,30,0);
289 2 dh(6,116,32,0);
290 2 dh(6,124,31,0);
291 2
292 2 dh(4,52,24,0); //历史数据
293 2 dh(4,68,32,0);
294 2 dh(4,76,25,0);
295 2 dh(4,92,32,0);
296 2 dh(4,100,26,0);
297 2 dh(4,116,32,0);
298 2 dh(4,124,27,0);
299 2 }
300 1 if ( KeyCount == 1 )
301 1 {
302 2 dh(4,52,24,1); //反显历史数据
C51 COMPILER V7.06 MAIN 12/25/2008 21:13:13 PAGE 6
303 2 dh(4,68,32,1);
304 2 dh(4,76,25,1);
305 2 dh(4,92,32,1);
306 2 dh(4,100,26,1);
307 2 dh(4,116,32,1);
308 2 dh(4,124,27,1);
309 2
310 2 dh(2,52,10,0); // 测试
311 2 dh(2,68,32,0);
312 2 dh(2,84,32,0);
313 2 dh(2,100,32,0);
314 2 dh(2,108,32,0);
315 2 dh(2,124,11,0);
316 2
317 2 dh(6,52,28,0); //时钟设置
318 2 dh(6,68,32,0);
319 2 dh(6,76,29,0);
320 2 dh(6,92,32,0);
321 2 dh(6,100,30,0);
322 2 dh(6,116,32,0);
323 2 dh(6,124,31,0);
324 2
325 2 }
326 1 if ( KeyCount == 2 )
327 1 {
328 2 dh(6,52,28,1); //反显时钟设置
329 2 dh(6,68,32,1);
330 2 dh(6,76,29,1);
331 2 dh(6,92,32,1);
332 2 dh(6,100,30,1);
333 2 dh(6,116,32,1);
334 2 dh(6,124,31,1);
335 2
336 2 dh(4,52,24,0); //历史数据
337 2 dh(4,68,32,0);
338 2 dh(4,76,25,0);
339 2 dh(4,92,32,0);
340 2 dh(4,100,26,0);
341 2 dh(4,116,32,0);
342 2 dh(4,124,27,0);
343 2
344 2
345 2 dh(2,52,10,0); // 测试
346 2 dh(2,68,32,0);
347 2 dh(2,84,32,0);
348 2 dh(2,100,32,0);
349 2 dh(2,108,32,0);
350 2 dh(2,124,11,0);
351 2 }
352 1 }
353
354 #pragma disable
355 void Time_Dispose_Set() //将年、月、日、时、分各位数字显示缓存区的数合并,并保存
356 {
357 1 TmpBuf[0] = (TimeBuffer[8]<<4) | TimeBuffer[9]; //分=十位分*10+个位分
358 1 TmpBuf[1] = (TimeBuffer[6]<<4) | TimeBuffer[7]; //时=十位时*10+个位时
359 1 TmpBuf[2] = (TimeBuffer[4]<<4) | TimeBuffer[5]; //日=十位日*10+个位日
360 1 TmpBuf[3] = (TimeBuffer[2]<<4) | TimeBuffer[3]; //月=十位月*10+个位月
361 1 TmpBuf[4] = (TimeBuffer[0]<<4) | TimeBuffer[1]; //年=十位年*10+个位年
362 1 PCF8563_SetTime(); //数字送器件8563内部寄存器
363 1 }
364
C51 COMPILER V7.06 MAIN 12/25/2008 21:13:13 PAGE 7
365
366 //外部中断1处理程序
367 uchar mod_1000( uint* ulTmp) /*分离出千位数并返回,保留余下的部分*/
368 {
369 1 uint ult1;
370 1 ult1 = *ulTmp / 1000;
371 1 *ulTmp = *ulTmp % 1000;
372 1 return ult1;
373 1 }
374 uchar mod_100( uint* ulTmp) /*分离出百位数并返回,保留余下的部分*/
375 {
376 1 uint ult1;
377 1 ult1 = *ulTmp / 100;
378 1 *ulTmp = *ulTmp % 100;
379 1 return ult1;
380 1 }
381 uchar mod_10( uint* ulTmp) /*分离出十位数并返回,保留余下的部分*/
382 {
383 1 uint ult1;
384 1 ult1 = *ulTmp / 10;
385 1 *ulTmp = *ulTmp % 10;
386 1 return ult1;
387 1 }
388 void div_u_shuzi(uint ucTmp) //分离电压数字
389 {
390 1 uint uctmp;
391 1 uctmp = ucTmp;
392 1 UiBuffer[0] = mod_100(&uctmp);
393 1 UiBuffer[1] = mod_10(&uctmp);
394 1 UiBuffer[2] = uctmp;
395 1
396 1 }
397 void div_i_shuzi(uint ucTmp) //分离电流数字
398 {
399 1 uint uctmp;
400 1 uctmp = ucTmp;
401 1 UiBuffer[3] = mod_1000(&uctmp);
402 1 UiBuffer[4] = mod_100(&uctmp);
403 1 UiBuffer[5] = mod_10(&uctmp);
404 1 UiBuffer[6] = uctmp;
405 1
406 1 }
407
408
409 void Shipin_U_dispose() //处理电压读数 显示
410 {
411 1
412 1 uiDianya = (uint)(Read2543(0) * 0.119604);
413 1 uiDianya = (uint)(Read2543(0) * 0.119604);
414 1 Rec24c64[6] = uiDianya/256;
415 1 Rec24c64[7] = uiDianya%256;
416 1 div_u_shuzi(uiDianya);
417 1 }
418
419 void Shipin_I_dispose() //处理电流读数 显示
420 {
421 1 uiDianliu = (uint)(Read2543(1) * 0.396555);
422 1 uiDianliu = (uint)(Read2543(1) * 0.396555);
423 1 Rec24c64[1] = uiDianliu;
424 1 div_i_shuzi(uiDianliu);
425 1 }
426
C51 COMPILER V7.06 MAIN 12/25/2008 21:13:13 PAGE 8
427 //试品异常处理程序
428 void shipin_error1()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -