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

📄 lcd12864应用.lst

📁 LCD12864.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 164   1         unsigned char j,k;
 165   1         Mcs=0;Scs=0;delay(10);               //屏幕分成左右两部分,分别由Mcs和Scs控制,列值都是从0-63
 166   1         write_com(Page_Add+0);//有疑问 ???解答:因为Protues仿真模型的CS1和CS2都是低电平有效
 167   1         write_com(Col_Add+0);
 168   1         for(k=0;k<8;k++)
 169   1         {
 170   2            write_com(Page_Add+k);
 171   2            for(j=0;j<64;j++)
 172   2                {       
 173   3                   write_com(Col_Add+j);
 174   3               write_data(0x00);      
 175   3                }
 176   2         }
 177   1      }
 178          
 179          void Disp_Img(unsigned char code *img)   //显示图片
C51 COMPILER V8.05a   LCD12864应用                                                         07/02/2009 21:25:19 PAGE 4   

 180          {
 181   1         unsigned char j,k;
 182   1         for(k=0;k<8;k++)     //分成8页进行显示,每页有8行
 183   1         {
 184   2            Mcs=1;Scs=0;delay(10);      //先进行左半屏显示
 185   2            write_com(Page_Add+k);
 186   2            write_com(Col_Add+0);
 187   2            for(j=0;j<64;j++) 
 188   2                   write_data(img[k*128+j]);//按列扫描显示,一个字节就是一列,因为每页有8行
 189   2            Mcs=0;Scs=1; delay(10);     //再进行右半屏显示
 190   2            write_com(Page_Add+k);
 191   2            write_com(Col_Add+0);
 192   2            for(j=64;j<128;j++) 
 193   2                   write_data(img[k*128+j]);//按列扫描显示,一个字节就是一列,因为每页有8行
 194   2         }
 195   1      }
 196          
 197          void Disp_H_Line()    //显示水平线
 198          {
 199   1         unsigned char i,j;
 200   1         Mcs=0;Scs=0;delay(10);       //有疑问 ???解答:因为Protues仿真模型的CS1和CS2都是低电平有效
 201   1         write_com(Disp_On);
 202   1         write_com(Page_Add);
 203   1         write_com(Start_Line);
 204   1         write_com(Col_Add);
 205   1         for(j=0;j<8;j++)
 206   1         {
 207   2            write_com(Page_Add+j);
 208   2            write_com(Col_Add+0);
 209   2            // write_com(Start_Line+0);
 210   2            for(i=0;i<64;i++)
 211   2                   write_data(0x55);
 212   2         }
 213   1      }
 214           
 215          void Disp_V_Line()   //显示垂直线
 216          {
 217   1         unsigned char i,j;
 218   1         Mcs=0;Scs=0;delay(10);//有疑问 ???解答:因为Protues仿真模型的CS1和CS2都是低电平有效
 219   1         write_com(Disp_On);
 220   1         write_com(Page_Add);
 221   1         write_com(Start_Line);
 222   1         write_com(Col_Add);
 223   1         for(j=0;j<8;j++)
 224   1         {
 225   2            write_com(Page_Add+j);
 226   2            write_com(Col_Add+0);
 227   2            write_com(Start_Line+0);
 228   2            for(i=0;i<32;i++)
 229   2            {
 230   3                write_data(0x00);
 231   3                write_data(0xff);
 232   3            }
 233   2         }
 234   1      }
 235          
 236          /*写16*16中文字符,分两行显示,先扫描16列,再扫描行*/
 237          void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)     
 238          {
 239   1         unsigned char j=0,i=0;
 240   1         //Mcs=1;Scs=1;delay(10);
 241   1         for(j=0;j<2;j++)
C51 COMPILER V8.05a   LCD12864应用                                                         07/02/2009 21:25:19 PAGE 5   

 242   1         {
 243   2         write_com(Page_Add+pag+j);
 244   2         write_com(Col_Add+col);
 245   2         for(i=0;i<16;i++) 
 246   2            write_data(hzk[16*j+i]);
 247   2         }
 248   1      }
 249           
 250          void init_lcd() //初始化LCD12864
 251          {
 252   1         Lcd_Rst=0;
 253   1         delay(100);
 254   1         Lcd_Rst=1;
 255   1         delay(100);
 256   1         Mcs=1;
 257   1         Scs=1;
 258   1         delay(100);
 259   1         write_com(Disp_Off);
 260   1         write_com(Page_Add+0);
 261   1         write_com(Start_Line+0);
 262   1         write_com(Col_Add+0);
 263   1         write_com(Disp_On);
 264   1      }
 265           
 266          void Msg(int flg)  //显示相应的信息
 267          {
 268   1         Clr_Scr();
 269   1         frame();
 270   1         if(flg==0)    //显示"测试开始"
 271   1         { 
 272   2            Mcs=1;Scs=0;
 273   2            hz_disp16(3,32,ce);
 274   2            delay(2000);
 275   2            hz_disp16(3,48,shi);
 276   2            delay(2000);
 277   2            Mcs=0;Scs=1;
 278   2            hz_disp16(3,0,kai);
 279   2            delay(2000);
 280   2            hz_disp16(3,16,shi3);
 281   2            delay(2000);
 282   2         }
 283   1         else if(flg==1)       //显示"测试完毕"
 284   1         { 
 285   2            Mcs=1;Scs=0;
 286   2            hz_disp16(3,32,ce);
 287   2            hz_disp16(3,48,shi);
 288   2            Mcs=0;Scs=1;
 289   2            hz_disp16(3,0,wan);
 290   2            hz_disp16(3,16,bi);
 291   2         }
 292   1      }
 293          
 294          main()
 295          {
 296   1         unsigned char i=0;
 297   1         while(1)
 298   1         {
 299   2            init_lcd();
 300   2                //Clr_Scr();
 301   2            Disp_Img(FirstPage);
 302   2            delay(30000);
 303   2                Clr_Scr();
C51 COMPILER V8.05a   LCD12864应用                                                         07/02/2009 21:25:19 PAGE 6   

 304   2                //delay(30000);
 305   2            Msg(0);
 306   2            delay(10000);
 307   2                Clr_Scr();
 308   2            Disp_H_Line();
 309   2            delay(10000);
 310   2                Clr_Scr();
 311   2            Disp_V_Line();
 312   2            delay(10000);
 313   2                Clr_Scr();
 314   2            Msg(1);
 315   2            delay(10000);
 316   2                Clr_Scr();
 317   2         }
 318   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    717    ----
   CONSTANT SIZE    =   1216    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      14
   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 + -