当前位置:文档之家› 基于ADC0832和LCD160128设计的数字电压表

基于ADC0832和LCD160128设计的数字电压表

学习情境3-数字电压表的设计之基于ADC0832和LCD160128设计的数字电压表☆点名,复习1、ADC0832的引脚及其功能,以及与单片机的硬件连接?2、PCF8591的引脚及其功能,以及与单片机的硬件连接?引言:新课讲授3.4基于ADC0832和LCD160128设计的数字电压表3.4.1 LCD160128简介LCD160128是一种图形点阵液晶显示模组。

它用T6963C作为控制器,KS0086作为驱动的160(列)X128(行)的全点阵液晶显示。

具有与INTER8080时序相适配的MPU接口功能,并有专门的指令集,可完成文本显示和图形显示的功能设置。

LCD160128液晶显示器的工作电压为+5V士10%,能够显示显示10个(/行)X8共120个(16 X 16点阵)的中文字符,共有13条操作指令。

1.芯片引脚及其功能表1引脚功能2.与主控制器的通信(1)读状态在数据读写操作之前必须进行状态检查。

T6963C的状态可以从数据总线中读取。

此时RD#和CE#引脚为低电平,WR#和C/D#引脚为高电平。

状态字格式如下所示:MSB LSBSTA7 D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0表2 状态子STA0 指令读写状态0:禁止;1:使能;STA1 数据读写状态0:禁止;1:使能;STA2 自动模式数据读状态0:禁止;1:使能;STA3 自动模式数据写状态0:禁止;1:使能;STA4 保留STA5 控制器操作状态0:禁止;1:使能;STA6 读屏/考屏错误标志0:无错误;1:错误;STA7 闪烁状态检查0:关显示;1:正常显示注意1:必须同时检查STA0与STA1的状态,由于硬件中断可能引起数据错误操作。

注意2:STA0与STA1用于大多数模式的状态检查。

注意3:STA2与STA3用于自动模式数据读写使能,此模式下,STA0与STA1无效。

状态检查流程:图1 状态检查流程图注意4:如果使用MSB=0命令,则必须先读取状态操作。

如果没有进行状态检查,则T6963C 不能正常操作,就是延时后也不行。

当硬件中断发生在地址计算周期期间时(每一行的最后),如果MSB=0命令在此期间发送给T6963C,则T6963C进入等待状态。

如果在下一个命令到来之前没有进行状态检查操作,则很有可能数据与命令都无法到达。

a) 一个数据情况b) 两个数据情况图2 命令发送步骤(2)数据发送在使用T6963C时,都是先发送数据,后发送命令。

(3)命令发送步骤,见图2。

当发送的数据多于两个时,最后一个数据有效。

3.命令定义LCD160128液晶显示器能够显示显示10个(/行)X8共120个(16 X 16点阵)的中文字符,共有13条操作指令。

我们主要学习其具体的用法。

表3 T6963C控制命令码表命令编码数据1 数据2 功能二进制十六进制寄存器设置0010 0001 0x21 X地址Y地址设置光标位置0010 0010 0x22 偏移地址数据00H 设置CGRAM偏移地址0010 0100 0x24 地址低8位地址高8位设置地址指针设置控制字0100 0000 0x40 地址低8位地址高8位设置文本区起始地址0100 0001 0x41 列数00H 设置文本区宽度0100 0010 0x42 地址低8位地址高8位设置图形区起始地址0100 0011 0x43 列数00H 设置图形区宽度模式设置1000 x000 0x80 -- -- 逻辑“或”模式1000 x001 0x81 -- -- 逻辑“异或”模式1000 x010 0x82 -- -- 逻辑“与”模式1000 x011 0x83 -- -- 文本特性模式1000 0xxx Bit3 =0时,内部CG ROM模式内部CG ROM模式1000 1xxx Bit3 =1时,外部CG RAM模式外部CG RAM模式显示模式1001 0000 0x90 -- -- 关闭显示1001 xx10 Bit0为光标闪烁显示开关光标显示,闪烁关闭1001 xx11 Bit1为光标显示开关光标显示,闪烁显示1001 01xx Bit2为文本显示开关文本显示,图形关闭1001 10xx Bit3为图形显示开关文本关闭,图形显示1001 11xx 文本显示,图形显示光标形状选择1010 0000 0xA0 -- -- 1行(光标占的行数)1010 0001 0xA1 -- -- 2行1010 0010 0xA2 -- -- 3行1010 0011 0xA3 -- -- 4行1010 0100 0xA4 -- -- 5行1010 0101 0xA5 -- -- 6行1010 0110 0xA6 -- -- 7行1010 0111 0xA7 -- -- 8行数据自动读/写命令1011 0000 0xB0 -- -- 数据自动写设置1011 0001 0xB1 -- -- 数据自动读设置1011 0010 0xB2 -- -- 数据自动读/写结束数据读/写1100 0000 0xC0 数据-- 数据写,地址加1 1100 0001 0xC1 -- -- 数据读,地址加1 1100 0010 0xC2 数据-- 数据写,地址减1 1100 0011 0xC3 -- -- 数据读,地址减1 1100 0100 0xC4 数据-- 数据写,地址不变1100 0101 0xC5 -- -- 数据读,地址不变屏读命令1110 0000 0xE0 -- -- 屏读命令屏拷贝命令1110 1000 0xE8 -- -- 屏拷贝命令位置位/清除1111 0xxx 0xF0 -- -- Bit3 =0时,位清除;1111 1xxx -- -- -- Bit3 =1时,位置位;1111 x000 -- -- -- Bit0(LSB)1111 x001 -- -- -- Bit11111 x010 -- -- -- Bit21111 x011 -- -- -- Bit31111 x100 -- -- -- Bit41111 x101 -- -- -- Bit51111 x110 -- -- -- Bit61111 x111 -- -- -- Bit7(MSB)4.各指令功能详细分析在T6963C指令中有的指令需要参数的补充,T6963C指令参数的输入是在指令代码写入之前。

下面是T6963C指令写入的流程图。

图3 T6963C指令写入的流程图(1)读状态字(read status)格式:T6963C的状态字由7位标志位组成,它们是:1、当计算机写指令或一次读/写数据时,S0和S1要同时有效,即“准备好”状态。

2、当计算机使用自动读/写功能时,S2或S3将取代S0和S1作为标志位,此时计算机要判断他是否有效。

3、S6标志是考察T6936C屏读或屏拷贝执行情况的标志位。

4、S5和S7表示控制器内部运行状态,在T6936C的应用上不会使用它们。

对T6936C的软件操作每一次之前都要进行判“忙”,只有有不“忙”状态下计算机对T6936C的操作才有效。

(2)地址指针设置(Register set)命令编码HEX. 功能表述数据1 数据20010 0001 21H 设置光标位置X地址Y地址0010 0010 22H 设置CGRAM偏移地址偏移地址数据00H0010 0100 24H 设置地址指针地址低8位地址高8位设置光标位置(21H)光标位置由X、Y地址来确定,光标的移动只能用该命令实现。

从MPU读写数据是不会改变光标位置的。

X、Y的值由下面指定:X地址:00H~4FH(低7位有效)(0~80列)Y地址:00H~1FH(低5位有效)(0~32行)a.单屏幕(X地址:00H~4FH)Y地址:00H~0FHb.双屏幕(X地址:00H~4FH)上屏幕Y地址:00H~0FH下屏幕Y地址:10H~1FH设置CGRAM偏移地址(22H)偏移寄存器用来确定外部字符生成RAM(CG RAM)区域起始位置,T6963C使用如下16位地址总线:当T6963C配有外部字符生成器时,字符编码80H~FFH分配给内部字符生成器。

在外部字符生成模式下,字符编码00H~7FH分配给外部字符生成器。

??16位地址的高5位定义了外部显存CG RAM区域的起始地址,随后的8位表示字符的编码。

在内部CG ROM模式下,字符编码00H~7FH代表预定义内部CG ROM字符,而字符编码80H~FFH代表用户自定义的外部CG RAM字符。

在外部CG RAM模式下,所有256个00H~FFH编码都可代表用户自定义字符。

最低3位表示8行中的1行(8点)定义了字符的形状。

显示缓存地址与偏移寄存器的关系列表偏移地址数据CG RAM hex. 地址(Start to end)00000 0000~07FFH00001 0800~0FFFH00010 1000~17FFH11100 E000~E7FFH11101 E800~EFFFH11110 F000~F7FFH11111 F800~FFFFH(例1)偏移寄存器02H字符编码80H字符生成RAM起始地址0001 0100 0000 00001 4 0 0 H(例2)显存数据与显示字符对应关系γ与ζ通过字符生成RAM显示。

设置地址指针(24H)设置地址指针命令用于指定读写外部RAM的起始地址。

设置地址指针的流程图如下所示:(3)设置控制字命令设置文本区起始地址(40H)用于文本显示的显示缓存区起始地址由该命令确定,文本起始地址指得是最上端和最左端位置。

显存地址与显示位置的对应关系TH:文本起始地址TA:文本区宽度(列数)CL:固定列数(硬件确定),可编程引脚确定。

(例)文本起始地址0000H文本区宽度(列)0020H(32列)MD2 = H, MD3 = H 32列DUAL# = H, MDS = L , MD0 = L, MD1 = H 4行(4行×32列)设置图形区起始地址(42H)用于图形显示的显示缓存区起始地址由该命令确定,图形起始地址指得是最上端和最左端位置。

显存地址与显示位置的对应关系GH:图形起始地址GA:图形区宽度(列数)CL:固定列数(硬件确定),可编程引脚确定。

(例)图形起始地址0000H图形区宽度(列)0020H(32列)MD2 = H, MD3 = H 32列DUAL# = H, MDS = L , MD0 = H, MD1 = H 2行设置文本区宽度(41H)文本区宽度(列数)由硬件确定,该命令可以用于调整文本显示列数。

(例)LCD大小20列,4行;文本区起始地址0000H文本区0014H(20列)MD2 = H, MD3 = H 32列DUAL# = H, MDS = L , MD0 = L, MD1 = H 4行设置图形区宽度(43H)图形区宽度(列数)由硬件确定,该命令可以用于调整图形显示列数。

相关主题