• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

12864液晶驅(qū)動源碼(中英文混合輸出 )

2015/09/25
6
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

lcd12864.rar

共1個文件

控制器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; //數(shù)據(jù)_命令選擇端

sbit LCD_RW = P3^6; //讀寫控制

sbit LCD_PSB= P3^7; //串并選擇,H并行,L串行

extern bool bShowPicFlag; //繪圖時圖像顯示控制(僅控制GDRAM)

/*************************基本功能函數(shù)*********************************************/

extern void LCD12864_init(); //初始化,必須置頂調(diào)用

extern void LCD12864_setPos(u8 row, u8 cols); //設(shè)置光標位置

extern void LCD12864_writeByte(u8 dat); //寫一個字節(jié)

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

extern u8 LCD12864_readByte(); //讀一個字節(jié)ram

extern u8 LCD12864_readIR(); //讀暫存器

extern bool LCD12864_isBusy(); //判忙

/*************************調(diào)用基本字庫顯示文字**************************************/

//獨創(chuàng)支持全角半角字符及中英混合的字符串,或字符串的子串,起始行號row(0-3)和列坐標cols(0-15),寫滿屏幕為止

//行號4-7行是滾動區(qū)

extern void LCD12864_writeData(u8 row, u8 cols,u8* pBuf,u8 dataSize);//寫一堆數(shù)據(jù)

extern void LCD12864_earseSomeDDRam(u8 row,u8 cols,u8 dataSize); //擦除N字節(jié)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)

/*************************圖像顯示功能函數(shù)**********************************************/

extern void LCD12864_showGDRAM(bool bShowImage); //GDRAM繪圖顯示開關(guān)

extern void LCD12864_clearGDRAM(); //液晶整個可視區(qū)的GDRAM快速清0

//前4參數(shù):起始點x(0-7)位址,y(0-63)坐標,要顯示的寬度(1-128)和高度(1-64)[可顯示從圖像左上角開始的部分區(qū)域]

//后4參數(shù):圖像代碼地址,圖像本身的寬度(1-128)和高度(1-64), 反白(true反白,false不反白)

//畫圖填充GDRAM ,注:顯示的區(qū)域或者圖像本身寬度必須是8的倍數(shù)

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); //填充矩形,可對矩形區(qū)反白或清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); //畫圓

//打點法畫圖實在太慢了,就不寫了,打點法反白矩形區(qū)還可以,建議矩形范圍小一些,不然比較慢

//打點法效果最好,因為文字的矩形區(qū)比較小,速度很快

//不過繪圖法反白文字效率高,flash空間充裕的建議用繪圖法

/***************************全屏滾動*******************************************/

//需要滾動時,用LCD12864_writeScrollData()函數(shù),參數(shù)和LCD12864_writeData()一樣

extern void LCD12864_writeScrollData(u8 row,u8 cols,u8* pBuf,u8 dataSize);//寫數(shù)據(jù) (滾動模式)

extern void LCD12864_setScrollPos(u8 row, u8 cols); //設(shè)置滾動模式的坐標

extern void LCD12864_showScrollCGRAM(u8 row,u8 cols,u8 CGRAM_groupNum);//用于CGRAM滾動顯示前執(zhí)行

extern void LCD12864_startScroll(u8 scrollNum,u16 delay_ms); //滾動開始

#endif          

  • lcd12864.rar
    下載
    描述:12864驅(qū)動源碼

相關(guān)推薦