标题: LCD12846串行显示图文 [打印本页]

作者: 电路板    时间: 2019-5-3 23:48
标题: LCD12846串行显示图文
本帖最后由 电路板 于 2019-5-3 23:51 编辑

   
/************* 上面是底层时序函数,下面是高层时序函数 ***************/

/*********************************************************************
* 函 数 名       : Lcd12864Init
* 函数功能                 : 按照LCD12864低层时序进行初始化序列
* 参数列表       : 无
* 函数输出             : 无
*********************************************************************/
void Lcd12864Init(void)                                                
{
        //gLcd12864_PSB = 1;                        // 选定8位并行模式

        // 发送初始化序列
         Lcd12864WriteCmd(0x30);          // 0x30为基本指令集
        Lcd12864WriteCmd(0x02);
        Lcd12864WriteCmd(0x0c);                // 整体显示、游标关闭
        Lcd12864WriteCmd(0x01);                // 0x01为清屏指令
        Lcd12864WriteCmd(0x80);          // 地址自动加1
        
}
/*********************************************************************
* 函 数 名       : Lcd12864ShowStr
* 函数功能                 : 从坐标(x, y)开始显示字符串str,注意这个函数不能跨行
*                                   显示,因为显存地址是不连续的。
* 参数列表       : x - 横向坐标,范围是0-7
*                                   y - 纵向坐标,范围是0-3
*                                   pStr - 指向待显示的字符串的指针
* 函数输出             : 无
*********************************************************************/
void Lcd12864ShowStr(u8 x, u8 y, u8 *pStr)     //显示字符串
{
         switch (y)
        {
                case 0:
                        x |= 0x80;        break;                          // 第一行
                case 1:
                        x |= 0x90;        break;                          // 第二行
                case 2:
                        x |= 0x88;        break;                          // 第三行
                case 3:
                        x |= 0x98;        break;                          // 第四行
                default:
                                                break;
        }
         Lcd12864WriteCmd(x);                         // 发送地址码
          while (*pStr != '\0')                         // 若到达字串尾则退出
          {
             Lcd12864WriteData(*pStr); //
             pStr++;
                 delay_1ms(5);
          }
}
/*********************************************************************
* 函 数 名       : Lcd12864heng()
* 函数功能                 : 显示图片
* 参数列表       : *pData
* 函数输出             : 无
*********************************************************************/
void  Lcd12864heng()
{
        u8 x = 0, y = 0, i = 0,k;
         for(i=0;i<9;i=i+8)
         for(y=0;y<32;y++)
         {
         if((y%8)==1)k=0xff;
     else k=0;
                 for(x=0;x<8;x++)
                {
                 Lcd12864WriteCmd(0x36);
                 Lcd12864WriteCmd(0x80+y);
                 Lcd12864WriteCmd(0x80+x+i);
                 Lcd12864WriteData(k);
                 Lcd12864WriteData(k);
                 Lcd12864WriteCmd(0x30);
                }
         }
}[attach]182293[/attach]

斗图.png (9.07 KB, 下载次数: 26)

斗图.png

QQ截图20190503234652.png (548.11 KB, 下载次数: 24)

QQ截图20190503234652.png

LCD12864串行.zip

52.24 KB, 下载次数: 23, 下载积分: 黑币 -5

LCD12864串行


作者: 北哲    时间: 2020-3-29 22:22
谢谢大神分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1