曾小宝张家界航空工业职业技术学院
基于FPGA的简易计算器的设计
曾小宝
张家界航空工业职业技术学院
本文介绍了一款基于FPGA的8051单片机IP核的简易计算器的设计。系统硬件采用EP3C5E144芯片设计开发,软件采用康芯公司提供的8051单片机IP核设计开发,该设计使用Quartus9.0开发环境来设计FPGA片上系统,采用C语言设计8051单片机程序,并使用Keil开发环境来编程开发。系统外围硬件设备主要包括液晶显示模块,键盘输入模块,蜂鸣器模块,LED灯模块;其中信息显示使用LCD1602液晶显示模块,信息输入使用矩阵键盘模块,LED灯用于监视程序运行状态,蜂鸣器设计用于产生按键辅助提示音。本文设计的简易计算器实现了有符号整数的加、减、乘、除表达式运算显示功能和日历时间显示功能,实验测试表明,系统能够稳定、可靠地运行。
FPGA 8051单片机 IP核 计算器
随着现代EDA(Electronic Designed Automation)技术的发展和大规模FPGA(Field-Programmable Gate Ar ray)器件的出现,嵌入式软核处理器在嵌入式系统设计开发中的应用越来越广泛,与传统的基于微控制器芯片的开发方式相比,IP核(Intel lectual Property Core)受硬件条件限制小,具有更大的灵活性,可缩短系统的设计开发时间。采用FPGA与IP核相结合进行嵌入式系统开发,为设计人员提供了一种新的快捷高效的设计方法。
本文设计的简易计算器是在FPGA芯片内嵌入8051单片机IP核作为主控制器,并利用FPGA的内部资源来构造出单片机系统必需的PLL模块、RAM模块和ROM模块,另外,因为4X4矩阵按键扫描和LCD1602读忙操作都需要具有输入输出双向功能的I/O口,因此系统设计了相应的双向I/O口电路,此外,为了实现4X4矩阵按键的中断扫描工作方式,还专门设计了按键中断信号产生电路。
本文设计的简易计算器系统硬件主要由电源模块、EEPROM模块、4X4矩阵键盘模块、LCD1602液晶显示模块、蜂鸣器和LED监视灯等构成,如下图1所示为简易计算器系统的硬件框图。其中,EEPROM是采用EPCS4芯片设计,该芯片具有512KB的存储容量,可用于存储FPGA的程序代码,系统上电后,FPGA可从EEPROM中读取程序代码运行。设计考虑到计算器需要较多输入按键,系统采用4X4的矩阵键盘作为输入设备,该设计只需要8位数据线就可提供16个有效按键,具有占用资源少、使用高效、设计紧凑等优点。
在采用轮询扫描工作方式情况下,无法确保按键的可靠响应,同时周期性地扫描操作极大地占用了CPU的资源,甚至影响其他程序的正常运行,因此,本文采用中断扫描方式设计矩阵按键的程序,由此需要利用矩阵键盘的8位数据线来生成中断信号,根据矩阵键盘扫描工作方式的原理,利用矩阵键盘的4位输入线(P0口高四位为键盘的行数据线)通过一个四输入与门可生成需要的按键中断信号,当某个按键按下时,P0[4]到P0[7]四个输入线电平之一变为0,则按键中断信号P3I[2]也变为0,信号P3I[2]与8051单片机的外部中断0管脚连接。在单片机初始化程序中,设置外部中断0为低电平触发方式,并启动外部中断0 ,当外部按键按下时,按键中断信号就会变为低电平而触发按键中服务程序,在按键中断服务程序中,逐列送出扫描电平,并判断按键行号,然后根据行列值计算按键编码,由此,实现按键动作的识别和编码。
系统的实验测试使用了康芯公司设计的EP3C5E144开发板硬件平台,FPGA开发设计软件采用Quartus9.0版本,单片机C程序开发采用Kei l uVision4。在开发调试过程中,我们遇到了很多问题,比如,在LCD1602液晶显示设计中,由于没有对液晶进行读忙操作,使得液晶初始化操作异常,导致液晶显示异常的问题,通过加入读忙操作,可确保液晶可靠初始化,从而解决液晶显示异常问题。读忙的操作要求单片机的I/O具备双向功能,为此,系统需要给8051单片机IP核设计双向I/O的接口电路.
本文利用8051单片机IP核设计的简易计算器能够进行加、减、乘、除表达式运算,输入设备采用使用普遍、占用资源少的4X4矩阵键盘,输出设备采用价格低廉、性能稳定可靠的LCD1602液晶显示器;另外,系统使用蜂鸣器产生提示音来辅助用户的输入操作,使得人机交互操作更加简单便捷。LED监视灯的设计则可以让用户实时了解系统运行状况,确保系统运行稳定可靠。通过本文简易计算器实例的设计,验证了在嵌入式系统中,使用IP核可以加快设计过程,缩短设计周期,提高设计效率。
[1] 苏学颖. 基于8051单片机IP软核的优化设计及应用研究[D]. 西华大学 2007
[2] 王瑞,游志宇,杜杨,王军. MC8051单片机IP核的FPGA实现与应用[J]. 电子设计工程. 2009(01)
[3] 徐慧,王金海,王巍. 基于FPGA的8051IP核的设计与实现[J]. 计算机技术与发展. 2009(03)