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

📄 12864.c

📁 12864的液晶屏驱动程序使用51单片机编写
💻 C
📖 第 1 页 / 共 2 页
字号:
     for(i=0;i<16;i++)
     {write_data(zk[i*2]);
      write_data(zk[i*2+1]);
      }
}      
/*------------------显示字符串--------------------------*/

/*------------------首屏显示--------------------------*/
void ceshi()
{write_com(0x01);//清除显示,并且设定地址指针为00H
delay(5);

write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示)
hzkdis("----强林单片机");

write_com(0x90);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)
hzkdis("--技术项目交易网");

write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)
hzkdis("LCD12864点阵液晶");

write_com(0x9A);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)
hzkdis("测试程序");



}

/*------------------清整个GDRAM空间----------------------------*/
void clrgdram()
{ unsigned char x,y;
        for(y=0;y<64;y++)
         for(x=0;x<16;x++)
         { write_com(0x34);
            write_com(y+0x80);        //行地址
            write_com(x+0x80);     //列地址
            write_com(0x30);
            write_data(0x00);
            write_data(0x00);
                               }
   }
/*------------------整屏写入数据:全亮,或者竖条-----------------------------*/
void lcdfill(unsigned char disdata)
{ unsigned char x,y;
        for(y=0;y<32;y++)
         for(x=0;x<16;x++)
         { write_com(0x36);
            write_com(y+0x80);        //行地址
            write_com(x+0x80);     //列地址
            write_com(0x30);
            write_data(disdata);
            write_data(disdata);
            }
   write_com(0x34);                            
   write_com(0x36);
   }
/*------------------显示横-----------------------------*/
void Disp_H_Line()
{ unsigned char x,y;
   unsigned char k=0x00; 
       for(y=0;y<32;y++)
         { k=~k;
           for(x=0;x<16;x++)
         { write_com(0x36);
            write_com(y+0x80);      //行地址
            write_com(x+0x80);     //列地址
            write_com(0x30);
            write_data(k);
            write_data(k);
           };
         }
     write_com(0x34);                          
   write_com(0x36);
}
/*------------------显示边框-------------------------------*/
void Frame()
{unsigned char x,y;
          lcdfill(0x00);
        for(x=0;x<9;x+=8)
          for(y=0;y<32;y++)
           { write_com(0x36);
            write_com(y+0x80);      //行地址
            write_com(x+0x80);        //列地址
            write_com(0x30);
            write_data(0x80);
            write_data(0x00);
           
            write_com(0x36);
            write_com(y+0x80);      //行地址
            write_com(x+0x87);        //列地址
            write_com(0x30);
            write_data(0x00);
            write_data(0x01);
            
            }
      for(y=0;y<2;y++)
         for(x=0;x<8;x++)
           {write_com(0x36);
            write_com(y*31+0x80);      //行地址
            write_com(x+0x80+8*y);        //列地址
            write_com(0x30);
            write_data(0xff);
            write_data(0xff);
           }
         write_com(0x34);
         write_com(0x36);
                    }

/*------------------在第7列的位置加入两条竖线--------------------------*/
void shuxian()
{ unsigned char x,y;
    
    for(x=0;x<9;x+=8) 
       for(y=0;y<32;y++)
          { write_com(0x36);
            write_com(y+0x80);    //行地址
            write_com(x+0x86);     //列地址
            write_com(0x30);
            write_data(0x00);
            write_data(0x14);
          };
}    
           
/*------------------清屏命令--------------------------*/ 
void clrscreen()
{ 
   write_com(0x01);
   delay(10);
   }
   
/*------------------唐诗《静夜思》--------------------------*/
void gushi_display()
{ write_com(0x30);
   clrscreen(); 
   write_com(0x80+FIRST_ADDR);
   hzkdis("床前明月光,");
   write_com(0x90+FIRST_ADDR);
   hzkdis("疑是地上霜。");
   write_com(0x88+FIRST_ADDR);
   hzkdis("举头望明月,");
   write_com(0x98+FIRST_ADDR);
   hzkdis("低头思故乡。");
   write_com(0xb3+FIRST_ADDR);
   hzkdis("静夜思");
   write_com(0xaa+FIRST_ADDR);
   hzkdis("( 唐 )李白");
}

main()
{ unsigned char i; 
//RES=0;
//delay(100);
// RES=1;
   while(1)
   { 
     RW=0;
      lcdreset();                    //初始化LCD屏
      CGRAM();                        
      ceshi();                      //显示测试字样
     delay(1000);


    
      clrgdram();
     clrscreen();                  //清屏
//     Disp_Img(BMP);               //调入一幅图画
//      delay(10000);

     Disp_Img(BMP1);               //调入一幅图画
      delay(10000);
   // while(1);            
      //while(1);
      
                     
     lcdfill(0xff);               //显示全开
      delay(20000);            
    
     Disp_H_Line();                //显示横条
       delay(20000);
      
      
       lcdfill(0xaa);               //显示竖条 
      delay(20000);
     
      Frame();                     //显示边框
      delay(20000);
      
     gushi_display();             //显示唐诗
      clrgdram();
           
     write_com(0x87);          //调用自定义的CGRAM的代码
     write_data(0x00);
     write_data(0x00);
     delay(400);
      
      shuxian();              //加入两条竖线
      delay(8000);
      write_com(0x30);
       delay(1000); 
             
      gushi_display(); 
      delay(6000);
      for(i=0;i<8;i++)        //字符循环左移
     {write_com(0x18); 
        delay(20000);} 
          
       gushi_display(); 
      delay(6000);   
     write_com(0x36);        
      write_com(0x04);          //第一行反白显示
      delay(20000);
      write_com(0x04);          //第一行恢复正常
      delay(20000);
       write_com(0x05);          //第二行反白显示
      delay(20000);
      write_com(0x05);          //第二行恢复正常
      delay(20000);
          
      write_com(0x03);         //垂直滚动屏幕的内容
      write_com(0x60);
      delay(20000); 
      
   }
}

⌨️ 快捷键说明

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