基于FM12232A液晶显示控制实验
1. 实验目的(1)学习及掌握FM12232A LCD模块工作原理。 (2)学习及掌握单片机与FM12232A接口电路连接。 (3)学习及掌握单片机控制FM12232A显示程序的设计方法。 2. 实验设备(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC 系列微机及相关软件。 3. 实验内容及要求(1)同实验一。 (2)同实验一。 (3)FM12232A LCD显示器内部结构及原理。 点阵式液晶显示模块FM12232A具有功耗低、供应电压范围宽、显示信息量大、寿命长、不产生电磁辐射污染等特点,广泛应用于移动通信、仪器仪表、家用电器等领域。 FM12232A模块由一块12232 LCD显示屏(由左、右半屏6116组成)、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地址表 【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): 功能:该指令用于开/关屏幕显示,指令执行时不改变DD RAM中的内容,也不影响内部状态。由D值确定,D = 0,开显示(DISPLAY ON);D = 1,关显示(DISPLAY OFF)。 开显示指令码:AFH;关显示指令码:AEH。如果在显示关闭的状态下选择静态驱动模式,那么内部电路将处于安全模式。 ⒉ 设置显示起始行指令(Display start line set): 功能:执行该命令后,所设置的行将显示在屏幕的第1行。起始行由A 4 ~ A 0指定,范围:00000 ~ 11111(0 ~ 31)。可以是0 ~ 31范围内任意一行。 行地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。 起始行指令码:C0H ~ DFH。 ⒊ 设置显示页地址指令(Page Address set): 功能:该指令用于设置DD RAM页地址。当CPU要对DD RAM进行读写操作时,首先要设置页地址和列地址。本指令不影响显示。 DD RAM的页地址,由A 1 A 0指定,范围:00 ~ 11(0 ~ 3)。 页地址指令码:B8H ~ BBH。 ⒋ 设置显示列地址指令(Column Address set)(Y地址): 功能:该指令用于设置DD RAM中的列地址,列地址由A 6 ~ A 0指定,范围:000000 ~ 1001111(0 ~ 79),列地址指令码:00H ~ 4FH。当CPU要对DD RAM进行读、写操作前,首先要设置页地址和列地址。执行读、写命令后,列地址会自动加1,直到达到50H才会停止,但页地址不变。 ⒌ 读状态指令(Status Read): 功能:该指令用于检测模块内部状态。 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): 功能:该指令将8位点阵码数据写入DD RAM对应单元,D7 ~ D0为8位点阵码数据,指令执行后,列(Y)地址自动加1,所以可以连续将点阵码数据写入DD RAM而不用重新设置列地址。 ⒎ 读显示数据指令(Read Display Data): 功能:该指令读出由页地址和列地址指定的DD RAM单元内8位点阵码数据,D7 ~ D0为DD RAM对应单元的8位点阵码。当“读-修改-写”模式关闭时,每执行一次读指令,列地址自动加1,因此,可以连续从DD RAM读出数据而不用设置列地址。 注意:设置完列地址后,首次读显示数据前必须执行一次空的“读显示数据”操作。这是因为设置完列地址后,第一次读数据时,出现在数据总线上的数据是列地址而不是要读出的点阵码数据。 ⒏ 设置列序方向指令(ADC Select): 功能:该指令设置DD RAM中的列地址与段驱动输出的对应关系,由D值确定。 设置D = 0时,正向;D = 1时,反向。 列序正向显示指令码:A0H ;列序反向显示指令码:A1H。 ⒐ 设置占空比指令(Duty Ratio Select): 功能:该指令设置驱动占空比,由D值确定。 设置D = 1时,占空比为1/32;D = 0时,占空比为1/16。 设置驱动占空比指令码:A9H (1/32),A8H(1/16)。 ⒑ 静态驱动开/关设置指令(Static Drive On/Off Select): 功能:该指令设置驱动方式,由D值确定。 D = 0,正常驱动显示;D = 1,静态驱动显示。 在静态显示时,执行关、闭显示指令,内部电路将被置为安全模式。 设置正常驱动显示指令码:A4H ;设置静态驱动显示指令码:A5H。 ⒒ “读-修改-写”模式设置指令(Read Modify Write Select): 功能:执行该指令以后,每执行一次写数据指令列地址自动加1;但执行读数据指令时列地址不会改变。这个状态一直持续到执行“END”指令。 注意:在“读-修改-写”模式下,除列地址设置指令之外,其他指令照常执行。 设置“读-修改-写”模式指令码:E0H。 ⒓ END指令: 功能:该指令关闭“读-修改-写”模式,并把列地址指针恢复到打开“读-修改-写”模式前的位置。 设置END指令码:EEH。 ⒔ 复位指令(Reset): 功能:该指令使模块内部初始化。 初始化内容:① 设置显示初始行为第1行; ②页地址设置为第3页。 复位指令对显示RAM没有影响。设置复位指令码:E2H。 ⒕ 安全模式设置指令(Power Save set): 功能:该指令为双命令。 设置安全模式(低功耗模式)的方法:① 关闭显示(指令码:AEH);② 打开静态显示(指令码:A5H)。 关闭安全模式的方法:① 打开显示(指令码:AFH);② 关闭静态显示(指令码:A4H)。 安全模式下的内部状态: ① 停止LCD驱动;② Segment和Common输出Vdd电平;③ 停止晶体震荡并禁止外部时钟输入,晶振输入OSC2引脚处于不确定状态;④ 显示数据和内部模式不变。 (5)FM12232A 外部引脚及工作参数。 FM12232A模块外部引脚及功能描述见表4-2所示: 表4-2 FM12232A引脚及功能描述表 | | | | | | | | | | | | | | | | | | | 数据/命令选择信号, A0=“H”,数据线DB7~ DB0为显示数据信号 A0=“L”,数据线DB7~ DB0为命令字/状态字 | | | | | | | | | | | | 读/写选通信号, =“L”,写操作 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
FM12232A模块特性参数描述如表4-3所示: 表4-3 FM12232A特性参数描述表 | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | |
| | | | | |
|
| | | | |
| | | | |
|
| | | | |
|
| | | | | |
| | | | |
| | | | | | | | | | | | A0、 | | | | | |
| | | | | | | | | | | | | | | | |
| | | | | |
| | | | | |
| | | | | | | | | | | |
| | | | |
| | | | | |
|
(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初始化操作步骤如下: 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
|