欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

EDA课程设计报告(8位显示管动态扫描显示学号).doc

  • 资源ID:32540343       资源大小:2.17MB        全文页数:19页
  • 资源格式: DOC        下载积分:15积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要15积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

EDA课程设计报告(8位显示管动态扫描显示学号).doc

华中科技大学武昌分校 电气自动化技术1001程设计报告目录1. 课程设计题目及要求1页1.1 题目1页1.2 要求1页2. 硬件资源及相关原理2页2.1 相关设备2页2.2 LED工作原理2页2.3 LED动态扫描显示原理2页2.4 74LS138译码表2页2.5 LED接线图3页2.6 EP3C10T144CN芯片引脚对照表3页3. 系统总体方案设计4页3.1 系统总体框架4页3.2 硬件电路设计5页3.3 VHDL代码设计5页4. 调试运行10页4.1 接线10页4.2 时序仿真(包括仿真图)10页4.3 硬件逻辑验证(包括管脚锁定文件)11页4.4 下载运行及调试结果分析11页4.5 调试中出现的问题及解决方法12页5. 总结12页6. 参考文献13页7. 附录14页附录一14页附录二15页1. 课程设计题目及要求1.1 题目 八位数码管扫描显示电路的设计1.2 要求 本课题要求掌握使用Quartus II设计数字系统的设计思路和设计方法。学习VHDL基本逻辑电路的综合设计应用。掌握VHDL语言的语法规范,掌握时序电路描述方法。掌握多个数码管动态扫描显示的原理及设计方法。设计一个八位数码管共阴极动态扫描显示控制电路,要求显示学生自己的学号。利用实验室设备完成系统设计并进行运行调试。1.2.1.具体设计内容如下:静止显示学号;1.2.2.提供设计报告,报告要求包括以下内容:设计思路、设计输入文件、设计与调试过程、模拟仿真结果和设计结论。2.硬件资源及相关原理2.1 相关设备EDA及SOPC综合实验平台;导线若干;PC机;Quartus II开发工具软件。2.2 LED工作原理 LED数码管根据LED的接法不同分为共阴和共阳两类,图2.2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。 图2.22.3 LED动态扫描显示原理LED有段码和位码之分,所谓段码就是让LED显示出“8.”的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阳级的LED而言,高电平使能。要让8个LED同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。2.4 74LS138译码表74ls138引脚输入与输出关系如图2.4,8个引出脚Y0Y7通过反相器与8个LED的阳极相连,用“1”表示高电平“0”表示低电平,给A2A0输入的电平可用一个三位2进制数表示,0到7对应8个LED管,通过控制输入三位2进制数便可达到“扫描”的作用。 图2.42.5 LED接线图 如图2.5图2.52.6 EP3C10T144CN芯片引脚对照表硬件资源元件引脚EP3C引脚序号电路使用说明LED数码显示A133该部分电路为固定电路。使用LED数码显示时请按照器件引脚分配表进行引脚分配后再下载到芯片中。B135C136D137E138F141G142Dp12874LS138S1125S2126S3127表2.63.系统总体方案设计3.1 系统总体框架本次实验的实验箱中数码管为8位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“ ”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。74ls138的8个引出脚通过反相器分别与8个7段数码管的位选择端。当其值为“0”时,相应的7 段数码管被选通,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么8 个数码管则需要508400Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符,可通过实验箱上ckl3的频率输出选择尽量大的频率。LED管的输入输出关系如下表3.1表3.1考虑到我的学号“20102822025”为11位,而LED管只有8位,为了使学号完整的显示出来需要两屏显示,通过1Hz的脉冲触发让两屏数字以秒为单位循环轮替显示。如图3.1.1和图3.1.2图3.1.1图3.1.23.2 硬件电路设计 如下图3.2图3.23.3 VHDL代码设计3.3.1.设计思路由于学号是11位,8个LED管只能输出8位,于是要把11位的学号分成两段,先显示前八位,再显示后三位,可以定义八个变量,两屏数字可以通过if语句和一个时钟脉冲clk5分别赋值给八个变量X17,这样就可以完成完整的11位学号的储存。给定的74LS138的三个输入引脚正好组成一组三位二进制数,因为实验箱的LED管是共阴极的,74LS138的输出引脚直接与LED管相连,使“000”、“001”、“010”、“011”、“100”、“101”、“110”、“111”与第一个到第八个管相对应,使用另一个时钟脉冲clk3让输入信号从0自增到7不断循环便可达到动态扫描LED显示数组的目的。并且通过一个case选择语句将扫描信号的一个周期里的8个时刻与8个八个变量X17 里的值对应赋给最后显示译码输入的变量。最后就是显示译码过程,可以使用CASE选择语句实现,给LED管的a、b、c、d、e、f、g、h加合适的电平用一组8位2进制数实现,从高的到底分别对应h、g、f、e、d、c、b、a。程序流程图如下: 将学号数值赋值给变量 产生扫描信号 扫描信号选择输出变量 74LS138 驱动 LED管图3.33.3.2.设计代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_signed.all;entity xhxs is port(clk3,clk5:in std_logic; rst: in std_logic; seg_da:out std_logic_vector(7 downto 0); seg_sel:out std_logic_vector(2 downto 0) ); end xhxs;architecture ado of xhxs is signal seg_buf1,seg_buf2,seg_buf3,seg_buf4,seg_buf0:std_logic_vector(3 downto 0); signal seg_buf5,seg_buf6,seg_buf7,seg_buf8:std_logic_vector(3 downto 0); signal seg_cnt:std_logic_vector(2 downto 0); signal seg_temp:std_logic_vector(3 downto 0); signal clk:std_logic; begin process(clk5) begin if clk5event and clk5=1 then -clk5上升沿有效 clk<=not clk; end if; end process; process(clk5,rst) begin if clk5 event and clk5=1 then -clk5上升沿有效 if clk=1 then seg_buf1<="0010" -学号的第一屏最后一位“2” seg_buf2<="0010"-学号“2” seg_buf3<="1000"-学号“8” seg_buf4<="0010"-学号“2” seg_buf5<="0000"-学号“0” seg_buf6<="0001"-学号“1” seg_buf7<="0000"-学号“0” seg_buf8<="0010"-学号的第一屏第一位“2” else seg_buf1<="1111"-送到译码熄灭显示器 seg_buf2<="1111" seg_buf3<="1111" seg_buf4<="1111" seg_buf5<="1111" seg_buf6<="0101"-学号的第二屏最后一位“5” seg_buf7<="0010"-学号“2” seg_buf8<="0000"-学号的第二屏第一位“0” end if; end if; end process; process (clk3,rst) begin if clk3 event and clk3=1 then-clk3上升沿有效 if rst=1 then seg_cnt<="000"-rst为高电平时seg_cnt复位清零 else seg_cnt<=seg_cnt+1;-seg_cnt自增 end if; end if; end process; seg_sel<=seg_cnt; process(seg_cnt,seg_buf1,seg_buf2,seg_buf3,seg_buf4,seg_buf5,seg_buf6,seg_buf7,seg_buf8) begin case seg_cnt is when o"0" => seg_temp<=seg_buf1;-seg_cnt值为0时,把seg_buf1的值赋给seg_temp送到显示译码输入变量seg_temp when o"1" => seg_temp<=seg_buf2;-同上,对应 seg_buf2 when o"2" => seg_temp<=seg_buf3;-同上,对应 seg_buf3 when o"3" => seg_temp<=seg_buf4;-同上,对应 seg_buf4 when o"4" => seg_temp<=seg_buf5;-同上,对应 seg_buf5 when o"5" => seg_temp<=seg_buf6;-同上,对应 seg_buf6 when o"6" => seg_temp<=seg_buf7;-同上,对应 seg_buf7 when o"7" => seg_temp<=seg_buf8;-同上,对应 seg_buf8 when others=> seg_temp<="XXXX" end case; end process;-该进程完成LED管的扫描时选择对应的变量输出 process(seg_temp) begin case seg_temp is when "0000"=> seg_da<="00111111"-驱动显示“0” when "0001"=> seg_da<="00000110"-驱动显示“1” when "0010"=> seg_da<="01011011"-驱动显示“2” when "0011"=> seg_da<="01001111"-驱动显示“3” when "0100"=> seg_da<="01100110"-驱动显示“4” when "0101"=> seg_da<="01101101"-驱动显示“5” when "0110"=> seg_da<="01111101"-驱动显示“6” when "0111"=> seg_da<="00000111"-驱动显示“7” when "1000"=> seg_da<="01111111"-驱动显示“8” when "1001"=> seg_da<="01101111"-驱动显示“9” when "1111"=> seg_da<="00000000"-驱动熄灭LED管 when others=> null; end case; end process;-该进程完成显示驱动end ado; 4. 调试运行4.1 接线将EP3C10适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG口连接起来,万用下载去右下角的电源开关拨到SOPC下载的一边。实验板右下方频率源CLK3接到任意频率作为扫描频率,CLK5接到1HZ做翻屏触发。将实验板左端的JP103全部都用短路帽接上(共8个)。4.2 时序仿真(包括仿真图)在Quartus II中选择“Edit”菜中的“end time.”设置end time为1s。给clk3和clk5都设置时钟脉冲,周期分别为10ms和150ms。仿真后的图形如下图4.2。图4.2 通过图4.2可以看出,在clk5为低电平时,seg_sel每个周期对应seg_da的值为“5BH、5BH、7FH、5BH、3FH、06H、3FH、5BH”,即“01011011、01011011、011111111、01011011、00111111、00000110、01011011”“1”为高电平,“0”为低电平依次与共阴极LED管h、g、f、e、d、c、b、a引脚连接可得到显示“228200102”即实验箱上显示“20102822”。当clk5变成高电平时,seg_sel每个周期对应seg_da的值为“0H、0H、0H、0H、0H、6DH、5BH、3FH”即“00000000、00000000、00000000、00000000、00000000、01101101、01011011、001111111”,实验箱上显示“025”。仿真结果与预想中一致,说明程序没有错误,可进行下载运行。4.3 硬件逻辑验证(包括管脚锁定文件)引脚锁定如图4.3图4.34.4 下载运行及调试结果分析1.选择“tools”菜单中的“programmer”,在弹出对话框中选择编程模式和变成目标文件,并选择“JTAG”编程模式和选中Program/Configure。2.将下载线连至AS模式端口并加电。3.单击“start”按钮,当“Progress”显示为100%时,编程成功,FPGA开始工作,LED显示管显示“20102822”,片刻翻屏成“025”,接着再翻屏成“20102822”如此循环,达到预期效果。4.5 调试中出现的问题及解决方法1. 不翻屏及翻屏频率错乱最开始程序下载完成后,LED管可以显示第一屏的数字却不翻第二屏。仔细检查VHDL程序代码没有问题后,尝试改变实验箱上的频率源,发现在插拔短路帽时LED显示器翻到第二组数字,而且在改变CLK4的时候翻屏的频率会出现混乱,而在改变CLK5时没有反应,据此判断芯片的CLK5引脚锁定的出错了,对照指导书附录的“系统结构图信号与芯片引脚对照表”果真CLK5的引脚锁定错误,更正后翻屏正常。2.解决第二屏数字位数少于显示器位数问题最开始第二屏的三位数在LED管上显示为“02500000”,指导老师看后,提醒可以把后面没有数字的LED管灭掉显得更加美观。于是将VHDL代码里的第二组数字改成“025FFFFF”,并将“F”显示译码输出全部改为低电平“00000000”,即收到F数值时显示器将不亮。保存后重新编译,下载运行,得到最终结果。 7. 总结大学里的第二个课程设计,对比上学期除了浓厚的新鲜感并没有太多的不同,非常有挑战性的DIY,是学校里难得趣事之一。VHDL语言这门语言学的实际上学的不咋的,期末考试才刚及格,给我一个程序大段大段的代码看不懂。本次的课程设计老师们不知道是不是因为是夏天气温高似乎更加珍惜自己的口说,除了寥寥几页任务书没有任何相关的提示。苦苦在互联网上连续寻觅若干小时后恍然觉悟老师给我们的题目是个奇葩,就在即将放弃的时候同学的提醒让我回归到课本,抱着试一试的心态来到实验室,拿着实验指导书从记忆里早已模糊得快成一张白纸用Quartus II新建工程、编译、仿真开始。经过几个人一下午的努力,将实验指导书中的“8位数码管扫描显示”的实验成功完成,接下来的工作就是修改代码,把原来实验LED管“1、2、3、4、5、6、7、8”8位数并左移一位的显示变成我们的11位学号。修改代码的前提是看懂原代码,实体、进程、信号、if语句、case选择语句这些似曾相识的东西开始在脑子里无休止的打转,然后渐渐平静。就如翻过一座山,看到的不是幽静怡人的山谷而是一座更高的山,而你更有想登上去的冲动。白天苦思冥想的太多,晚上打完游戏躺在床上脑子里不自禁涌现的全是白天看的代码,灵感的火花也在这时突然迸发,一夜期待,第二天迫不及待的去实验室实施修改方案。结果方案很成功,也基本上达到最后的效果,经过细节完善最终效果很好。本次的课程设计使我“温故而知新”在VHDL语言获得大量收获时,最重要的是给了我自信,更加相信坚持在取得成功中的强大力量。同时感谢那些与我一起奋斗的同学们,那么可爱、各有专长。8.参考文献1 郑燕,赫建国. 基于VHDL与Quartus II软件的可编程逻辑器件应用于开发.北京:国防工业出版社,2011.2 Altera. Pin Information for the Cyclone III EP3C10 Device. San Jos:Altera Corp,2008.3 潘松,黄继业.EDA技术实用教程VHDL版.北京:科学出版社,2010.9.附录附录一实物图附录二硬件图- 18 -

注意事项

本文(EDA课程设计报告(8位显示管动态扫描显示学号).doc)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!