📄 1602driver.lst
字号:
252 2 ge = (zhengshu%10);
253 2
254 2 p_number = &num_dis_code[0]+wang1000; //显示各个数量级位置
255 2 fun_write_data(*p_number);
256 2 p_number = &num_dis_code[0]+wang100;
257 2 fun_write_data(*p_number);
258 2 p_number = &num_dis_code[0]+wang10;
259 2 fun_write_data(*p_number);
260 2 p_number = &num_dis_code[0]+wang;
261 2 fun_write_data(*p_number);
262 2 p_number = &num_dis_code[0]+qian;
263 2 fun_write_data(*p_number);
264 2 p_number = &num_dis_code[0]+bai;
265 2 fun_write_data(*p_number);
266 2 p_number = &num_dis_code[0]+shi;
267 2 fun_write_data(*p_number);
268 2 p_number = &num_dis_code[0]+ge;
269 2 fun_write_data(*p_number);
270 2 }
271 1
272 1 if ((zhengshu>=1000000) && (zhengshu<9999999)) //数值再10的6次方以上
273 1 {
274 2
275 2
276 2 wang100 = zhengshu/1000000; //
277 2 wang10 = (zhengshu%1000000)/100000;
278 2 wang = (zhengshu%100000)/10000;
279 2 qian = (zhengshu%10000)/1000;
280 2 bai = (zhengshu%1000)/100;
281 2 shi = (zhengshu%100)/10;
282 2 ge = (zhengshu%10);
283 2
284 2 p_number = &num_dis_code[0]+wang100;
285 2 fun_write_data(*p_number);
286 2 p_number = &num_dis_code[0]+wang10;
C51 COMPILER V7.06 1602DRIVER 09/25/2008 20:34:56 PAGE 6
287 2 fun_write_data(*p_number);
288 2 p_number = &num_dis_code[0]+wang;
289 2 fun_write_data(*p_number);
290 2 p_number = &num_dis_code[0]+qian;
291 2 fun_write_data(*p_number);
292 2 p_number = &num_dis_code[0]+bai;
293 2 fun_write_data(*p_number);
294 2 p_number = &num_dis_code[0]+shi;
295 2 fun_write_data(*p_number);
296 2 p_number = &num_dis_code[0]+ge;
297 2 fun_write_data(*p_number);
298 2 }
299 1
300 1 if ((zhengshu>=100000) && (zhengshu<999999)) //数值再10的5次方以上
301 1 {
302 2
303 2
304 2 wang10 = zhengshu/100000;
305 2 wang = (zhengshu%100000)/10000;
306 2 qian = (zhengshu%10000)/1000;
307 2 bai = (zhengshu%1000)/100;
308 2 shi = (zhengshu%100)/10;
309 2 ge = (zhengshu%10);
310 2
311 2 p_number = &num_dis_code[0]+wang10;
312 2 fun_write_data(*p_number);
313 2 p_number = &num_dis_code[0]+wang;
314 2 fun_write_data(*p_number);
315 2 p_number = &num_dis_code[0]+qian;
316 2 fun_write_data(*p_number);
317 2 p_number = &num_dis_code[0]+bai;
318 2 fun_write_data(*p_number);
319 2 p_number = &num_dis_code[0]+shi;
320 2 fun_write_data(*p_number);
321 2 p_number = &num_dis_code[0]+ge;
322 2 fun_write_data(*p_number);
323 2
324 2
325 2 }
326 1
327 1 if ((zhengshu>=10000) && (zhengshu<99999)) //数值再10的4次方以上
328 1 {
329 2
330 2
331 2 wang = zhengshu%100000/10000;
332 2 qian = (zhengshu%10000)/1000;
333 2 bai = (zhengshu%1000)/100;
334 2 shi = (zhengshu%100)/10;
335 2 ge = (zhengshu%10);
336 2
337 2 p_number = &num_dis_code[0]+wang;
338 2 fun_write_data(*p_number);
339 2 p_number = &num_dis_code[0]+qian;
340 2 fun_write_data(*p_number);
341 2 p_number = &num_dis_code[0]+bai;
342 2 fun_write_data(*p_number);
343 2 p_number = &num_dis_code[0]+shi;
344 2 fun_write_data(*p_number);
345 2 p_number = &num_dis_code[0]+ge;
346 2 fun_write_data(*p_number);
347 2
348 2 }
C51 COMPILER V7.06 1602DRIVER 09/25/2008 20:34:56 PAGE 7
349 1
350 1 if ((zhengshu>=1000) && (zhengshu<9999)) //数值再10的3次方以上
351 1 {
352 2
353 2
354 2 qian = zhengshu/1000;
355 2 bai = (zhengshu%1000)/100;
356 2 shi = (zhengshu%100)/10;
357 2 ge = (zhengshu%10);
358 2
359 2 p_number = &num_dis_code[0]+qian;
360 2 fun_write_data(*p_number);
361 2 p_number = &num_dis_code[0]+bai;
362 2 fun_write_data(*p_number);
363 2 p_number = &num_dis_code[0]+shi;
364 2 fun_write_data(*p_number);
365 2 p_number = &num_dis_code[0]+ge;
366 2 fun_write_data(*p_number);
367 2 }
368 1
369 1 if ((zhengshu>=100) && (zhengshu<999)) //数值再10的2次方以上
370 1 {
371 2
372 2
373 2 bai = zhengshu/100;
374 2 shi = (zhengshu%100)/10;
375 2 ge = (zhengshu%10);
376 2
377 2 p_number = &num_dis_code[0]+bai;
378 2 fun_write_data(*p_number);
379 2 p_number = &num_dis_code[0]+shi;
380 2 fun_write_data(*p_number);
381 2 p_number = &num_dis_code[0]+ge;
382 2 fun_write_data(*p_number);
383 2 }
384 1
385 1 if ((zhengshu>=10) && (zhengshu<99)) //数值再10的1次方以上
386 1 {
387 2
388 2
389 2 shi = zhengshu/10;
390 2 ge = (zhengshu%10);
391 2
392 2 p_number = &num_dis_code[0]+shi;
393 2 fun_write_data(*p_number);
394 2 p_number = &num_dis_code[0]+ge;
395 2 fun_write_data(*p_number);
396 2 }
397 1
398 1 if ((zhengshu>=1) && (zhengshu<9)) //只有个位
399 1 {
400 2
401 2 ge = (zhengshu%10);
402 2
403 2 p_number = &num_dis_code[0]+ge;
404 2 fun_write_data(*p_number);
405 2 }
406 1
407 1 if (dot == 0) //小数点为输入0,显示3个0 也可更改去掉
408 1 {
409 2 fun_display_char(".");
410 2 p_number = &num_dis_code[0];
C51 COMPILER V7.06 1602DRIVER 09/25/2008 20:34:56 PAGE 8
411 2 fun_write_data(*p_number);
412 2 fun_write_data(*p_number);
413 2 fun_write_data(*p_number);
414 2 }
415 1
416 1 if (dot != 0) //小数点不等于0时候 ,显示小数部分的3位数,
417 1 {
418 2 fun_display_char(".");
419 2 dot1 = dot/100;
420 2 dot01 = (dot%100)/10;
421 2 dot001 = (dot%100)-dot01*10;
422 2 p_number = &num_dis_code[0]+dot1;
423 2 fun_write_data(*p_number);
424 2 p_number = &num_dis_code[0]+dot01;
425 2 fun_write_data(*p_number);
426 2 p_number = &num_dis_code[0]+dot001;
427 2 fun_write_data(*p_number);
428 2 }
429 1
430 1 }
431
432 //////////////////////////////////////// 写自定义字模到cgram
433 void fun_write_cgram(void)
434 {
435 1 unsigned char i;
436 1 fun_write_instruction(CGRAM_ADD_INI);
437 1 for (i=0; i<64; i++)
438 1 {
439 2 fun_write_data(self_definition_char[i]);
440 2 }
441 1
442 1
443 1 }
444
445
446 void initialize_lcd(void) //液晶初始化
447 {
448 1 fun_write_instruction(FUNCTION_SET); //2行,8位数据线
449 1 fun_write_instruction(CURSOR_RETURN); //光标回到左上角
450 1 fun_write_instruction(MODE_SET); //完成一个字符传送后ac+1,显示不发生位移
451 1 fun_write_instruction(CURSOR_DISPLAY_SHIFT); //光标向右移,显示不动,AC自动加1
452 1 fun_write_instruction(DISPLAY_ON); //开显示
453 1 fun_write_instruction(CLEAR_SCREEN); //清屏幕
454 1
455 1 fun_write_cgram();
456 1 }
457
458
459 /*************************************************************************
460 *函数介绍:显示数值+字符的子函数 调用函数 (“要显示的字符”,整数,小数,“单位”)
461
462 *输入参数:整数部分的最大值,显示为10000000,小数部分显示3位,整行+起来的字符和单位不要超过15个,
463
464 *输出参数:小数部分,输入0,显示 。000, 输入123 显示 。123,以此类推
465 *返回值 :
466 */////////////////////////////////////////////////////////////////////
467
468
469 void fun_display_num_dot_unit(unsigned char *p_name, unsigned long int zhengshu,
470 unsigned int dot,unsigned char *p_unit)
471
472 {
C51 COMPILER V7.06 1602DRIVER 09/25/2008 20:34:56 PAGE 9
473 1 unsigned char ge,shi,bai,qian,wang,wang10,wang100,wang1000,dot1,dot01,dot001;
474 1
475 1 while (*p_name)
476 1 {
477 2 fun_write_data(*p_name);
478 2 p_name++;
479 2 }
480 1
481 1 if ((zhengshu>=10000000) && (zhengshu<99999999))
482 1 {
483 2
484 2 wang1000 = zhengshu/10000000;
485 2 wang100 = (zhengshu%10000000)/1000000;
486 2 wang10 = (zhengshu%1000000)/100000;
487 2 wang = (zhengshu%100000)/10000;
488 2 qian = (zhengshu%10000)/1000;
489 2 bai = (zhengshu%1000)/100;
490 2 shi = (zhengshu%100)/10;
491 2 ge = (zhengshu%10);
492 2
493 2 p_number = &num_dis_code[0]+wang1000;
494 2 fun_write_data(*p_number);
495 2 p_number = &num_dis_code[0]+wang100;
496 2 fun_write_data(*p_number);
497 2 p_number = &num_dis_code[0]+wang10;
498 2 fun_write_data(*p_number);
499 2 p_number = &num_dis_code[0]+wang;
500 2 fun_write_data(*p_number);
501 2 p_number = &num_dis_code[0]+qian;
502 2 fun_write_data(*p_number);
503 2 p_number = &num_dis_code[0]+bai;
504 2 fun_write_data(*p_number);
505 2 p_number = &num_dis_code[0]+shi;
506 2 fun_write_data(*p_number);
507 2 p_number = &num_dis_code[0]+ge;
508 2 fun_write_data(*p_number);
509 2 }
510 1
511 1 if ((zhengshu>=1000000) && (zhengshu<9999999))
512 1 {
513 2
514 2
515 2 wang100 = zhengshu/1000000;
516 2 wang10 = (zhengshu%1000000)/100000;
517 2 wang = (zhengshu%100000)/10000;
518 2 qian = (zhengshu%10000)/1000;
519 2 bai = (zhengshu%1000)/100;
520 2 shi = (zhengshu%100)/10;
521 2 ge = (zhengshu%10);
522 2
523 2 p_number = &num_dis_code[0]+wang100;
524 2 fun_write_data(*p_number);
525 2 p_number = &num_dis_code[0]+wang10;
526 2 fun_write_data(*p_number);
527 2 p_number = &num_dis_code[0]+wang;
528 2 fun_write_data(*p_number);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -