北理工可编程逻辑器件实验报告.docx_第1页
北理工可编程逻辑器件实验报告.docx_第2页
北理工可编程逻辑器件实验报告.docx_第3页
北理工可编程逻辑器件实验报告.docx_第4页
北理工可编程逻辑器件实验报告.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

本科实验报告实验名称: 可编程逻辑器件实验报告 课程名称:可编程逻辑器件实验时间:任课教师:实验地点:实验教师:实验类型: 原理验证 综合设计 自主创新学生姓名:学号/班级:组 号:学 院:同组搭档:专 业:成 绩:9999计数器一、实验目的编程实现一个含清零功能9999计数器,并用7段数码管显示。二、实验器材EPM7128STC100-15,计算机三、实验过程(1)原理分析a、分频要实现一个0-9999计数器,并且肉眼可观,但是EPM7128STC100-15系统只有一个6M的时钟,频率太高,肉眼不可见,因此得用一个分频器将系统时钟降下来。本实验用了6个74LS190 BCD计数器级联,可实现1000000分频,从而将系统时钟变为6HZ。b、计数系统分频之后,接下来实现计数,仍然用74LS190 BCD计数器4个级联实现09999的计数功能,将每个计数器的管脚输出。c、扫描实验要求用4个7段数码管输出,计数输出是4个二进制数,因此本步骤的功能是将每个二进制数对应于一个7段数码管,再把单片机系统的时钟(6M Hz)作为扫描的时钟,从而实现4个7段数码管同步显示。d、译码计数输出的是00001001二进制形式的数,而7段数码管是abcdefg七段数码管,要实现这两个的连接,需要一个译码器,来将这四个数同步的显示在七段数码管上。(2)程序及图形设计a、分频和计数 图形设计如下:画好上面的图以后编译后再将上面的设计为一整个芯片,如下图所示:b、扫描 代码:-*LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-*ENTITY Scaner isPORT(rst: instd_logic;- System RSTclk: in std_logic;- System Clocka,b,c,d: instd_logic_vector(3 downto 0);o_data: outstd_logic_vector(3 downto 0);o_comm: outstd_logic_vector(3 downto 0)- disp bit ctrl);END Scaner;-*architecture action of Scaner istype s_type is(LED0,LED1,LED2,LED3);signal s_LED : s_type; - State Signal Declarebeginprocess(clk,rst)beginif rst = 0 theno_comm= 1111;o_data= 1111;s_LEDo_comm= 1110;o_data= d;s_LEDo_comm= 1101;o_data= c;s_LEDo_comm= 1011;o_data= b;s_LEDo_comm= 0111;o_data= a;s_LEDs_LED= LED0;o_comm= 1111;end case;end if;end process; -/end action;同理,画好上面的图以后编译后再将上面的设计为一整个芯片,如下图所示:c、译码 源代码:-*LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-*ENTITY encoder isPORT(i_data: instd_logic_vector(3 downto 0);- System Data Bus(in)i_rst: instd_logic;- System RSTo_code: out std_logic_vector(7 downto 0)- LED SEGCODE );END encoder;-*architecture behavior of encoder isbeginprocess (i_rst,i_data)beginif i_rst = 0 then-Reset Stateo_codeo_codeo_codeo_codeo_codeo_codeo_codeo_codeo_codeo_codeo_codeo_code= 01111011; end case;end if;end process; end behavior;同理,画好上面的图以后编译后再将上面的设计为一整个芯片,如下图所示:(3)模块的连接打开一个新的图形编辑窗口,用刚刚设计的芯片设计电路,如下图:(4)管脚的分配将设计好的电路分配到单片机的管脚上,具体分配如下:名称 管脚号rst 89 clk 87o_coad0 75o_coad1 72o_coad2 71o_coad3 70o_coad4 69o_coad5 68o_coad6 67o_coad7 65o_comm0 61o_comm1 63o_comm2 64o_comm3 77(5)烧程序打开Quartus II Programmer ,选择pof文件打开,烧入单片机,具体界面如下图: 观察结果。四、实验结果及问题分析a、实验结果:烧好板子之后,可以看到板子上的7段数码管从0开始计数。b、问题分析:第一次烧进之后板子开始计数,但是显示的数不是09依次计数,而是比较乱,并且现实的数不是09之间的某一个数,像是乱码,查看译码器之后确定译码器没有问题,各个对应的数都正确。最后检查到计数器和扫描器之间的时候,发现计数器后面括号中是从小到大,也就是说MSB是最右边的一位,而扫描器括号中是从大到小,也就是说MSB是最左边的一位。意识到把计数的大小顺序弄错之后,再修改了之后,计数器正常运行。五、心得体会这学期本来就学VHDL语言,虽然软件用的不一样,但是语法结构是一样的。经过了系统的

温馨提示

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

评论

0/150

提交评论