找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6074|回复: 3
打印 上一主题 下一主题
收起左侧

单片机FM12232A液晶显示控制实验选题与描述资料

[复制链接]
跳转到指定楼层
楼主
ID:161768 发表于 2017-9-8 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于FM12232A液晶显示控制实验

1. 实验目的
(1)学习及掌握FM12232A LCD模块工作原理。
(2)学习及掌握单片机与FM12232A接口电路连接。
(3)学习及掌握单片机控制FM12232A显示程序的设计方法。
2. 实验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。
(2)PC 系列微机及相关软件。
3. 实验内容及要求
(1)同实验一。
(2)同实验一。
(3)FM12232A LCD显示器内部结构及原理。
点阵式液晶显示模块FM12232A具有功耗低、供应电压范围宽、显示信息量大、寿命长、不产生电磁辐射污染等特点,广泛应用于移动通信、仪器仪表、家用电器等领域。
FM12232A模块由一块12232 LCD显示屏(由左、右半屏6116组成)、2片SED1520列驱动芯片(分别驱动左、右显示屏)以及控制电路构成,其中控制电路包括:指令寄存器(IR)、数据寄存器(DR)、忙标志(BF)、显示控制触发器(DFF)、显示RAM(DD RAM)、XY地址计数器等单元。FM12232A显示屏有16个行驱动输出和61个列驱动输出,驱动占空比可设置为1/16或1/32,并可外接驱动IC扩展驱动。FM12232A模块具有与68系列或80系列相适配的MPU接口功能,并有专用的指令集,可完成文本显示或图形显示。图4-20为FM12232A模块逻辑结构图。
图4-20  FM12232A模块内部逻辑结构图
【指令寄存器(IR):】存储CPU写入的指令码。当A0 = 0时,CPU写入的指令码存入IR中。
【数据寄存器(DR):】存储CPU写入的显示数据8位点阵码。当A0 = 1时,DR中8位点阵码写入对应的DD RAM单元,并且DD RAM的Y地址计数器自动加1指向下一个单元,DR和DDRAM之间的传送是FM12232A模块内部自动执行的。
【忙标志(BUSY):】 BUSY为FM12232A工作状态标志。BUSY = 1 ,FM12232A为内部操作状态,此时FM12232A禁止接收外部指令和数据;BUSY = 0 ,FM12232A为准备状态,此时FM12232A允许接收外部指令和数据。
【显示控制触发器(DFF):】DFF触发器用于控制FM12232A显示屏的开、关。DFF = 0,FM12232A开显示屏,此时DDRAM中显示码送入显示屏显示;DFF = 1,FM12232A关显示屏。
【显示RAM(DD RAM):】显示RAM 为DD RAM结构,主要功能为存储左、右两个显示屏显示数据的点阵码, DD RAM共有4页×8行×80列(只有前61列有效) = 2560位(320字节)RAM缓冲区,每一列包含的8行对应一个点阵码字节,RAM中1位二进制数值控制显示屏上一个像素点的亮与暗,“1”控制像素点亮、“0”控制像素点暗。DD RAM单元地址与点阵码显示位置关系见表4-1 DD RAM地址表。
表4-1  DD RAM地址表

Y=
0
1
2
3
62
63
0
1
2
3
62
63

行号

X = 0
DB0                       DB0
↓                         ↓
DB7                       DB7
DB0                      DB0
↓                        ↓
DB7                      DB7

X = 2
0
7

X = 1
DB0                       DB0
↓                         ↓
DB7                       DB7
DB0                      DB0
↓                        ↓
DB7                      DB7

X = 3
8
15

X = 4
DB0                       DB0
↓                         ↓
DB7                       DB7
DB0                      DB0
↓                        ↓
DB7                      DB7

X = 6
16
23

X = 5
DB0                       DB0
↓                         ↓
DB7                       DB7
DB0                      DB0
↓                        ↓
DB7                      DB7

X = 7
24
31
【XY地址计数器:】XY地址计数器为9位计数器,作为DD RAM的地址指针。其中高3位为X地址计数器,用作DD RAM的页指针(0~7),仅用0~3;低6位为Y地址计数器,用作DD RAM的列指针(0~63)仅用0~60。
【Z地址计数器:】Z地址计数器为6位计数器,用于显示行扫描同步,Z地址计数器具有循环计数功能,FM12232A复位后,Z地址计数器值为0。
(4)FM12232A 内部指令格式描述。
FM12232A 有专用的指令集,共有14条指令,指令包括控制信号A 0、和8位命令字,其格式描述如下:
⒈ 显示开关控制指令(DISPLAY ON/OFF):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
0
1
1
1
D
功能:该指令用于开/关屏幕显示,指令执行时不改变DD RAM中的内容,也不影响内部状态。由D值确定,D = 0,开显示(DISPLAY ON);D = 1,关显示(DISPLAY OFF)。
开显示指令码:AFH;关显示指令码:AEH。如果在显示关闭的状态下选择静态驱动模式,那么内部电路将处于安全模式。
⒉ 设置显示起始行指令(Display start line set):
A 0
DB7
DB6
DB5
A 4
A 3
A 2
A 1
A 0
0
0
1
1
0
功能:执行该命令后,所设置的行将显示在屏幕的第1行。起始行由A 4 ~ A 0指定,范围:00000 ~ 11111(0 ~ 31)。可以是0 ~ 31范围内任意一行。 行地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
起始行指令码:C0H ~ DFH。
⒊ 设置显示页地址指令(Page Address set):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
A 1
A 0
0
0
1
0
1
1
1
0
功能:该指令用于设置DD RAM页地址。当CPU要对DD RAM进行读写操作时,首先要设置页地址和列地址。本指令不影响显示。
DD RAM的页地址,由A 1 A 0指定,范围:00 ~ 11(0 ~ 3)。
页地址指令码:B8H ~ BBH。
⒋ 设置显示列地址指令(Column Address set)(Y地址):
A 0
DB7
A 6
A 5
A 4
A 3
A 2
A 1
A 0
0
0
0
功能:该指令用于设置DD RAM中的列地址,列地址由A 6 ~ A 0指定,范围:000000 ~ 1001111(0 ~ 79),列地址指令码:00H ~ 4FH。当CPU要对DD RAM进行读、写操作前,首先要设置页地址和列地址。执行读、写命令后,列地址会自动加1,直到达到50H才会停止,但页地址不变。
⒌ 读状态指令(Status Read):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
0
BUSY
ADC
ON/OFF
RST
0
0
0
0
功能:该指令用于检测模块内部状态。
BUSY为忙信号位:BUSY = 1,内部操作状态,禁止接收外部指令和数据;
BUSY = 0,空闲状态,允许接收外部指令和数据。
ADC为显示方向位:ADC = 0,反向显示;ADC = 1,正向显示。
ON/OFF显示屏开/关状态位:ON/OFF = 0,打开显示屏,ON/OFF = 1,关闭显示屏。
RST复位状态位:RST = 0,正常工作;RST = 1,模块内部复位初始化状态,此时禁止接收外部指令或数据。
⒍ 写显示数据指令(Write Display Data):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
1
D7
D6
D5
D4
D3
D2
D1
D0
功能:该指令将8位点阵码数据写入DD RAM对应单元,D7 ~ D0为8位点阵码数据,指令执行后,列(Y)地址自动加1,所以可以连续将点阵码数据写入DD RAM而不用重新设置列地址。
⒎ 读显示数据指令(Read Display Data):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
1
D7
D6
D5
D4
D3
D2
D1
D0
功能:该指令读出由页地址和列地址指定的DD RAM单元内8位点阵码数据,D7 ~ D0为DD RAM对应单元的8位点阵码。当“读-修改-写”模式关闭时,每执行一次读指令,列地址自动加1,因此,可以连续从DD RAM读出数据而不用设置列地址。
注意:设置完列地址后,首次读显示数据前必须执行一次空的“读显示数据”操作。这是因为设置完列地址后,第一次读数据时,出现在数据总线上的数据是列地址而不是要读出的点阵码数据。
⒏ 设置列序方向指令(ADC Select):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
0
0
0
0
D
功能:该指令设置DD RAM中的列地址与段驱动输出的对应关系,由D值确定。
设置D = 0时,正向;D = 1时,反向。
列序正向显示指令码:A0H ;列序反向显示指令码:A1H。
⒐ 设置占空比指令(Duty Ratio Select):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
0
1
0
0
D
功能:该指令设置驱动占空比,由D值确定。
设置D = 1时,占空比为1/32;D = 0时,占空比为1/16。
设置驱动占空比指令码:A9H (1/32),A8H(1/16)。
⒑ 静态驱动开/关设置指令(Static Drive On/Off Select):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
0
0
1
0
D
功能:该指令设置驱动方式,由D值确定。
D = 0,正常驱动显示;D = 1,静态驱动显示。 在静态显示时,执行关、闭显示指令,内部电路将被置为安全模式。
设置正常驱动显示指令码:A4H ;设置静态驱动显示指令码:A5H。
⒒ “读-修改-写”模式设置指令(Read Modify Write Select):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
1
1
0
0
0
0
0
功能:执行该指令以后,每执行一次写数据指令列地址自动加1;但执行读数据指令时列地址不会改变。这个状态一直持续到执行“END”指令。
注意:在“读-修改-写”模式下,除列地址设置指令之外,其他指令照常执行。
设置“读-修改-写”模式指令码:E0H。
⒓ END指令:
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
1
1
0
1
1
1
0
功能:该指令关闭“读-修改-写”模式,并把列地址指针恢复到打开“读-修改-写”模式前的位置。
设置END指令码:EEH。
⒔ 复位指令(Reset):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
1
1
0
0
0
1
0
功能:该指令使模块内部初始化。
初始化内容:① 设置显示初始行为第1行; ②页地址设置为第3页。
复位指令对显示RAM没有影响。设置复位指令码:E2H。
⒕ 安全模式设置指令(Power Save set):
A 0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
功能:该指令为双命令。
设置安全模式(低功耗模式)的方法:① 关闭显示(指令码:AEH);② 打开静态显示(指令码:A5H)。
关闭安全模式的方法:① 打开显示(指令码:AFH);② 关闭静态显示(指令码:A4H)。
安全模式下的内部状态: ① 停止LCD驱动;② Segment和Common输出Vdd电平;③ 停止晶体震荡并禁止外部时钟输入,晶振输入OSC2引脚处于不确定状态;④ 显示数据和内部模式不变。
(5)FM12232A 外部引脚及工作参数。
FM12232A模块外部引脚及功能描述见表4-2所示:
表4-2  FM12232A引脚及功能描述表
引脚号
引脚名称
LEVER
引脚功能描述
1
Vss
0V
电源地
2
Vdd
+3V ~ +5V
电源电压(+5V)
3
VLCD
0 ~ +5V OR -5V
LCD外接负电压(接10K可调电阻到Vss)
4
A 0
H/L
数据/命令选择信号,
A0=“H”,数据线DB7~ DB0为显示数据信号
A0=“L”,数据线DB7~ DB0为命令字/状态字
5
H/L
片选信号,低电平有效,选择SED1520
6
H/L
片选信号,低电平有效,选择SED1520
7
H/L
读/写选通信号,=“L”,写操作
8
DB0
H/L
三态数据线
9
DB1
H/L
三态数据线
10
DB2
H/L
三态数据线
11
DB3
H/L
三态数据线
12
DB4
H/L
三态数据线
13
DB5
H/L
三态数据线
14
DB6
H/L
三态数据线
15
DB7
H/L
三态数据线
16
RES
H/L
复位信号,低电平有效
17
VLED +
- -
LED(+5V)或EL背光源
18
VLED -
- -
LED(0V)或EL背光源
FM12232A模块特性参数描述如表4-3所示:
表4-3  FM12232A特性参数描述表
显示特性参数
STN:正视反向模式
显示颜色:
绿底蓝字
显示角度:6点钟直视
驱动方式:
占空比:1/32
偏置1/6
机械特性参数
视域尺寸:
54.818.3mm
点阵:12232
点尺寸:
0.36(W)0.41(H)mm
点间距:
0.40(W)0.45(H)mm
直流特性
名称
标识符
数值
单位
最小值
标准值
最大值
电源电压
Vdd
2.4
5.0
6.0
V
LCD驱动电压
VLCD

0
V
输入高电压
VIH
0.8 Vdd

Vdd
V
输出高电压
VOH
0.5 Vdd


V
输入低电压
VIL
GND

0.2 Vdd
V
输出低电压
VOL


0.1 Vdd
V
电源电流
LDD


240
A
输入/输出漏电流
IL
3.0

3.0
A
待机电流
IDDQ

0.05
10
A
时序特性参数
信号名称
时序参数
标识符
最小值
最大值
单位
内容
A0、
系统时钟周期
Tcyc
200
- -
ns

地址建立时间
Taw
40
- -
ns
地址保持时间
Tah
20
- -
ns
DB7~ DB0

数据建立时间
Tds
160
- -
ns

写数据保持时间
Tdh
20
- -
ns

读数据保持时间
Tch
20
120
ns

存取时间
Tacc
- -
180
ns
E
E脉冲宽度(读)
Tew
200
- -
ns

E脉冲宽度(写)
160
- -
ns

输入信号上升延时间
Tr
- -
15
ns

(6)FM12232A LCD显示器接口。
FM12232A模块接口信号包括:8位三态数据总线D7 ~ D0、片选信号、读写控制信号、数据/命令选择信号A0等,ZY15MCU12BC2单片机实验开发装置中单片机通过可编程并行接口芯片8255A实现对FM12232A模块的显示驱动控制,图4-21为FM12232A与8255A的接口电路图。
根据图4-21电路可知,单片机通过可编程并行接口芯片8255A的PA和PC端口控制FM12232A工作。PA口接FM12232A数据总线DB7~DB0(图中为D7~D0),输出显示数据点阵码以及读、写FM12232A状态/命令字;PC口接FM12232A相关控制信号:PC2接引脚:PC2 =“0”,写操作。PC6、PC3接片选信号引脚:PC6 =“0”,PC3 =“0”,控制2片SED1520驱动左、右显示屏显示。PC7接A0引脚:PC7 =“1”,数据线DB7~ DB0为显示数据信号;
图4-21  FM12232A与8255A接口电路图
PC7 =“0”,数据线DB7~ DB0为命令字/状态字。PC4接RES引脚:PC4 =“1”,FM12232A外部复位操作。因此,设置8255A工作在方式1,PA、PC端口为输出口,8255A工作方式字为#80H,由实验箱电路图4.2可知,8255A芯片A口、B口、C口和命令口地址分别为:BFFCH、BFFDH、BFFEH和BFFFH。
FM12232A LCD显示器接口软件初始化:
根据上述介绍,FM12232A初始化操作步骤如下:
  • 设置8255A的工作方式字:#80H
MOV DPTR,#0BFFFH       ;8255A控制端口
    MOV A,#80H             ;写入方式字:#80H,
MOVX @DPTR,A
② 设置FM12232A 外部复位操作,引脚RES为高电平,PC4 =“1”,
MOV A,#0 000100 1H      ;PC4 =“1”,RES =“1”,
MOVX @DPTR,A
③ 设置FM12232A 引脚A0 为低电平,PC7 =“0”,
MOV A,#0 000111 0H      ;PC7 =“0”,A0 =“0”,
MOVX @DPTR,A
④ 设置引脚低电平,PC6 =“0”,PC3 =“0”,
MOV DPTR,#0BFFFH       ;PC6和PC3送脉冲信号
MOV A,#0 000110 1H      ;PC6 =“1”, =“1”,
MOVX @DPTR,A
NOP
MOV A,#0 000110 0H        ;PC6 =“0”, =“0”,
MOVX @DPTR,A
              NOP
              MOV A,# 0 000110 1H       ;PC6 =“1”, =“1”,
MOVX @DPTR,A
NOP
MOV A,#0 000011 1H        ;PC3 =“1”, =“1”,
MOVX @DPTR,A
NOP
MOV A,#0 000110 0H        ;PC6 =“0”, =“0”,
MOVX @DPTR,A
NOP
MOV A,#0 000011 0H        ;PC3 =“0”, =“0”,
MOVX @DPTR,A
NOP
⑤ 8255A的PA口写入复位指令码:#E2H
MOV DPTR,#0BFFCH         ;8255A 芯片PA端口
    MOV A,#0E2H              ;写入复位指令码:#E2H,
MOVX @DPTR,A
⑥ 8255A的PA口写入开显示指令码:#AFH
重复执行③、④步操作
MOV A,#0AFH              ;写入开显示指令码:#AFH
MOVX @DPTR,A
⑦ 清屏操作
MOV R4,#04H             ;显示屏有4页
MOV R3,#00H             ;设置页地址初值
LOOP: MOV COM_BUF,#0B8H       ; 页地址字为B8H
      MOV A,COM_BUF
      ORL A,R3                ;修改页地址
      MOV COM_BUF,A
      LCALL WLIQ         
;设置A0引脚低电平,引脚低电平,
;向8255A的PA口写入页地址命令字B8H,
      MOV COM_BUF,#00H        ;设置列地址初值为0
      LCALL WLIQ            
;设置A0引脚低电平,引脚低电平,
;向8255A的PA口写入列地址命令字00H,
      MOV 43H,#3dH
NET1: MOV DAT_BUF,#00H        ;清屏点阵数据全部为00H
      LCALL WDAT
;设置A0引脚高电平,引脚低电平,
;向8255A的PA口写入清屏数据00H,
DJNZ 43H,NET1           ;延时
      INC R3                  ;指向下一页
      DJNZ R4,LOOP           
编写实验程序,实现单片机控制FM12232A显示字符及汉字。
将汉字“湖北众友科技公司,感谢您使用该产品”显示在FM12232A液晶显示屏上。
(7)实验程序流程图如图4-22所示。
图4-22  FM12232A实验程序流程图
(8)实验程序(略)。ZY12232.ASM。
(9)在μVision3开发平台上输入程序,编译、连接程序。
(10)调试、运行程序。
⒈ 打开仿真器与实验箱电源,初始化8255A,设置8255A工作在方式0,PA、PC端口为输出口,向8255A控制口写方式字#80H。
⒉ 测试8255A的PC口状态,向8255A控制口写C口置位/复位字:
#0FH ~ #00H,检查PC7 ~ PC0状态与写入控制字是否一致,如有故障,应及时排除。
⒊ 将程序断点设置在BK1、BK2处,当程序运行后在BK1处暂停时,液晶屏应为全屏暗,继续运行至BK2处时,屏幕显示“湖北众友科技公司,感谢您使用该产品”。
⒋ 改变字库表点阵码,显示其他汉字。
⒌ 改变页地址,移动显示屏汉字位置。
(11)实验结束,拆除接线,将一切整理复原。
4. 实验预习要求
(1)认真阅读、理解实验指导书并领会本次实验目的要求与实验内容。
(2)仔细阅读FM12232A模块控制原理、结构、引脚、接口信号及内部指令字等内容。
(3)仔细阅读FM12232A显示实验程序。
5. 实验报告要求
(1)按实验顺序,记录并分析实验数据。
(2)实验程序框图,实验程序清单。
(3)写出实验结果、实验体会及对实验的改进意见。

word格式的选题资料下载地址:
http://www.51hei.com/bbs/dpj-93744-1.html



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:456718 发表于 2018-12-27 19:39 | 只看该作者
学习学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表