基于PLD的液晶电子抢答器课程设计报告.docx_第1页
基于PLD的液晶电子抢答器课程设计报告.docx_第2页
基于PLD的液晶电子抢答器课程设计报告.docx_第3页
基于PLD的液晶电子抢答器课程设计报告.docx_第4页
基于PLD的液晶电子抢答器课程设计报告.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子系统设计报告基于PLD的液晶电子抢答器目录一、摘要1二、题目任务及具体要求1(1)目的及任务1(2)技术要求2(3)工作要求2三、整体方案设计2四、硬件设计3(1)液晶的连接与设计3(2)功能按键的连接与设计4(3)抢答按键的连接与设计5五、软件设计6(1)功能概述6(2)抢答流程图7六、测试步骤及结果8(1)开始8(2)抢答及答题模块8(3)修改字体模块9(4)设置时间及分数模块9(5)统计模块9(6)结束模块9七、实验心得9(1)遇到的问题9(2)感悟与体会10附录11(1)参考资料:11(2)原理图:11(3)PCB图:13(4)MAX PLUS II设计图:14(5)main.c代码:14(6)lcd_show.c代码:25(7)lcd_code.h代码:54- 14 -一、 摘要当今时代,不论是高端的国际竞赛还是还是普通的比赛,我们都可以看到抢答器的身影,抢答器极大的保证了比赛的公平公正。我们小组就是根据所学知识设计电子抢答器。本电子抢答器的设计以单片机AT89C52为核心,用PLD芯片实现逻辑功能,用MFC-G12864点阵液晶进行显示。抢答器通过C语言编写代码,通过MAXPLUSII编辑并烧写逻辑功能。共有五个按键,可实现的功能有数据初始化,判断抢答队伍,抢答倒计时,答题倒计时,通过主持人的判断实现回答正确加分、回答错误减分,液晶显示等。我们设计的宗旨是:美观、实用、功能丰富。为此我们还进行了一些创新,可分为两个方面:(1)功能方面:判断犯规队伍并显示;抢答成功后点亮对应队伍的LED灯;抢答时间可随时修改;答题时间可随时修改;每题分值可随时修改;统计功能;硬件锁存结合软件锁存双重保险;最终得分相同进入加赛环节;(2)美观方面:图片显示;加减分动画显示;倒计时用大阿拉伯数字显示;全系统动画过渡;三套字体全系统可改;统计柱状图;二、题目任务及具体要求(1)目的及任务 1.通过查阅相关资料,深入了解电子抢答器的工作原理;2.学习习可编程器件(主要功能在该器件中完成)的应用及硬件语言;3.学习点阵液晶显示器的工作原理及使用方法;4.复习“MCS-51单片机原理及C语言程序设计”,掌握其接口扩展包括:显示、键盘等;5.设计电子抢答器的原理图,构建硬件平台;6.采用汇编或C语言编写应用程序并调试通过;7.作出样机并测试达到功能和技术指标要求;8.写出设计报告和答辩PPT。(2)技术要求1.液晶闪烁显示当前答题组;2.显示各个组(每组三人,均可参加抢答)的积分值;3.可根据按键操作改变显示字符大小;4.交互界面友好,布局合理大方;5.五个功能按键。(3)工作要求1.组建基于可编程器件的电子抢答器总体结构框图;2.根据题目要求,选择元器件,通过理论分析和计算选择电路参数;3.根据操作功能要求,确定键盘控制功能;4.按设计要求确定显示合理安排格式及内容;5.编写应用程序并调试通过;6.对系统进行测试和结果分析;7.撰写设计报告和答辩PPT。三、整体方案设计参赛队员按下抢答键,由PLD进行锁存并判断抢答队伍,判断结果送入单片机的P2口。五个功能按键与单片机P1口相连,在主持人的控制下产生不同的控制信号。单片机根据控制信号以及抢答队伍的不同,在液晶上显示不同的信息。抢答信息的锁存和判断全部在PLD里完成,单片机负责控制液晶显示需要的内容以及其他创新功能的实现。整体系统框图:四、硬件设计(1)液晶的连接与设计MFC-G12864通过单片机来控制,单片机的P0口与数据总线连接,LCD从该总线中读入数据并显示在屏幕上。根据LCD的控制指令表,CS1和CS2分别控制左半屏和右半屏,将A12与CS2连接,取非后与CS1连接,即可由A12的高低控制左右半屏。LCD的E有效必须使A13为低。A14与LCD的R/S相连,高输入数据,低输入指令。PLD的WR和RD由内部时钟控制,WR为高时LCD的RW为高,允许读取数据;RD为高时LCD的RW为低允许写入数据。以下为地址的计算表:P2.7P2.6P2.5P2.4P2.3-2.0P0地址CS1_inst1000FFF8FFFCS1_data1100FFFCFFFCS2_inst1001FFF9FFFCS2_data1101FFFDFFF实验时测得UA0UA7总是为高电平(4.2V),考虑到会对数据总线造成干扰,因此将这8个IO口设为输出,接在闲置的IO口上,如下图:(2)功能按键的连接与设计使用电子抢答器时,通过抢答器功能键来实现功能的实现与转变。功能键松开时为高电平,按下时为低电平,按键与电源之间连有上拉电阻以防止电流过大,损坏器件。功能按键的连接如下图所示:各个按键的连接:按键对应端口KEY0P1.0KEY1P1.1KEY2P1.2KEY3P1.3KEY4P1.4按键的防抖动设计(以key1为例):if(key1=0)/按下key1进入if语句 while(key1=0);/key1弹起后才能下一步/这里写按下要执行的程序经过测试,每按一次按键只执行一次程序。(3)抢答按键的连接与设计硬件设计图请见最后电子抢答器在使用时,共有一号、二号、三号三队选手参加比赛,每组各三个人,且每人一个抢答按键。按键松开时为低电平,按键按下时为高电平。我们使用实验室的8个拨码开关作为抢答按钮,分别与PLD引出信号口PD1(或PD2)的1到8脚用杜邦线相连。A8、A9、A10分别为一号、二号、三号队伍的抢答信号,初始为1,抢答成功后变为0,因此将PA3(或PA4)的123脚各接一个LED灯,队伍抢答成功后会点亮对应的LED灯。由于现实中的按键大多数设计为按下自动弹起,因此我们要将按下后的信号锁存起来,使弹起后输出不变。A11为总的锁存控制信号,A11为低时,3个D锁存器的ENA为高,数据可以顺利通过D锁存器;A11为高时,0可以通过,1通过后会被锁存,使输出保持为1,实现了按键弹起后保持输出信号不变的功能。右边的三个与非门实现了抢答队伍判断的功能。初始时锁存器的输出均为0,此时与非门的输出均为1;当有人按下抢答键后,该队伍对应的锁存器输出变为1并保持不变,对应的与非门输出变为0,这个0会钳制其他两个与非门使之输出只能为1,实现了抢答队伍的判断。同时INT1会受到一个下降沿,单片机进入中断后判断A8、A9、A10哪个为0,即可得知抢答队伍并控制液晶显示以及实现其他功能。四、 软件设计(1)功能概述:软件部分用C语言进行编程,为了方便分了三个文件:main.c是主函数以及用到的子函数,lcd_show.c是所有和液晶显示有关的函数,lcd_code.h是用到的字模的集合。在main.c中主要的功能模块及对应按键如下图所示:在lcd_show.c中主要的功能模块有: 1.液晶的复位和写数据; 2.16*16汉字的显示; 3.12*12汉字的显示; 4.099数字的显示; 5. 15*29大数字的显示; 6.图片的显示; 7.过渡动画; 8.综合调用上述函数实现各个界面的显示;(2)抢答流程图:六、测试步骤及结果:(1)开始为了直观和方便,我们根据按键的位置来称呼按键:Key0:下; key1:左; key2:上; key3:中; key4:右插上电源并运行程序,液晶显示开机图片,按“下”后动画过渡到欢迎界面,显示“欢迎使用电子抢答题高璐仇杨鑫”字样,再按“下”进入功能选择界面,根据板子上五个按键的位置,液晶显示了五个可以选择的功能:字体、统计、设置、结束、继续。按“下”进入初始得分设置界面,默认为20分,按“左”加10分,按“右”加5分,按“下”继续。(2)抢答及答题模块1.在功能选择界面按“下”,进入抢答环节,最上方正中间显示第01题,左边提示请抢答,右边以15*29显眼的大数字从10到0以秒为单位进行倒计时,倒计时结束无人抢答,显示“无人抢答”。2.按“下”进入第02题的抢答环节,二号拨动学习机的拨码开关,一号和三号以很短的时间间隔后也拨动拨码开关,屏幕闪烁显示“二号答题”,同时二号队伍的LED灯变亮,闪烁结束后进入答题界面,左边提示请答题,右边同样进行从10到0的倒计时。3.倒计时结束没有答题,自动显示“超时”,显示之前得分,动画擦出答题队伍后,显示“-1”,扣除相应队伍1分,然后显示目前得分;倒计时结束前按“左”,显示“正确”,显示之前得分,动画擦出答题队伍后,显示“+1”,相应队伍加1分,然后显示目前得分;倒计时结束前按“右”,显示“错误”,显示之前得分,动画擦出答题队伍后,显示“-1”,相应队伍减1分,然后显示目前得分;倒计时结束前按“中”,显示“错误”,显示之前得分,动画擦出答题队伍后,显示“-0”,不扣分;4.主持人按下开始抢答前,把三号队伍的拨码开关拨为高,按“下”开始抢答后,右边显示“三号违规”,同时三号队伍的LED灯变亮,三号把拨码开关归零后,屏幕显示“继续”,LED灯灭,按“下”可重新开始抢答;(3)修改字体模块在功能选择界面或者每题结束界面,按“上”进入字体选择界面,根据屏幕上的提示按对应按键可修改字体,按“下”屏幕过渡为楷体界面,按“右”屏幕过渡为12*12宋体界面,按“左”屏幕过渡为16*16宋体界面。选择喜欢的字体,按“上”确认,屏幕显示“修改成功”,之后回到功能选择界面,进行别的操作时,字体已经全部改变为修改后的字体。(4)设置时间及分数模块在功能选择界面或者每题结束界面,按“中”进入设置时间及分数界面,上方显示“设置”,左边中间右边分别显示“抢答10秒”“答题10秒”“每题01分”,按“左”,抢答时间变为15秒,再按“左”变为5秒,可在5、10、15三个预设答题时间进行选择。用同样的方法,答题时间预设有10、15、20、25、30五个选择,每题分数预设有1、2、3、4、5五个选择。我们设置为“抢答5秒”“答题25秒”“每题03分”,按“上”确认后,显示“修改成功”,回到功能选择界面,之后进行抢答,发现已经修改成功。(5)统计模块在功能选择界面或者每题结束界面,按“左”进入设置时间及分数界面,上方显示“答题统计”,下方三行依次为一二三队的答题情况柱状图,柱状图的黑色部分为答对题目数,白色部分为答错或超时题目数,总长即为抢到的题目数。右边分别显示每队答对题目数和抢到题目数。按“下”可继续抢答。(6)结束模块在功能选择界面或者每题结束界面,按“右”比赛结束。如果没有最高分,最上方显示“比赛继续”,左边显示“加赛环节”,右边显示目前得分。如果有最高分,则最上方显示“比赛结束”,左边显示获胜队伍,右边显示最终得分。按“下”屏幕动画清屏,显示“再见”,比赛结束。经过一系列的测试,本抢答器完整可靠的实现了所有的功能,全程未发现任何bug。七、实验心得:(1)遇到的问题:1.测试PLD时,我们把信号从UA0口输出,却总是得不到正确的输出,用电压表测得UA0-UA7不论何时总是高电平,经过和老师的讨论得知这8个IO口必须设成输出,否则会干扰总线。之后使用别的IO口进行测试,取得了正确的结果。2.刚开始液晶无法显示,一半屏幕要么全黑要么全白,经过检查是地址计算错误,修改后成功显示“交通大学”。3.刚开始我们把抢答按键的逻辑设计为与门,这就要求平时每个按键都得是高电平,而PLD的引出脚放掉残余电荷后均为低电平,造成很大的不方便,每次调试都得把8根线全部连接到学习机。最终将逻辑修改为或门得以解决。4.设计PLD的逻辑时,换了好多种方案,修改好几次才终于成功,从这个过程中我们深刻地认识到:必须充分考虑门的延时,有时即使是一个门的延时都会导致达不到想要的功能。5.一开始中断总是进不去,经过一步步的排查和测试得以解决。6.编写换字体的函数时遇到困难,尝试利用判断语句调用不同的库函数来实现换字体的功能,后来考虑到大字体和小字体排版不同,决定定义一个全局变量“ziti”来实现该功能。7.答题倒计时过程中按下正确和错误键不能立即响应,经过思考得知原因:正确和错误的if语句在倒计时的循环里,每延时1s执行一次。修改为每延时0.1s执行一次得以解决。8.在画原理图时,可能会找不到你所需要的器件,这就需要你自己建立.schlib文件去画出自己的器件。9.在用原理图生成PCB图时,系统总是显示总线有错误,后经老师帮助,知道这是软件错误,用局部变量变全局变量可以解决。10.PCB的封装不能只调用库里的封装,有些库里的封装虽然与所要求的名字一致,但它真正画到PCB板上时你会发现它的尺寸什么的完全不是你想要的,这就需要我们去观察板子上器件的尺寸大小,建立自己的封装库文件。(2)感悟与体会这是我们大学中第一次完整的设计经历,从最开始的毫无头绪,查阅各种知识,到后面的游刃有余。刚刚拿到原理图时,我们也挺迷茫的,完全不知道该如何下手,在查阅了各种资料后,终于对抢答器的原理有了比较深入的理解,后面就是分工,从一开始的焊板子,到后面的编代码,画电路板,我们都在为自己的任务而努力着。在期间遇到了各种问题,在老师的帮助下,我们自己的不懈努力下终将一个个问题克服。这次实验我们最大的感悟就是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论