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

📄 12864.h

📁 rt12864的液晶显示程序 只需简单更改就可实现自己的人机界面
💻 H
字号:
/*--------------------------------------------------
程序功能:ST7920控制芯片(汉字库),串口模式。12864 图片与文字显示
---------------------------------------------------*/
#ifndef __12864_H__
#define __12864_H__
/********** 12864LCD引脚定义 **********/
/*
sbit CS    =  P2^1;
sbit SID   =  P2^2;
sbit SCLK  =  P2^3;
sbit PSB   =  P2^4;
sbit RESET =  P2^5;
*/
/*
uchar code Photo1[] ={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}
/********************************************************
*                                                       *
* 延时t毫秒                                             *
* 11.0592MHz时钟,延时约1ms                             *
*                                                       *
********************************************************/
/*
void delay(uint t)
{
   uchar k;
   while(t--)
   {
     for(k=0; k<125; k++)
     { }
   }
}

/*********************************************************
*                                                        *
* 延时函数 200us                                         *
*                                                        *
*********************************************************/
void delay_lcd(int ms)
{
  uchar t;
  while(ms--)
  {
    for(t=0; t<20; t++) ;
  }
}


void sendbyte(uchar bbyte)
{
  uchar i;
  for(i=0;i<8;i++)
  {
   SID=bbyte&0x80; //取出最高位
   SCLK=1;
   delay_lcd(3);
   SCLK=0;
   bbyte<<=1; //左移
   delay_lcd(3);
  }
}


void write(bit start, uchar ddata)
{
  uchar start_data,Hdata,Ldata;

  if(start==0)                   //11111,(0),(0),0
   start_data=0xf8;	             //写指令
   else                          //11111,(0),(1),0
   start_data=0xfa;              //写数据

  Hdata=ddata&0xf0;		         //取高四位
  Ldata=(ddata<<4)&0xf0;         //取低四位
  sendbyte(start_data);	         //发送起始信号
  delay_lcd(5);                   //延时
  sendbyte(Hdata);	             //发送高四位
  delay_lcd(5);                   //延时
  sendbyte(Ldata);		         //发送低四位
  delay_lcd(5);                   //延时
}


void lcdinit()
{
  delay_lcd(10);      //延时等待LCM进入工作状态
  PSB=0; ;   	      //串口驱动模式

  RESET=0;
  delay_lcd(10);
  RESET=1;

  CSs=1;

  write(0,0x30);     //基本指令操作
  write(0,0x0c);
  write(0,0x01);
  write(0,0x06);
}
/*
void photodisplay(uchar *bmp)
{
  uchar i,j;
  write(0,0x34);
  for(i=0;i<32;i++)
  {
    write(0,0x80+i);    //先写入水平坐标值
    write(0,0x80);
    for(j=0;j<16;j++)   //再写入两个8位元的数据
    write(1,*bmp++);
    delay_lcd(1);
  }

  for(i=0;i<32;i++)
  {
    write(0,0x80+i);
    write(0,0x88);
    for(j=0;j<16;j++)
	write(1,*bmp++);
	delay_lcd(1);
  }
  write(0,0x36);
}
*/
void display(unsigned  char  *rx_data)
{ 
   uchar i;
     write(0,0x80);
     for(i=0;i<16;i++) write(1,rx_data[i]);
     write(0,0x90);
     for(i=16;i<32;i++) write(1,rx_data[i]);
     write(0,0x88);
     for(i=32;i<48;i++) write(1,rx_data[i]);
     write(0,0x98);
     for(i=48;i<64;i++) write(1,rx_data[i]);
    // delay(5000);
}

#endif

⌨️ 快捷键说明

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