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

📄 main.lst

📁 通过实例实践LCD 驱动显示(以128DI0 为例)
💻 LST
📖 第 1 页 / 共 2 页
字号:
 200   2      
 201   2         }
 202   1      }
 203          
 204          void reset(void)
 205          {
 206   1        //RESET CHIP
 207   1        RES  = 0;
 208   1        delay(100);
 209   1        RES  = 1;
 210   1        delay(100);
 211   1      
 212   1      }
 213          
 214          
 215          
 216          void ini_lcd(void)
 217          {
 218   1      
 219   1          //INI_CODE
 220   1      
 221   1          comm_out(0xA0);// ADC select
 222   1          comm_out(0xA6);// Sets the LCD display normal/reverse
 223   1      
 224   1          comm_out(0xA2);// Sets the LCD drive voltage bias ratio  1/9
 225   1      
 226   1          comm_out(0x2F);// Power control set
 227   1          comm_out(0x24);// V0 Voltage Regulator Internal Resistor Ratio Set  
 228   1      
 229   1      
 230   1          comm_out(0x81);// Electronic volume mode set
 231   1          comm_out(0x29);// 3F
 232   1          
 233   1      
 234   1          comm_out(0xAF);// display on
 235   1      }
 236          
 237          
 238          
 239          
 240          void setPageAddress(unsigned char i)
 241          {
C51 COMPILER V7.50   MAIN                                                                  03/10/2005 08:04:12 PAGE 5   

 242   1          comm_out(0xb0+i);
 243   1      }
 244          
 245          
 246          void setColAddress(unsigned char i)
 247          {
 248   1      
 249   1      
 250   1          if(i<=16)
 251   1          {
 252   2               comm_out(0x00+i);
 253   2               comm_out(0x10);
 254   2          }
 255   1          else
 256   1          {
 257   2               comm_out(0x00+i%16);
 258   2               comm_out(0x10+i/16);
 259   2          }
 260   1      
 261   1      }
 262          
 263          
 264          void dispData(unsigned char s_page,e_page,s_col,e_col,unsigned char dispdata,unsigned char dly)
 265          {
 266   1              unsigned char  i,j,page_num,col_num;
 267   1              page_num = e_page - s_page+1;
 268   1              col_num  = e_col  - s_col+1;
 269   1              
 270   1              for (i=s_page;i<(s_page+page_num);i++ )
 271   1              {
 272   2                  setPageAddress(i);
 273   2                  setColAddress(s_col);
 274   2      
 275   2                      for(j=0;j<col_num;j++)
 276   2                  {
 277   3                          data_out(dispdata);
 278   3                              delay(dly);
 279   3                  }
 280   2      
 281   2      
 282   2              }
 283   1      
 284   1      }
 285          
 286          
 287          //显示定制图案
 288          void dispGraphic(unsigned char s_page, e_page,s_col,e_col,unsigned char code  *graphicData,unsigned char d
             -ly)
 289          {
 290   1              unsigned char  i,j,k,page_num,col_num;
 291   1              page_num = e_page - s_page+1;
 292   1              col_num  = e_col  - s_col+1;
 293   1              
 294   1              for (i=s_page;i<s_page+page_num;i++ )
 295   1              {
 296   2              setPageAddress(i);
 297   2              setColAddress(s_col);
 298   2      
 299   2                  for(j=0;j<(col_num/8+1);j++)
 300   2              {
 301   3      
 302   3      
C51 COMPILER V7.50   MAIN                                                                  03/10/2005 08:04:12 PAGE 6   

 303   3                              for(k=0;k<8;k++)
 304   3                              {
 305   4                                     data_out(graphicData[k]);
 306   4                                     delay(dly);
 307   4                              }
 308   3      
 309   3              }
 310   2      
 311   2              }
 312   1      }
 313          
 314          
 315          //显示定制图片
 316          void dispPic(unsigned char s_page, e_page, s_col,e_col,unsigned char code *pictrue)
 317          {
 318   1              unsigned char  i,j,page_num,col_num;
 319   1              page_num = e_page - s_page+1;
 320   1              col_num  = e_col  - s_col+1;
 321   1      
 322   1              for (i=s_page;i<(s_page+page_num);i++ )
 323   1              {
 324   2              setPageAddress(i);
 325   2              setColAddress(s_col);
 326   2                  for(j=0;j<col_num;j++)
 327   2              {
 328   3      
 329   3                             data_out(*pictrue);
 330   3                     pictrue ++;
 331   3              }
 332   2              }
 333   1      
 334   1      }
 335          
 336          
 337          /*******************************************************************************
 338          * 主程序
 339          *******************************************************************************/
 340          void main(void)
 341          {
 342   1      
 343   1      
 344   1                selectSeries(0);   // 选择8080时序
 345   1                reset();           // 复位LCD
 346   1      
 347   1                CS1   = 0;         // 片选有效
 348   1      
 349   1                ini_lcd();         // 初始化LCD
 350   1                while(1)
 351   1                {
 352   2      
 353   2                      
 354   2                         //利用dispGraphic函数,显示定制图案
 355   2      
 356   2                         dispGraphic(0,8,0,127,test_graphic1,0); //全显
 357   2                         delay(DELAY_TIME);
 358   2                      
 359   2                         dispGraphic(0,7,0,127,test_graphic2,0); //隔行
 360   2                         delay(DELAY_TIME);
 361   2                      
 362   2                         dispGraphic(0,7,0,127,test_graphic3,0); //隔列
 363   2                         delay(DELAY_TIME);
 364   2                      
C51 COMPILER V7.50   MAIN                                                                  03/10/2005 08:04:12 PAGE 7   

 365   2                         dispGraphic(0,7,0,127,test_graphic4,0); //斜角图案
 366   2                         delay(DELAY_TIME);
 367   2                      
 368   2                         dispGraphic(0,7,0,127,test_graphic5,0); //图案Q
 369   2                         delay(DELAY_TIME);
 370   2                      
 371   2                         dispGraphic(0,7,0,127,test_graphic0,0); //清屏
 372   2                         delay(DELAY_TIME);
 373   2              
 374   2      
 375   2                         //显示图片
 376   2                         dispPic(0,7,0,127,test_pic1);                         
 377   2                         delay(DELAY_TIME);
 378   2      
 379   2                         dispData(0,8,0,127,0x00,0);             //清屏
 380   2                         delay(DELAY_TIME);
 381   2      
 382   2                      
 383   2                }
 384   1      
 385   1      }
 386          
 387          
 388          
 389          /******************************************************************************
 390          **                            文件结束
 391          *******************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    938    ----
   CONSTANT SIZE    =   1504    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     52    ----
   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 + -