单片机的LCD显示屏.docx

上传人:b****2 文档编号:737563 上传时间:2023-04-29 格式:DOCX 页数:18 大小:443.11KB
下载 相关 举报
单片机的LCD显示屏.docx_第1页
第1页 / 共18页
单片机的LCD显示屏.docx_第2页
第2页 / 共18页
单片机的LCD显示屏.docx_第3页
第3页 / 共18页
单片机的LCD显示屏.docx_第4页
第4页 / 共18页
单片机的LCD显示屏.docx_第5页
第5页 / 共18页
单片机的LCD显示屏.docx_第6页
第6页 / 共18页
单片机的LCD显示屏.docx_第7页
第7页 / 共18页
单片机的LCD显示屏.docx_第8页
第8页 / 共18页
单片机的LCD显示屏.docx_第9页
第9页 / 共18页
单片机的LCD显示屏.docx_第10页
第10页 / 共18页
单片机的LCD显示屏.docx_第11页
第11页 / 共18页
单片机的LCD显示屏.docx_第12页
第12页 / 共18页
单片机的LCD显示屏.docx_第13页
第13页 / 共18页
单片机的LCD显示屏.docx_第14页
第14页 / 共18页
单片机的LCD显示屏.docx_第15页
第15页 / 共18页
单片机的LCD显示屏.docx_第16页
第16页 / 共18页
单片机的LCD显示屏.docx_第17页
第17页 / 共18页
单片机的LCD显示屏.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机的LCD显示屏.docx

《单片机的LCD显示屏.docx》由会员分享,可在线阅读,更多相关《单片机的LCD显示屏.docx(18页珍藏版)》请在冰点文库上搜索。

单片机的LCD显示屏.docx

单片机的LCD显示屏

实验报告

实验课程名称近代电子学实验

实验项目名称基于单片机的LCD显示屏

专业班级电子信息科学与技术081班

学生姓名郎子龙

学号080712110069

指导教师李良荣

 

理学院

实验时间:

2011年5月13日

基于单片机的LCD显示屏

一、实验目的

1、利用最小系统的液晶显示电路,编写程序控制显示,输出字符。

2、了解液晶显示的控制原理及方法。

二、设计内容及要求

1、绘制流程图

2、进行软件编程和软模拟

3、进行硬件调试

三、实验原理

1、1602显示屏简介

工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)

2、管脚功能

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线

  VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:

  

引脚

符号

功能说明

1

VSS

一般接地

2

VDD

接电源(+5V)

3

V0

液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

4

RS

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5

R/W

R/W为读写信号线,高电平

(1)时进行读操作,低电平(0)时进行写操作。

6

E

E(或EN)端为使能(enable)端,下降沿使能。

7

DB0

低4位三态、双向数据总线0位(最低位)

8

DB1

低4位三态、双向数据总线1位

9

DB2

低4位三态、双向数据总线2位

10

DB3

低4位三态、双向数据总线3位

11

DB4

高4位三态、双向数据总线4位

12

DB5

高4位三态、双向数据总线5位

13

DB6

高4位三态、双向数据总线6位

14

DB7

高4位三态、双向数据总线7位(最高位)(也是busyflag)

15

BLA

背光电源正极

16

BLK

背光电源负极

寄存器选择控制表

RS

R/W

操作说明

0

0

写入指令寄存器(清除屏等)

0

1

读busyflag(DB7),以及读取位址计数器(DB0~DB6)值

1

0

写入数据寄存器(显示各字型等)

1

1

从数据寄存器读取数据

注:

关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0.

busyflag(DB7):

在此位为被清除为0时,LCD将无法再处理其他的指令要求。

3、字符集

  1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

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

以下是1602的16进制ASCII码表:

读的时候,先读上面那列,再读左边那行,如:

感叹号!

的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

4、显示地址

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

00H

01H

02H

03H

04H

05H

06H

07H

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

40H

41H

42H

43H

44H

45H

46H

47H

48H

49H

4AH

4BH

4CH

4DH

4EH

4FH

  5、指令集

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

  显示模式设置:

(初始化)

  00111000[0x38]设置16×2显示,5×7点阵,8位数据接口;

  显示开关及光标设置:

(初始化)

  00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)

  000001NSN=1(读或写一个字符后地址指针加1&光标加1),

  N=0(读或写一个字符后地址指针减1&光标减1),

  S=1且N=1(当写一个字符后,整屏显示左移)

  s=0当写一个字符后,整屏显示不移动

  数据指针设置:

  数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)

  其他设置:

  01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。

  通常推荐的初始化过程:

  延时15ms

  写指令38H

  延时5ms

  写指令38H

  延时5ms

  写指令38H

  延时5ms

  (以上都不检测忙信号)

  (以下都要检测忙信号)

  写指令38H

  写指令08H关闭显示

  写指令01H显示清屏

  写指令06H光标移动设置

  写指令0cH显示开及光标设置

  完毕

  6、Proteus仿真

  使用Proteus仿真1602--即LM016L--依照数据手册说明可能遇到困难,可以尝试采用以下方案解决:

  1、数据手册中可能介绍1602内部D0~D7已有上拉,可以使用P0口直接驱动。

在Proteus里LM016L内部可能没有,应该人为

  加上拉电阻。

建议不要使用排阻,使用普通电阻一个一个拉应该可以解决问题;

2、可能碰到不能检测忙信号的问题,尝试使用延时把忙信号拖过去。

7、基本的读写时序图

  读写操作时序如图1和2所示:

写操作时序:

读操作时序:

四、电路的设计、安装及调试

1、电路图:

2、源程序:

/********************************************************************

**1602显示

*********************************************************************/

LCD_RSEQUP2.4

LCD_RWEQUP2.3

LCD_ENEQUP2.2

;*******************************************************************

ORG0000H

AJMPMAIN

ORG0030H

;*******************************************************************

MAIN:

MOVSP,#60H

ACALLLCD_INIT;LCD初始化

MAIN1:

ACALLCLR_LCD;清LCD

MOVA,#90H;在第一行第17列的位置

ACALLLCD_CMD

MOVDPTR,#LINE1;第一行字符串的起始地址送入DPTR。

ACALLWRITE

MOVA,#0D0H;在第二行第17列的位置

ACALLLCD_CMD

MOVDPTR,#LINE2;第二行字符串的起始地址送入DPTR。

ACALLWRITE

MOVR3,#10H;向左移动16格

LOOPA:

MOVA,#18H;字符同时左移一格

ACALLLCD_CMD

MOVR5,#03H;延时375MS

ACALLDELAY125MS

DJNZR3,LOOPA

ACALLDELAY4;延时1.6s

ACALLDELAY4

MOVR4,#02H;设置闪烁次数

ACALLFLASH;开始闪烁

AJMPMAIN1

LINE1:

DB"WELCOMEYOUTO",00H

LINE2:

DB"GUIZHOUPROVINCE",00H

;***************************************************************

;LCD初始化设定子程序

;***************************************************************

LCD_INIT:

ACALLDELAY5MS;延时15MS

ACALLDELAY5MS;等待LCD电源稳定

ACALLDELAY5MS

MOVA,#38H;16*2显示,5*7点阵,8位数据

ACALLLCD_CMD_NC;不进行LCD忙检测

ACALLDELAY5MS

MOVA,#38H;16*2显示,5*7点阵,8位数据

ACALLLCD_CMD_NC;不进行LCD忙检测

ACALLDELAY5MS

MOVA,#38H;16*2显示,5*7点阵,8位数据

ACALLLCD_CMD_NC;不进行LCD忙检测

ACALLDELAY5MS

MOVA,#08H;显示关

ACALLLCD_CMD;进行LCD忙检测

MOVA,#01H;清除屏幕

ACALLLCD_CMD;进行LCD忙检测

MOVA,#0CH;显示开,关光标

ACALLLCD_CMD;进行LCD忙检测

RET

;***************************************************************

;清LCD子程序

;***************************************************************

CLR_LCD:

MOVA,#01H;清除屏幕

ACALLLCD_CMD;进行LCD忙检测

RET

;***************************************************************

;写指令数据到LCD

;RS=L,RW=L,D0-D7=指令码,E=高脉冲

;***************************************************************

LCD_CMD:

CALLCHECKBUSY

LCD_CMD_NC:

CLRLCD_RS

CLRLCD_RW

MOVP0,A

SETBLCD_EN

NOP

NOP

NOP

NOP

CLRLCD_EN

RET

;***************************************************************

;写显示数据到LCD

;RS=H,RW=L,D0-D7=数据,E=高脉冲

;***************************************************************

LCD_WDATA:

ACALLCHECKBUSY

SETBLCD_RS

CLRLCD_RW

MOVP0,A

SETBLCD_EN

NOP

NOP

NOP

NOP

CLRLCD_EN

RET

;***************************************************************

;检测LCD控制器忙状态

;读数据

;RS=L,RW=H,E=H,输出:

D0-D7=数据

;P0.7=1,LCD忙,等待。

P0.7=0,LCD闲,可以进行读写操作。

;***************************************************************

CHECKBUSY:

PUSHACC

MOVP0,#0FFH

CLRLCD_RS

SETBLCD_RW

SETBLCD_EN

BUSYLOOP:

NOP

JBP0.7,BUSYLOOP

CLRLCD_EN

POPACC

RET

;***************************************************************

;发送字符串子程序

;***************************************************************

WRITE:

PUSHACC

WRITE1:

CLRA

MOVCA,@A+DPTR

JZWRITE2

INCDPTR

ACALLLCD_WDATA

JMPWRITE1

WRITE2:

POPACC

RET

;***************************************************************

;闪烁子程序

;***************************************************************

FLASH:

MOVA,#08H;关闭显示

ACALLLCD_CMD

ACALLDELAY4

MOVA,#0CH;开显示,关闭光标

ACALLLCD_CMD

ACALLDELAY4

DJNZR4,FLASH

RET

;***************************************************************

;延时5MS子程序

;LCD初始化使用

;***************************************************************

DELAY5MS:

MOVR6,#10

DL1:

MOVR7,#249

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

;***************************************************************

;延时125MS子程序

;字符串移动时使用

;***************************************************************

DELAY125MS:

DL3:

MOVR6,#250

DL4:

MOVR7,#249

DL5:

DJNZR7,DL5

DJNZR6,DL4

DJNZR5,DL3

RET

;***************************************************************

;延时800MS子程序

;闪烁时使用

;***************************************************************

DELAY4:

MOVR5,#40

DL6:

MOVR6,#100

DL7:

MOVR7,#100

DL8:

DJNZR7,DL8

DJNZR6,DL7

DJNZR5,DL6

RET

;***************************************************************

END

五、实验研究与参考

当今是一个信息化的时代,信息的重要性是不言而喻的,获取手段显得尤其重要。

人们所接受的信息有70%来自于人的视觉,无论用何种方式获取的信息最终需要有某种显示方式来表示。

在当代显示技术中,主流的有LED显示屏及LCD液晶显示,而在这些显示技术中,尤其以液晶显示器LCD(LiquidCrystalDisplay)为代表的平板显示器发展最快、应用最广。

LCD是典型的光电器件,它以材料科学为基础,综合利用了精密机械、光电及计算机技术,并正在微机械、微光学、纤维光学等前沿领域研究基础上,向高集成化、智能化方向发展。

液晶显示技术发展迅猛,市场预测表明,液晶显示器平均年销售量增长10%~13%,不久的将来有可能取代CRT,成为电子信息产品的主要显示器件,另外,液晶显示器对空间电磁辐射的干扰不敏感,且在紧凑的仪器空间不需要专门的屏蔽保护,因而可大大简化仪器的结构和制造成本,在各种便携式仪器、仪表将会得到越来越广泛的应用。

特别是在电池供电的单片机产品中,液晶显示器更是必选的显示器件。

1、液晶显示器在单片机系统中的应用

在日常生活中,我们对液晶显示器并不陌生。

液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

在单片机的人机交流界面中,一般的输出方式有以下几种:

发光管、LED数码管、液晶显示器。

发光管和LED数码管比较常用,软硬件都比较简单,在小型智能化电子产品中,普通的7段LED数码管只能显示数字,若要显示英文字母或图像汉字,则必须使用液晶显示器,所以本课题重点研究液晶显示器

2、液晶显示器的优点

在单片机系统中应用晶液显示器作为输出器件有以下几个优点:

(1)显示质量高

由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。

因此,液晶显示器画质高且不会闪烁。

(2)数字式接口

液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方。

(3)体积小、重量轻

  液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。

(4)功耗低

相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

3、单片机介绍

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。

51系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51系列单片机的发展又进入了一个新的阶段。

在今后很长一段时间内51系列单片机仍将占据嵌入式系统产品的中低端市场。

4、汇编语言介绍

汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。

但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。

  

汇编语言具有如下特点:

  

面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

  

2.保持了机器语言的优点,具有直接和简捷的特点。

  

3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

  

4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

  

5.经常与高级语言配合使用,应用十分广泛。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2