LCD1602液晶显示实验要点

合集下载

LCD1602液晶显示实验

LCD1602液晶显示实验

实验报告实验名称: [LCD1602液晶显示实验]姓名:学号:指导教师:实验时间: [2013年6月15日]信息与通信工程学院LCD1602液晶显示实验1.实验原理1.1 基本原理1.1.1 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

1.1.2 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图1-2所示:图1-2 1602LCD尺寸图1.1602LCD主要技术参数:显示容量: 16×2个字符芯片工作电压: 4.5~5.5V工作电流: 2.0mA(5.0V)模块最佳工作电压: 5.0V字符尺寸: 2.95×4.35(W×H)mm2.引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表:表1-3引脚接口说明表编符号引脚说明编号符号引脚说明号1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极1.1.3 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表1-4所示:表1-4 控制命令表序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D01 清显示0 0 0 0 0 0 0 0 0 12 光标返回0 0 0 0 0 0 0 0 1 *3 置输入模式0 0 0 0 0 0 0 1 I/D S4 显示开/关控制0 0 0 0 0 0 1 D C B5 光标或字符移位0 0 0 0 0 1 S/C R/L * *6 置功能0 0 0 0 1 DL N F * *7 置字符发生存贮器地址0 0 0 1 字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10 写数到CGRAM或DDRAM)1 0 要写的数据内容11 从CGRAM或DDRAM读数1 1 读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

LCD1602液晶显示实验报告

LCD1602液晶显示实验报告

LCD1602液晶显示实验报告一、实验目的(1)了解LCD1602的基本原理,掌握其基本的工作流程。

(2)学习用Verilog HDL语言编写LCD1602的控制指令程序,能够在液晶屏上显示出正确的符号。

(3)能够自行改写程序,并实现符号的动态显示。

二、实验设备与器件Quartus II 软件、EP2C8Q208C8实验箱三、实验方案设计1.实验可实现的功能可以实现在LCD1602液晶屏第一行左侧第一位的位置循环显示0~9,并且可以用一个拨码开关BM8实现显示的复位功能。

2.LCD1602基本知识LCD1602液晶能够同时显示16x02即32个字符,模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。

1602通过D0~D7的8位数据端传输数据和指令。

3.系统工作原理系统的状态转换流程图如图3.1.1所示。

通过状态流程图可以看到,LCD1602液晶屏的状态是不断更新的,依次完成液晶的初始化和0~9的动态显示过程,并且过程可由开关控制。

if (!rst_n)cnt <= 0;elsecnt <= cnt + 1'b1;wire lcd_clk = cnt[23]; // (2^23 / 50M)=0.168s always@(posedge lcd_clk)if(cnt1>=24'd2)beginreg lcd_clk1;lcd_clk1=1;cnt1=0;endelsebegincnt1=cnt1+1; //cnt1对lcd_clk二分频lcd_clk1=0;endalways@(posedge lcd_clk1)beginrow1_val<=8'h30;//设初值case(row1_val) //数字0~9循环显示8'h30: row1_val<=8'h31;8'h31: row1_val<=8'h32;8'h32: row1_val<=8'h33;8'h33: row1_val<=8'h34;8'h34: row1_val<=8'h35;8'h35: row1_val<=8'h36;8'h36: row1_val<=8'h37;8'h37: row1_val<=8'h38;8'h38: row1_val<=8'h39;8'h39: row1_val<=8'h30;default: row1_val<=8'h30;endcaseendparameter IDLE = 8'h00;parameter DISP_SET = 8'h01; // 显示模式设置parameter DISP_OFF = 8'h03; // 显示关闭parameter CLR_SCR = 8'h02; // 显示清屏parameter CURSOR_SET1 = 8'h06; // 显示光标移动设置parameter CURSOR_SET2 = 8'h07; // 显示开及光标设置parameter ROW1_ADDR = 8'h05; // 写第1行起始地址parameter ROW1_0 = 8'h04;reg [5:0] current_state, next_state; // 现态、次态always @ (posedge lcd_clk, negedge rst_n)if(!rst_n) current_state <= IDLE;else current_state <= next_state;//在时钟信号作用期间,次态重复的赋给现态alwaysbegincase(current_state)IDLE : next_state = DISP_SET;DISP_SET : next_state = DISP_OFF;DISP_OFF : next_state = CLR_SCR;CLR_SCR : next_state = CURSOR_SET1;CURSOR_SET1 : next_state = CURSOR_SET2;CURSOR_SET2 : next_state = ROW1_ADDR;ROW1_ADDR : next_state = ROW1_0;ROW1_0 : next_state = ROW1_ADDR;default : next_state = IDLE ;endcaseendalways @ (posedge lcd_clk, negedge rst_n)beginif(!rst_n)beginlcd_rs <= 0;lcd_data <= 8'hxx;endelsebegincase(next_state)IDLE : lcd_rs <= 0;DISP_SET : lcd_rs <= 0;DISP_OFF : lcd_rs <= 0;CLR_SCR : lcd_rs <= 0;CURSOR_SET1 : lcd_rs <= 0;CURSOR_SET2 : lcd_rs <= 0;ROW1_ADDR : lcd_rs <= 0;ROW1_0 : lcd_rs <= 1;endcasecase(next_state)IDLE : lcd_data <= 8'hxx;DISP_SET : lcd_data <= 8'h38;DISP_OFF : lcd_data <= 8'h08;CLR_SCR : lcd_data <= 8'h01;CURSOR_SET1 : lcd_data <= 8'h04;CURSOR_SET2 : lcd_data <= 8'h0C;ROW1_ADDR : lcd_data <= 8'h80;ROW1_0 : lcd_data <= row1_val[127:120];endcaseendendassign lcd_e = lcd_clk; // 数据在时钟高电平被锁存assign lcd_rw = 1'b0; // 只写endmodule5.下载电路及引脚分配设计设计中用实验箱自带的50MHz时钟信号作为输入端,用sel0、sel1、sel2三个使能端选通LCD1602液晶屏,EP2C8Q208C8就会工作在给液晶下命令的状态,使得点阵正常工作,如图3.5.1所示。

LCD1602液晶显示器

LCD1602液晶显示器

实验11:1602液晶显示屏显示(字符型液晶显示器)字符型液晶显示器用于数字、字母、符号并可显示少量自定义符号。

这类液晶显示器通常有16根接口线,下表是这16根线的定义。

字符型液晶接口说明编号符号引脚说明编号符号引脚说明1 Vss 电源地 9 D2 数据线22 Vdd 电源正 10 D3 数据线33 VL 液晶显示偏压信号 11 D4 数据线44 RS 数据/命令选择端 12 D5 数据线55 R/W 读/ 写选择端 13 D6 数据线66 E 使能信号 14 D7 数据线77 D0 数据线0 15 BLA 背光源正极8 D1 数据线1 16 BLK 背光源负极(本学习板配的内部已经接地)下图是字符型液晶显示器与单片机的接线图。

这用了P0口的8根线作为液晶显示器的数据线,用P20、P21、P22做为3根控制线。

字符型液晶显示器与单片机的接线图字符型液晶显示器的使用,字符型液晶显示器一般采用HD44780芯片做为控制器的。

1.字符型液晶显示器的驱动程序这个驱动程序适用于1602型字符液晶显示器,1) 初始化液晶显示器命令(RSTLCD)设置控制器的工作模式,在程序开始时调用。

参数:无。

2) 清屏命令(CLRLCD)清除屏幕显示的所有内容参数:无3) 光标控制命令(SETCUR)用来控制光标是否显示及是否闪烁参数:1个,用于设定显示器的开关、光标的开关及是否闪烁。

4) 写字符命令(WRITECHAR)在指定位置(行和列)显示指定的字符。

参数:共有3个,即行值、列值及待显示字符,分别存放在XPOS、YPOS和A中。

其中行值与列值均从0开始计数,A中可直接写入字符的符号,编译程序自动转化为该字符的ASCII值。

5) 字符串命令(WRITESTRING)在指定位置显示指定的一串字符。

参数:共有3个,即行值、列值和R0指向待显示字符串的内存首地址,字符串须以0结尾。

如果字符串的长度超过了从该列开始可显示的最多字符数,则其后字符被截断,并不在下行显示出来。

LCD1602液晶显示实验报告

LCD1602液晶显示实验报告

LCD1602液晶显示实验报告实验报告:LCD1602液晶显示实验实验目的:1.了解LCD1602液晶显示的工作原理和基本结构;2.掌握LCD1602液晶显示的驱动控制方法;3.能够通过Arduino控制LCD1602液晶显示。

实验材料:1.Arduino UNO开发板2.LCD1602液晶显示屏3.面包板4.杜邦线实验步骤:1.将Arduino UNO开发板与面包板连接,确保连接正确并牢固;2.将LCD1602液晶显示屏与面包板连接,连接时应注意引脚的对应关系,确保连接正确;3.将杜邦线的一端连接到Arduino UNO开发板的数字引脚上,另一端连接到对应的液晶显示屏引脚上;4.编写Arduino代码,实现液晶显示屏的控制功能;5.将编写好的代码上传到Arduino UNO开发板上,运行程序,观察LCD1602液晶显示屏上的显示结果。

实验结果:通过实验,我们成功实现了对LCD1602液晶显示屏的控制。

在液晶显示屏上可以显示出我们想要的文字、数字或符号。

通过控制液晶显示屏的引脚电平,可以控制液晶显示出不同的字符。

实验总结:通过本次实验,我们了解了LCD1602液晶显示的工作原理和基本结构。

液晶显示屏通过控制引脚电平来控制液晶分子的排列,从而实现文字、数字或符号的显示。

我们还掌握了LCD1602液晶显示的驱动控制方法,通过编写Arduino代码,我们能够实现对液晶显示屏的控制。

在实验中,我们还学习到了Arduino的使用,它是一款开放源代码的电子原型平台,由硬件和软件组成。

通过编写Arduino代码,我们可以控制与Arduino连接的各种外设,包括LCD1602液晶显示屏。

通过本次实验,我们不仅加深了对LCD1602液晶显示的理解,还学会了使用Arduino控制液晶显示屏。

这对我们的电子制作和嵌入式系统开发有重要意义。

单片机LCD显示实验报告

单片机LCD显示实验报告

单片机LCD显示实验报告实验目的:本实验旨在通过使用单片机控制LCD进行显示,掌握单片机与外围设备的交互操作,学习并理解LCD显示原理。

实验器材:1. 单片机开发板2. LCD1602液晶显示屏3. 杜邦线若干4. 电阻若干实验原理:液晶显示原理是在液晶材料施加电场的作用下,通过改变传输光的偏振状态来实现图像显示。

本实验使用的LCD1602是一种16×2的字符型液晶显示模块,其中每个字符由5×8的点阵构成。

实验步骤:1. 连接电路:将LCD1602与单片机开发板通过杜邦线连接。

一般来说,液晶显示屏的引脚布局如下:- VSS: 接地- VDD: 供电(一般为5V)- V0:对比度控制端(通过电位器调节)- RS:数据/指令选择端(通常连接到单片机的I/O口)- RW:读写选择端(连接至地)- E:使能端(通常连接到单片机的I/O口)- D0-D7:数据线(连接到单片机的I/O口)- A:背光灯正极(连接5V)- K:背光灯负极(连接至地)2. 编写程序:根据实验要求,使用相应的单片机编程语言编写程序。

在程序中,需要调用相关的LCD1602命令来实现字符的显示。

3. 烧录程序:使用相应的烧录工具将编写好的程序下载到单片机开发板中。

4. 实验验证:将开发板上电,通过观察LCD1602的显示情况来验证程序的正确性。

实验结果与分析:在本次实验中,我使用单片机控制LCD1602成功实现了字符的显示。

实验结果表明,编写的程序能够正确地将字符显示在液晶屏上,并且显示效果良好。

实验中遇到的问题及解决方法:在实验过程中,我遇到了一些问题,例如LCD1602无显示、乱码或显示异常等情况。

针对这些问题,我采取了以下解决方法:1. 检查接线是否正确:确保LCD1602的引脚与单片机开发板之间的连接准确无误。

2. 检查电源供应:确认LCD1602的电源供应是否正常,电源电压是否稳定。

3. 调整对比度:通过旋转电位器调整LCD1602的对比度,以适应不同环境下的显示效果要求。

8-实验八 LCM1602液晶显示实验

8-实验八 LCM1602液晶显示实验

实验八 LCM1602液晶显示实验一、实验目的1.学习单片机C语言和汇编语言的编程方法。

2.了解LCM1602液晶显示模块的功能和使用方法。

3.掌握LCM1602液晶显示程序的编写方法。

二、实验原理1.LCM1602液晶显示模块:LCD(Liquid Crystal Display)是液晶屏,LCM(Liquid Crystal Module)则是液晶模块,它包括有LCD液晶屏、PCB线路板、驱动电路和背光灯等。

LCM1602的主要特性有:1)5V电源供电,低功耗、长寿命、高可靠性;2)内置192种字符;3)具有64个字节的自定义字符RAM;4)背光方式:底部LED。

5)可以显示2行,每行16个英文字符。

LCM1602实物图如右图所示,其采用标准的16脚接口。

第1脚:VSS为电源地,接GND;第2脚:VDD接5V正电源;第3脚:VL为液晶显示器对比度调整端,接10K电位器;第4脚:RS为寄存器选择引脚,高电平时选择数据寄存器,低电平时选择指令寄存器;第5脚:RW为读写信号线引脚,高电平时进行读操作,低电平时进行写操作;第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;第7~14脚:D0~D7为8位双向数据线;第15脚:BLA背光电源正极(+5V)输入引脚;第16脚:BLK背光电源负极,接GND。

2.硬件模块连线:LCM1602的使能引脚E、读写信号线引脚RW和寄存器选择引脚RS分别通过跳帽开关与单片机P1口低3位(P1.2~P1.0)连接。

单片机P0口8位(P0.7~P0.0)分别与LCM1602 的8个数据输入输出引脚相连,用于传输显示数据。

三、实验内容1.使用LCM1602芯片手册,学习并理解LCM1602液晶显示模块的原理、功能以及使用方法。

2.用C语言或汇编语言编写LCM1602液晶显示程序。

3.调节电位器,观察液晶显示的对比度。

四、实验步骤1.连接本实验用到的硬件模块:单片机系统模块、LCM1602液晶显示模块。

LCD1602液晶显示屏幕时序图分析

LCD1602液晶显示屏幕时序图分析

LCD1602液晶显示屏幕时序图分析
这段时间里回头看看所学的单片机知识,发现一个很严重的问题看不懂时序图!研究了一上午说说自己的结果,欢迎各位拍砖和指点!
图7.2.2是1602液晶写的时序,时序图从上到下看、从左到右看。

先说说时序图的规则:
高低电平上面的线是高电平,下面的线是低电平,如果高低交叉可能会产生高电平或低电平。

电平的走向看到低电平和高电平交叉产生电平的变化,
看到红圈花的部分,竖线那里有条横线,代表着这个选用的是高电平。

还有一种情况这种情况是高低电平一起变化,看图中横线标出了电平的变化。

现在我们了解完了规则,现在分析时序图
原图我进行了标号。

时序图从上往下看,从左往右看
1 rs 为高电平 rw 为低电平
2 载入数据db
3 始能e由低电平变为高电平
4和5 始能e由高电平转化为低电平最后数据写完。

这个就是我的理解,如果有错误或不对的地方欢迎指正。

LCD1602液晶显示实验实验报告及程序

LCD1602液晶显示实验实验报告及程序

LCD1602液晶显示实验实验报告及程序一、实验目的本次实验的主要目的是熟悉并掌握 LCD1602 液晶显示屏的工作原理和编程方法,能够成功实现字符在液晶屏幕上的显示和控制。

二、实验原理LCD1602 是一种工业字符型液晶,能够显示 16x2 个字符,即每行16 个字符,共 2 行。

它的工作原理是通过控制液晶分子的偏转来实现字符的显示。

LCD1602 有 16 个引脚,主要引脚功能如下:1、 VSS:接地。

2、 VDD:接电源(通常为+5V)。

3、 V0:对比度调整引脚,通过外接电位器来调节屏幕显示的对比度。

4、 RS:寄存器选择引脚,高电平时选择数据寄存器,低电平时选择指令寄存器。

5、 RW:读写选择引脚,高电平时进行读操作,低电平时进行写操作。

6、 E:使能引脚,下降沿触发。

7、 D0 D7:数据引脚,用于传输数据和指令。

LCD1602 的指令集包括清屏、归位、输入方式设置、显示开关控制、光标或显示移位、功能设置、CGRAM 和 DDRAM 地址设置以及读忙标志和地址等。

三、实验设备与材料1、单片机开发板2、 LCD1602 液晶显示屏3、杜邦线若干4、电脑四、实验步骤1、硬件连接将 LCD1602 的 VSS 引脚接地。

将 VDD 引脚接+5V 电源。

将 V0 引脚通过一个 10K 的电位器接地,用于调节对比度。

将 RS、RW、E 引脚分别连接到单片机的三个 I/O 口。

将 D0 D7 引脚连接到单片机的 8 个 I/O 口。

2、软件编程包含必要的头文件。

定义与 LCD1602 连接的 I/O 口。

编写初始化函数,包括设置显示模式、清屏、输入方式等。

编写写指令函数和写数据函数,用于向LCD1602 发送指令和数据。

编写显示字符串函数,实现字符在屏幕上的显示。

3、编译下载程序使用编译软件对编写的程序进行编译,生成可执行文件。

将可执行文件下载到单片机开发板中。

4、观察实验结果给开发板上电,观察 LCD1602 液晶显示屏上是否正确显示预设的字符。

1 LCD1602显示总结

1 LCD1602显示总结

1 LCD1602显示总结使用LCD 1602显示内容时首先要初始化LCD1602的显示模式,然后实现对LCD 1602稳定读/写的函数,包括读状态和写内容,对LCD 1602写内容又包括写指令和写数据。

1.1 LCD1602的初始化可编写专门的初始化函数来实现,函数内容可包含如下:(1)程序运行时,等待约15ms的时间让LCD VDD电压达4.5V。

(2)用编写的LCD写指令函数设置LCD的显示模式,如设置LCD1602用16 x 2显示、5x7点库、使用8位数据端口。

对应送往LCD 1602 8个端口的数据为0x38。

(3)设置LCD开显示模式,是否显示光标,光标是否闪烁。

都设置时8个数据端口的数据为0x0f。

(4)设置LCD读写字符后地址指针、光标位置是否往后增1,屏幕移动与否。

地址指针、光标在读写字符后增1,屏幕不移动时8个端口的数据为0x06。

(5)清屏。

清屏指令为0x01.可在LCD写指令模式设置下写入清屏指令。

清屏指令主要是为了下一次的显示不受上一次显示的干扰。

1.2 LCD1602写指令/数据可专门编写函数来实现。

函数内容可包含如下:(1)检测LCD忙信号:LCD的D7位是否为1,如果此位为1则表示LCD处于忙碌状态,需要等到D7状态位为0时方可进入写指令操作。

(2)设置LCD的RS端口为0来表示对LCD进行指令操作,RW端口为0表示往LCD内写东西。

二者构成往LCD内写指令。

延时等待(时间不长,需参考手册中的时间)保证RS,RW 两端口彻底的到达低电平。

(3)将指令置于LCD的D0-D7位,延时等待保证D0-D7电平得到彻底变化。

(4)将LCD的EN使能位置为1,延时等待其位彻底变高后将EN置为1,使得EN端口得到一个负脉冲。

(5)EN端负脉冲产生LCD就开始将D0-D7上面的指令往LCD里面写入,此时延时等待一段时间(如5ms,合适的时间可以不断的调试得来)当要对LCD写数据时,步骤跟写指令时一样,只是需要在以上步骤中将RS设置为高电平,表示对LCD进行数据操作。

实验八 LCD1602液晶显示实验

实验八 LCD1602液晶显示实验

电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验3、芯片时序表:4、LCD数据存储器地址LCD内置了DDRAM,用来寄存待显示的字符代码。

其地址与屏幕的对应关系如下:也就意味着想要在LCD1602的第一行第一列显示一个“A”字符,就要向DDRAM的00H地址写入“A”,但是在实际写入时,还必须将00H加上80H,即0X80+0X00。

以此类推,如果想要在LCD1602的第二行的第二列显示字符内容,则实际写入地址应该为0X80+0X41。

5、1602LCD的一般初始化(复位)过程(1) 延时15ms。

(2) 写指令38H(不检测忙信号)。

(3) 延时5ms。

(4) 写指令38H(不检测忙信号)。

(5) 延时5ms。

(6) 写指令38H(不检测忙信号)。

(7) 以后每次写指令、读/写数据操作均需要检测忙信号。

(8) 写指令38H:显示模式设置。

(9) 写指令08H:显示关闭。

(10) 写指令01H:显示清屏。

(11) 写指令06H:显示光标移动设置。

(12) 写指令0CH:显示开及光标设置。

6、LCD1602与单片机直接连接典型示意图如图8.1所示。

图8.1 LCD1602液晶显示。

三、实验内容和步骤1、用Proteus设计一LCD1602液晶显示接口电路。

参考实验指导书上的参考程序,编写程序,实现字符的静态显示。

显示字符为:第一行:“姓名全拼(居中)”,第二行:“专业全拼+学号(后3位)”。

将LCD显示截图以及相应的程序保存在下方。

#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code table[]=" xuzhulin ";uchar code table1[]="zidonghua 031";sbit lcden=P2^7;sbit lcdrw=P2^6;sbit lcdrs=P2^5;uchar num;for(num=0;num<12;num++){write_data(table[num]); //写数据,LCD的第一行显示delay(200);}write_com(0x02); //光标返回write_com(0x80+0x40); //设置数据地址指针,LCD第二行显示for(num=0;num<16;num++){write_data(table1[num]);delay(200);}while(1);}}2、在上一题的基础上,增加两个外部中断,实现不同内容的显示。

LCD1602液晶显示实验要点

LCD1602液晶显示实验要点

LCD1602液晶显示实验要点一、液晶显示原理液晶显示屏是一种电场调制显示器件,通过激励电场使液晶分子的排列状态发生变化,从而控制光的透过程度,实现图像显示。

液晶显示器的基本结构是两块平行的玻璃基板夹层液晶,上面由导电涂层构成的液晶单元。

在液晶单元上方有一块透明电极玻璃,根据控制信号排列液晶分子,形成图像。

二、LCD1602液晶显示屏三、实验器材1. Arduino开发板2.LCD1602液晶显示屏3.面包板4.杜邦线等四、实验步骤1. 接线:将LCD1602液晶显示屏与Arduino开发板通过杜邦线连接。

将VCC接到5V电源、GND接到地、SCL接到A5口、SDA接到A4口。

2. 编写程序:打开Arduino开发环境,编写程序代码,实现液晶显示功能。

3. 初始化:使用LiquidCrystal库,编写代码进行液晶显示屏的初始化设置。

4. 显示字符:通过调用lcd.print(函数,将指定字符显示在液晶屏上。

5. 光标控制:调用lcd.setCursor(函数,设置光标所在位置。

6. 清屏:调用lcd.clear(函数,清除液晶屏上的字符。

7. 控制显示:通过调用lcd.noDisplay(和lcd.Display(函数,控制液晶屏的显示和关闭。

8. 自定义字符:通过调用lcd.createChar(函数,创建自定义字符并显示在液晶屏上。

五、实验注意事项1.液晶显示屏的类型应与编程语言库文件匹配。

2.接线时要确保正确连接,以免损坏LCD1602显示屏。

3.初始化液晶显示屏时,要设置液晶屏的列数和行数。

4.控制液晶显示屏时,要注意操作指令的执行顺序,以免出现误操作。

六、实验结果展示通过编写相应的程序,可以实现在液晶显示屏上显示指定字符、自定义字符,以及控制光标的移动和屏幕的清除等功能。

实验成功时,可以在液晶显示屏上看到所期望的字符和效果。

七、实验应用液晶显示屏广泛应用于各种电子设备和仪器仪表,如电子体温计、电子秤、数码相册、电视机等。

实验七:LCD1602的显示

实验七:LCD1602的显示

实验七:LCD1602的显示
一、实验目的
熟悉并掌握液晶1602 显示屏的使用方法,学习利用有限状态机实现较为复杂的设计与应用。

二、实验设备
硬件:Super Hornet FPGA 核心板及Super Hornet扩展板,LCD1602
软件:QuartusII 9.1开发工具。

三、实验原理
本实验采用的是一个2 行16 字符液晶显示屏LCD,它由HD44780、HD44100 及几个电阻电容组成,详细资料参考1602 LCD字符模块使用手册,这里不再累述。

1602上电后,必须传送给液晶显示屏控制芯片初始化命令,初始化结束后,还要传输指定地址、显示字符的编码数据,接通电源后,FPGA 向液晶显示屏控制芯片发送指令的流程如
下图所示。

四、实验步骤
本实验由LCD时钟模块、LCD控制模块、LCD显示模块组成。

本实验源工程位于:\Super_Hornet_FPGA\Verilog\
EX7_LCD1602 目录下,用户可以从中查看实验内容五、对应引脚
六、实验现象
LCD显示。

1602字符液晶显示原理+实例详解新手必看

1602字符液晶显示原理+实例详解新手必看

1602字符液晶显示原理+实例详解新手必看1602详细资料和实例(看了必会)1602字符液晶在实际的产品中运用的也比较多了,前几天留意了一下,发现宿舍门前的自动售水机就是采用的1602液晶进行显示的。

而且对于单片机的学习而言,掌握1602的用法是每一个学习者必然要经历的过程。

在此,我将使用1602过程中遇到的问题以及感受记录下来,希望能够给初学者带来一点指导,少走一点弯路。

所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。

目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

1602液晶的正面(绿色背光,黑色字体)1602液晶背面(绿色背光,黑色字体)另一种1602液晶模块,显示屏是蓝色背光白色字体字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:HD44780内置了DDRAM、CGROM和CGRAM。

DDRAM就是显示数据RAM,用来寄存待显示的字符代码。

共80个字节,其地址和屏幕的对应关系如下表:也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码(指A的字模代码,0x20~0x7F为标准的ASCII码,通过这个代码,在CGROM中查找到相应的字符显示)就行了。

但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。

那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。

第二行也一样用前16个地址。

对应如下:DDRAM地址与显示位置的对应关系(事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码,见字模关系对照表)并不能显示1出来。

lcd1602的显示及注意点

lcd1602的显示及注意点
开始 设置显示方式
延时5ms
清理显示缓存
设置显示模式
结束
开始
初始化
1.设置显示模式
设置显示 地址
2.写显示字符的位 置
在对LCD1602进 行操作的时候,需 要判断LCD1602 是否处于忙的状 态.如果是处于忙 的状态,就需要等 LCD1602忙完,再 对它进行读写操 作.
写入显示字符 ASSII码
LCD1602引脚图
LCD1602硬件应用图



这个是LCD1602的应用图.这是8位总 线的工作方式. 如果需要工作在4位总线的方式,则数 据是从D4-D7输入到LCD内部.把8位 数据分成二次送入进D4-D7就可以. LCD的3脚是对比度控制电阻,一般1K 就可以满足要求.如果大于4.7K 后,LCD可能显示不清楚. 在应用LCD1602的时候最好在背光上 加一个限流电阻.
LCD1602自定义字符方法



1.建立一个字符数组 uchar LCD_Data1[]={0x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00}; 2.设置CGRAM地址,写指令. Write_LCD(0x40,0); 3.把数据送入CGRAM地址内. for(i = 0; i < 8 ; i ++ ) { Write_LCD(LCD_Data1[i],1); } 4.写需要显示的位置指令. Write_LCD(0x80,0); 5.把CGRAM的0位的数据送向LCD1602,显示数据存储的数据. Write_LCD(0x00,1);
3.写显示字符数据
结束
4.完成显示
LCD1602自定义显示字符方法

1602显示实验报告

1602显示实验报告

一、1602显示二、实验项目:1602显示三、实验地点:四、五、实验时间:2014年7月9日~2014年7月23日六、实验要求:1、在单片机最小系统中加入LCD1602显示屏。

2、能进行数字和字符的显示3、扩展功能一:将实验四中的“单片机时钟”改为1602显示。

4、用Protel99SE绘制实验原理图并完成实验报告。

七、实验具体内容:1、在单片机最小系统中加入LCD1602显示屏。

(1)实验电路图:(2)实验原理:1602显示屏采用标准的16引脚(有背光),其各个引脚接线及作用说明如下:(3)实验中遇到的问题:在电路接线工作完成以后,上电实验时LCD只有背光,无任何显示。

问题原因分析:在接线过程中,我最为关注的是RS、R/W、E三个端口的接线,忽视了D0~D7的接线顺序,从而使D7~D0的方向接反。

因此1602内部的11条指令码都会对应不上,例如清屏指令是0x01,而我则需要写成0x20。

所以按照正常程序指令,在初始化之后,屏幕会一直没有显示。

(4)实验小结:在完成电路图之后觉得本次的接线相对来说比较简单。

心想只要接好RS、R/W、E正负极不反接,就没什么问题。

结果却出乎我的意料,看是简单的D0~D7八个端口的顺序同样起着关键的作用。

因自己的忽视,使我在完成接线之后长时间找不到问题原因之所在。

这次的接线也很好的提醒了我,看似简单的工作,可千万不敢再掉意轻心。

2、能进行数字和字符的显示并将实验四中的“单片机时钟”改为1602显示。

(1) 实验原理:LCD6102的显示方式是先从DDRAM写入要显示地址,在往DDRAM写入要显示的字符码。

控制其操作的有11条LCD1602的内部指令,具体如下:指令1:清显示;指令2:光标复位,光标复位到地址00H;指令3:光标和显示模式设置;I/D:光标移动方向,高电平左移,低电平右移S:屏幕上所有文字是否左移或者右移(高电平有效,低电平无效)指令4:显示开关控制;D:控制整体显示开关,高电平表示开,低电平表示关C:控制光标的开关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标显示移位;S/C:高电平时移动显示文字,低电平时移动显示光标指令6:功能设置命令;DL:高电平时为四位总线,低电平时为八位总线N:低电平时为单行显示,高电平时为双行显示F:低电平时为5x7点阵字符,高电平时为5x10点阵字符指令7:字符发生器存储器地址:指令8:DDRAM地址设置指令9:读忙信号和光标地址BF为忙标志高电平表示忙,此时模块不能接收命令或者数据,低电平表示不忙指令10:写数据指令11:读数据时序控制:读状态:输入RS=0 R/W=1 E=1 输出:D0~D7=状态字写指令:输入RS=0 R/W=1 D0~D7=指令码E=高脉冲输出:无读数据:输入RS=1 R/W=1 E=1 输出:D0~D7=数据写数据:输入RS=1 R/W=0 D0~D7=数据E=高脉冲输出:无(2)程序流程图如下所示:(3)实验中遇到的问题按下4#键时钟显示减1,当显示为00后,继续减1,会出现ASCLL在0之后的码。

LCD1602液晶显示实验实验报告及程序

LCD1602液晶显示实验实验报告及程序

实验三 LCD1602液晶显示实验姓名专业学号成绩一、实验目的1.掌握Keil C51软件与proteus软件联合仿真调试的方法;2.掌握LCD1602液晶模块显示西文的原理及使用方法;3.掌握用8位数据模式驱动LCM1602液晶的C语言编程方法;4.掌握用LCM1602液晶模块显示数字的C语言编程方法。

二、实验仪器与设备1.微机一台 C51集成开发环境仿真软件三、实验内容1.用Proteus设计一LCD1602液晶显示接口电路。

要求利用P0口接LCD1602液晶的数据端,~做LCD1602液晶的控制信号输入端。

~口扩展3个功能键K1~K3。

参考电路见后面。

2.编写程序,实现字符的静态和动态显示。

显示字符为第一行:“1.姓名全拼”,第二行:“2.专业全拼+学号”。

3.编写程序,利用功能键实现字符的垂直滚动和水平滚动等效果显示。

显示字符为:“1.姓名全拼 2.专业全拼+学号 EXP8 DISPLAY ”主程序静态显示“My information!”四、实验原理液晶显示的原理:采用的LCD显示屏都是由不同部分组成的分层结构,位于最后面的一层是由荧光物质组成的可以发射光线的背光层,背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层,液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。

当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。

1.LCD1602采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚接口说明如表:2.1602液晶模块内部的控制器共有11条控制指令,如表所示:3.芯片时序表:4.1602LCD的一般初始化(复位)过程(1) 延时15ms。

(2) 写指令38H(不检测忙信号)。

(3) 延时5ms。

(4) 写指令38H(不检测忙信号)。

(5) 延时5ms。

LCD1602液晶显示

LCD1602液晶显示

实验十一、LCD1602液晶显示一、实验目的1、熟悉Protuse仿真软件的使用;2、熟悉利用Keil软件编译程序的过程;3、了解LCD1602液晶显示器的工作原理及学会翻阅芯片的数据手册;4、掌握LCD1602液晶显示器的驱动流程和编程方法。

二、实验内容LCD1602液晶显示器的驱动流程:1、写操作(写指令(RS=0)和写数据(RS=1))1.1、写指令函数write_cmd(u8 cmd)1.2、写数据函数write_data(u8 dat)2、初始化液晶2.1、归位write_cmd(0x02);2.2、设置输入方式write_cmd(0x06);2.3、控制显示开关write_cmd(0x0c);2.4、功能设置write_cmd(0x38);2.5、清屏write_cmd(0x01);3、写显示的数据3.1、选择显示的行write_cmd(0x80);3.2、写显示的数据write_data(‘I’);Protuse 仿真环境的搭建:1、在Pick Devices中查找所需要的器件AT89C51、LM061L、RESPACK-8;同时搭建晶振电路和复位电路。

2、将其按照(图11.1)进行相连;3、将生成的.hex文件导入AT89C51芯片中进行仿真实验。

三、实验过程Keil软件程序:#include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned char u8; //对数据类型进行声明定义typedef unsigned int u16;#define DATA P0sbit rs = P2^1; //寄存器选择变量sbit rw = P1^5; //读写操作选择变量sbit en = P1^6; //工作使能变量void delay(u16 num) //延时函数{u16 x,y;for (x=num; x>0; x--)for(y=110; y>0; y--);}void write_cmd (u8 cmd) //写指令函数{rs = 0; //指令寄存器rw = 0; //写操作DATA = cmd;delay(5);en = 1;delay(5);en = 0;}void write_data (u8 dat) //写数据函数{rs = 1; //数据寄存器rw = 0; //写数据DATA = dat;delay(5);en = 1;delay(5);en = 0;}void lcd_init (void) //液晶初始化函数{write_cmd(0x02); //归位write_cmd(0x06); //输入方式,AC自动加1,画面不动write_cmd(0x0c); //显示开关开,光标开,闪烁关write_cmd(0x38); //功能设置,8位数据接口,两行显示,5*7点阵字符write_cmd(0x01); //清屏}int main (void){ u8 *string="I Love You";u8 n=0;u8 dp=0xc0; //第二行初位信息rw = 0;rs = 0;en = 0;lcd_init();write_cmd(0x80); //第一行初位信息write_data('I');write_data(' ');write_data('L');write_data('O');write_data('V');write_data('E');write_data(' ');write_data('D');write_data('P');write_data('J');write_cmd(dp); //第二行while(*string!='\0'){ write_cmd(dp);dp++;write_data(*string);string++;n++;}while(1);}Protuse 仿真:图11.1 LCD液晶显示实验四、实验现象在AT89C51芯片中下载程序后LCD液晶显示屏上显示”I lOVE DPJ”和”I Love You”两行字符。

实验八 LCD1602液晶显示实验

实验八 LCD1602液晶显示实验

实验报告八实验名称:LCD1602液晶显示实验实验目的:1了解LCD显示的基本原理2了解LCD的接口与控制方法3掌握LCD显示图形的方法4掌握LCD显示字符的方法实验原理:1、LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。

因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。

,2、由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。

驱动模块具有八位数据总线,外加一些电源接口和控制信号。

而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。

由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。

硬件原理图:1602液晶显示模块可以和单片机AT89C51直接接口,电路如图下图所示:PROTEUS中仿真观察结果.图一程序如下所示:RS EQU p2.6RW EQU p2.5E EQU p2.7ORG 0000HMOV SP , #70HMOV p0, #01HCALL ENABLEMOV p0, #38HCALL ENABLEMOV p0, #0FHCALL ENABLEMOV p0, #06HCALL ENABLEMOV p0, #80HCALL ENABLEMOV DPTR, #TABLE1CALL WRITE1MOV p0, #0C0HCALL ENABLEMOV DPTR, #TABLE2CALL WRITE1MOV p0, #0C2HCALL ENABLEJMP $ENABLE: CLR RSCLR RWCLR ECALL DELAYSETB ERETWRITE1: MOV R1, #00HA1: MOV A, R1MOVC A, @A+DPTRCALL WRITE2INC R1CJNE A, #00H, A1RETWRITE2: MOV p0 , ASETB RSCLR RWCLR ECALL DELAYSETB ERETDELAY: MOV R4, #05D1: MOV R5, #0FFHDJNZ R5, $DJNZ R4, D1RETTABLE1: DB" XIA MEN GUANJIE ",00HTABLE2: DB"XIAN SHI QI TECHNOLOGY ",00H END程序流程图如下所示:实验现象:从左往右逐字显示,闪动两次,清屏,再从右往左显示,闪动两次,清屏,安周期性重复上述现象!。

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

实验报告实验名称: [LCD1602液晶显示实验]姓名:学号:指导教师:实验时间: [2013年6月15日]信息与通信工程学院LCD1602液晶显示实验1.实验原理1.1 基本原理1.1.1 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

1.1.2 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图1-2所示:图1-2 1602LCD尺寸图1.1602LCD主要技术参数:显示容量: 16×2个字符芯片工作电压: 4.5~5.5V工作电流: 2.0mA(5.0V)模块最佳工作电压: 5.0V字符尺寸: 2.95×4.35(W×H)mm2.引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表:表1-3引脚接口说明表编符号引脚说明编号符号引脚说明号1 VSS 电源地9 D2 数据2 VDD 电源正极10 D3 数据3 VL 液晶显示偏压11 D4 数据4 RS 数据/命令选择12 D5 数据5 R/W 读/写选择13 D6 数据6 E 使能信号14 D7 数据7 D0 数据15 BLA 背光源正极8 D1 数据16 BLK 背光源负极1.1.3 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表1-4所示:表1-4 控制命令表序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D01 清显示0 0 0 0 0 0 0 0 0 12 光标返回0 0 0 0 0 0 0 0 1 *3 置输入模式0 0 0 0 0 0 0 1 I/D S4 显示开/关控制0 0 0 0 0 0 1 D C B5 光标或字符移位0 0 0 0 0 1 S/C R/L * *6 置功能0 0 0 0 1 DL N F * *7 置字符发生存贮器地址0 0 0 1 字符发生存贮器地址8 置数据存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0 1 BF 计数器地址10 写数到CGRAM或DDRAM)1 0 要写的数据内容11 从CGRAM或DDRAM读数1 1 读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:1为高电平、0为低电平)读写操作时序如图1-5和1-6所示:图1-5 读操作时序图1-6 写操作时序1.1.4 1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以,在执行每条指令之前,一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时,要先输入显示字符地址,也就是告诉模块在哪里显示字符,图1-7是1602的内部显示地址。

图1-7 1602LCD内部显示地址例如,第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中,要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,编程中还可以用字符型常量或变量赋值,如“A”。

1602通过D0~D7的8位数据端传输数据和指令。

1.1.5 1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置1.2 任务1及其原理任务1:更改lcd上显示的字符。

通过更改wire [127:0] row1_val,wire [127:0] row2_val的赋值即可,注意保证“”内的字符数包括空格共16位。

1.3 任务2及其原理任务2:将“LCD1602驱动模块”文件与“LCD1602驱动测试模块”文件合并成为一个verilog文件。

首先,新建一个顶层VerilogHDL文件,将两个文件的输入,内容合并,调试新的模块,然后将管脚连接在一起,从而完成合并。

1.4 任务3及其原理任务3:实现液晶屏的某一位完成0~9的循环变换,并且设置复位键,在循环过程中按下复位键循环可从0重新开始。

完成本次的实验想法是将“LCD1602驱动测试模块”文件中wire [127:0] row1_val,wire [127:0] row2_val变量进行改动,将row1_val原本赋予的字符替换为一个变量,设定新的时钟,即循环变换的间隔时间,再通过条件语句控制循环。

使能键的控制原理是通过对循环变换的条件进行操作实现的,即当按键使能时循环开始,反之,则从0开始。

2.实验流程图0~9循环变换流程图开始定义输入输出变量及类型lcd 液晶屏初始化是否有按键按下?复位键是否启动?定义a=8'h30;i=0将a 赋值给row1_val 低8位是否是时钟输入上升沿?i<=8a=a+1; i=i+1;结束显示定义字符是是否否否是否3.实验程序3.1 任务1程序程序更改部分:wire [127:0] row1_val = " liu wupeng "; wire [127:0] row2_val = " 2009081206 ";3.2 任务2程序将测试模块中的驱动部分,两个文件的对应命名只留其一,合并两文件,即以下部分// 例化LCD1602驱动lcd1602_drive u0(.clk(CLOCK_50M),.rst_n(Q_KEY),.row1_val(row1_val),.row2_val(row2_val),.lcd_data(LCD1602_DATA),.lcd_e(LCD1602_E),.lcd_rs(LCD1602_RS),.lcd_rw(LCD1602_RW));完整程序请参见附件:13.3 任务3程序改动模块:LCD1602驱动测试模块,加重处为修改、添加部分module lcd1602_test(input CLOCK_50M, // 板载时钟25MHzinput Q_KEY, // 板载按键RSToutput [7:0] LCD1602_DATA, // LCD1602数据总线output LCD1602_E, // LCD1602使能output LCD1602_RS, // LCD1602指令数据选择output LCD1602_RW, // LCD1602读写选择output SEL0, // LCD1602读写选择output SEL1, // LCD1602读写选择output SEL2 // LCD1602读写选择input key, //使能控制键);reg [127:0] row1_val; //将原本的wire型改为reg型,保证其可变wire [127:0] row2_val = " ";//将第二行赋值都是空格,实验时显示为空reg [7:0] a; //a变化控制reg [127:0] row1_valreg [3:0] i;reg [25:0] cnt; //分频用reg en; //使能控制assign SEL0 = 1'b0;assign SEL1 = 1'b0;assign SEL2 = 1'b1;always @ (posedge CLOCK_50M,negedge Q_KEY)if (!Q_KEY) cnt <= 0;else cnt <= cnt + 1'b1;wire lcd_clk = cnt[25]; //分频模块always @(a)beginrow1_val[7:0]<=a;end //将a赋给 row1_val[7:0]的低8位always @(negedge key)beginif (en==0) en<=1;elseen<=0;end //使能控制模块,下降沿有效always @(posedge lcd_clk)if (en)if(i<=8)begina=a+1;i=i+1;endelsebegini=0;a=8'h30;endelsea=8'h30; //通过条件控制语句实现0~9的循环变换// 例化LCD1602驱动lcd1602_drive u0(.clk(CLOCK_50M),.rst_n(Q_KEY),// LCD1602 Input Value.row1_val(row1_val),.row2_val(row2_val),// LCD1602 Interface.lcd_data(LCD1602_DATA),.lcd_e(LCD1602_E),.lcd_rs(LCD1602_RS),.lcd_rw(LCD1602_RW));endmodule4.管脚分配4.1 任务2管教分配4.2 任务3管教分配5.实验结果5.1 任务1实验结果修改程序后,液晶屏第一行显示" liu wupeng ",第二行显示" 2009081206 "。

5.2 任务2实验结果文件合并后,显示内容仍与原始程序相同。

5.3 任务3实验结果液晶屏第一行最后一位可实现0~9的循环变换,拨动复位键,计数从0重新开始。

6.实验心得通过本次实验,我了解了LCD-1602的构成及使用方法,能够通过编程显示字符。

在完成课堂任务“实现某一位0~9循环变换”时,起初由于没有掌握LCD的工作原理,出现了问题,即0~9快速变化,无法控制其速度,经过对程序及实验原理的研究,最后完成了任务。

相关文档
最新文档