还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
点阵电子显示屏设计论文摘要本设计采用Altera公司FLEX10K系列的EPF10K10LC84-4作为电子显示屏的控制核心,硬件描述语言采用VHDL语言,并采用模块化设计,以MAXPLUSII为编程环境,提高了设计效率,设计制作了一个16*64点阵显示的LED电子显示屏,实现了数字、字母、汉字的显示并且实现了实时时间显示等功能,系统采用矩阵键盘作为主要的人机接口,采用FPGA控制器,保证了系统精度;通过扩展外部存储器可以存储256个汉字,可同时显示4个16×16点阵汉字或8个16×8点阵的汉字﹑字符或数字,显示方式有左移﹑右移﹑替换,显示状态包括移动速度﹑停留时间等,实现了图形的特殊控制关键词电子显示屏,VHDL,点阵
一、方案论证和选择
1.
1、系统总控方案方案一采用单片机以及一些外部存储器来实现,该方法的优点是器件比较常见,系统规模较小,价格也相对比较便宜,有一定的灵活性,但是对多时钟,复杂信号处理不是很理想再者本次设计要求有比较精确的数字钟,FPGA在时钟控制方面相对单片机有着很大的优势因为本次设计会用到16*64的点阵,因为单片机是8位的,每次只能输送8位数据,因此在数据信号处理方面也有些不足方案二采用Altera公司FLEX10K系列的EPF10K10LC84-4芯片作为主控芯片,扩展外部EEPROM为数据存储单元,在MAXPLUSII编程环境下采用模块化设计,利用VHDL语言对芯片进行了设计,系统结构紧凑,便于调试,适合实现复杂控制,操作方便,在数字逻辑控制方面有着很大的优点,比第一种方案有着很大的优越性,因此决定采用第二种方案
1.
2、键盘输入模块方案方案一采用矩阵式键盘,此类键盘采用矩阵式行列扫描方式,优点是可减少占用I/O口数目,使控制器有足够的资源去处理其他的工作方案二采用独立式按键电路,每个按键单独占有一根I/O接口线每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式;缺点为当按键较多时占用存储器的I/O口数目较多方案三采用由8255驱动的PC机键盘优点占用控制器的I/O口少缺点键盘太大且驱动程序复杂,影响美观综合考虑以上的方案及题目要求,由于系统需要用到的I/O端口比较多,所以采用了方案一
1.3键盘消抖方案方案一采用将弹跳阶段闪过的思想,一旦检测到按键按下或弹起时,将输入到系统内部的修正后的按键信号置有效(“1”或“0”)并保持一定时间(大于不稳定时间)KEYS-CLKKEY1方案二在一定时间(大于不稳定时间)内,如果连续两次检测到按键按下或弹起时,则将输入到系统内部的修正后的按键信号置有效(“1”或“0”)KEYS-CLKKKEY1本设计采用第二种方案
1.
4、实时数字钟模块设计方案一基本门电路搭建用基本门电路来实现数字钟,电路结构复杂,故障系数大,不易调试,且增加了系统的造价方案二VHDL编程使用软硬件结合的方式,所以电路结构简单、调试也相对方便与第一种方案比较优点是非常明显的我们选择了第二种方案
1.
5、存储模块设计方案方案一采用FPGA内部集成ROM此方案设计简便,节省硬件资源,但存储容量有限,不适合存储大容量数据方案二采用外部扩展ROM,此方案硬件电路稍显复杂,须用编程器对其进行程序烧写固化,存储容量较大经实验比较,方案一中ROM容量太小,不能完成题目要求,故本设计采用方案二
1.
6、显示模块方案方案一静态显示,所谓的静态显示就是对LED电子显示屏中的每一象素点都通过硬件单独控制,整个LED显示屏所有的LED的同时显示此方式最大优点是程序设计简单,且画面无闪烁但这种设计存在致命的缺点电路复杂,硬件利用率低,成本巨大所以此方式一般不被采用方案二采用动态扫描实现显示过程所谓的动态扫描法是利用人眼的视觉暂留特点而实现的一种显示方法,即当刷新速率足够高时,人眼就察觉不出显示屏画面更迭的闪烁若要显示一帧画面,先送出第一行的数据,然后选通并点亮第一行,延时;此后送出第二行的数据,同样选通、点亮并延时;依次将所有行扫描完,即给出了一帧的画面在此次设计中我们采用方案
二二、电路设计与实现下图为系统的主控图
2.1主控制模块本设计控制模块由FPGA实现,由键盘作为系统输入,经过扫描电路处理,确定出按键,并将信号输入到主控制器中,由数据选择器输出来确定信号是对外部EEPROM控制,还是数字钟模块的运行数字钟部分显示部分由外部扩展E2PROM实现,数字钟直接在FPGA内集成,由于采用点阵动态显示,每次显示汉字或字母个数固定,故在编写程序时要考虑到每组字的首地址,并由E2PROM的高三位地址确定,即只须改变其地址线高三位数据便可实现数组切换数字钟部分首先设计了一个输出二进制的基本时钟,然后在FPGA内存储了0—9个数字的字模,用一个数据选择器来实现输出译码为了不使输出冲突,我们制作了一个二路选择器来输出数字钟内数据或E2PROM中数据,选择信号由键盘控制系统主控制模块原理图
2.2键盘模块矩阵式键盘的原理给各行一个循环扫描电路,然后读取列的状态,从而确定按键具体先用时钟信号产生一用来产生键盘扫描信号,使扫描输出端KY
3、KY
2、KY
1、KY0输出的4位扫描信号的变化顺序依次为1000→0100→0010→0001→1000…;当扫描信号为1000时,就扫描KY0这一排按键,并检查是否有键按下,如果列信号有高电平输出,说明有键按下,反之则没有
2.3外部存储控制模块 此设计中我们采用E2PROMHM2864作为外部扩展ROM以存储设计要求中固定显示的句子2864A是一种采用NMOS/CMOS工艺制成的8K×8位28引脚的可用电接除可编程只读存储器其读写像SRAM操作一样,不需要外加任何元器件读访问时间可为45ns一450ns,在写入之前自动擦除有部分芯片具有两种写入方式,一种是像28c17一样的字节写入方式.还有另一种页写入方式允许在一个写周期内同时对1个字节到一页的若干字节进行编程写入我们将需要显示的汉字、字母以及数字的字模用TOP851通用编程器烧写进2864,然后在FPGA中编写控制程序以读取存储器的数据,然后通过点阵显示出来
2.4掉电保护模块本系统采用一片EPC2LC20来防止掉电后数据的丢失,EPC2LC20和主控制器焊接在同一块实验板上
2.5驱动模块驱动电路作为驱动模块中的基本电路,包括输出数据的驱动和行选驱动(即行、列驱动),其设计要求应满足给定的LED阵列的显示亮度我们采用9个3/8译码器组合,构成一个6位输入64输出的64位译码器,为了加大驱动能力,译码器后面加了32个SN75451驱动器;由于人眼的视觉暂留现象,一个发光管LED如果在一秒钟内亮20次以上的话,人眼就感觉不到闪烁由此,一屏画面连续循环显示25次每秒时给人的感觉是稳定的因为我们实现的是16*64点阵显示屏,所以一条列线上要带动16行的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要16*20=320mA电流,如果直接从3-8译码器输出端接列线,则电流太小不能是LED正常发光SN75451的输出电流能够充分满足我们的需要,所以我们选择SN75451对16行LED进行驱动下面是SN75451的电路图SN75451电路图由3-8译码器构成的6-64译码器
2.
6、显示模块对于点阵型LED显示可以采用共阴极或共阳极,本系统采用共阴极,其硬件电路如图1所示点阵型LED显示(图1)当列上有一负脉冲选通信号时,行端数据为1者发光二极管导通点亮,这样只需要将图形或文字的显示码作为列信号且对应于行信号的1逐行扫描,就可以逐行点亮点阵一般来说,LED的扫描频率大于20HZ,肉眼所看到的显示效果是同时点亮LED,该系统应该采用的最低扫描时钟为20x64=1280HZ,本设计采用的扫描时钟为1500HZ,完全可以满足本系统的频率要求
2.7FPGA与PC机的通信要实现FPGA与PC机的通信,我们利用FPGA的特点,可以在FPGA中建立一个下位机UART,然后通过RS-232电平转换芯片与PC机进行通讯用VHDL语言编写的程序具有波特率高、传输准确等优点FPGA(复杂可编程逻辑器件)设计乃至仿真、验证、所以开发周期很短,且I/O口随意设定,故用FPGA设计专用芯片是大势所趋FPGA与PC机的通信应该采用串行通信的方式发送串行数据一般是1个起始位、n个数据位,1个或多个停止位这样,发送起始位以后表明传输开始传送与接收的双方设定好同样的传输位数,直到n个数据位送完以后,送停止位上位机和下位机的电平标准不同,它们通过RS-232电平标准转换,在两者之间接入RS-232电平转换芯片即可上位机和下位机的传输是异步传输,这样就需要有一个参考脉冲代表传输速度即波特率因为常用的单片机MCU的软件是过程语言,以其作为下位机,无法提供这么高的波特率,即使是较低的波特率也可能产生误差所以在传输距离较近而设备也可提供时,使用最高的传输速度也可以FPGA的软件是非过程语言,也就是说其逻辑段定义的所有动作是同时进行的而不是串行的,所以完全可以提供这样的高速下位机UART加上时间紧迫和元器件的不足,所以本设计没有对FPGA和PC机通讯模块进行制作和仿真,只是提出了一些方案和想法
三、软件设计与功能实现
3.1键盘控制模块键盘控制模块输入时钟经2分频后送入计数器,使其产生“1000”“0100”“0010”“0001”循环扫描信号,此信号输出至键盘行线,键盘列线作为此模块的输入部分,与行线信号并置后输出8位键盘码,从而确定按键,为防止机械抖动引起的误操作,控制部分加入了按键消抖程序,以加强读键的准确性键盘控制模块顶层设计图键盘控制模块的打包文件键盘控制模块仿真图
3.
2、存储器控制模块本模块主要由三部分组成,字符组选择部分,扫描部分和数据读取部分字符组选择部分作用是由按键状态来选择所要显示的字符组,其实质是对所要显示的字符组进行编码,然后将编码信号与扫描部分的输出并置起来作为片外E2PROM的寻址信号扫描部分作用是产生扫描信号,用来对E2PROM进行寻址,并将此信号输出到点阵的列选择端,以选择该列数据读取部分的作用是从E2PROM中读取数据,送至点阵行选择端,用来选择该行存储器控制模块顶层设计图存储器控制模块的打包文件
3.3数字钟模块时钟设计钟的核心模块是两个60进制计数器和一个24进制计数器,以进位和使能键级连能够实现简单的跑表功能,此数字钟具有校时功能,当pstfen或者pstshi键按下时,分钟和小时以秒的频率递增,从而达到校时目的数字钟模块顶层设计图数字钟模块的打包文件数字钟单独模块波形仿真图
(1)数字钟单独模块波形仿真图
(2)数字钟点阵显示仿真
3.
4、系统顶层模块图系统顶层模块图
四、操作方法按键实现四组汉字、英文或数字以及数字钟显示的切换选择,同时,通过按键操作实现文字显示的特别效果各键的定义如下键1—键4汉字显示键5—键8英文及数字显示键9数字钟显示键10数字钟调分按键键11数字钟调时按键键12左右移动键13显示动画
五、测试结果与成果报告通过检测,系统显示稳定、字符清晰,动画栩栩如生,所有的按键均反应灵敏无差错,电子钟能够准确显示时间,完全达到性能指标结束语本设计基本完成了题目的要求,实现点阵扫描功能,汉字、数字、字母显示并在题目要求的基础上有所发挥,亲手制作并调试了电路板但是由于器件的不足,导致硬件部分浪费时间过多,在PC机与FPGA模块通讯方面只是提出了想法和设计方案参考文献1.褚振勇、翁木云·FPGA设计及应用西安电子科技大学出版社2002年7月2.侯伯亨、顾新·VHDL硬件描述语言与数字逻辑电路设计——电子工程是必备知识(修订板)西安电子科技大学出版社19993.老虎工作室高鹏、安涛、寇怀成·电路设计预制板Protel99入门与提高人民邮电出版社2000年2月4.林明权·VHDL数字控制系统设计范例电子工业出版社2003年1月5.潘松、王国栋·VHDL实用教程电子科技大学出版社2000年3月6.卢毅、赖杰·VHDL与数字电路设计科学出版社2001年4月7.王道宪·CPLD/FPGA可编程逻辑器件应用与开发国防工业出版社20048.张亦华·数字电路EDA入门:VHDL程序实例集北京邮电大学出版社 2003 S_clkkey1key。