日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LCD1602和12864显示器

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LCD1602和12864显示器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 LCD顯示器相關背景

1.1 LCD簡介

(1)顯示器,常見顯示器。

(2)LCD(Liquid Crystal Display),液晶顯示器,原理介紹。

(3)LCD應用領域。

(4)LED OLED。

1.2 電子顯示器的原理

(1)像素(分辨率)。

(2)顯存,用來做顯示的內存。

(3)字模。

(4)字庫。

(5)控制器和驅動器。

(6)軟件+硬件實現功能。

2 開始學習LCD1602

2.1 簡介

(1)為什么叫1602(16x2,顯示器顯示2排,每排16個字符)。能顯示的字符數是32,但是像素數不是32,因為一個字符是由多個像素組成的。有可能一個字符是由5*7=35個像素組成的,也有可能是由6*8=48個像素組成的。但是我們不用去管,因為LCD1602內置了字庫了。

(2)帶ASCII碼字庫,不能顯示中文。當我們想讓LCD1602顯示某個ASCII碼字符時,只需要將這個字符對應的ASCII碼發給LCD1602內部的控制器,控制器就會去查字庫得到字模,然后將字模發給內部的驅動器去驅動LCD做顯示。

(3)用途:工業應用。

2.2 原理圖和接線引腳

(1)引腳分為:數據接口(8)+控制接口(3)+VO(1)+電源地(4)。

(2)并行接口:串行就是數據線只有1根,同時只能傳輸1個bit位,如果要傳送多個bit位必須分時傳輸;并行就是數據線有多根,每一根可以傳輸1個bit位,所以同時可以傳輸多個bit位。譬如LCD1602有8根數據線,所以一次同時傳輸8個bit位。

(3)背光亮度調節。

(4)接線確認。

2.3 數據手冊

(1)概念:LCM和LCD,其實lcm就是lcd module(LCD模組)。

(2)主要技術參數解析。

(3)引腳定義(結合原理圖來對照分析)。

(4)控制器接口說明(注意控制器型號)。

RS=1時,D0-D7上傳輸的是數據
RS=0時,D0-D7上傳輸的是命令
RW=1時,表示我們要讀
RW=0時,表示我們要寫
E=1時,表示使能 enable
E=0時,表示禁止(禁能) disable

3 LCD1602控制器的低層時序

3.1 關鍵點

(1)時序走控制接口引腳。

(2)指令碼、狀態字、數據,這三個走數據接口。

(3)注意是并行的。

3.2 讀狀態時序分析

(1)低層時序描述。

(2)官方示例程序。

(3)狀態字的解析方法。

3.3 寫指令時序分析

(1)低層時序描述。

(2)官方示例程序。

(3)指令碼的解析方法。

3.4 讀寫數據

(1)讀數據。

(2)寫數據。

(3)RAM空間。RAM地址范圍(芯片范圍是0-39每行,但是實際只用了0-15每行),數據是什么數據:要顯示的字符的ASCII碼編碼值。

3.5 指令說明

00001000 0x08 關閉顯示
00001100 0x0C 打開顯示不顯示光標
00001111 0x0F 打開顯示并且顯示光標并且光標閃爍
00000110 0x06 地址指針自動加1,整體屏幕不移動
0x80+(0x00-0x0F) 第一行設置地址指針指令
0x80+(0x40-0x4F) 第二行設置地址指針指令
0x01 顯示清屏
0x02 回車

4 代碼實踐

1602.h

#ifndef __1602_H__ #define __1602_H__// 只需要聲明高層時序即可,而低層時序是不需要聲明的。 // 因為我們在頭文件中聲明這個函數,目的是為了讓別的文件去包含這個頭文件 // 從而可以調用這個頭文件中聲明的函數,所以我們只需要聲明1602.c中將來 // 會被外部.c文件調用的那些函數即可。而1602.c中自己使用的內部函數將來也 // 不會被外部.c文件調用,因此就不用聲明了void InitLcd1602(); void LcdSetCursor(unsigned char x,unsigned char y); void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str);#endif

l602.c

#include <reg51.h>// 對LCD1602的底層以及高層時序做封裝// IO接口定義 #define LCD1602_DB P0 //data bus 數據總線 // 控制總線 sbit LCD1602_RS = P2^6; sbit LCD1602_RW = P2^5; sbit LCD1602_EN = P2^7; /************ 低層時序 ********************************/ void Read_Busy() //忙檢測函數,判斷bit7是0,允許執行;1禁止 {unsigned char sta; //LCD1602_DB = 0xff;LCD1602_RS = 0;LCD1602_RW = 1;do{LCD1602_EN = 1;sta = LCD1602_DB;LCD1602_EN = 0; //使能,用完就拉低,釋放總線}while(sta & 0x80); }void Lcd1602_Write_Cmd(unsigned char cmd) //寫命令 {Read_Busy();LCD1602_RS = 0;LCD1602_RW = 0; LCD1602_DB = cmd;LCD1602_EN = 1;LCD1602_EN = 0; }void Lcd1602_Write_Data(unsigned char dat) //寫數據 {Read_Busy();LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_DB = dat;LCD1602_EN = 1;LCD1602_EN = 0; }/************* 高層時序 ******************************/ // 本函數用來設置當前光標位置,其實就是設置當前正在編輯的位置, // 其實就是內部的數據地址指針,其實就是RAM顯存的偏移量 // x范圍是0-15,y=0表示上面一行,y=1表示下面一行 void LcdSetCursor(unsigned char x,unsigned char y) //坐標顯示 {unsigned char addr;if(y == 0)addr = 0x00 + x;elseaddr = 0x40 + x;Lcd1602_Write_Cmd(addr|0x80); }// 函數功能是:從坐標(x,y)開始顯示字符串str // 注意這個函數不能跨行顯示,因為顯存地址是不連續的 // 其實我們可以封裝出一個能夠折行顯示的函數的 void LcdShowStr(unsigned char x,unsigned char y,unsigned char *str) //顯示字符串 {LcdSetCursor(x,y); //當前字符的坐標while(*str != '\0'){Lcd1602_Write_Data(*str++);} }// 初始化LCD,使之能夠開始正常工作 void InitLcd1602() //1602初始化 {Lcd1602_Write_Cmd(0x38); //打開,5*8,8位數據//Lcd1602_Write_Cmd(0x0c); // 打開顯示并且無光標Lcd1602_Write_Cmd(0x0f); // 打開顯示并且光標閃爍Lcd1602_Write_Cmd(0x06);Lcd1602_Write_Cmd(0x01); //清屏 }

main.c

#include "1602.h"void main(void) {InitLcd1602();//LcdShowStr(0, 0, "www.zhulaoshi.org");LcdShowStr(0, 0, "zhulaoshi");//LcdShowStr(0, 1, "angdajiangtang"); }

5 LCD12864介紹

5.1 何為LCD12864

(1)128p*64p,注意不是字符而是pixel。

(2)沒有內置字庫,用戶需要提供字模給LCD12864內部的控制器。

(3)常見外觀有2類(網上找圖看)。

(4)可以顯示文字(英文、中文或其他文字)和圖片(點陣圖)。

5.2 原理圖和數據手冊和接線

(1)接線確認。

(2)原理圖(開發板底板、屏幕轉接板)。

(3)數據手冊(LCD12864、ST7565)。

5.3 編程接口

(1)并行接口。

(2)控制總線+數據總線。

(3)控制總線的定義總結。

6 LCD12864低層時序分析

6.1 學習方法

(1)找準數據手冊中關鍵信息點,用來查而不是挨個看。

(2)數據手冊對照官方示例代碼來參照對比。

(3)要結合各部分原理圖、各部分數據手冊、示例代碼來綜合分析。

(4)必要時要做筆記。

6.2 ST7565低層時序分析

(1)寫指令。

/******************************************************************************* * 函 數 名 : LCD12864_WriteCmd * 函數功能 : 寫入一個命令到12864 * 輸 入 : cmd * 輸 出 : 無 *******************************************************************************/void LcdSt7565_WriteCmd(cmd) { LCD12864_CS = 0; //chip select,打開片選 LCD12864_RD = 1; //disable read,讀失能 LCD12864_RS = 0; //select command,選擇命令 LCD12864_RW = 0; //select write,選擇寫模式 _nop_(); _nop_(); DATA_PORT = cmd; //put command,放置命令 _nop_(); _nop_(); LCD12864_RW = 1; //command writing ,寫入命令 }

(2)寫數據。

/******************************************************************************* * 函 數 名 : LcdSt7565_WriteData * 函數功能 : 寫入一個數據到12864 * 輸 入 : dat * 輸 出 : 無 *******************************************************************************/void LcdSt7565_WriteData(dat) { LCD12864_CS = 0; //chip select,打開片選 LCD12864_RD = 1; //disable read,讀失能 LCD12864_RS = 1; //select data,選擇數據 LCD12864_RW = 0; //select write,選擇寫模式 _nop_(); _nop_(); DATA_PORT = dat; //put data,放置數據 _nop_(); _nop_(); LCD12864_RW = 1; //data writing,寫數據 }

6.3 總結

(1)隨著產品變復雜,資料也會變復雜。

(2)資料會有不完善,甚至錯誤的。

(3)思路要始終清晰,大腦必須有一定復雜度。

7 ST7565的指令集

7.1 高層時序分析

(1)指令式交互系統。

(2)指令表是關鍵。

7.2 指令系統學習方法

(1)沿著數據手冊順序分析。

(2)沿著示例代碼按需分析。

7.3 逐個分析

(1)1號指令:Display ON/OFF,
10101111 0xAF on
10101110 0xAE off

(2)2號指令:顯示行號設置
01000000+(0-63)
0x40+(0-63) 表示要將內容顯示在第0-63行

(3)3號指令:設置page address
10110000+(0-7)
0xB0+(0-7) 表示設置page address到0-8

(4)4號指令:設置column address
一個完整指令是分為2條相連的指令合起來的。必須連發2個
指令1:00010000+高4位 0x10+高4位
指令2:00000000+低4位 0x00+低4位

(8)設置ADC:
0xA0 normal, columu address 從左往右的
0xA1 reverse, column address 從右往左的

7.4 LCD初始化函數

(1)第一類指令:時序需要的。

(2)第二類指令:硬件特性設置需要的(譬如屏幕亮度、對比度之類的)。

(3)第三類指令:顯示參數相關的:A1/A0 C8/C0 0x40+(0-63)。

/******************************************************************************* * 函 數 名 : LCD12864_Init * 函數功能 : 初始化12864 * 輸 入 : 無 * 輸 出 : 無 * 說 明 : LCD12864的命令指令可以查看例程文件夾下的《ST7565p數據手冊》 * * 的第51頁的位置。 *******************************************************************************/void Lcd12864_Init() {uchar i;LCD12864_RSET = 0;for (i=0; i<100; i++);LCD12864_CS = 0;LCD12864_RSET = 1;//----------------Start Initial Sequence-------////------程序初始化設置,具體命令可以看文件夾下---////--軟件初始化--//LcdSt7565_WriteCmd(0xE2); //resetfor (i=0; i<100; i++); //延時一下//--表格第8個命令,0xA0段(左右)方向選擇正常方向(0xA1為反方向)--//// 0xA0對應0-127,0xA1對應4-131LcdSt7565_WriteCmd(0xA0); //ADC select segment direction //--表格第15個命令,0xC8普通(上下)方向選擇選擇反向,0xC0為正常方向--// LcdSt7565_WriteCmd(0xC8); //Common direction //--表格第9個命令,0xA6為設置字體為黑色,背景為白色---////--0xA7為設置字體為白色,背景為黑色---//LcdSt7565_WriteCmd(0xA6); //reverse display//--表格第10個命令,0xA4像素正常顯示,0xA5像素全開--//LcdSt7565_WriteCmd(0xA4); //normal display//--表格第11個命令,0xA3偏壓為1/7,0xA2偏壓為1/9--//LcdSt7565_WriteCmd(0xA2); //bias set 1/9//--表格第19個命令,這個是個雙字節的命令,0xF800選擇增壓為4X;--////--0xF801,選擇增壓為5X,其實效果差不多--// LcdSt7565_WriteCmd(0xF8); //Boost ratio setLcdSt7565_WriteCmd(0x01); //x4//--表格第18個命令,這個是個雙字節命令,高字節為0X81,低字節可以--////--選擇從0x00到0X3F。用來設置背景光對比度。---/LcdSt7565_WriteCmd(0x81); //V0 a setLcdSt7565_WriteCmd(0x23);//--表格第17個命令,選擇調節電阻率--//LcdSt7565_WriteCmd(0x25); //Ra/Rb set//--表格第16個命令,電源設置。--//LcdSt7565_WriteCmd(0x2F);for (i=0; i<100; i++);//--表格第2個命令,設置顯示開始位置--//LcdSt7565_WriteCmd(0x40); //start line//--表格第1個命令,開啟顯示--//LcdSt7565_WriteCmd(0xAF); // display onfor (i=0; i<100; i++);}

7.5 清屏操作

/******************************************************************************* * 函 數 名 : LCD12864_ClearScreen * 函數功能 : 清屏12864 * 輸 入 : 無 * 輸 出 : 無 *******************************************************************************/void Lcd12864_ClearScreen(void) { uchar i, j; for(i=0; i<8; i++) { //--表格第3個命令,設置Y的坐標--// //--Y軸有64個,一個坐標8位,也就是有8個坐標--// //所以一般我們使用的也就是從0xB0到0x07,就夠了--// LcdSt7565_WriteCmd(0xB0+i); //--表格第4個命令,設置X坐標--// //--當你的段初始化為0xA1時,X坐標從0x10,0x04到0x18,0x04,一共128位--// //--當你的段初始化為0xA0時,X坐標從0x10,0x00到0x18,0x00,一共128位--// //--在寫入數據之后X坐標的坐標是會自動加1的,我們初始化使用0xA0所以--// //--我們的X坐標從0x10,0x00開始---// LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x00); //--X軸有128位,就一共刷128次,X坐標會自動加1,所以我們不用再設置坐標--// for(j=0; j<128; j++) { LcdSt7565_WriteData(0x00); //如果設置背景為白色時,清屏選擇0XFF } } }

8 LCD12864顯示文字

8.1 文字顯示的原理分析

(1)字模。

(2)像素&顯存的對應關系。

(3)顯示函數:將字模丟到正確的顯存中去。

8.2 字模的獲取

(1)芯片自帶字庫。

(2)網上下載字庫。

(3)字模生成軟件自助生成。

8.3 代碼實戰顯示6*8 ASCII碼

(1)先弄好低層時序和清屏函數。

(2)網上找6*8的ASCII碼字庫。

(3)寫代碼去顯示。

8.4 完成代碼

// 在屏幕的(x, y)坐標處,顯示c這個字符 // (x, y)表示像素點的坐標值,所以x范圍是0-127;y的范圍是0-63 // 注意,因為顯示文字是以整頁為單位的,為了簡單起見必須頁對齊顯示 // 因此給的y值必須是頁首地址,就是0 8 16 24 等數值 void ascii_display(unsigned char x, unsigned char y, unsigned char c) {unsigned char i = 0;unsigned char x1, x2;/*LcdSt7565_WriteCmd(0xB0); // x坐標,只要在范圍內別超出就可以了LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x04);for (i=0; i<6; i++){LcdSt7565_WriteData(0xff); } */// 第一步,設置顯示的x和y坐標// y坐標,其實就是page addressLcdSt7565_WriteCmd(0xB0 + y / 8); // x坐標,只要在范圍內別超出就可以了x1 = (x >> 4) & 0x0f;x2 = x & 0x0f;LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2);// 第二步,找到c對應的字模// ASCII_6_8[c-20][0] 字模的第一個字節// 第三步,將字模丟到顯存中去for (i=0; i<6; i++){LcdSt7565_WriteData(ASCII_6_8[c-0x20][i]); }}

8.5 測試調試

(1)看顯示效果。

(2)換不同字符去顯示。

(3)換不同位置去顯示。

8.6 思考

(1)其他大小尺寸的字模如何顯示。

(2)取模方式對顯示函數的影響。

8.7 遺留問題

(1)初始化和字模不匹配,造成字是反的。

(2)初始化不對,造成x坐標是從右往左的。

解決遺留問題:修改初始化代碼從左向右顯示

8.8 思考:超過8*8的字符如何顯示

(1)常見漢字字模大小是16*16。

(2)去哪里找漢字字模。

8.9 寫漢字字模顯示函數

void hanzi_display(unsigned char x, unsigned char y, unsigned char zimo[]) {unsigned char i = 0;unsigned char x1, x2;// 先顯示上面一半LcdSt7565_WriteCmd(0xB0 + y / 8); // x坐標,只要在范圍內別超出就可以了x1 = (x >> 4) & 0x0f;x2 = x & 0x0f;LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2);for (i=0; i<16; i++){LcdSt7565_WriteData(zimo[i]); }// 再顯示下面一半LcdSt7565_WriteCmd(0xB0 + y / 8 + 1); // x坐標,只要在范圍內別超出就可以了x1 = (x >> 4) & 0x0f;x2 = x & 0x0f;LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2);for (i=16; i<32; i++){LcdSt7565_WriteData(zimo[i]); } }

9 LCD12864顯示圖片

(1)思路分析。

(2)圖片數據獲取。

(3)寫顯示函數。

(4)調試。

// 在屏幕上顯示一個圖片,從屏幕左上角開始顯示 void pic_display(unsigned char pic[]) {uchar i, j;uint k = 0;for(i=0; i<8; i++){ LcdSt7565_WriteCmd(0xB0+i); LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x00); //--X軸有128位,就一共刷128次,X坐標會自動加1,所以我們不用再設置坐標--//for(j=0; j<128; j++){LcdSt7565_WriteData(pic[k++]); //如果設置背景為白色時,清屏選擇0XFF}}}

10 代碼

st7565.h

#ifndef __ST7565_H #define __ST7565_H#include<reg51.h> #include<intrins.h>//---重定義關鍵詞---// #ifndef uchar #define uchar unsigned char #endif#ifndef uint #define uint unsigned int #endif//--定時使用的IO口--// #define DATA_PORT P0 sbit LCD12864_CS = P3^2; sbit LCD12864_RSET = P3^3; sbit LCD12864_RS = P2^6; sbit LCD12864_RW = P2^7; sbit LCD12864_RD = P2^5;//--定義全局函數--// void LcdSt7565_WriteCmd(cmd); void LcdSt7565_WriteData(dat); void Lcd12864_Init(); void Lcd12864_ClearScreen(void);void ascii_display(unsigned char x, unsigned char y, unsigned char c); void hanzi_display(unsigned char x, unsigned char y, unsigned char zimo[]); void pic_display(unsigned char pic[]);#endif

st7565p.c

#include "st7565p.h" #include "Font6_8.h" // 網上下載的6*8的ASCII碼字符表/******************************************************************************* * 函 數 名 : LCD12864_WriteCmd * 函數功能 : 寫入一個命令到12864 * 輸 入 : cmd * 輸 出 : 無 *******************************************************************************/void LcdSt7565_WriteCmd(cmd) { LCD12864_CS = 0; //chip select,打開片選 LCD12864_RD = 1; //disable read,讀失能 LCD12864_RS = 0; //select command,選擇命令 LCD12864_RW = 0; //select write,選擇寫模式 _nop_(); _nop_(); DATA_PORT = cmd; //put command,放置命令 _nop_(); _nop_(); LCD12864_RW = 1; //command writing ,寫入命令 }/******************************************************************************* * 函 數 名 : LcdSt7565_WriteData * 函數功能 : 寫入一個數據到12864 * 輸 入 : dat * 輸 出 : 無 *******************************************************************************/void LcdSt7565_WriteData(dat) { LCD12864_CS = 0; //chip select,打開片選 LCD12864_RD = 1; //disable read,讀失能 LCD12864_RS = 1; //select data,選擇數據 LCD12864_RW = 0; //select write,選擇寫模式 _nop_(); _nop_(); DATA_PORT = dat; //put data,放置數據 _nop_(); _nop_(); LCD12864_RW = 1; //data writing,寫數據 } /******************************************************************************* * 函 數 名 : LCD12864_Init * 函數功能 : 初始化12864 * 輸 入 : 無 * 輸 出 : 無 * 說 明 : LCD12864的命令指令可以查看例程文件夾下的《ST7565p數據手冊》 * * 的第51頁的位置。 *******************************************************************************/void Lcd12864_Init() { uchar i; LCD12864_RSET = 0; for (i=0; i<100; i++); LCD12864_CS = 0; LCD12864_RSET = 1; //----------------Start Initial Sequence-------// //------程序初始化設置,具體命令可以看文件夾下---// //--軟件初始化--// LcdSt7565_WriteCmd(0xE2); //reset for (i=0; i<100; i++); //延時一下 //--表格第8個命令,0xA0段(左右)方向選擇正常方向(0xA1為反方向)--// // 0xA0對應0-127,0xA1對應4-131 LcdSt7565_WriteCmd(0xA0); //ADC select segment direction //--表格第15個命令,0xC8普通(上下)方向選擇選擇反向,0xC0為正常方向--// LcdSt7565_WriteCmd(0xC8); //Common direction //--表格第9個命令,0xA6為設置字體為黑色,背景為白色---// //--0xA7為設置字體為白色,背景為黑色---// LcdSt7565_WriteCmd(0xA6); //reverse display //--表格第10個命令,0xA4像素正常顯示,0xA5像素全開--// LcdSt7565_WriteCmd(0xA4); //normal display //--表格第11個命令,0xA3偏壓為1/7,0xA2偏壓為1/9--// LcdSt7565_WriteCmd(0xA2); //bias set 1/9 //--表格第19個命令,這個是個雙字節的命令,0xF800選擇增壓為4X;--// //--0xF801,選擇增壓為5X,其實效果差不多--// LcdSt7565_WriteCmd(0xF8); //Boost ratio set LcdSt7565_WriteCmd(0x01); //x4 //--表格第18個命令,這個是個雙字節命令,高字節為0X81,低字節可以--// //--選擇從0x00到0X3F。用來設置背景光對比度。---/ LcdSt7565_WriteCmd(0x81); //V0 a set LcdSt7565_WriteCmd(0x23); //--表格第17個命令,選擇調節電阻率--// LcdSt7565_WriteCmd(0x25); //Ra/Rb set //--表格第16個命令,電源設置。--// LcdSt7565_WriteCmd(0x2F); for (i=0; i<100; i++); //--表格第2個命令,設置顯示開始位置--// LcdSt7565_WriteCmd(0x40); //start line //--表格第1個命令,開啟顯示--// LcdSt7565_WriteCmd(0xAF); // display on for (i=0; i<100; i++);}/******************************************************************************* * 函 數 名 : LCD12864_ClearScreen * 函數功能 : 清屏12864 * 輸 入 : 無 * 輸 出 : 無 *******************************************************************************/void Lcd12864_ClearScreen(void) { uchar i, j; for(i=0; i<8; i++) { //--表格第3個命令,設置Y的坐標--// //--Y軸有64個,一個坐標8位,也就是有8個坐標--// //所以一般我們使用的也就是從0xB0到0x07,就夠了--// LcdSt7565_WriteCmd(0xB0+i); //--表格第4個命令,設置X坐標--// //--當你的段初始化為0xA1時,X坐標從0x10,0x04到0x18,0x04,一共128位--// //--當你的段初始化為0xA0時,X坐標從0x10,0x00到0x18,0x00,一共128位--// //--在寫入數據之后X坐標的坐標是會自動加1的,我們初始化使用0xA0所以--// //--我們的X坐標從0x10,0x00開始---// LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x00); //--X軸有128位,就一共刷128次,X坐標會自動加1,所以我們不用再設置坐標--// for(j=0; j<128; j++) { LcdSt7565_WriteData(0x00); //如果設置背景為白色時,清屏選擇0XFF } } }// 在屏幕的(x, y)坐標處,顯示c這個字符 // (x, y)表示像素點的坐標值,所以x范圍是0-127;y的范圍是0-63 // 注意,因為顯示文字是以整頁為單位的,為了簡單起見必須頁對齊顯示 // 因此給的y值必須是頁首地址,就是0 8 16 24 等數值 void ascii_display(unsigned char x, unsigned char y, unsigned char c) { unsigned char i = 0; unsigned char x1, x2;/* LcdSt7565_WriteCmd(0xB0); // x坐標,只要在范圍內別超出就可以了 LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x04); for (i=0; i<6; i++){ LcdSt7565_WriteData(0xff); } */// 第一步,設置顯示的x和y坐標// y坐標,其實就是page address LcdSt7565_WriteCmd(0xB0 + y / 8); // x坐標,只要在范圍內別超出就可以了 x1 = (x >> 4) & 0x0f; x2 = x & 0x0f; LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2);// 第二步,找到c對應的字模// ASCII_6_8[c-20][0] 字模的第一個字節// 第三步,將字模丟到顯存中去for (i=0; i<6; i++){LcdSt7565_WriteData(ASCII_6_8[c-0x20][i]); }}/* void string_display(unsigned char x, unsigned char y, unsigned char str[]) {} */void hanzi_display(unsigned char x, unsigned char y, unsigned char zimo[]) {unsigned char i = 0;unsigned char x1, x2;// 先顯示上面一半LcdSt7565_WriteCmd(0xB0 + y / 8); // x坐標,只要在范圍內別超出就可以了x1 = (x >> 4) & 0x0f; x2 = x & 0x0f; LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2); for (i=0; i<16; i++) { LcdSt7565_WriteData(zimo[i]); } // 再顯示下面一半 LcdSt7565_WriteCmd(0xB0 + y / 8 + 1); // x坐標,只要在范圍內別超出就可以了 x1 = (x >> 4) & 0x0f; x2 = x & 0x0f; LcdSt7565_WriteCmd(0x10 + x1); LcdSt7565_WriteCmd(0x00 + x2); for (i=16; i<32; i++) { LcdSt7565_WriteData(zimo[i]); } }// 在屏幕上顯示一個圖片,從屏幕左上角開始顯示 void pic_display(unsigned char pic[]) { uchar i, j; uint k = 0; for(i=0; i<8; i++) { LcdSt7565_WriteCmd(0xB0+i); LcdSt7565_WriteCmd(0x10); LcdSt7565_WriteCmd(0x00); //--X軸有128位,就一共刷128次,X坐標會自動加1,所以我們不用再設置坐標--// for(j=0; j<128; j++) { LcdSt7565_WriteData(pic[k++]); //如果設置背景為白色時,清屏選擇0XFF } }}

zimo.h

#ifndef __ZIMO_H__ #define __ZIMO_H__/* unsigned char code zimo_zhu[] = {0x80,0xA0,0x90,0x8E,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0x88,0x80,0x80,0x00, 0x20,0x20,0x10,0x08,0x04,0x02,0x01,0xFF,0x01,0x02,0x04,0x08,0x10,0x20,0x20,0x00,};unsigned char code zimo_you[] = {0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00, 0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00,};unsigned char code zimo_peng[] = {0x00,0xFE,0x22,0xFE,0x00,0xFE,0x22,0xFE,0x00,0xFC,0x16,0x25,0x84,0xFC,0x00,0x00, 0x60,0x1F,0x22,0xBF,0x40,0x3F,0x82,0xFF,0x00,0x13,0x12,0x12,0x52,0x82,0x7E,0x00,}; */unsigned char code zimo_zhuyoupeng[3][32] = { // 朱 {0x80,0xA0,0x90,0x8E,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0x88,0x80,0x80,0x00, 0x20,0x20,0x10,0x08,0x04,0x02,0x01,0xFF,0x01,0x02,0x04,0x08,0x10,0x20,0x20,0x00,}, // 有 {0x04,0x04,0x04,0x84,0xE4,0x3C,0x27,0x24,0x24,0x24,0x24,0xE4,0x04,0x04,0x04,0x00, 0x04,0x02,0x01,0x00,0xFF,0x09,0x09,0x09,0x09,0x49,0x89,0x7F,0x00,0x00,0x00,0x00,}, // 鵬 {0x00,0xFE,0x22,0xFE,0x00,0xFE,0x22,0xFE,0x00,0xFC,0x16,0x25,0x84,0xFC,0x00,0x00, 0x60,0x1F,0x22,0xBF,0x40,0x3F,0x82,0xFF,0x00,0x13,0x12,0x12,0x52,0x82,0x7E,0x00,}, };#endif

pic.h

#ifndef __PICTURE_H__ #define __PICTURE_H__unsigned char code pic[] = { 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,0xC0,0xC0,0xC0,0xC0,0xC8,0xD8, 0xF8,0x78,0x78,0x18,0x18,0x38,0x38,0x3E,0x3C,0x1C,0x38,0x70,0x70,0x60,0xC0,0x60, 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x40,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xFC,0x78,0x30,0xA0,0xE0,0x60, 0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0, 0xE0,0xE0,0xC0,0xC0,0x80,0xC0,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, 0xC0,0xE2,0xFE,0x9C,0xB0,0x30,0xE0,0x60,0x60,0x60,0x20,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF9,0x1D, 0x0F,0x07,0x07,0x00,0x00,0x00,0x00,0x60,0x60,0xA0,0xB0,0xF0,0xF0,0xD0,0x78,0x10, 0x00,0x00,0x02,0x02,0x02,0x02,0x1A,0x1B,0x1B,0x02,0x80,0x80,0x01,0x01,0x03,0x03, 0x06,0x1E,0x3C,0x70,0xE0,0xE0,0x80,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x3F,0x7E, 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x05,0x05,0x3F, 0x2F,0x3F,0x37,0x35,0x33,0x31,0x11,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,0x03,0x03,0x0F,0x1E,0x3C,0x70,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x7F,0xF0,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x04, 0x04,0x00,0x04,0x76,0x76,0x3E,0xBE,0x8A,0x83,0x94,0xDC,0x4C,0x08,0x00,0x00,0x00, 0xC0,0xC0,0x60,0xF0,0xB0,0xB7,0xBF,0x90,0x90,0x10,0x10,0x10,0x90,0x90,0xF0,0x70, 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x12,0x12,0x12, 0x12,0xFA,0xFE,0x16,0x16,0x16,0x12,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,0x80,0x80,0x80,0x80,0xC1,0x43, 0x63,0x66,0x3E,0x18,0x10,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, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1D,0x7E,0xF6,0xC3,0x01,0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0xE1, 0xE1,0xE1,0xE1,0xE0,0xE0,0xE0,0x80,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,0x18,0x18,0x1C,0x1C,0x1C,0x1E,0x1E,0x9A,0x8A,0x8B,0x8D,0x8D,0xCC,0xCC,0x44, 0x44,0x46,0x06,0x06,0x06,0x02,0x0E,0x3E,0xB0,0x80,0xC0,0xC0,0xC0,0x60,0x70,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,0xFF,0xF8,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0F,0x0E, 0x0E,0x0F,0x1E,0x0E,0x0E,0x1E,0x18,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, 0x10,0x10,0x18,0x18,0x18,0x18,0x1C,0x1C,0x1C,0x0C,0x0C,0x8C,0x8C,0x84,0x86,0xC6, 0xC6,0x46,0x46,0x63,0x63,0x23,0x23,0x31,0x31,0x11,0x11,0x18,0x18,0x0C,0x0C,0x04, 0x04,0x06,0x06,0x02,0x03,0x03,0x01,0x81,0xFF,0x7F,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,0x07,0x1F,0x0C,0x0C,0x0C,0x04, 0x04,0x04,0x04,0x04,0x0C,0x8C,0xFC,0x70,0x30,0x00,0x00,0x3E,0xBE,0xC0,0x7F,0x1F, 0x00,0x7E,0x02,0xFF,0xFF,0x22,0x3E,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, 0x04,0x04,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0xC0,0x70,0x78,0x18,0x0E,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0, 0xF0,0xF0,0xD8,0xD8,0xC8,0xC8,0xEC,0xE4,0xE4,0x66,0x66,0x66,0x67,0x7F,0x7F,0xE0, 0xC0,0xC0,0xD8,0xFC,0xFF,0x73,0x01,0x20,0x70,0x70,0x30,0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x10,0x10,0x30,0x30,0x30, 0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,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,0x80,0xC0,0xE0,0xF0,0xB8,0xDE,0xC6, 0xC3,0xC3,0x61,0x20,0x20,0x30,0x10,0x18,0x18,0x0C,0x0C,0x7C,0x7C,0x5E,0xDE,0xC6, 0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 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,0x02,0x06,0x06,0x06,0x00,0x00,0x00, };#endif

Font6_8.h

/** Font6_8.h** Created on: 2012-2-5* Author: Administrator*/#ifndef FONT6_8_H_ #define FONT6_8_H_unsigned char code ASCII_6_8[][6] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00} // 20 ,{0x00, 0x00, 0x00, 0x5f, 0x00, 0x00} // 21 ! ,{0x00, 0x00, 0x07, 0x00, 0x07, 0x00} // 22 " ,{0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 # ,{0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $ ,{0x00, 0x23, 0x13, 0x08, 0x64, 0x62} // 25 % ,{0x00, 0x36, 0x49, 0x55, 0x22, 0x50} // 26 & ,{0x00, 0x00, 0x05, 0x03, 0x00, 0x00} // 27 ' ,{0x00, 0x00, 0x1c, 0x22, 0x41, 0x00} // 28 ( ,{0x00, 0x00, 0x41, 0x22, 0x1c, 0x00} // 29 ) ,{0x00, 0x14, 0x08, 0x3e, 0x08, 0x14} // 2a * ,{0x00, 0x08, 0x08, 0x3e, 0x08, 0x08} // 2b + ,{0x00, 0x00, 0x50, 0x30, 0x00, 0x00} // 2c , ,{0x00, 0x08, 0x08, 0x08, 0x08, 0x08} // 2d - ,{0x00, 0x00, 0x60, 0x60, 0x00, 0x00} // 2e . ,{0x00, 0x20, 0x10, 0x08, 0x04, 0x02} // 2f / ,{0x00, 0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0 ,{0x00, 0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1 ,{0x00, 0x42, 0x61, 0x51, 0x49, 0x46} // 32 2 ,{0x00, 0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3 ,{0x00, 0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4 ,{0x00, 0x27, 0x45, 0x45, 0x45, 0x39} // 35 5 ,{0x00, 0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6 ,{0x00, 0x01, 0x71, 0x09, 0x05, 0x03} // 37 7 ,{0x00, 0x36, 0x49, 0x49, 0x49, 0x36} // 38 8 ,{0x00, 0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9 ,{0x00, 0x00, 0x36, 0x36, 0x00, 0x00} // 3a : ,{0x00, 0x00, 0x56, 0x36, 0x00, 0x00} // 3b ; ,{0x00, 0x08, 0x14, 0x22, 0x41, 0x00} // 3c < ,{0x00, 0x14, 0x14, 0x14, 0x14, 0x14} // 3d = ,{0x00, 0x00, 0x41, 0x22, 0x14, 0x08} // 3e > ,{0x00, 0x02, 0x01, 0x51, 0x09, 0x06} // 3f ? ,{0x00, 0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @ ,{0x00, 0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A ,{0x00, 0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B ,{0x00, 0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C ,{0x00, 0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D ,{0x00, 0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E ,{0x00, 0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F ,{0x00, 0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G ,{0x00, 0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H ,{0x00, 0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I ,{0x00, 0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J ,{0x00, 0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K ,{0x00, 0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L ,{0x00, 0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M ,{0x00, 0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N ,{0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O ,{0x00, 0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P ,{0x00, 0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q ,{0x00, 0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R ,{0x00, 0x46, 0x49, 0x49, 0x49, 0x31} // 53 S ,{0x00, 0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T ,{0x00, 0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U ,{0x00, 0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V ,{0x00, 0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W ,{0x00, 0x63, 0x14, 0x08, 0x14, 0x63} // 58 X ,{0x00, 0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y ,{0x00, 0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z ,{0x00, 0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [ ,{0x00, 0x02, 0x04, 0x08, 0x10, 0x20} // 5c \ // ,{0x00, 0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ] ,{0x00, 0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^ ,{0x00, 0x40, 0x40, 0x40, 0x40, 0x40} // 5f _ ,{0x00, 0x00, 0x01, 0x02, 0x04, 0x00} // 60 ` ,{0x00, 0x20, 0x54, 0x54, 0x54, 0x78} // 61 a ,{0x00, 0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b ,{0x00, 0x38, 0x44, 0x44, 0x44, 0x20} // 63 c ,{0x00, 0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d ,{0x00, 0x38, 0x54, 0x54, 0x54, 0x18} // 65 e ,{0x00, 0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f ,{0x00, 0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g ,{0x00, 0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h ,{0x00, 0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i ,{0x00, 0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j ,{0x00, 0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k ,{0x00, 0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l ,{0x00, 0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m ,{0x00, 0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n ,{0x00, 0x38, 0x44, 0x44, 0x44, 0x38} // 6f o ,{0x00, 0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p ,{0x00, 0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q ,{0x00, 0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r ,{0x00, 0x48, 0x54, 0x54, 0x54, 0x20} // 73 s ,{0x00, 0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t ,{0x00, 0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u ,{0x00, 0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v ,{0x00, 0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w ,{0x00, 0x44, 0x28, 0x10, 0x28, 0x44} // 78 x ,{0x00, 0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y ,{0x00, 0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z ,{0x00, 0x00, 0x08, 0x36, 0x41, 0x00} // 7b { ,{0x00, 0x00, 0x00, 0x7f, 0x00, 0x00} // 7c | ,{0x00, 0x00, 0x41, 0x36, 0x08, 0x00} // 7d } ,{0x00, 0x10, 0x08, 0x08, 0x10, 0x08} // 7e ~ ,{0x00, 0x78, 0x46, 0x41, 0x46, 0x78} // 7f (delete) }; /* static const char sign[][6] = {{0x00, 0x08, 0x08, 0x2a, 0x1c, 0x08} // 00 -> ,{0x00, 0x08, 0x1c, 0x2a, 0x08, 0x08} // 01 <- ,{0x00, 0x04, 0x02, 0x7f, 0x02, 0x04} // 02 ↑ ,{0x00, 0x10, 0x20, 0x7f, 0x20, 0x10} // 03 ↓ ,{0x00, 0x15, 0x16, 0x7c, 0x16, 0x15} // 04 ¥ ,{0x00, 0x03, 0x3b, 0x44, 0x44, 0x44} // 05 ℃ ,{0x00, 0x03, 0x03, 0x7c, 0x14, 0x14} // 06 ℉ ,{0x00, 0x44, 0x28, 0x10, 0x28, 0x44} // 07 × ,{0x00, 0x08, 0x08, 0x2a, 0x08, 0x08} // 08 ÷ ,{0x00, 0x38, 0x44, 0x48, 0x30, 0x2c} // 09 α ,{0x00, 0xf8, 0x54, 0x54, 0x54, 0x28} // 0a β ,{0x00, 0x28, 0x54, 0x54, 0x44, 0x20} // 0b ε ,{0x00, 0x3e, 0x49, 0x09, 0x09, 0x06} // 0c ρ ,{0x00, 0x38, 0x44, 0x4c, 0x54, 0x24} // 0d σ ,{0x00, 0x40, 0x3f, 0x08, 0x08, 0x1f} // 0e μ ,{0x00, 0x1f, 0x08, 0x08, 0x3f, 0x40} // 0f η ,{0x00, 0x3c, 0x4a, 0x4a, 0x4a, 0x3c} // 10 θ ,{0x00, 0x58, 0x64, 0x04, 0x64, 0x58} // 11 Ω ,{0x00, 0x44, 0x3c, 0x04, 0x7c, 0x44} // 12 π ,{0x00, 0x30, 0x28, 0x10, 0x28, 0x18} // 13 ∞ ,{0x00, 0x30, 0x28, 0x24, 0x28, 0x30} // 14 △ ,{0x00, 0x08, 0x1c, 0x08, 0x08, 0x0e} // 15 (Enter) };*/#endif /* FONT6_8_H_ */

main.c

#include "st7565p.h" #include "zimo.h" #include "pic.h"void main(void) {Lcd12864_Init();Lcd12864_ClearScreen();// ascii_display(40, 8, '%');/*hanzi_display(0, 0, zimo_zhu);hanzi_display(16, 0, zimo_you);hanzi_display(32, 0, zimo_peng); */ /*hanzi_display(16*0, 16, zimo_zhuyoupeng[0]);hanzi_display(16*1, 16, zimo_zhuyoupeng[1]);hanzi_display(16*2, 16, zimo_zhuyoupeng[2]); */pic_display(pic);while (1); }

總結

以上是生活随笔為你收集整理的LCD1602和12864显示器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。