基于51单片机和FPGA的人机交互系统的设计

时间:2011-11-16来源:网络

为使单片机的资源可以得到最大的开发,将单片机的高端口,即P4~P7接入FPGA,并通过FPGA对外部设备进行访问。在FPGA中通过Vel-ilog HDL语言编程实现了3-8译码器,从而实现了对单片机地址总线的扩展。该3-8译码器对LCD以及键盘的键值读取提供使能信号,如图2所示。

b.JPG


2.2 T6963C及其接口设计
T6963C液晶显示控制器多用于小规模的液晶显示器件,常被装配在图形液晶显示模块上,以内藏控制器型图形液晶显示模块的形式出现。
单片机对T6963C有2种访问方式:直接访问与间接访问。直接访问利用三总线以I/O设备访问形式进行控制;间接访问则由单片机提供并行接口,以程序控制时序的方式进行控制。为简化程序,这里采用直接访问方式。
该LCM的FS1引脚用于控制显示字符的字体。FS1为高时,LCD显示6x8字符;FS1为低时,LCD显示8x8字符。经实践,在显示英文与数字 时,6x8字符更为美观;在显示中文字符时,8x8字符更为方便。一般系统采用将FS1接地或接高的方式来固定字体,而本系统采用P2.1对FS进行控 制,通过改变地址实现改变字体的功能,使得界面的显示更灵活。
2. 3 键盘电路设计
键盘是常用的单片机输入设备,分为编码键盘和非编码键盘。键盘上闭合键的识别由专用硬件译码器实现,并产生键编号或键值的称为编码键盘;靠软件识别的称为 非编码键盘。在单片机组成的测控系统及智能化仪器中使用最多的是非编码键盘,本系统设计在FPGA中编程实现3x6键盘的行扫描。
由于按键的机械特性,在闭合和断开的瞬间会伴随着一连串的抖动,键抖动会引起一次按键被误读多次,所以必须进行去抖处理,常用的方法为延时去抖动。 FPGA产生键值之后向单片机发送中断,并等待单片机读取键值。由于人脑反应时间相对较长,键盘中断可以处于相对较低的优先级,因此本文将键盘中断接于外 部中断7。

3 软件设计
软件设计遵循结构化和层次化的设计原则。底层函数直接与硬件沟通,而上层函数直接通过调用底层函数来实现相应功能,从而使上层函数与硬件环境彻底分开。当硬件环境发生变化时,仅修改底层函数便能实现程序的移植。
3.1 液晶驱动模块的编程设计
本模块的底层函数需要实现写控制字、写参数、查忙等功能。由于采用直接访问,写控制字与写参数的函数只需向控制口或数据口的地址送数即可。由于LCD是慢 速器件,因此在每次写控制字及写参数之前都需要进行查忙。T6963C的状态字共有7位有效的状态位,如表1所示。其中STA1~STA3最为常用,一般 情况下可以不需要对STA5~STA7进行杏忙的程序。

c.JPG

1 2 3 4

关键词: 人机交互 C805lF T6963C FPGA 键盘扫描

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版