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

📄 main.lst

📁 12864液晶显示液晶屏与单片机的接口程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 220   1      for(i=0;i<64;i++) write_data(0x80);
 221   1      
 222   1      for(i=0;i<8;i++)
 223   1      
 224   1      {
 225   2      Mcs=0;
 226   2      Scs=1;
 227   2      write_com(Page_Add+i);
 228   2      write_com(Col_Add+63);
 229   2      write_data(0xff);
 230   2      Mcs=1;
 231   2      Scs=0;
 232   2      write_com(Page_Add+i);
 233   2      write_com(Col_Add+0);
 234   2      write_data(0xff);
 235   2      }
 236   1      }
 237          
 238          
 239          
 240          /*------------------清除内存---------------*/
 241          void Clr_Scr()
C51 COMPILER V7.50   MAIN                                                                  12/30/2006 13:52:05 PAGE 5   

 242          {
 243   1      unsigned char j,k;
 244   1      Mcs=1;Scs=1;
 245   1      write_com(Page_Add+0);
 246   1      write_com(Col_Add+0);
 247   1      
 248   1      for(k=0;k<8;k++){
 249   2      write_com(Page_Add+k);
 250   2      for(j=0;j<64;j++)write_data(0x00);
 251   2      }
 252   1      }
 253          
 254          /*------------------显示12864图片---------------------------*/
 255          void Disp_Img(unsigned char code *img)
 256          {
 257   1      unsigned char j,k;
 258   1      for(k=0;k<8;k++){
 259   2      Mcs=1;Scs=0;delay(10);
 260   2      write_com(Page_Add+k);
 261   2      write_com(Col_Add+0);
 262   2      for(j=0;j<64;j++) write_data(img[k*128+j]);
 263   2      Mcs=0;Scs=1; delay(10);
 264   2      write_com(Page_Add+k);
 265   2      write_com(Col_Add+0);
 266   2      for(j=64;j<128;j++) write_data(img[k*128+j]);
 267   2      }
 268   1      }
 269          
 270          /*------------------显示横---------------------------*/
 271          void Disp_H_Line()
 272          {
 273   1      unsigned char i,j;
 274   1      Mcs=1;
 275   1      Scs=1;
 276   1      write_com(Disp_On);
 277   1      write_com(Page_Add);
 278   1      write_com(Start_Line);
 279   1      write_com(Col_Add);
 280   1      
 281   1      for(j=0;j<8;j++)
 282   1      {
 283   2      write_com(Page_Add+j);
 284   2      write_com(Col_Add+0);
 285   2      // write_com(Start_Line+0);
 286   2      for(i=0;i<64;i++)write_data(0x55);
 287   2      }
 288   1      }
 289          
 290          
 291          /*------------------显示列-----------------------------*/
 292          void Disp_V_Line()
 293          {
 294   1      unsigned char i,j;
 295   1      write_com(Disp_On);
 296   1      write_com(Page_Add);
 297   1      write_com(Start_Line);
 298   1      write_com(Col_Add);
 299   1      
 300   1      for(j=0;j<8;j++)
 301   1      {
 302   2      write_com(Page_Add+j);
 303   2      write_com(Col_Add+0);
C51 COMPILER V7.50   MAIN                                                                  12/30/2006 13:52:05 PAGE 6   

 304   2      write_com(Start_Line+0);
 305   2      for(i=0;i<32;i++)
 306   2      {
 307   3      write_data(0x00);
 308   3      write_data(0xff);
 309   3      }
 310   2      
 311   2      }
 312   1      }
 313          
 314          /*------------------棋盘-----------------------------*/
 315          void Disp_Cross_Line(unsigned char mode)
 316          {
 317   1      unsigned char i,j;
 318   1      unsigned char data1,data2;
 319   1      if(mode==0) {data1=0xaa;data2=0x55;}
 320   1      else if(mode==1) {data1=0x55;data2=0xaa;}
 321   1      else return;
 322   1      Mcs=1;Scs=1;
 323   1      write_com(Disp_On);
 324   1      write_com(Page_Add);
 325   1      write_com(Start_Line);
 326   1      write_com(Col_Add);
 327   1      for(j=0;j<8;j++)
 328   1      {
 329   2      write_com(Page_Add+j);
 330   2      write_com(Col_Add+0);
 331   2      write_com(Start_Line+0);
 332   2      for(i=0;i<32;i++){
 333   3      write_data(data1);
 334   3      write_data(data2);
 335   3      }
 336   2      }
 337   1      }
 338          
 339          
 340          /*---------------------指定位置显示汉字16*16-----------------------*/
 341          
 342          void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
 343          {
 344   1      unsigned char j=0,i=0;
 345   1      for(j=0;j<2;j++){
 346   2      write_com(Page_Add+pag+j);
 347   2      write_com(Col_Add+col);
 348   2      for(i=0;i<16;i++) write_data(hzk[16*j+i]);
 349   2      }
 350   1      }
 351          
 352          
 353          /*------------------初始化LCD屏--------------------------*/
 354          void init_lcd()
 355          {
 356   1              Lcd_Rst=0;//P3.2 set 0
 357   1              delay(100);//sleep
 358   1              Lcd_Rst=1;//set 1
 359   1              delay(100);//sleep
 360   1              
 361   1              Mcs=1;
 362   1              Scs=1;
 363   1              
 364   1              delay(100);
 365   1              write_com(Disp_Off);
C51 COMPILER V7.50   MAIN                                                                  12/30/2006 13:52:05 PAGE 7   

 366   1              write_com(Page_Add+0);
 367   1              write_com(Start_Line+0);
 368   1              write_com(Col_Add+0);
 369   1              write_com(Disp_On);
 370   1      }
 371          
 372          
 373          /*------------------------------信息显示------------------------*/
 374          void Msg(int flg)
 375          {
 376   1      Clr_Scr();
 377   1      frame();
 378   1      if(flg==0){ //显示“测试开始”
 379   2      Mcs=1;Scs=0;
 380   2      hz_disp16(3,32,ce);
 381   2      delay(2000);
 382   2      hz_disp16(3,48,shi);
 383   2      delay(2000);
 384   2      Mcs=0;Scs=1;
 385   2      hz_disp16(3,0,kai);
 386   2      delay(2000);
 387   2      hz_disp16(3,16,shi3);
 388   2      delay(2000);
 389   2      }
 390   1      else if(flg==1){ //显示“测试完毕”
 391   2      Mcs=1;Scs=0;
 392   2      hz_disp16(3,32,ce);
 393   2      hz_disp16(3,48,shi);
 394   2      Mcs=0;Scs=1;
 395   2      hz_disp16(3,0,wan);
 396   2      hz_disp16(3,16,bi); 
 397   2      }
 398   1      }
 399          
 400          
 401          /*--------------------------------键盘扫描-------------------------*/
 402          void Key_Scan()
 403          {
 404   1      while(Test_Key);
 405   1      while(~Test_Key);
 406   1      }
 407          
 408          
 409          /*--------------------主程序---------------------------------*/
 410          
 411          
 412          main()
 413          {
 414   1      unsigned char i=0;
 415   1      while(1){
 416   2      // Key_Scan();
 417   2      init_lcd();
 418   2      Disp_Img(FirstPage);
 419   2      delay(10000);
 420   2      // Key_Scan();
 421   2      Msg(0);
 422   2      delay(10000);
 423   2      Disp_H_Line();
 424   2      delay(10000);
 425   2      Disp_V_Line();
 426   2      delay(10000);
 427   2      Msg(1); 
C51 COMPILER V7.50   MAIN                                                                  12/30/2006 13:52:05 PAGE 8   

 428   2      delay(10000);
 429   2      }
 430   1      }


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