可控计数器的设计.docx

上传人:b****1 文档编号:482022 上传时间:2023-04-29 格式:DOCX 页数:12 大小:593.94KB
下载 相关 举报
可控计数器的设计.docx_第1页
第1页 / 共12页
可控计数器的设计.docx_第2页
第2页 / 共12页
可控计数器的设计.docx_第3页
第3页 / 共12页
可控计数器的设计.docx_第4页
第4页 / 共12页
可控计数器的设计.docx_第5页
第5页 / 共12页
可控计数器的设计.docx_第6页
第6页 / 共12页
可控计数器的设计.docx_第7页
第7页 / 共12页
可控计数器的设计.docx_第8页
第8页 / 共12页
可控计数器的设计.docx_第9页
第9页 / 共12页
可控计数器的设计.docx_第10页
第10页 / 共12页
可控计数器的设计.docx_第11页
第11页 / 共12页
可控计数器的设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

可控计数器的设计.docx

《可控计数器的设计.docx》由会员分享,可在线阅读,更多相关《可控计数器的设计.docx(12页珍藏版)》请在冰点文库上搜索。

可控计数器的设计.docx

可控计数器的设计

 

可控计数器的设计

《可编程器件》课程设计报告

 

课题:

可控计数器的设计

班级学号

学生姓名

专业电子科学与技术

系别电子信息工程系

指导老师

淮阴工学院

电子与电气工程学院

2014年11月

可控计数器的设计

一、设计目的

《可编程器件》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。

在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可是学生通过综合的系统设计,熟悉应用系统的是设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。

通过课程设计,应能加强学生如下能力的培养:

(1)独立工作能力和创造力;

(2)综合运用专业及基础知识,解决实际工程技术问题的能力;

(3)查阅图书资料、产品手册和各种工具书的能力;

(4)工程绘图的能力;

(5)编写技术报告和编制技术资料的能力。

二、设计要求

1 1、设计一个五进制的计数器,由两个控制键SEL控制不同的计数方式

2 2、当SEL=00时,按0、1、2、3、4、0、1、2,3、4···顺序计数

3 3、当SEL=01时,按0、2、4、6、8、0、2、4、6、8···顺序计数

4 4、当SEL=10时,按1、3、5、7、9、1、3、5、7、9···顺序计数

5 5、当SEL=11时,按5、4、3、2、1、5、4、3、2、1···顺序计数

6 6、由数码管分别译码显示控制信号和计数状态,分别用3位数码管动态显示

7 7、给出VHDL语言的源程序

三、一般设计要求

(1)独立完成设计任务;

(2)绘制系统硬件总框图;

(3)绘制系统原理电路图;

(4)制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;

(5)制定编写调试方案,编写用户操作使用说明书;

(6)写出设计工作小结。

对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成得设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。

四、设计的具体实现

1、实验原理

计数器是一种多功能的电子测量仪器。

它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。

可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。

再利用数码管显示相应的数值。

首先利用进程p1来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式;再利用进程p2来扫描3个数码管,而其中1个用来显示计数值,2个用来显示控制信号的值;最后通过进程p3来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。

图1.实验原理图

2、模拟框图

 

clkcnt

sely

sm

x

clk

duan

图2.模拟结构框图

3、可控计数器设计流程

图3.设计流程

4、各个模块

(1)计数器单元模块

SHENGHAO

图4.计数器单元模块

CLK是计时时钟,也是扫描时钟,SEL计数模式控制信号,Y接收cnt的计数值。

它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。

可控五进制计数器是每五个脉冲信号向前进一位,且当控制端不同时,产生的进位输出不同。

(2)

扫描单元

SHEJI3

 

图5.扫描单元模块

CLK是计时时钟,也是扫描时钟,SEL计数模式控制信号,DUAN代表3个数码管。

利用扫描脉冲扫描3个数码管,而其中1个用来显示计数值,2个用来显示控制信号的值。

(3)数码管译码

SHEJI3

CLKSM[6··0]

CLKDUAN[5··0]

SEL

图6.数码管译码模块

CLK是计时时钟,也是扫描时钟,SEL计数模式控制信号,DUAN代表3个数码管,SM是数码管的七段是数码管数字七段,它主要用来对数码管进行驱动译码,将相应的五进制数值利用数码管体现出来。

5、管脚分配

五、系统的源程序(VHDL)

1.计数环节

libraryieee;

use

use

entityLQis

port(clk,ck:

instd_logic;--clk是计数时钟,ck是扫描时钟

sel:

instd_logic_vector(1downto0);--计数模式控制信号

sm:

outstd_logic_vector(6downto0);---数码管的七段

duan:

outstd_logic_vector(2downto0));--3个数码管

endLQ;

architectureartofLQis

signalcnt:

std_logic_vector(3downto0);--信号cnt用来计数

signaltemp:

integerrange0to2;

signalx:

std_logic_vector(3downto0);--数码管动态显示的值

signaly:

std_logic_vector(3downto0);--接收cnt的计数值

begin

p1:

process(clk)--进程p1主要用来实现4种模式的计数功能,由信号sel来控制选择具体是哪种模式

begin

if(clk'eventandclk='1')then

caseselis

when"00"=>if(cnt>="0100")then

cnt<="0000";

elsecnt<=cnt+1;

endif;

when"01"=>if(cnt>="1000"orcnt="0001"orcnt="0011"orcnt="0101"orcnt="0111")thencnt<="0000";

elsecnt<=cnt+2;

endif;

when"10"=>if(cnt>="1001"orcnt="0000"orcnt="0010"orcnt="0100"orcnt="0110"orcnt="1000")then

cnt<="0001";

elsecnt<=cnt+2;

endif;

When"11"=>if(cnt>"0101"orcnt="0001"orcnt="0000")thencnt<="0101";

elsecnt<=cnt-1;

endif;

whenothers=>cnt<="1111";

endcase;

y<=cnt;

endif;endprocessp1;

2.扫描单元

p2:

process(clk)--进程p2主要用来扫描3个数码管,其中1个用来显示计数值,2个用来显示控制信号的值

begin

if(clk'eventandclk='1')then

casetempis

when0=>duan<="001";

caseselis

when"00"=>x<=(4-y);

when"01"=>x<=(8-y);

when"10"=>x<=(10-y);

when"11"=>x<=(6-y);

endcase;

whenothers=>duan<="010"or"100";

x<="00"&sel;

endcase;

temp<=temp+1;

endif;

endprocessp2;

3.数码管译码部分

p3:

process(x)--进程p3主要用来对数码管进行驱动译码

begin

casexis

when"0000"=>sm<="1111110";

when"0001"=>sm<="0110000";

when"0010"=>sm<="1101101";

when"0011"=>sm<="1111001";

when"0100"=>sm<="0110011";

when"0101"=>sm<="1011011";

when"0110"=>sm<="1011111";

when"0111"=>sm<="1110000";

when"1000"=>sm<="1111111";

when"1001"=>sm<="1111011";

whenothers=>sm<="0000000";

endcase;

endprocessp3;

endart;

六、程序的调试分析与仿真

1、SEL=00

2、SEL=01

3、SEL=10

4、SEL=11

七、总结

为期两周的课程设计结束了,从程序的编写,到编译调试和仿真,最后得出实验结果,在这一过程中,我学到了许多,可以说是收获颇丰。

首先,我便发现我学习中的一大陋习,那就是基础知识不够牢固,而原因就是我上课的时候不太认真听讲,所以在刚开始编写代码的时候,我一头雾水,根本不知该从何处下手。

还好我通过上网查找资料,去图书馆翻阅书籍,还有询问指导老师不懂的地方,我渐渐的补充了基础知识,也对本次实习内容有所了解,并且对我们小组的实验课题--可控计数器的设计有了明确认识。

于是我和同组的一些成员一起研究,翻阅相关书记查找资料,找寻相似的例题,通过对比和排查,初步仿照着设计出了代码,然后再通过检查核实,最终编写出满足设计要求的代码。

接着我们就带着编写好的代码来到了实验室,对它进行编译,

八、参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2