当前位置:文档之家› 旋转编码器控制12864液晶多级菜单显示

旋转编码器控制12864液晶多级菜单显示


(5)、工作电流:2.0mAmax
5、接口说明
管 管脚 电平 脚 号
1 VSS 0V
2 VDD 5.0V
3 V0
说明
逻辑电源地。 逻辑电源正。 LCD 驱动电压,应用时在 VEE 与 V0 之间加一 10K 可调电阻。
4 D/I H/L
5 R/W H/L
6
E H.H/L
7 DB0 H/L
8 DB1 H/L
Line 0 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB0
Line 1 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB1
Line 2 1/0 1/0 1/0 1/0 ………… X=0
1/0 1/0 1/0 DB2
Line 3 1/0 1/0 1/0 1/0 …………
(4)、输入电压:Vee~Vdd
(5)、工作温度
:0~55℃(常温) / -20~70℃(宽温)
(6)、保存温度
:-10~65℃
4、电气特性
(1)、输入高电平
:3.5Vmin
(2)、输入低电平(Vil):0.55Vmax
(3)、输出高电平( ):3.75Vmin
(4)、输出低电平(Vol):1.0Vmax
(1)、显示开/关设置
L
L
L
L
H
H
H
H
H H/L
功能:设置屏幕显示开/关。 DB0=H,开显示;DB0=L,关显示。不影响显示 RAM(DD RAM)中的内容。
(2)、设置显示起始行
L
L
H
H
行地址(0~63)
功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由 Z 地址计数 器控制的,该命令自动将 A0-A5 位地址送入 Z 地址计数器,起始地址可以是 0-63 范围 内任意一行。Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后 自动加一。
LCD 驱动电源。
背光电源,LED+。
背光电源,LED-。
(2)、读操作时序 (3)、时序参数
void write_com(uchar com)//写命令 {
rs=0; rw=0; P0=com; e=1; e=0; } void write_data(uchar date)//写数据 { rs=1; rw=0; P0=date; e=1; e=0; } 7、指令说明
根据以上功能,我们建立一个结构体,里面有 5 个成员,有 4 个字符型和一个指针变 量,4 个字符型变量为当前以及旋转编码器左右旋转和按下的索引号,最后一个指针变量指 向需执行的函数(也就是菜单显示的内容)。这样我们就可以定义一个结构体数组,在结构
体数组里为每一个菜单项编制一个单独的函数,并根据菜单的嵌套顺序排好本项菜单的索引 号以及本级菜单上下或者左右移动的索引号和上下级菜单的索引号。具体程序如下:
(3)、设置页地址
L
L
H
L
H
H
H
页地址(0~7)
功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。页地址就是 DD RAM 的行地址,页地址存储在 X 地址计数器中,A2-A0 可表示 8 页,读写数据对页地址没有 影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。
2、KS0108 控制器系列产品的主要特性
(1)、8 位并行数据接口 。 (2)、拥有 64*64(512 字节)的显示存储器,其数据直接作为现实驱动信号。 (3)、简单的操作指令。
3、最大工作范围
(1)、逻辑工作电压(Vcc):4.5~5.5
(2)、电源地(GND):0V
(3)、LCD 驱动电压
:0~-10
(2)、中断法 2 脚接地,1、3 脚一脚接单片机外部中断 0 或外部中断 1,另一脚接 IO 口。将外部
中断设为下降沿触发,当旋转时,接外部中断引脚的电平由高变低,则进入外部中断服务程 序,在中断服务程序中判断另一脚的电平的高低来判断左旋还是右旋。
三、多级菜单显示的设计
液晶的多级菜单显示,就是有一个主菜单,主菜单下有子菜单,子菜单可以有多级, 也就是子菜单下还有子菜单。通过旋转编码器的左右旋转控制子菜单之间上下或左右的切 换,也就是选中子菜单,然后按下开关键就进入这个子菜单的内容,这就是液晶的多级菜单 显示。(说的通俗一点,菜单显示本质上就是页面的切换)
1/0 1/0 1/0 DB7
………… ………… …………
Line60 1/0 1/0 1/0 1/0 ………… X=7
Line61 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB4 1/0 1/0 1/0 DB5
Line62 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB6
4、设置列地址
L
L
L
H
列地址(0~63)
功能: DD RAM 的列地址存储在 Y 地址计数器中,读写数据对列地址有影响,在对 DD RAM 进行读写操作后,Y 地址自动加一。
(5)、状态检测
H
L
BF L ON/OFF RST L
L
L
L
功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。
旋转编码器控制 12864 液晶(ks0108)多级菜单显示
吴煌殿 (西南科技大学信息工程学院)
一、12864 液晶(ks0108 控制器)的基本用法
1、概述
12864 液晶就是行有 128 个点、列有 64 个点的液晶,它的控制器有很多种,如 ST7920、 T6963、KS0108 等,能显示字符、汉字和图形。有些控制器带有中文字库(ST7920),有些 是没有字库的(KS0108)。下面讲的 12864 液晶的用法是基于 KS0108 控制器的点阵式液晶。
Line63 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB7
9、与 MCU 接口电路
10、实物图
二、旋转编码器的原理及用法
1、概述
在电子设计中,经常要用到旋转编码开关,也就是旋转编码。它具有左旋、右旋功能, 有的还有按下功能。当左右旋转时,它的端子就会输出脉冲,常见的每转一周有 20 个脉冲 等。下面介绍一种常用的 EC11 型旋转编码器的原理以及用法。
BF=H:内部正在执行操作;
BF=L:空闲状态。
RST=H:正处于复位初始化状态; RST=L:正常状态。
ON/OFF=H:表示显示关闭;
ON/OFF=L:表示显示开。
(6)、写显示数据
L
H
D7 D6 D5 D4 D3 D2 D1 D0
功能:写数据到 DD RAM,DD RAM 是存储图形显示数据的,写指令执行后 Y 地址计数器 自动加 1。D7-D0 位数据为 1 表示显示,数据为 0 表示不显示。写数据到 DD RAM 前,要 先执行“设置页地址”及“设置列地址”命令。
读 写选择: 高电平:读;低电平:写。
读写使能,高电平有效,下降沿锁定数据。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
数据输入输出引脚。
片选择信号,低电平时选择前 64 列。
片选择信号,低电平时选择后 64 列。
复位信号,低电平有效。
switch(counter) { case 1: menu_index=table[menu_index].down; counter=0; break; case 2: menu_index=table[menu_index].up; counter=0; break; case 3: menu_index=table[menu_index].enter; counter=0; break; default: break; } current_operation_index=table[menu_index].current_operation; (*current_operation_index)();
1/0 1/0 1/0 DB3
Line 4 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB4
Line 5 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB5
Line 6 1/0 1/0 1/0 1/0 …………
1/0 1/0 1/0 DB6
Line 7 1/0 1/0 1/0 1/0 …………
9 DB2 H/L
10 DB3 H/L
11 DB4 H/L
12 DB DB7 H/L
15 CS1 H/L
16 CS2
H
17 RET
L
18 VEE -10V
19 BL
AC
20 BL
AC
6、工作时序
(1)、写操作时序
数据 指令选择:高电平:数据 低电平:指令
将送入显示 RAM; 将送入指令寄存器执行。
typedef struct { uchar current;//当前状态索引号 uchar up;//编码器左旋转向的状态索引号 uchar down;//编码器右旋转向的状态索引号 uchar enter;//按下键按下转向的状态索引号 void (*current_operation)();//当前状态执行的函数 } encoder_table; 举例定义结构体数组 encoder_table code table[]= { {0,3,1,4,(*menu0)}, {1,0,2,5,(*menu1)}, {2,1,3,6,(*menu2)}, {3,2,0,7,(*menu3)}, {4,4,4,0,(*menu4)}, {5,5,5,1,(*menu5)}, {6,6,6,2,(*menu6)}, {7,7,7,3,(*menu7)} };
相关主题