液晶和矩阵键盘SOPC外设组件设计开发

时间:2012-06-27来源:网络

图 4 VGA 和HY-12864E 字模显示示意图

变换后的字库文件HZK16_lcd.bin 和ASC16_lcd.bin 通过Nios II Command Shell 的命令 bin2flash 转换为.Flash 文件后就可以下载到NiosII 开发板中Flash 特定位置,供中英文显示 时字模查询使用,假定Flash 大小是2Mbytes,起始地址是0x0,方法如下:

bin2flash--location=0x100000--input=HZK16_lcd.bin --output=HZK16_lcd.flash

bin2flash --location=0x10ffff --input=ASC16_lcd.bin --output=ASC16_lcd.flash

nios2-flash-programmer --base=0x0 HZK16_lcd.flash(中文字库下载到Flash 的0x100000 位置)

nios2-flash-programmer --base=0x0 ASC16_lcd.flash (英文字库下载到Flash 的0x10ffff 位置)

由于 LCD 是接在Avalon 总线的从端口上的,在完成LCD 用户组件时使用的地址映射 (Slave Addressing)是memory 方式,这种方式可以支持一个字节(8bits)宽度的数据访问, 而LCD 的数据宽度也是一个字节,因此可以使用IOWR_8DIRECT(BASE,OFFSET,DATA) 和IORD_8DIRECT(BASE,OFFSET)函数完成对LCD 的写、读操作,根据前面地址线的连 接定义,我们可以定义对LCD 的操作函数如表4 所示。

表 4:LCD 的读写操作函数定义

这里的 LCD_HY12864_BASE 为LCD 在NiosII 软核中的基地址。HD61202 控制器通过写相 应的命令控制LCD 显示的开关、起始行号、操作的行地址列地址等,通过读状态获得LCD 的工作信息,通过读/写数据指令读出写入RAM 中的数据。在这些基本的LCD 读写函数上, 定义LCD 操作的宏参数,编写一些对LCD 的操作函数:LCD 初始化函数、清行函数、置行函 数、显示一行中英文的函数等。其中显示一行中英文流程如图5 所示。

图 5 中英文显示流程图

4. 本文创新点

最后经过测试,矩阵键盘按键中断响应准确无误,由于扫描的过程由硬件实现,不占用 CPU 资源,大大提高了系统的性能。LCD 可以接收任意中英文的输入显示。在开发设计过 程中,矩阵键盘和LCD 接口均封装为用户自定义外设组件,加入SOPC Builder 的元件库中, 可以很方便地在其他系统中根据实际情况添加使用,二者的驱动程序也可以很方便地移植到 其他工程设计中,体现出了SOPC 片上可编程系统灵活、方便、可重用的优势。本文设计的 矩阵键盘和LCD 成功应用到笔者设计的PDA 项目中。

1 2

关键词: 组件 设计开发 外设 SOPC 矩阵 键盘 液晶

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

或用微信扫描左侧二维码

相关文章

查看电脑版