⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602driver.lst

📁 有人认为液晶不能显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -