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

📄 disp.lst

📁 通过C51来实现光照度测量的设计,而且通过电机带动。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 217   2                      n /= 10;
 218   2                      }
 219   1              }
 220          
 221          
 222          /***************************************
 223          
 224                  显示一个字符
 225                  入口参数:字符(只支持ASCII码字符)
 226          
 227          ****************************************/
 228          void DispChr(INT8U cv)
 229                  {
 230   1              INT8U *pF;
 231   1              INT8U len,n,row,col;
 232   1      
 233   1              row = CurRow;
 234   1              col = CurCol;
 235   1              len = FontAttr[CurFont][0] * FontAttr[CurFont][1];
 236   1              pF = (INT8U *)FontAdr[CurFont];
 237   1              pF += cv*len;
 238   1      
 239   1              n = 0;
 240   1              while (1)
 241   1                      {
C51 COMPILER V7.50   DISP                                                                  12/15/2008 13:48:56 PAGE 5   

 242   2                      LCD_Disp_Pic(pF+n*FontAttr[CurFont][0],FontAttr[CurFont][0]);
 243   2                      n ++;
 244   2                      if (n>= FontAttr[CurFont][1])
 245   2                              break;
 246   2                      CurRow ++;
 247   2                      CurCol = col;
 248   2                      }
 249   1              CurRow = row;
 250   1              }
 251          
 252          /***************************************
 253          
 254                  显示一个字符串
 255                  入口参数:字符串指针(只支持ASCII码字符)
 256          
 257          ****************************************/
 258          void DispStr(char *str)
 259                  {
 260   1              while (*str != 0)
 261   1                      {
 262   2                      DispChr(*str);
 263   2                      str++;
 264   2                      }
 265   1              }
 266          /***************************************
 267          
 268                  显示一个汉字
 269                  入口参数:汉字字符编号(见font.h)
 270          
 271          ****************************************/
 272          void DispHZ(INT8U cv)
 273                  {
 274   1              INT8U *pF;
 275   1              INT8U n,row,col;
 276   1      
 277   1              row = CurRow;
 278   1              col = CurCol;
 279   1      
 280   1              pF = (INT8U *)FontHZ14x14;
 281   1              pF += cv*(14*2);
 282   1      
 283   1              n = 0;
 284   1              while (1)
 285   1                      {
 286   2                      LCD_Disp_Pic(pF+n*14,14);
 287   2                      n++;
 288   2                      if (n>= 2)
 289   2                              break;
 290   2                      CurRow ++;
 291   2                      CurCol = col;
 292   2                      }
 293   1              CurRow = row;
 294   1              }
 295          
 296          /***************************************
 297          
 298                  显示一个浮点数
 299                  注:无超显示范围判断
 300                          使用全部的显示区域
 301          
 302          ****************************************/
 303          void DispFloat(float val,INT8U Len)
C51 COMPILER V7.50   DISP                                                                  12/15/2008 13:48:56 PAGE 6   

 304                  {
 305   1              INT8U IntLen,n;
 306   1              INT32U iv,ivf;
 307   1      
 308   1              /* 符号位处理 */
 309   1              if (val < 0)
 310   1                      {
 311   2                      DispChr('-');
 312   2                      val = -val;
 313   2                      Len --;
 314   2                      }
 315   1                      
 316   1              /* 整数位数计算 */
 317   1              IntLen = GetIntLen((INT32U)val);        
 318   1      
 319   1              /* 整数部分 */
 320   1              iv = (INT32U)val;
 321   1              /* 显示整数部分 */
 322   1              DispInt(iv,IntLen);
 323   1              /* 显示小数点 */
 324   1              DispChr('.');
 325   1      
 326   1              /*  */
 327   1              val -= iv;
 328   1              for (n=0;n<(Len-IntLen);n++)
 329   1                      {
 330   2                      val *= 10;
 331   2                      }
 332   1              ivf = (INT32U)val;
 333   1              ivf += 5;
 334   1              ivf /= 10;
 335   1              
 336   1      
 337   1              /* 显示小数部分 */
 338   1              DispInt((INT32U)ivf,Len-IntLen-1);
 339   1              }
 340          
 341          /***************************************
 342          
 343                  显示清屏
 344          
 345          ****************************************/
 346          void DispCls(void)
 347                  {
 348   1              char i;
 349   1      
 350   1              for (i=0;i<8;i++)
 351   1                      {
 352   2                      DispXYSet(i,0);
 353   2                      LCD_Disp_Pattern(0x00,128);
 354   2                      }
 355   1              }
 356          
 357          
 358          
 359          /***************************************
 360          
 361                  屏初始化
 362          
 363          ****************************************/
 364          void DispInit(void)
 365                  {
C51 COMPILER V7.50   DISP                                                                  12/15/2008 13:48:56 PAGE 7   

 366   1              INT16U i;
 367   1              Pin_CS1 = 0;
 368   1              Pin_CS2 = 0;
 369   1      
 370   1              for (i=0;i<5000;i++)
 371   1                      Pin_RST = 0;
 372   1              for (i=0;i<5000;i++)
 373   1                      Pin_RST=1;                      //使RST无效后延时一段时间(若不,则后续指令无效,原12864无需亦可???延时取255还不够!!!)
 374   1      
 375   1              Pin_E=0;
 376   1              Pin_RS=1;       
 377   1              Pin_RW=1;
 378   1      
 379   1              Pin_CS1 = 1;
 380   1      
 381   1              LCD_Cmd(0x3F);                  //LCD_ON
 382   1              LCD_Cmd(0xC0|0);                //LCD_STARTLINE
 383   1              LCD_Cmd(0xB8|0);                //LCD_ROW
 384   1              LCD_Cmd(0x40|0);                //LCD_COL
 385   1      
 386   1              Pin_CS1 = 0;
 387   1      
 388   1      
 389   1              Pin_CS2 = 1;
 390   1      
 391   1              LCD_Cmd(0x3F);                  //LCD_ON
 392   1              LCD_Cmd(0xC0|0);                //LCD_STARTLINE
 393   1              LCD_Cmd(0xB8|0);                //LCD_ROW
 394   1              LCD_Cmd(0x40|0);                //LCD_COL
 395   1      
 396   1              Pin_CS2 = 0;
 397   1      
 398   1              CurCol = 0;
 399   1              CurRow = 0;
 400   1              }
 401          
 402          /***************************************
 403          
 404                  设置当前的显示坐标
 405                  入口参数:行
 406                                    列    
 407          
 408          ****************************************/
 409          void DispXYSet(INT8U Row,INT8U Col)
 410                  {
 411   1              CurRow = Row;
 412   1              CurCol = Col;
 413   1              }
 414          
 415          /***************************************
 416                  设置当前的显示字体(只支持ASCII码字符)
 417                  入口参数:字体编号(见font.h)  
 418          ****************************************/
 419          void DispFontSet(INT8U Font)
 420                  {
 421   1              CurFont = Font;
 422   1              }
 423          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1105    ----
C51 COMPILER V7.50   DISP                                                                  12/15/2008 13:48:56 PAGE 8   

   CONSTANT SIZE    =   5021    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12      46
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -