点阵型LCD 和矩阵键盘电路原理图

摘要:本文利用NiosII软核设计LCD矩阵键盘接口,以中断代替查询完成对矩阵键盘的控制;设计点阵型LCDNiosII的接口,实现对LCD中英文显示的支持。矩阵键盘控制和LCD接口均做成自定义外设组件,可重用、便于移植,体现了SOPC技术设计的优势。
引言
  Altera 公司在其FPGA 中实现的Nios/NiosII 软核是最近几年提出的SOPCSystem on a Programmable Chip,片上可编程系统)技术的应用代表,核心是在FPGA 上实现软硬件资 源可编程、可配置、可裁减、可升级的系统。本文以NiosII 可重编程、可重配置用户外设 组件的方法为指导,结合PDA 项目设计需要,设计制作了LCD 和矩阵键盘到FPGA 的接 口,提出一种新的矩阵键盘和LCD 中英文二级字库显示的嵌入式实现方法,克服传统矩阵微型电磁泵 键盘软件设计麻烦且浪费CPU系统资源等缺点,降低系统中LCD支持中英文字显示的成本、 功耗和控制复杂度,并且实现的组件和驱动程序具有可重用、便于移植等优点。
  1. LCD 和矩阵键盘模组的硬件设计
  本文采用的点阵型 LCD HY-12864E,分辨率为128×64,可显示16×16 的汉字32 个, 16×
8 的英文字符64 个,还支持图形显示。LCD 调制解调器固件内部集成两块HD61202 液晶控制器分别控 LCD 的左右半屏,HD61202 接口及功能如表1 桥壳所示。
  HY-12864E 的接口信号可以很方便地连接到NiosII 开发板的FPGA 引脚上,外部需要 5V 单电源供电,内部集成电压变换电路产生-10V 电压VEEVEE 通过10K 多聚磷酸盐欧可调电阻 接到LCD Vo 端口提供负压控制点阵显示的亮度。由于FPGA IO 信号是3.3V 电平, 为了和LCD 5V 电平对接,使用了总线收发芯片SN74LS245 作缓冲处理。
  矩阵键盘的电路比较简单,4×4 按键有横竖各四根信号线。每行信号线与按键的一端 相连,并且使用上拉电阻接到3.3V 电源上,同时使用0.1u 法的去耦电容消除按键抖动;每 列信号线与按键的另一端相连。电路原理图如图1 所示。
1 点阵型LCD 和矩阵键盘电路原理图
  2. 矩阵键盘的驱动控制设计与软件编程
  传统矩阵键盘使用软件驱动控制,即在程序中循环扫描查询键盘的状态,以判断是否有
键按下,这种方法耗费CPU 资源,而且查询扫描结果可能出现误码。这里提出一种新的用 硬件描述语言在FPGA 中实现矩阵键盘控制的方法:使用时序电路扫描查询键盘,在发现 键按下的时候给出相应的键码和中断信号,以中断的方式处理按键。矩阵键盘扫描分4 个时 序,在每一个时序IOA14-IOA11 端口分别输出1110110110110111 扫描码,分别控制 一列按键接地,在每个时序查询IOA10-IOA7 端口。程序设计的流程如图2 所示。
  图 2 矩阵键盘扫描流程图
  最后,键盘控制程序封装为参数可配置的用户自定义外设组件,可以在SOPC Builder 中直接添加使用。矩阵键盘组件的各个配置参数的说明如表2 所示。
  表2 矩阵键盘组件参数说明
  实测矩阵键盘一次按键接触时长约为 150ms 左右。因此要求150ms 内完成连续4 个时 序的全扫描,避免出现按键检测不到的情况;同时要求锁定延时超过150ms,避免误判连击。 设定64ms 完成一次全扫描,锁定延时为256ms,默认连续4 次确认查询码不为1111 为按键 有效,时钟输入为50MHz,因此DIV_clk=25000(分频得到1ms 时基)、DIV_cycle=8(时 序长为16ms)、Delay=256(锁定延时256ms)、N=4。组件在NiosII 工程的接口如图3 所示。
  图3 NiosII 工程中矩阵键盘和LCD 组件接口图
  最后在 NiosII IDE 中设计矩阵键盘的驱动程序,安装键盘按键中断,编写按键的中断服 务程序,通过按键中断可以获取相应按键的键盘码。例程如下:
  /* 初始化键盘中断 */ // enable the interrupt
  IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY _BOARD_IRQ _BASE,0xf);
  // reset irq edge registers
  IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY _BOARD_IRQ _BASE,0x0);
  // active the irq server when irq generate
  alt_irq_register(KEY_BOARD_IRQ _IRQ,edge_cap_ptr,key_irq_handle);
  /* 中断服务程序 */ //capture the irq edge change
ttx2基板
  *key_edge=IORD_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BOARD_IRQ _BASE);
  // read the key board code
  key_code=IORD_ALTERA_AVALON_PIO_DATA(KEY_BOARD_4x4_BASE);
  // reset irq edge registers
  IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BOARD_IRQ _BASE,0x0);
  3. LCD 组件设计及中英文显示的实现
  考虑 LCD 控制器HD61202 的读写时序,这里将Avalon 总线从端口到LCD 的接口转换 电路,封装为用户外设组件添加到NiosII 工程中,如图3 所示。LCD 接口组件的读写信号 LCD_E 由从端口读有效lcd_rd_n 和写有效lcd_wr_n 与非产生,Avalon 从端口采用三位地址 线lcd_addr[2..0],如表3 所示设置从端口与LCD 接口信号的连接。
  表 3Avalon 从端口地址线与LCD 信号的连接
  基于 VGA 的中英文字库HZK1616×16)和ASC1616×8)可以从网上下载,但还不 能直接作为flag标签抗体LCD 的中英文字库。中英文字在VGA 中是按照其内码到字库里查询到相应的 字模(一个16×8 英文字模是16 字节的数据,一个16×16 汉字模是32 字节的数据),将字 模数据一个字节一个字节地按行显示。而在LCD HY-12864E 中,字模的一个字节按列显示, 因而要对字库数据先作行列变换再作高低位置换才能在LCD 上正常显示,如图4 所示。

本文发布于:2024-09-23 02:25:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/248553.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:键盘   矩阵   按键   控制   扫描   设计   使用   组件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议