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

📄 lcd12864.c

📁 *名称:LCD12864显示程序 功能:显示英文
💻 C
字号:
/*****************************************************************/ 
/*                                                               */                                                                
/*名称:                LCD12864显示程序                         */                                                                                                                                                                           
/*功能:           显示英文,数字,符号,图片。                  */                                                    
/*难度等级:                   高                                */                                                                     
/* 作者:                  51kaifa                               */
/* 版权:           http://www.51kaifa.com                       */
/*编写日期:        2006.05.20                                   */                                                                                                                                                                                                             
/*****************************************************************/

#include <reg52.h>
#include  <string.h>

#define uchar unsigned char

/**********引脚定义*********/

sbit lck = P3^5;//锁存信号

/********常用命令及参数定义********/
#define DISPON     0x3f
#define DISPOFF    0x3e
#define DISPFIRST  0xc0
#define SETX       0x40
#define SETY       0xb8
#define LCDBUZY    0x80
#define L          0x00
#define R          0x40
#define LIMIT      0x80


/**********全局变量************/
uchar  cbyte;
uchar data statu;
bit xy;

/**************函数******************/

void WrL(uchar x);
void WrR(uchar x);
void Lcmcls(void);
void delay1s(void);
void Lcminit (void);
void Putpicture(uchar flag);
void delay(unsigned int time);
void VtoH8x16change(uchar *hzbuf);
void Puthalf(uchar *strch,uchar row,uchar col);
void Wrdata(uchar x,uchar row,uchar col);
void Locatexy(uchar row,uchar col);
void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag);
void vWrite8x16String(uchar  *str,uchar col, uchar row, bit flag);


extern uchar  code picture1[];
extern uchar  code picture2[];
extern uchar  code  char_Table[95][16];

/***********主程序***************/
void main(void)
{  
    Lcminit();
    while(1){
     Putpicture(0);
     delay1s();
     Lcmcls();
     Putpicture(1);
     delay1s();
     Lcmcls();
     vWrite8x16String("abcdefghijklmn" ,0, 8,0);
     vWrite8x16String("ABCDEFGHIJKLMN", 2, 8,0);
     vWrite8x16String("12345678901234", 4, 8,0);
     vWrite8x16String("+-*/!@#$%^&*()", 6, 8,0);
     delay1s();
     Lcmcls();
    }   

}


/***************微秒级延时*****************/
void delay(unsigned int  time)
{ unsigned int i;
    for(i=0;i<time;i++);
 }

/***************约5S延时********************/
void delay1s(void)
{
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
    delay(50000);
}

//***********初始化LCD*******************/

void Lcminit (void)
{ 
    cbyte=DISPOFF;
    WrL(cbyte);
    WrR(cbyte);
    cbyte=DISPON;
    WrL(cbyte);
    WrR(cbyte);
    cbyte=DISPFIRST;
    WrL(cbyte);
    WrR(cbyte);
    Lcmcls();
    Locatexy(0,0);
}


/***************LCD清屏********************/
void Lcmcls(void)
{ uchar  i,j;
    for(i=0;i<8;i++){
      delay(6);
        for(j=0;j<LIMIT;j++){
          delay(6);
          Wrdata(0x0,i,j);
         }
     }
}

/**************写左区***************/

void WrL(uchar x)
{
   
   P0=0xFF;//P0口送FF,准备读
   lck = 0;
   P1 = 0x2a;//ELCD=1

⌨️ 快捷键说明

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