基于ADC0832和LCD160128设计的数字电压表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习情境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 LSB
STA7 D7
STA6
D6
STA5
D5
STA4
D4
STA3
D3
STA2
D2
STA1
D1
STA0
D0
表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 -- -- -- Bit1
1111 x010 -- -- -- Bit2
1111 x011 -- -- -- Bit3
1111 x100 -- -- -- Bit4
1111 x101 -- -- -- Bit5
1111 x110 -- -- -- Bit6
1111 x111 -- -- -- Bit7(MSB)
4.各指令功能详细分析
在T6963C指令中有的指令需要参数的补充,T6963C指令参数的输入是在指令代码写入之前。下面是T6963C指令写入的流程图。