当前位置: 首页>編程日記>正文

51单片机驱动LCD12864中文字库显示

51单片机驱动LCD12864中文字库显示

51单片机驱动LCD12864中文字库显示

  • 1.LCD12864介绍
  • 2.LCD地址码、字符表、汉字码址表
  • 3.LCD12864 例程

1.LCD12864介绍

① 可显示四行字符,每行可显示8个汉字或者16个数字和字母;
②可串行通信和并行通信;
③ 串口接口管脚信号

管脚号名称LEVEL说明
1VSS0V电源地
2VDD+5V电源正(3.0V——5.5V)
3V0-对比度(亮度)调整
4CSH/L模组片选端,高电平有效
5SIDH/L串行数据输入端
6CLKH/L串行同步时钟:上升沿时读取 SID 数据
15PSBLL:串口方式
17/RESETH/L复位端,低电平有效
19AVDD背光源电压+5V
20KVSS背光源电压0V

④ 并行接口

管脚号名称LEVEL说明
1VSS0V电源地
2Vcc+5V电源正(3.0V——5.5V)
3V0-对比度(亮度)调整
4RS(CS)H/LRS=“H”,表示 DB7——DB0 为显示数据;RS=“L”,表示 DB7——DB0 为显示指令数据
5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到 DB7——DB0;R/W=“L”,E=“H→L”, DB7——DB0 的数据被写到 IR 或 DR
6E(SCLK)H/L使能信号
7SIDH/L三态数据线
8SIDH/L三态数据线
9SIDH/L三态数据线
10SIDH/L三态数据线
11SIDH/L三态数据线
12SIDH/L三态数据线
13SIDH/L三态数据线
14SIDH/L三态数据线
15PSBH/LH:8 位或 4 位并口方式,L:串口方式
16NC-悬空
17/RESETH/L复位端,低电平有效
18VOUTH/LLCD 驱动电压输出端
19AVDD背光源电压+5V
20KVSS背光源电压0V

2.LCD地址码、字符表、汉字码址表

①字符显示地址(每一个地址代表显示区域的一个8x16的点阵)
80H 81H 82H 83H 84H 85H 86H 87H
90H 91H 92H 93H 94H 95H 96H 97H
88H 89H 8AH 8BH 8CH 8DH 8EH 8FH
98H 99H 9AH 9BH 9CH 9DH 9EH 9FH
②符号表(比如显示“ ?” ,则发送字符码为 0X3F )
在这里插入图片描述
③汉字码址表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.LCD12864 例程

lcd12864.c 文件👇

#include<lcd12864.h>void initinal(void)           //初始化,12864有要求的要写上
{
delay(40);
PSB=1;   //并口工作模式
delay(1);
RES=0; //复位
delay(1);
RES=1;   //复位置高
delay(10);
TransferData(0x30,0);
delay(100);
TransferData(0x30,0);
delay(37);
TransferData(0x08,0);
delay(100);
TransferData(0x10,0);
delay(100);
TransferData(0x0C,0);
delay(100);
TransferData(0x01,0);
delay(10);
TransferData(0x06,0);
delay(100);
}void lcd_mesg(unsigned char code *addr1)   //显示汉字函数,8*4=32
{unsigned char i;TransferData(0x80,0);delay(10);for(i=0;i<16;i++){TransferData(*addr1,1);addr1++;}TransferData(0x90,0);delay(10);for(i=16;i<32;i++){TransferData(*addr1,1);addr1++;}TransferData(0x88,0);delay(10);for(i=32;i<48;i++){TransferData(*addr1,1);addr1++;}  TransferData(0x98,0);delay(10);for(i=48;i<64;i++){TransferData(*addr1,1);addr1++;}                 
}/*******************************************************************************
* 函 数 名         : TransferData(data1,DI);
* 函数功能		   : 向LCD发送数据
* 参数:data1  当发送的为数字、英文字母、符号时发送的为一个字节当发送的为汉字时为两个字节DI    0   发送的是命令1   发送的是命令
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/void TransferData(char data1,bit DI) //传送数据或是命令,当DI=0时,传送命令,当DI=1时,传送数据
{WRD=0;RS=DI;delay(1);P0=data1;E=1;delay(1);E=0;
}/*******************************************************************************
* 函 数 名         : delayms();  delay
* 函数功能		   : 计算测得的距离数据
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void delayms(unsigned int n)    
{unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<2000;j++);
}
void delay(unsigned int m)
{unsigned int i,j;for(i=0;i<m;i++)for(j=0;j<10;j++);
}/*********************************************************************
** 函数名称: display_Chinese();
** 入口参数:
** 出口参数:无
** 功能描述: 显示汉字
**********************************************************************/
/*因显示出错,搁置
void display_Chinese(unsigned char page,unsigned char column, unsigned char code *hzk)//显示自己生成的汉字
{unsigned char j=0,i=0;for(j=0;j<2;j++){Send_Cmd(Page_Add+page+j);Send_Cmd(LCDCol_Add+column);for(i=0;i<16;i++) Send_date(hzk[16*j+i]);}
} */

lcd12864.h 文件👇

#ifndef _LCD12864_H
#define _LCD12864_H#include <reg52.h>
#include <stdio.h>
#include <math.h>
#include <string.h>//sbit RS=P2^6;          //定义LCD显示引脚
//sbit WRD=P2^5;
//sbit E=P2^7;
//sbit PSB=P3^2;
//sbit RES=P3^4;sbit RS=P2^6;          //定义LCD显示引脚
sbit WRD=P2^5;
sbit E=P2^7;
sbit PSB=P2^3;
sbit RES=P2^4;#define Page_Add     0xb8//页地址
#define LCDCol_Add     0x40//列地址
#define Start_Line     0xC0//行地址void initinal(void);
void TransferData(char data1,bit DI);
void delayms(unsigned int n);
void delay(unsigned int m);
void lcd_mesg(unsigned char code *addr1);//void Send_Cmd(unsigned char date2) ;//写命令  
//void Send_date(unsigned char date3);//写数据
//void display_Chinese(unsigned char page,unsigned char column, unsigned char code *hzk);//显示自己生成的汉字#endif


https://www.fengoutiyan.com/post/15372.html

相关文章:

  • 单片机用LcD
  • 51单片机lcd1602显示数字
  • 51单片机led
  • 单片机字库
  • 单片机1602
  • 51单片机开发板怎么用
  • 51单片机led闪烁
  • 单片机实物
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機