1602A按指定位置显示一串字符函数

合集下载

LCD1602汉字显示讲解

LCD1602汉字显示讲解

LCD1602显示汉字研究与程序设计1602是一款最常用也是最便宜的液晶显示屏。

最多可以显示两行标准字符,每行最多可以显示16个字符。

1602可以显示内部常用字符(包括阿拉伯数字,英文字母大小写,常用符号和日文假名等),也可以显示自定义字符(单或多个字符组成的简单汉字,符号,图案等,最多可以产生8个自定义字符)。

一、显示常用字符。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是41H,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”十进制十六进制ASCII字符十进制十六进制ASCII字符十进制十六进制ASCII字符00 00 自定义字符1 56 38 8 96 60 `01 01 自定义字符2 57 39 9 97 61 a02 02 自定义字符3 58 3A : 98 62 b03 03 自定义字符4 59 3B ; 99 63 c04 04 自定义字符5 60 3C < 100 64 d05 05 自定义字符6 61 3D = 101 65 e06 06 自定义字符7 62 3E > 102 66 f07 07 自定义字符8 63 3F ? 103 67 g08 08 自定义字符1 64 40 @ 104 68 h09 09 自定义字符2 65 41 A 105 69 i10 0A 自定义字符3 66 42 B 106 6A j11 0B 自定义字符4 67 43 C 107 6B k12 0C 自定义字符5 68 44 D 108 6C l13 0D 自定义字符6 69 45 E 109 6D m14 0E 自定义字符7 70 46 F 110 6E n15 0F 自定义字符8 71 47 G 111 6F o32 20 空格72 48 H 112 70 p33 21 ! 73 49 I 113 71 q34 22 " 74 4A J 114 72 r35 23 # 75 4B K 115 73 s36 24 $ 76 4C L 116 74 t37 25 % 77 4D M 117 75 u38 26 & 78 4E N 118 76 v39 27 ' 79 4F O 119 77 w40 28 ( 80 50 P 120 78 x41 29 ) 81 51 Q 121 79 y42 2A * 82 52 R 122 7A z43 2B + 83 53 S 123 7B {44 2C , 84 54 T 124 7C |45 2D - 85 55 U 125 7D }46 2E . 86 56 V 126 7E ~47 2F / 87 57 W48 30 0 88 58 X49 31 1 89 59 Y50 32 2 90 5A Z51 33 3 91 5B [52 34 4 92 5C \53 35 5 93 5D ]54 36 6 94 5E ^55 37 7 95 5F _显示操作的过程:首先确认显示的位置,即在第几行,第几个字符开始显示。

1602a

1602a

1602A液晶模块文档介绍1602A液晶模块是一种常用的显示设备,主要用于显示文本信息。

它具有16列和2行的显示区域,每个区域可以显示一个字符。

本文档将介绍1602A液晶模块的基本原理、特性以及使用方法。

特性以下是1602A液晶模块的主要特性:•16列2行的显示区域•每个区域可显示一个字符•内置液晶控制器,简化控制电路的设计•低功耗设计,适合长期运行•使用标准的I2C总线进行通信,方便连接到其他设备引脚定义1602A液晶模块包含16个引脚,下面是各个引脚的定义:引脚序号引脚名称功能描述1 VSS 电源地2 VDD 电源正极3 V0 对比度调节4 RS 命令/数据选择5 R/W 读/写选择6 E 使能信号7-14 DB0-DB7 数据总线位15 LED+ 背光电源正极16 LED- 背光电源地控制指令1602A液晶模块的显示内容是由控制指令决定的。

下面是一些常用的控制指令:•光标移动指令–0x80: 将光标移动到第一行的起始位置–0xC0: 将光标移动到第二行的起始位置•清屏指令–0x01: 清除整个显示区域的内容,将光标移动到起始位置•写入数据指令–0x02: 将光标移动到起始位置–0x06: 设置光标移动一次后自动增加•光标显示控制指令–0x0E: 显示光标并设置为闪烁模式–0x0C: 显示光标而不闪烁•功能设置指令–0x38: 设置显示模式为16x2字符模式使用示例下面是一个使用1602A液晶模块的示例程序,使用Arduino开发板控制:```c #include <Wire.h> #include <LiquidCrystal_I2C.h>// 初始化液晶模块 LiquidCrystal_I2C lcd(0x27, 16, 2);void setup() { // 初始化串口通信 Serial.begin(9600); while (!Serial);// 初始化液晶模块 lcd.begin(16, 2); lcd.backlight(); }void loop() { // 显示Hello World!文本 lcd.setCursor(0, 0); lcd.print(。

1602动态显示字符串的完整程序

1602动态显示字符串的完整程序

#include<reg52.H>#include <stdio.h>#include<string.h>#define uchar unsigned charsfr lcd_data=0x80;sbit lcd_E=P0^0;sbit lcd_RW=P0^1;sbit lcd_RS=P0^2;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;unsigned char code show1[]="Welcome"; unsigned char code show2[]="Friend"; unsigned char code show3[]="Welcome gj"; unsigned char code show4[]="Friendship"; unsigned char code show5[]="Welcome ftl"; unsigned char code show6[]="Friendship"; unsigned char code show7[]="Welcome wf"; unsigned char code show8[]="Friendship"; unsigned char temp;unsigned char key;uchar i,j,k;/****************************延时函数**************************//*函数原型:void f_v_delay5ms(void)/*函数功能:延时/*输入参数:无/*输出参数:无///**********************************************************************/void f_v_delay5ms(void){unsigned char i;unsigned char j;for(i=0;i<100;i++){for(j=0;j<250;j++);}}void f_v_delay50us(void){unsigned char i;for(i=0;i<50;i++){;}}void f_v_delay2ms(void){unsigned char i;unsigned char j;for(i=0;i<200;i++){for(j=0;j<50;j++);}}void f_v_delay10ms(void){f_v_delay5ms();f_v_delay5ms();}//*lcd显示*//****************************1602A读状态函数**************************//*函数原型:unsigned char f_uc_lcdReadStatus(void) /*函数功能:1602A读状态/*输入参数:无/*输出参数:1602A返回的状态/*调用模块:///**********************************************************************/void f_uc_lcdReadStatus(void){lcd_data=0xff;lcd_RS = 0;lcd_RW = 1;lcd_E = 1;f_v_delay50us();while(P2&0x80);//检测忙信号lcd_E = 0;}/****************************1602A写数据函数**************************//*函数原型:void f_v_lcdWriteData(unsigned charWDLCM)/*函数功能:1602A写数据/*输入参数:要写入的数?/*输出参数:无/*调用模块:/**********************************************************************/void f_v_lcdWriteData(unsigned char WDLCM){f_uc_lcdReadStatus(); //检测忙P2 = WDLCM;lcd_RS = 1;lcd_RW = 0;lcd_E = 1;//若晶振速度太高可以在这后加小的延时f_v_delay50us();//延时lcd_E = 0;}/****************************1602A写指令函数**************************//*函数原型:void f_v_lcdWriteCommand(unsigned charWCLCM,BuysC)/*函数功能:1602A写指令/*输入参数:要写入的指令/*输出参数:无/*调用模块:/**********************************************************************/void f_v_lcdWriteCommand(unsigned char WCLCM,unsigned char BuysC)/ /BuysC为0时忽略忙检测{if (BuysC)f_uc_lcdReadStatus();//根据需要检测忙P2 = WCLCM;lcd_RS = 0;lcd_RW = 0;lcd_E = 1;f_v_delay50us();//延时lcd_E = 0;}/****************************1602A读数据函数**************************//*函数原型:unsigned char f_v_lcdReadData(void)/*函数功能:1602A读数据/*输入参数:无/*输出参数:1602A返回的数据/*调用模块:/***********************************************************************//*unsigned char f_uc_lcdReadData(void){lcd_RS = 1;lcd_RW = 1;lcd_E = 0;lcd_E = 0;lcd_E = 1;return(lcd_data);}*//******************1602A按指定位置显示一个字符函数**********************//*函数原型:void f_v_displayOneChar(unsigne char X, unsigned char Y, unsigned char DData)/*函数功能:1602A按指定位置显示一个字符/*输入参数:X坐标Y坐标要显示的字符/*输出参数:无/*调用模块:/**********************************************************************/void f_v_displayOneChar(unsigned char X, unsigned char Y, unsigned ch ar DData){Y &= 0x1;X &= 0xF;//限制X不能大于15,Y不能大于1if (Y)X |= 0x40;//当要显示第二行时地址码+0x40;X |= 0x80;// 算出指令码f_v_lcdWriteCommand(X, 0);//这里不检测忙信号,发送地址码f_v_lcdWriteData(DData);}/*******************1602A按指定位置显示一串字符函数*********************//*函数原型:void f_v_displayListChar(unsigned charX, unsigned char Y, unsigned char code *DData)/*函数功能:1602A按指定位置显示一个字符/*输入参数:X坐标Y坐标要显示字符串的首地址/*输出参数:/**********************************************************************/void f_v_displayListChar(unsigned char X, unsigned char Y, unsigned cha r *DData){unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF;//限制X不能大于15,Y不能大于1while (DData[ListLength]>=0x20)//若到达字串尾则退出{if (X <= 0xF)//X坐标应小于0xF{f_v_displayOneChar(X, Y, DData[ListLength]);//显示单个字符ListLength++;X++;}}}/****************************1602A初始化函数**************************//*函数原型:void f_v_lcdInit(void)/*函数功能:1602A初始化/*输入参数:无/*输出参数:无/*调用模块://**********************************************************************/void f_v_lcdInit(void){lcd_data = 0;f_v_lcdWriteCommand(0x38,0);//三次显示模式设置,不检测忙信号f_v_delay5ms();f_v_lcdWriteCommand(0x38,0);f_v_delay5ms();f_v_lcdWriteCommand(0x38,0);f_v_delay5ms();f_v_lcdWriteCommand(0x38,1);//显示模式设置,开始要求每次检测忙信号f_v_lcdWriteCommand(0x08,1);//关闭显示f_v_lcdWriteCommand(0x01,1);//显示清屏f_v_delay2ms();f_v_lcdWriteCommand(0x06,1);// 显示光标移动设置f_v_lcdWriteCommand(0x0C,1);// 显示开及光标设置}/////////////////////////////////////////////////////////////////////////////*喂狗程序*//*void f_v_watchDog(){dog=1;;;;;;;;dog=0;}*/////////////////////////////////////////////////// ///////////////////////////*void f1(){f_v_delay10ms();f_v_delay10ms();f_v_lcdInit();f_v_delay10ms();f_v_delay10ms();f_v_displayListChar(0,0,show1); f_v_displayListChar(0,1,show2); }void f2(){f_v_delay10ms();f_v_delay10ms();f_v_lcdInit();f_v_delay10ms();f_v_delay10ms();f_v_displayListChar(0,0,show3); f_v_displayListChar(0,1,show4); }void f3(){f_v_delay10ms();f_v_delay10ms();f_v_lcdInit();f_v_delay10ms();f_v_delay10ms();f_v_displayListChar(0,0,show5);f_v_displayListChar(0,1,show6);}*/void main(void){i="0";j="0";while(1){/* for(i=0;i<10;i++){;f_v_lcdInit();;f_v_displayListChar(i,0,show1);f_v_displayListChar(i,1,show2);;}for(i=10;i<16;i++){;f_v_lcdInit();;for(j=0;j<7;j++){f_v_displayOneChar((i+j)%16,0,show1[j]);f_v_displayOneChar((i+j)%16,1,show2[j]); ;}}*/for(i=0;i<16;i++){;f_v_lcdInit();;for(j=0;j<strlen(show1);j++){f_v_displayOneChar((i+j)%16,0,show1[j]);;}for(j=0;j<strlen(show2);j++){f_v_displayOneChar((i+j)%16,1,show2[j]); ;}}}}。

单片机控制LCD1602显示字符(测试通过)

单片机控制LCD1602显示字符(测试通过)

单片机控制LCD1602显示字符(测试通过)
本次测试的是常用LCD1602 显示屏,操作流程很简单,但有些小问题要
注意,如该LCD 处理速度有些慢,单片机在发送控制指令时需要适当延时,
否则可能操作失败。

一、硬件简介
1>引脚介绍
具体引脚如下:
单片机需要操作的引脚有:RS、RW、E 及DB0~7
2>指令介绍
在这里,仅仅介绍下什么是CGRAM、什么是DDRAM?
CGRAM:是用户自定义字符存放存储器,可以自己在指定地址定义字符DDRAM:是对应屏幕位置的存储器,设定了该地址,就确定了从屏幕什么
位置开始显示字符
二、软件部分
#include#include#define DATA P0sbit RS=P2;sb it RW=P2 ;sbit EN=P2;un sign ed char zifu[]={“Hello,World!0”};unsigned char wangzhi[]={“shop108408772.taobao/”};void delayms(unsigned char m) //适当延时{unsigned char i;while(m--){for(i=0;i//写1 个字节{RW=0;_nop_();_nop_(); EN=1;_nop_();DATA=canshu;EN=0;_nop_();_nop_();}
void main(){unsigned char *point;RS=0;WRITE_BYTE(1);//清屏delayms(10);//。

单片机LCD1602显示字符和数字的汇编程序

单片机LCD1602显示字符和数字的汇编程序

单片机LCD1602显示字符和数字的汇编程序1,单片机和LCD1602的连线,和程序结果显示如下图:2,LCD第一行显示字符XIAORENGUANG第二行显示RAM中40H到46H中的数字。

程序如下:RS EQU P2.4RW EQU P2.5E EQU P2.6ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#60HMOV 40H,#01HMOV 41H,#02HMOV 42H,#03HMOV 43H,#04HMOV 44H,#05HMOV 45H,#06HMOV 46H,#07HACALL DD1 ;DD1是LCD初始化MOV DPTR,#TABLE1ACALL DD2;DD2是LCD第一行显示TABLE1ACALL PPP ;PPP是LCD第二行显示RAM中40H到46H中的数据SJMP $DD1: MOV p0,#01H ;清屏CALL ENABLEMOV p0,#38H ;显示功能CALL ENABLEMOV p0,#0FH ;显示开关控制CALL ENABLEMOV p0,#06H ;显示光标右移加1CALL ENABLERETDD2: MOV p0,#80H;第一行的开始位置cALL ENABLECALL WRITE1;到TABLE1取码?RETENABLE: CLR RS ;送命令CLR RWCLR ECALL DELAYSETB ERETWRITE1: MOV R1,#00H ;显示table中的值A1: MOV A,R1;到table取码MOVC A,@A+DPTRcall wRITE2 ;显示到lcdINC R1CJNE A,#00H,A1 ;是否到00hRETWRITE2:MOV p0,A ;显示SETB RSCLR RWCLR ECALL DELAYSETB ERET(动态显示频率、幅度核心程序设计思想:可以利用如下程序)MOV40H,#01HMOV41H,#02HMOV42H,#03H)MOV R1,#40H;显示table中的值MOV A,R1;到table取码MOVC A,@A+DPTRMOV P0,AINC R1LJMP LOOPDELAY: PUSH ACCMOV A,R4MOV R4,#05D1: MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1MOV R4,APOP ACCRETPPP: MOV p0,#0C0H;第二行的位置CALL ENABLEMOV DPTR,#TAB;显示CALL WRITE3;到TABLE2 取码RETWRITE3: MOV R1,#40H ;显示table中的值MOV R7,#07HA2: MOV A,@R1;到table取码MOVC A,@A+DPTRcall wRITE2 ;显示到lcdINC R1DJNZ R7,A2 ;是否到00hRETtable1: db"XIAORENGUANG ",00H TAB: DB 30H, 31H, 32H, 33HDB 34H, 35H, 36H, 37HDB 38H, 39HEND。

1602液晶显示器初始化函数

1602液晶显示器初始化函数

1602液晶显示器初始化函数
初始化 1602 液晶显示器的函数通常会根据使用的微控制器和编程语言而有所不同。

以下是一个用 C 语言编写的初始化 1602 液晶显示器的示例函数:
```c
void lcd_1602_init(void) {
// 设置数据位为 8 位,显示两行,5x7 点阵字体
lcd_write_command(0x38);
// 设置显示模式,整体显示,不反光,开游标,不闪烁
lcd_write_command(0x0c);
// 设置输入模式,增量模式,不自动移位
lcd_write_command(0x06);
// 清屏
lcd_write_command(0x01);
// 显示回归原点
lcd_write_command(0x02);
}
```
这个函数使用了 `lcd_write_command()` 函数来向液晶显示器发送命令。

这些命令设置了液晶显示器的工作模式、显示格式和清除屏幕等。

请注意,这个示例函数只是一个基本的初始化函数,实际应用中可能需要根据具体的硬件和需求进行调整。

此外,还需要根据液晶显示器的数据手册来确定正确的命令和时序。

LCD1602A的显示实验

LCD1602A的显示实验

描述: LCD1602 移动显示*显示方式:1、LCD第一行显示:BIG BIG WORLDLCD第二行显示:I LOVE PUZHONG2、先将两行字符写入DDRAM中,然后从右至左逐字移出显示。

3、在指定位置停留1.6秒后,闪烁2次,清屏。

4、反复循环上述显示方式。

程序源代码:#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit LCD_RS = P2^6;sbit LCD_RW = P2^5;sbit LCD_EN = P2^7;uchar code dis1[] = {"BIG BIG WORLD"};uchar code dis2[] = {"I LOVE PUZHONG"};/*******************************************************************/ /*/* 延时子程序/*/*******************************************************************/void delay(int ms){int i;while(ms--){for(i = 0; i< 250; i++){_nop_();_nop_();_nop_();_nop_();}}}/*******************************************************************/ /*/*检查LCD忙状态/*lcd_busy为1时,忙,等待。

lcd-busy为0时,闲,可写指令与数据。

/*/*******************************************************************/bit lcd_busy(){bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0&0x80);LCD_EN = 0;return result;}/*******************************************************************/ /*/*写指令数据到LCD/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。

1602串行控制(配合74HC164)

1602串行控制(配合74HC164)

52系列单片机之串行控制LCD16022010-09-02 17:52串行控制LCD1602原理图:/*************************************************************** ****///注:由于使用74HC164,故不能读出命令,即不能判忙,采用延时处理#include <reg52.h>//头文件#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit RS=P2^4; //定义I/O的硬件接口sbit RW=P2^5;sbit E=P2^6; //定义I/O的硬件接口sbit A_B=P2^2; //定义I/O的硬件接口数据sbit CP=P2^3; //定义I/O的硬件接口时钟unsigned char code blog_adr[] = {"china"}; unsigned char code email[] = {"Julian"}; unsigned char code zimo[]={0x00,0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02, //年0x00,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13, //月0x00,0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F, //日};/*------------------------------------------------ uS延时函数------------------------------------------------*/ void DelayUs2x(unsigned char t){while(--t);}/*------------------------------------------------ mS延时函数------------------------------------------------*/ void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/******************************************************************** 函数功能:LCD1602写指令********************************************************************/void write_Directive(uchar a)//写指令{uchar i;//DelayUs2x(5);RS=0;RW=0;for(i=0;i<8;i++){if((a&0x80)==0x80) A_B=1;else A_B=0;CP=0;DelayUs2x(2);CP=1;CP=0;a=a<<1; //先将指令移位转换为串行数据}E=0;DelayUs2x(5);E=1;}/******************************************************************** 函数功能:LCD1602写数据********************************************************************/void write_Data(uchar a)//写数据{uchar i;//DelayUs2x(5);RS=1;RW=0;for(i=0;i<8;i++){if((a&0x80)==0x80) A_B=1;else A_B=0;CP=0;DelayUs2x(2);CP=1;CP=0;a=a<<1;}E=0;DelayUs2x(5);E=1;}/******************************************************************** 函数功能:LCD1602初始化********************************************************************/ void lcd1602init()//初始化{write_Directive(0x38);DelayMs(5);write_Directive(0x38);DelayMs(5);write_Directive(0x38);DelayMs(1);write_Directive(0x08); /*显示关闭*/DelayMs(1);write_Directive(0x01); //清屏DelayMs(1);write_Directive(0x02); //归位,AC=0;DelayMs(1);write_Directive(0x06);DelayMs(1);write_Directive(0x0c);DelayMs(1);}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x01;X &= 0x0F; //限制 X 不能大于 15,Y 不能大于 1if(Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码DelayUs2x(10);write_Directive(X);DelayMs(1);write_Data(DData);write_Directive(X);DelayMs(1);}//按指定位置显示一串字符void Displaystr(unsigned char X, unsigned char Y, unsigned char code *DData){unsigned char ListLength;ListLength = 0;Y &= 0x01;X &= 0x0F; //限制 X 不能大于 15,Y 不能大于 1while (DData[ListLength]!='\0') //若到达字串尾则退出{if (X <= 0x0f) //X 坐标应小于 0x0F{DisplayOneChar(X,Y,DData[ListLength]); //显示单个字符ListLength++; X++;if(X>=16){X=0;Y++;if(Y==2)Y=0;}}else{X=0;Y++;if(Y==2)Y=0;}}}/*------------------------------------------------生成自定义字符------------------------------------------------*/void Write_CGRAM(unsigned char *p){unsigned char i,j,kk;unsigned char tmp=0x40; //操作CGRAM的命令码kk=0;for(j=0;j<3;j++){for(i=0;i<8;i++) // 8 个字节生成 1 个字符点阵{DelayUs2x(100);write_Directive(tmp+i); //操作CGRAM的命令码+写入CGRAM地址. DelayUs2x(2);write_Data(p[kk]); //写入数据kk++;}tmp+= 8;}}void main(){lcd1602init();Write_CGRAM(zimo);Displaystr(0,0,blog_adr);Displaystr(6,0,email);Displaystr(0,1,"2011");DisplayOneChar(4,1,0x00); Displaystr(5,1,"8");DisplayOneChar(6,1,0x01); Displaystr(7,1,"28");DisplayOneChar(9,1,0x02); while(1);}。

1602显示汉字和自定义字符库

1602显示汉字和自定义字符库

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,但是没有汉字库。

每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

今天偶然在网上发现有的人利用1602显示简单的汉字,对这个产生了兴趣,上网搜了一些资料,自己慢慢的研究了一下,终于弄懂了怎么回事,自己也写了一个显示“天”,“℃”,“你”,“土”,心形,“明”的程序。

下面就和大家一起分享一下。

查看LCD1602的CGROM字符代码表,可以发现从00000000B~00000111B (00H~07H)地址的内容是没有定义的,它是留给用户自己定义的,用户可以通过先定义LCD1602的CGRAM中的内容,最多可以自定义8个字符,然后就可以同调用CGROM字符一样来调用自定义好的字符。

那么如何设定CGRAM中的内容呢?首先我们要把所要编写的字符对应于5X8点阵的“字模”提取出来,我们可以通过相关的软件来提取,也可以手工提取。

说白了也就是将点阵的某一行中有显示的点用1表示,无显示的点用0表示,以此形成该行对应的字模数据。

设定CGRAM的内容,要一行一行的设定,每一行对应一个CGRAM,5X8点阵,每行5点,共8行,因此要将8行的字模数据都写入CGRAM。

写好后,就可像调用CGROM字符一样来来调用它了(CGRAM是可写可读的,CGROM只可读不可写)。

下面贴出我的程序(见1602LCD文件夹中的1602显示汉字.Uv2文件),实物图和Proteus仿真图,由于一个字符的点数为5X8,点数太少所以显示效果不是很好,经实验发现实物效果比仿真要好,下面为两者的效果图。

LCD1602A显示屏

LCD1602A显示屏

LCD显示屏1602A,LCD1602兰屏,带背光蓝底白字标准型16X2液晶显示字符模块(背光/蓝屏)1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光电源正极第16脚:背光电源负极1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。

以下是在液晶模块的第二行第一个字符的位置显示字母“A”的程序: ORG 0000HRS EQU P3.7;确定具体硬件的连接方式RW EQU P3.6 ;确定具体硬件的连接方式E EQU P3.5 ;确定具体硬件的连接方式MOV P1,#00000001B ;清屏并光标复位ACALL ENABLE;调用写入命令子程序MOV P1,#00111000B ;设置显示模式:8位2行5x7点阵ACALL ENABLE ;调用写入命令子程序MOV P1,#00001111B ;显示器开、光标开、光标允许闪烁ACALL ENABLE ;调用写入命令子程序MOV P1,#00000110B ;文字不动,光标自动右移ACALL ENABLE ;调用写入命令子程序MOV P1,#0C0H ;写入显示起始地址(第二行第一个位置)ACALL ENABLE ;调用写入命令子程序MOV P1,#01000001B ;字母A的代码SETB RS ;RS=1CLR RW ;RW=0 ;准备写入数据CLR E ;E=0 ;执行显示命令ACALL DELAY ;判断液晶模块是否忙?SETB E ;E=1 ;显示完成,程序停车AJMP $ENABLE:CLR RS ;写入控制命令的子程序CLR RWCLR EACALL DELAYSETB ERETDELAY:MOV P1,#0FFH ;判断液晶显示器是否忙的子程序CLR RSSETB RWCLR ENOPSETB EJB P1.7,DELAY ;如果P1.7为高电平表示忙就循环等待RETEND程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。

用1602液晶显示自定义字符

用1602液晶显示自定义字符

⽤1602液晶显⽰⾃定义字符1602是⼀款最常⽤也是最便宜的液晶显⽰屏。

最多可以显⽰两⾏标准字符,每⾏最多可以显⽰16个字符。

1602可以显⽰内部常⽤字符(包括阿拉伯数字,英⽂字母⼤⼩写,常⽤符号和⽇⽂假名等),也可以显⽰⾃定义字符(单或多个字符组成的简单汉字,符号,图案等,最多可以产⽣8个⾃定义字符)。

⼀、显⽰常⽤字符。

1602液晶模块内部的字符发⽣存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所⽰,这些字符有:阿拉伯数字、英⽂字母的⼤⼩写、常⽤的符号、和⽇⽂假名等,每⼀个字符都有⼀个固定的代码,⽐如⼤写的英⽂字母“A”的代码是41H,显⽰时模块把地址41H中的点阵字符图形显⽰出来,我们就能看到字母“A”⼗进制⼗六进制 ASCII字符⼗进制⼗六进制 ASCII字符⼗进制⼗六进制 ASCII字符00 00 ⾃定义字符1 56 38 8 96 60 `01 01 ⾃定义字符2 57 39 9 97 61 a02 02 ⾃定义字符3 58 3A : 98 62 b03 03 ⾃定义字符4 59 3B ; 99 63 c04 04 ⾃定义字符5 60 3C < 100 64 d05 05 ⾃定义字符6 61 3D = 101 65 e06 06 ⾃定义字符7 62 3E > 102 66 f07 07 ⾃定义字符8 63 3F ? 103 67 g08 08 ⾃定义字符1 64 40 @ 104 68 h09 09 ⾃定义字符2 65 41 A 105 69 i10 0A ⾃定义字符3 66 42 B 106 6A j11 0B ⾃定义字符4 67 43 C 107 6B k12 0C ⾃定义字符5 68 44 D 108 6C l13 0D ⾃定义字符6 69 45 E 109 6D m14 0E ⾃定义字符7 70 46 F 110 6E n15 0F ⾃定义字符8 71 47 G 111 6F o32 20 空格 72 48 H 112 70 p33 21 ! 73 49 I 113 71 q34 22 " 74 4A J 114 72 r35 23 # 75 4B K 115 73 s36 24 $ 76 4C L 116 74 t37 25 % 77 4D M 117 75 u38 26 & 78 4E N 118 76 v39 27 ' 79 4F O 119 77 w40 28 ( 80 50 P 120 78 x41 29 ) 81 51 Q 121 79 y42 2A * 82 52 R 122 7A z43 2B + 83 53 S 123 7B {44 2C , 84 54 T 124 7C |45 2D - 85 55 U 125 7D }46 2E . 86 56 V 126 7E ~47 2F / 87 57 W48 30 0 88 58 X49 31 1 89 59 Y50 32 2 90 5A Z51 33 3 91 5B [52 34 4 92 5C \53 35 5 93 5D ]54 36 6 94 5E ^55 37 7 95 5F _显⽰操作的过程:⾸先确认显⽰的位置,即在第⼏⾏,第⼏个字符开始显⽰。

自-1602液晶显示汉字程序

自-1602液晶显示汉字程序

1602液晶显示汉字程序利用1602显示汉字也不是新鲜的内容,今天不想颓废了。

只是需要自己事先定义一下汉字的字模,就是显示出来的汉子字体结构。

要定义字模就需要知道1602的CGRAM地址和显示字符的地址DD RAM图1:12 3 4 5 678 9 10 111213 1415 160001 02 03 04 0506 07 08 090A0B0C 0D 0E 0F4041 424344454647 4849 4A 4B4C 4D4E4F第一行第一个字符的地址是( 0x80) ,后面的字符地址以此类推第二行第一个字符的地址为( 0x80+ 0x40),需要在第一行的基地址后面加上一个偏移量0x40,后面的地址在此基址上再依次加一。

voiddelay(unsigned int time_i){int i;for (;tim>0;tim--){for (i=0;i<10;i++);}}void command_out(char out_data){RW=0;RS=0;EN=1;DB=out_data;EN=0;delay(10);}void OUTD(char out_data){RS=1;RW=0;EN=1;DB=out_data;EN=0;delay(10);}OUTI()是写入指令的函数,OUTD()是写入数据的函数。

如:左上角第一个5*7的显示数据为:0x00,0x01,0x81,0x12,0x24,0x41,0x81,0x10蓝色区域的相应位为1这样就可以写出全部4个5*7点阵的显示数据了,把它封装在一个数组中,如数组,hanzi[]={0x00,0x01,0x81,0x12,0x24,0x41,0x81,0x10,………………}之后利用命令:OUTI(0X40);for (i=0;i<64;i++){OUTD(neu[i]);}将这个数组中的数据赋值到1602内部CGRAM中。

完成后,再设置数据在1602上的显示地址,根据图1的结构,设置好位置,如在第一行第一个字符和第二个字符以及第二行第一个字符和第二个字符处显示:Command_out(0x80+0x00);for(i=0;i<4;i++){ data_out (i); }Command_out(0x80+0x40);for (i=4;i<8;i++){data_out(i); }command_out()的作用是设置显示的起始地址,data_out()的作用是将hanzi[]数组中的16进制数据发送出去,每一个16进制数字对应之5*7点阵上的每一行内容。

1602LCD字符液晶静态-动态显示(指定位置)

1602LCD字符液晶静态-动态显示(指定位置)
uchar CGRAM_DATA5[]={0};//字模数据
uchar CGRAM_DATA6[]={0};//字模数据
uchar CGRAM_DATA7[]={0};//字模数据
void delay_ms(uint ms) // ms精确延时函数 (C51@11.0592MHz)
{
uchar CGRAM_DATA1[]={0x00,0x0a,0x15,0x11,0x11,0x0a,0x04,0x00};//字模数据
uchar CGRAM_DATA2[]={0};//字模数据
uchar CGRAM_DATA3[]={0};//字模数据
uchar CGRAM_DATA4[]={0};//字模数据
以确保STA7=0,否则无法知道LCD是否处于忙碌状态,但使用
足够长时间延时函数,加在每条读/写操作后,就确保LCD能有
充分时间完成其相应操作
**************************************************/
#include<reg51.h>
#define uint unsigned int
lcd_display_onechar(1,8,'C');
lcd_display_onechar(1,9,0x00);
lcd_display_onechar(1,10,'C');
lcd_display_onechar(2,7,0x01);
lcd_display_onechar(2,8,0x01);
lcd_display_onechar(2,9,0x01);
lcd_display_onechar(2,10,0x01);

1602液晶屏字符串的显示

1602液晶屏字符串的显示

1602液晶屏字符串的显示//改程序将实现静态字符串在液晶屏上的显示//程序员:徐茂龙//完成时间:2012.03.22#include <reg52.h>#include <intrins.h>#include <stdio.h>#define uchar unsigned char#define Data P0//管脚的定义sbit RS = P2^1;sbit RW = P1^5;sbit E = P1^6;sbit BF = P0^7;sbit WEI = P2^7;sbit DUAN = P2^6;uchar code string[] = {"I love WangLele!"}; //函数声明void Delay(uchar); //延时函数void Init(); //初始化函数void Busy(); //忙时检测函数void Write(uchar, bit); //写入函数void Display(uchar);void main(){uchar i;//关闭所有数码管Data = 0x0;WEI = 1;WEI = 0;Data = 0xff;DUAN = 1;DUAN = 0;Init();Display(0x0);while(1){Write(string[i], 1);i ++;if(i == '!')while(1);}}void Delay(uchar i){uchar j;for(; i > 0; i --)for(j = 155; j > 0; j --); //最少延时1ms}void Busy(){Delay(5);RS = 0; //根据规定:当RS = 0; RW = 1时才能读取指令RW = 1;E = 1; //E = 1才允许读写_nop_();_nop_(); //两个空操作,给硬件反应时间while(BF); //忙时检测E = 0;}void Write(uchar i, bit flag){Delay(5);Busy(); //当不是忙时时,RS = flag; //flag的值将决定是对数据操作还是对指令操作RW = 0;E = 0; //在写指令或者数据时,E要处于高脉冲,就是说E要从0状态转为1_nop_();_nop_(); //两个空操作,给硬件反应时间Data = i;_nop_();_nop_(); //两个空操作,给硬件反应时间E = 1;_nop_();_nop_(); //两个空操作,给硬件反应时间E = 0; //当E由高电平转为低电平时,开始执行指令操作}void Init() //初始化函数{Delay(15); //第一次进行操作时,延时时间稍长一点Busy();Write(0x01, 0); //清平指令Delay(5);Write(0x06, 0); //【输入方式设置命令】光标从左向右移动,内容不移动Delay(5);Write(0x0f, 0); //【显示开关设置命令】显示开,光标显示,字符闪烁Delay(5);Write(0x38, 0); //【功能设置命令】8位数据,双行显示,5*7点阵Delay(5);}void Display(uchar temp){Write(temp | 0x80, 0);}。

单片机驱动LCD1602显示字符串程序

单片机驱动LCD1602显示字符串程序

;声 明: ; ; ;
版权所有,嵌入式应用软件园。 此文件只限购买者个人使用,请勿在互联网中传播,如有侵权,将追究相应责任。 如需单片机代码/技术支持,请访问:嵌入式应用软件园
如需源代码/此代码技术支持,请访问: 嵌入式应用软件园。
8
;****************************************************************************** ;函数名:DISP ;输 入:无 ;输 出:无 ;调 用:WRITE_DATA ;描 述:显示字符串到 LCM ;****************************************************************************** ;*******子程序******** DISP:
MOV A,#00000001B
7
嵌入式应用软件园,版权所有,请勿转载/销售。
LCALL WRITE_COM RET
;****************************************************************************** ;函数名:DEL ;输 入:无 ;输 出:无 ;调 用:无 ;描 述:延时 ;****************************************************************************件园,版权所有,请勿转载/销售。
第 1 章 程序功能
程序中包含 LCM 用到的所有函数:初始化、写指令、写数据、判忙碌、清屏 幕。
单片机(51/STC)P1.1,P1.2,P1.3,P1.4 外接按键,按下不同的按键,LCM 上会显 示不同的字符串,用于报警。

1602A 液晶显示模块使用说明书

1602A 液晶显示模块使用说明书

产品类型: 字符型LCD液晶显示模组产品型号: 1602A客户:客户编号:日期:确认(盖章)制造商客户目录1.修订记录2.概述3.外形尺寸4.硬件方框图5.电气特性6.接口说明7.指令说明8.操作时序说明9.应用例程10.注意事项1 . 修订记录版本发行日期新制/修订内容 V1.0 2020-8-12新制2.概述1602A 字符型液晶显示模块是专门用于显示字母、数字元、符号等的点阵型液晶显示模块。

分4 位和8 位数据传输方式。

提供5×7 点阵+光标的显示模式。

提供显示数据缓冲区DDRAM、字符发生器CGROM 和字符发生器CGRAM,可以使用CGRAM 来存储自己定义的最多8 个5×8 点阵的图形字符的字模数据。

提供了丰富的指令设置:清显示;光标回原点;显示开/关;光标开/关;显示字符闪烁;游标移位;显示移位元等。

提供内部上电自动复位电路,当外加电源时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。

显示字符数: 16 字符 X 2 行字符点阵:5X7字阵+光标显示颜色及背光颜色: STN 蓝,黄绿,灰; 背光黑,白,黄绿偏光膜:全透/半透观察角度: 6:00显示占空比: 1/16驱动偏压: 1/5控制芯片:SPLC780D或兼容IC(如AIP31066)字符发生器 ROM (CGROM): 10880 bits (192 character 5*8 dots) 或(64character 5*11 dots)字符发生器 RAM (CGRAM): 64X8 bits (8 characters 5*8 dots)或(4 characters 5*11 dots)显示数据 RAM (DDRAM) :80X8 bits (80 characters max)尺寸 (Unit: mm)外形尺寸: 80X36X11可视区域 : 64.5X13.8字符字体: 5X7 dots + 光标字符尺寸:55.7X11点尺寸:0.54X0.6字符间距: 3.52X5.85重量:g 对比度:V0外部调节或内部固定对比度工作电压: +3.3V或+5V 默认5V3.外形尺寸:4.硬件方框图:5.电气特性5.1极限参数5.2.1 直流参数1(Ta=25o C,Vdd=4.5V~5.5V)5.2.2 直流参数2(Ta=25o C,Vdd=2.7V~4.5V)典型值参数名称符号条件最小值最大值单位电源电压Vdd -0.37.0VLCD 驱动电压V5Vdd-10.0Vdd+0.3V 输入电压Vi -0.3Vdd+0.3V 工作温度(T)Top --2070℃储存温度(T)Tstg--3080℃标称值参数名称符号条件最小典型最大单位电源电压Vdd-GND - 4.5 5.0 5.5V 工作电流(不包括背光)Idd 0.9 1.5 1.7mA LCD 驱动电流Iee -0.6-mA LCD 驱动电压Vdd-V5Vdd=5V4.2 4.5 4.8V LED 背光工作电流If 171820mA LED 背光功耗Pd Vf=3.0~3.2V90100110mW 输入高电平Vih 2.5-Vdd V 输入低电平Vil -0.3-0.6V 输出高电平Voh Ioh=-0.205mA 2.4--V 输出低电平VolIo1=1.2mA--0.4V标称值参数名称符号条件最小典型最大单位电源电压Vdd-GND - 2.7 3.3 4.5V 工作电流(不包括背光)Idd 0.450.9 1.0mA LCD 驱动电流Iee -0.6-mA LCD 驱动电压Vdd-V5Vdd=3.3V4.2 4.5 4.8V LED 背光工作电流If 171820mA LED 背光功耗Pd Vf=3.0~3.2V556066mW 输入高电平Vih 0.7Vdd -Vdd V 输入低电平Vil -0.3-0.55V 输出高电平Voh Ioh=-0.1mA 0.75Vdd--V 输出低电平VolIol=0.1mA--0.2VddV液晶显示模块使用说明书5.3.1 交流参数1(Ta=25o C,Vdd=4.5V~5.5V)5.3.2 交流参数2(Ta=25o C,Vdd=2.7V~4.5V)交流测试波形图写模式读模式6.接口说明脚号符号功能备注1Vss 0V 2Vdd +5V3Vo 电源供应LCD 偏压调节对比度调节4RS 数据/指令选择(H:数据 L: 指令)5R/W 读/写选择(H:读 L:写)6E 使能信号7DB0数据位 08DB1数据位19DB2数据位210DB3数据位311DB4数据位412DB5数据位513DB6数据位614DB7数据位715A LED 背光正16KLED 背光负7.指令说明模块具有4位/8位MCU 并行通讯模式,4位/8位总线通过指令寄存器的DL 位进行选定。

1602A自定义字符使用方法

1602A自定义字符使用方法

点阵字符型液晶模块1602A自定义字符使用方法作者:hulx摘要:本文介绍点阵字符型液晶模块1602A自定义字符使用方法,可用于采用HD44780或其兼容芯片的液晶显示模块.关键词:点阵字符型液晶模块,1602A,HD44780,自定义字符一、前言点阵字符型液晶模块1602A采用HD44780或其兼容芯片,可以显示2行16个5×7点阵字符.当仪器仪表中需要显示少量信息时,应用广泛.HD44780内置了160个5×7点阵字符图形,用于字符显示.除了显示英文、日文及数字,还可以通过自定义字符,在片内自定义8个字符,显示特殊字符甚至笔画比较少的汉字.但是在具体应用时,各部分地址调用时格式特殊,比较难理解.各种资料上面对自定义字符的介绍较少,本文参考HITACHI的数据手册,给出应用的具体方法.二、HD44780命令字控制1602A显示模块并显示字符,是通过向其驱动芯片HD44780发送命令字和发送数据来完成的.HD44780共定义了11个命令字,各命令字含义见表1.在CGRAM/DDRAM数据读写指令执行完毕后,地址计数器AC自动加1或减1,更新在忙标志BF 清零之后进行.三、自定义字符步骤在对模块初始化的过程里面,定义显示方式、光标、字符移位方式、自定义字符和开显示等操作.在需要显示自定义字符时,与显示内置字符的方法是相同的,只是CGRAM的地址有所区别.在写入CRRAM或DDRAM地址以后,写入对应的数据列.具体请参考下面的程序实例.下面给出自定义字符点阵时定义和调用时的步骤.1、在显示初始化时写入控制命令字,以设置CGRAM地址.CGRAM中只能自定义8个5×7点阵字符(后面会看到限制8个自定义字符的原因),对应的CGRAM 地址范围是000 000 – 000 111.定义这8个5×7点阵字符对应的控制命令字分别为:40H,48H,50H,58H,60H,68H,70H,78H2、向CGRAM写入字型编码数据(CGRAM数据).表2显示了各地址位和数据位对应关系.对于5×7点阵字符,连续写入7行点阵数据.每行分别对应CGRAM数据0-4位(第4位在左侧),需要显示的对应点置1,反之则置0.例如,自定义字符为字母“R”,则连续写入的字型数据为:1EH,11H,11H,1EH,14H,12H,11H3、向模块写入字符码值,调用自定义字符.在调用自定义字符时,要注意CGRAM地址以3位一组排列,字符码值0-2位对应CGRAM地址位3-5.字符码值4-7位全0,而第3位无效,可以是0或1.这就是自定义CGRAM空间为16个字节,却只能定义8个字符的原因.所以上面例子CGRAM中第一个自定义的字符“R”可以用码值00H或08H选中.据此,显示8个自定义字符的字符码值分别为:00H、01H、02H、03H、04H、05H、06H和07H,或者08H、09H、0AH、0BH、0CH、0DH、0EH和0FH.三、应用实例下面给出用于51系列单片机和1602接口的初始化函数和调用显示的程序,用户定义了特殊字符“℃”Void init_dsp() /* 初始化1602A LCD显示屏*/{while((rd_dsp_ins() & 0x80)); /* 如果忙标志,则等待*/wr_dsp_ins(0x38); /* 8位数据,2行5×7字符*/while((rd_dsp_ins() & 0x80));wr_dsp_ins(0x0c); /* 显示开,光标关,闪烁关*/while((rd_dsp_ins() & 0x80));wr_dsp_ins(0x06); /* 输入模式设定显示一个字符之后向右移动一个位置,不移动*/while((rd_dsp_ins() & 0x80));wr_dsp_ins(0x01); /* 清显示*/while((rd_dsp_ins() & 0x80));wr_dsp_ins(0x80); /* 从第一行开始显示*/while((rd_dsp_ins() & 0x80));wr_dsp_ins(0x50); /* 设置自定义字符的CGRAM 地址,放在第3个位置*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x18); /* 向CGRAM写入自定义字符的第1行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x18); /* 写入第2行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x07); /*写入第3行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x08); /*写入第4行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x08); /*写入第5行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x08); /*写入第6行数据*/while((rd_dsp_ins() & 0x80));wr_dsp_dat(0x07); /*写入第7行数据*/while((rd_dsp_ins() & 0x80));}显示这个字符的程序:wr_dsp_dat(0x02); /* 显示CGRAM 中第3个字符*/while((rd_dsp_ins() & 0x80));液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。

SMC1602A显示模块说明

SMC1602A显示模块说明

概述:SMC1602A 标准字符点阵型液晶显示模块(LCM),采用点阵型液晶显示器(LCD),可显示16 个字符X2 行西文字符,字符尺寸为2.95X4.35(WXH)mm,内置HD44780 接口型液晶显示控制器,可与MCU 单片机直接连接,广泛应用于各类仪器仪表及电子设备。

◆控制器接口说明(HD44780 及兼容芯片):1 基本操作时序:1.1 读状态:输入:RS=L,RW=H,E=H 输出:D0~D7=状态字1.2 写指令:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲输出:无1.3 读数据:输入:RS=H,RW=H,E=H 输出:D0~D7=数据1.4 写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲输出:无3 RAM 地址映射图控制器内部带有80X8 位(80字节)的RAM缓冲区,对应关系如右图所示:4 指令说明4.1 初始化设置4.1.1 显示模式设置4.1.2 显示开/关及光标设置4.2 数据控制控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部 80 字节RAM。

4.2.1 数据指针设置4.2.2 读数据:见1.3 节4.2.3 写数据:见1.4 节4.2.4 其他设置5 初始化过程(复位过程)5.1 写指令38H:显示模式设置第一次5.2 延时3ms5.3 写指令38H:显示模式设置第二次5.4 延时3ms5.5 写指令38H:显示模式设置第三次5.6 延时3ms5.7 写指令38H:显示模式设置第四次5.8 延时3ms5.9 写指令08H:显示关闭5.10 写指令01H:显示清屏5.11 延时3ms5.12 写指令06H:显示光标移动设置5.13 写指令0CH:显示开及光标设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档