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

📄 lcd.lst

📁 C8051F020单片机的AD测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 231   2                              addr=0x1805;
 232   2                       }
 233   1          else
 234   1               {
 235   2                              addr=0x980b;
 236   2                              tp=addr;
 237   2                              addr=0x1809;
 238   2                       }
 239   1              readdata=*tp;
 240   1              return readdata;
 241   1      }
C51 COMPILER V7.02b   LCD                                                                  10/31/2005 16:30:55 PAGE 5   

 242          
 243          /***********************************************************************************
 244          * 函数名称:dis_start;
 245          *
 246          * 函数功能描述:显示开机画面;
 247          *              
 248          * 输入参数:none;
 249          *
 250          * 返回数据:none;
 251          *
 252          * 注意:    none;
 253          ************************************************************************************/
 254          
 255          void dis_start(void)
 256          {
 257   1          unsigned char x,y;
 258   1          for(y=0;y<8;y++)
 259   1          {
 260   2              for(x=0;x<128;x++)
 261   2                 {
 262   3                     _nop_();_nop_();
 263   3                     lcd_wrda(x,y,0xAA); _nop_();_nop_();
 264   3                     lcd_wrda(x+1,y,0x55);_nop_();_nop_();
 265   3                     x+=1;
 266   3                 }
 267   2          }
 268   1      }
 269          
 270          /***********************************************************************************
 271          * 函数名称:dis_clr;
 272          *
 273          * 函数功能描述: 清屏;
 274          *              
 275          * 输入参数:none;
 276          *
 277          * 返回数据:none;
 278          *
 279          * 注意:    none;
 280          ************************************************************************************/
 281          
 282          void dis_clr(void)
 283          {
 284   1            unsigned char x,y;
 285   1            for(y=0;y<8;y++)
 286   1              {
 287   2                 for(x=0;x<128;x++)                
 288   2                       lcd_wrda(x,y,0x00);
 289   2              }
 290   1      }
 291          
 292          /***********************************************************************************
 293          * 函数名称:dis_full;
 294          *
 295          * 函数功能描述: 写满屏;
 296          *              
 297          * 输入参数:none;
 298          *
 299          * 返回数据:none;
 300          *
 301          * 注意:    none;
 302          ************************************************************************************/
 303          
C51 COMPILER V7.02b   LCD                                                                  10/31/2005 16:30:55 PAGE 6   

 304          void dis_full(void)
 305          {
 306   1            unsigned char x,y;
 307   1            for(y=0;y<8;y++)
 308   1              {
 309   2                 for(x=0;x<128;x++)                
 310   2                       lcd_wrda(x,y,0xff);
 311   2              }
 312   1      }
 313          
 314          /***********************************************************************************
 315          * 函数名称:LCD_Draw_dot;
 316          *
 317          * 函数功能描述:画点(x,y);
 318          *              
 319          * 输入参数:BYTE类型坐标x,y; bool类型标识flag;
 320          *
 321          * 返回数据:none;
 322          *
 323          * 注意:    none;
 324          ************************************************************************************/
 325          
 326          void  LCD_Draw_dot(BYTE x,BYTE y,bool flag)
 327          {
 328   1              R_BYTE temp,bit_x;
 329   1      
 330   1              bit_x=7-y%8;
 331   1      
 332   1              y=7-y/8;
 333   1      
 334   1              
 335   1              temp=lcd_rdda(x,y);
 336   1              if (flag)
 337   1                      temp|=(1<<bit_x);
 338   1              else
 339   1                      temp&=~(1<<bit_x);
 340   1      
 341   1              lcd_wrda(x,y,temp);
 342   1      }
 343          
 344          /***********************************************************************************
 345          * 函数名称:LCD_Draw_byte;
 346          *
 347          * 函数功能描述:向LCD写一个字节数据;
 348          *              
 349          * 输入参数:BYTE类型坐标x,y;BYTE类型字节数据value;
 350          *
 351          * 返回数据:none;
 352          *
 353          * 注意:    none;
 354          ************************************************************************************/
 355          
 356          void  LCD_Draw_byte(BYTE x,y, BYTE value)
 357          {
 358   1              R_BYTE temp,bit_x;
 359   1      
 360   1              bit_x=y%8;
 361   1              y=y/8;
 362   1      
 363   1              if (bit_x==0)
 364   1                      lcd_wrda(x,y,value);
 365   1              else
C51 COMPILER V7.02b   LCD                                                                  10/31/2005 16:30:55 PAGE 7   

 366   1              {       
 367   2                      temp=lcd_rdda(x,y);     
 368   2                      
 369   2                      temp&=(0xff>>(8-bit_x));
 370   2                      temp|=(value<<bit_x);
 371   2                      lcd_wrda(x,y,temp);
 372   2              
 373   2                      temp=lcd_rdda(x,y+1);
 374   2                      temp&=(0xff<<bit_x);
 375   2                      temp|=(value>>(8-bit_x));
 376   2                      lcd_wrda(x,y+1,temp);           
 377   2              }
 378   1      }
 379          
 380          /***********************************************************************************
 381          * 函数名称:LCD_Disp_Word;
 382          *
 383          * 函数功能描述:向LCD写一组数据,显示黑字符;
 384          *              
 385          * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
 386          *           BYTE类型占用空间line*8行,length列
 387          *
 388          * 返回数据:none;
 389          *
 390          * 注意:    none;
 391          ************************************************************************************/
 392          
 393          void LCD_Disp_Word(BYTE x,y,BYTE code *p,BYTE line,length)
 394          {
 395   1              R_BYTE i,j;
 396   1      
 397   1              y+=(4<<line);   
 398   1              if (y>64)
 399   1                      y=64;
 400   1              y=64-y;
 401   1                      
 402   1              for (i=0; i<line; i++)
 403   1              for (j=0; j<length; j++)
 404   1                      LCD_Draw_byte(x+j,y+i*8, *p++); 
 405   1      }
 406          
 407          /***********************************************************************************
 408          * 函数名称: LCD_Disp_Word_F;
 409          *
 410          * 函数功能描述:向LCD写一组数据,显示白字符;
 411          *              
 412          * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
 413          *           BYTE类型占用空间line*8行,length列
 414          *
 415          * 返回数据:none;
 416          *
 417          * 注意:    none;
 418          ************************************************************************************/
 419          
 420          void LCD_Disp_Word_F(BYTE x,y,BYTE code *p,BYTE line,length)
 421          {
 422   1              R_BYTE i,j;
 423   1      
 424   1              y+=(4<<line);   
 425   1              if (y>64)
 426   1                      y=64;
 427   1              y=64-y;
C51 COMPILER V7.02b   LCD                                                                  10/31/2005 16:30:55 PAGE 8   

 428   1                      
 429   1              for (i=0; i<line; i++)
 430   1              for (j=0; j<length; j++)
 431   1                      LCD_Draw_byte(x+j,y+i*8, ~(*p++));
 432   1              
 433   1      }
 434          
 435          /***********************************************************************************
 436          * 函数名称: LCD_Disp_Time;
 437          *
 438          * 函数功能描述:向LCD写一组数据,显示时间;
 439          *              
 440          * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据code区指针p;
 441          *           BYTE类型占用空间line*8行,length列
 442          *
 443          * 返回数据:none;
 444          *
 445          * 注意:    none;
 446          ************************************************************************************/
 447          
 448          void LCD_Disp_Time(BYTE x,y,BYTE code *p,BYTE line,length)
 449          {
 450   1              R_BYTE i,j;
 451   1      
 452   1              y+=(4<<line);   
 453   1              if (y>64)
 454   1                      y=64;
 455   1              y=64-y;
 456   1                      
 457   1              for (i=0; i<line; i++)
 458   1              for (j=0; j<length; j++)
 459   1                      LCD_Draw_byte(x+j,y+i*8, *p++);
 460   1      }
 461          
 462          /***********************************************************************************
 463          * 函数名称: LCD_Disp_Flash_Word;
 464          *
 465          * 函数功能描述:向LCD写一组数据,显示黑字符;
 466          *              
 467          * 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据xdata区指针p

⌨️ 快捷键说明

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