加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

12864液晶驱动源码(中英文混合输出 )

2015/09/25
8
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

控制器7920,代码没啥好说,我尽量多写了注释,播放动画也很流畅的。

亮点就是支持中英文混合输出,其他没啥。

lcd12864.h源码如下:

#ifndef _LCD12864_H

#define _LCD12864_H

#include "my51.h"

#define LCD_dataBus P0 //总线

sbit LCD_EN = P3^4; //使能控制

sbit LCD_RS = P3^5; //数据_命令选择端

sbit LCD_RW = P3^6; //读写控制

sbit LCD_PSB= P3^7; //串并选择,H并行,L串行

extern bool bShowPicFlag; //绘图时图像显示控制(仅控制GDRAM)

/*************************基本功能函数*********************************************/

extern void LCD12864_init(); //初始化,必须置顶调用

extern void LCD12864_setPos(u8 row, u8 cols); //设置光标位置

extern void LCD12864_writeByte(u8 dat); //写一个字节

extern void LCD12864_writeCmd(u8 cmd); //写指令

extern u8 LCD12864_readByte(); //读一个字节ram

extern u8 LCD12864_readIR(); //读暂存器

extern bool LCD12864_isBusy(); //判忙

/*************************调用基本字库显示文字**************************************/

//独创支持全角半角字符及中英混合的字符串,或字符串的子串,起始行号row(0-3)和列坐标cols(0-15),写满屏幕为止

//行号4-7行是滚动区

extern void LCD12864_writeData(u8 row, u8 cols,u8* pBuf,u8 dataSize);//写一堆数据

extern void LCD12864_earseSomeDDRam(u8 row,u8 cols,u8 dataSize); //擦除N字节DDRam

/*************************用户自定义图标字体****************************************/

extern void LCD12864_writeCGRAM(u8 userRamNum,u8* pCGRAM_userCode); //写自定义图标字体

extern void LCD12864_showCGRAM(u8 row,u8 cols,u8 num) ; //显示自定义图标字体,row(0-3),cols(0-15)

extern void LCD12864_clearCGRAM(u8 CGRAM_groupNum) ; //CGRAM清零(初始化也可清0)

/*************************图像显示功能函数**********************************************/

extern void LCD12864_showGDRAM(bool bShowImage); //GDRAM绘图显示开关

extern void LCD12864_clearGDRAM(); //液晶整个可视区的GDRAM快速清0

//前4参数:起始点x(0-7)位址,y(0-63)坐标,要显示的宽度(1-128)和高度(1-64)[可显示从图像左上角开始的部分区域]

//后4参数:图像代码地址,图像本身的宽度(1-128)和高度(1-64), 反白(true反白,false不反白)

//画图填充GDRAM ,注:显示的区域或者图像本身宽度必须是8的倍数

extern u8 LCD12864_drawGDRAM(u8 x,u8 y,u8 width,u8 height,u8 *pImageCode,u8 imageWidth,u8 imageHight,bool bReverse);

extern void LCD12864_drawDot(u8 x,u8 y,u8 flag); //打点,x(0-127),y(0-63),flag(0正常,1反白,2清0)

extern bool LCD12864_drawXYLine(u8 x1, u8 y1,u8 x2, u8 y2,u8 flag); //画水平或垂直直线

extern void LCD12864_drawAnyLine(u8 x1, u8 y1,u8 x2, u8 y2,u8 flag) ; //画任意直线

extern void LCD12864_drawRectangle(u8 x,u8 y ,u8 width,u8 height,u8 flag);//画矩形

extern void LCD12864_drawFillRect(u8 x,u8 y, u8 width,u8 hight,u8 flag); //填充矩形,可对矩形区反白或清0

extern void LCD12864_drawVerticalSquare(u8 x,u8 y,u8 r,u8 flag) ; //画站立的正方形

extern void LCD12864_drawCircle(u8 x0,u8 y0,u8 r,u8 flag); //画圆

//打点法画图实在太慢了,就不写了,打点法反白矩形区还可以,建议矩形范围小一些,不然比较慢

//打点法效果最好,因为文字的矩形区比较小,速度很快

//不过绘图法反白文字效率高,flash空间充裕的建议用绘图法

/***************************全屏滚动*******************************************/

//需要滚动时,用LCD12864_writeScrollData()函数,参数和LCD12864_writeData()一样

extern void LCD12864_writeScrollData(u8 row,u8 cols,u8* pBuf,u8 dataSize);//写数据 (滚动模式)

extern void LCD12864_setScrollPos(u8 row, u8 cols); //设置滚动模式的坐标

extern void LCD12864_showScrollCGRAM(u8 row,u8 cols,u8 CGRAM_groupNum);//用于CGRAM滚动显示前执行

extern void LCD12864_startScroll(u8 scrollNum,u16 delay_ms); //滚动开始

#endif          

  • lcd12864.rar
    描述:12864驱动源码

相关推荐

电子产业图谱