大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx

上传人:b****5 文档编号:19846965 上传时间:2023-01-10 格式:DOCX 页数:103 大小:2.20MB
下载 相关 举报
大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx_第1页
第1页 / 共103页
大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx_第2页
第2页 / 共103页
大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx_第3页
第3页 / 共103页
大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx_第4页
第4页 / 共103页
大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx_第5页
第5页 / 共103页
点击查看更多>>
下载资源
资源描述

大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx

《大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx(103页珍藏版)》请在冰豆网上搜索。

大学本科毕业设计毕业论文精选100基于FPGA和单片机的电子系统设计Word下载.docx

(设计)题目

学  号

姓名

学院

专业

所在单位、部门

(1、内容包括:

①研究的目的和意义;

②国内外研究(设计)发展状况、发展水平与存在问题;

③研究(设计)主要内容、预期目标及拟解决的关键问题;

④研究(设计)方案与技术路线;

⑤研究(设计)方法;

⑥参考文献。

2、撰写要求:

字体为5号宋体字,字数不少于1500字。

工作计划进程表

时间

工作内容

选题是否合适:

□是□否

方案是否可行:

进程是否合理:

任务能否完成:

□能□不能

指导教师(签字)

年月日

指导小组组长(签字)

咔嚓大学本科生毕业论文(设计)中期报告

学号

论文(设计)题目

简述开题

以来所做

的具体工

作和取得

的进展或

成果

存在的

具体问题

下一步工

作具体设

想与安排

意见

指导教师签名:

年月日

咔嚓大学本科生毕业论文(设计)答辩小组意见

(答辩小组用表)(使用届别:

答辩地点

记录员:

答辩小组

评语

成绩评定

成绩(百分制):

答辩小组组长:

教师对本科生毕业论文(设计)评语的主要评价方面及评价内容

教师

类别

评价方面

评价内容

过程

学生在论文(设计)过程中的治学态度、工作精神

学生掌握基础理论和专业知识的扎实程度

学生综合运用所学知识和专业技能分析和解决问题的能力

研究方法的科学性;

技术线路的可行性;

设计方案的合理性

毕业论文(设计)期间的出勤情况;

中期报告的撰写情况

论文(设计)质量

论文(设计)的整体结构是否符合撰写规范?

是否完成指定的论文(设计)任务(包括装订及附件)?

论文(设计)水平

论文(设计)的理论意义,对解决实际问题的意义

论文的观念是否有新意?

设计是否有创意?

论文书、设计说明书所体现的整体水平

答辩过程

毕业论文(设计)的基本要点和见解的叙述情况

对答辩问题的反应、理解、表达情况

学生答辩过程中的精神状态

注:

不同的专业(方向)、不同的研究(设计)课题,根据其特点和侧重,教师评价的内容可进行必要的补充和相应的调整。

咔嚓大学本科生毕业论文(设计)评阅教师意见

(评阅教师用表)(使用届别:

学生学号

评阅教师签名:

咔嚓大学本科生毕业论文(设计)指导教师意见

指导教师签名:

咔嚓大学本科生毕业论文(设计)成绩评定表

(学院答辩委员会用表)(使用届别:

(X1)

评阅教师

(X2)

(X3)

总评

分数成绩

(T)

等级

成绩

学院答辩委员会

审核意见

答辩委员会主席签章:

年月日

1、成绩评定一栏中,T=X1﹢X2﹢X3,X1=指导教师百分制成绩×

25%;

X2=评阅教师百分制成绩×

X3=答辩小组百分制成绩×

50%。

2、等级成绩:

总评分数成绩四舍五入取整之后,90分及以上为“优秀”、80―89分为“良好”、70―79分为“中等”、60―69分为“及格”、59分以下为“不及格”。

1

摘要

该课程设计首先利用VHDL语言,以QuartusII软件作为开发平台,主要设计了出租车计程计价表和函数波形发生器,其中出租车计程计价表具有车型设置、起步里程设置、起步价设置、分时计价设置、里程显示、计费显示、计时显示及点阵数码管显示汉字等功能。

函数波形发生器主要包含了递增锯齿波、递减锯齿波、三角波、正弦波、阶梯波、方波等功能。

并对上述两个系统进行了程序仿真、动态扫描等步骤。

其次,利用单片机做了一个函数波形发生器,可以调频率和切换波形。

并对其进行仿真分析。

关键词:

VHDL语言、单片机、QuartusII软件、仿真

第一部分FPGA的系统设计

一、四位加法器

四位串行加法器采用四次例化全加器实现

a,b为两个加数,sum为和的输出,也是四位,cout为进位输出

至于具体原理,我就不多说了,网上很多的也比我说的好

再给你一张波形图

library 

ieee;

entity 

mux8 

is 

port(a,b:

in 

bit_vector(4 

downto 

1);

sum:

out 

cout:

bit);

end 

mux8;

architecture 

exam 

of 

is

component 

add 

port(ain,bin,cin:

bit;

component;

signal 

temp:

constant 

x:

bit:

='

0'

;

begin

u4:

port 

map(ain=>

a(4),bin=>

b(4),cin=>

temp(3),sum=>

sum(4),cout=>

cout);

u3:

a(3),bin=>

b(3),cin=>

temp

(2),sum=>

sum(3),cout=>

temp(3));

u2:

a

(2),bin=>

b

(2),cin=>

temp

(1),sum=>

sum

(2),cout=>

temp

(2));

u1:

a

(1),bin=>

b

(1),cin=>

x,sum=>

sum

(1),cout=>

temp

(1));

exam;

这是全加器

use 

ieee.std_logic_1164.all;

add;

sum<

=ain 

xor 

bin 

cin;

cout<

=(ain 

nand 

bin) 

(cin 

(ain 

bin));

向左转|向右转

你是否想过,计算机为什么会加减乘除?

或者更直接一点,计算机的原理到底是什么?

Waitingforfriday有一篇详细的教程,讲解了如何自己动手,制作一台四位计算机。

从中可以看到,二进制、数理逻辑、电子学怎样融合在一起,构成了现代计算机的基础。

一、什么是二进制?

首先,从最简单的讲起。

计算机内部采用二进制,每一个数位只有两种可能"

0"

和"

1"

,运算规则是"

逢二进一"

举例来说,有两个位A和B,它们相加的结果只可能有四种。

这张表就叫做"

真值表"

(truthtable),其中的sum表示"

和位"

,carry表示"

进位"

如果A和B都是0,和就是0,因此"

都是0;

如果A和B有一个为1,另一个为0,和就是1,不需要进位;

如果A和B都是1,和就是10,因此"

为0,"

为1。

二、逻辑门(LogicGate)

布尔运算(Booleanoperation)的规则,可以套用在二进制加法上。

布尔运算有三个基本运算符:

AND,OR,NOT,又称"

与门"

、"

或门"

非门"

,合称"

逻辑门"

它们的运算规则是:

  AND:

如果(A=1ANDB=1),则输出结果为1。

  OR:

如果(A=1ORB=1),则输出结果为1。

  NOT:

如果(A=1),则输出结果为0。

两个输入(A和B)都为1,AND(与门)就输出1;

只要有任意一个输入(A或B)为1,OR(或门)就输出1;

NOT(非门)的作用,则是输出一个输入值的相反值。

它们的图形表示如下:

三、真值表的逻辑门表示

现在把"

的运算规则,改写为逻辑门的形式。

先看sum(和位),我们需要的是这样一种逻辑:

当两个输入不相同时,输出为1,因此运算符应该是OR;

当两个输入相同时,输出为0,这可以用两组AND和NOT的组合实现。

最后的逻辑组合图如下:

再看carry(进位)。

它比较简单,两个输入A和B都为1就输出1,否则就输出0,因此用一个AND运算符就行了。

现在把sum和carry组合起来,就能得到整张真值表了。

这被称为"

半加器"

(half-adder),因为它只考虑了单独两个位的相加,没有考虑可能还存在低位进上来的位。

四、扩展的真值表和全加器

如果把低位进上来的位,当做第三个输入(input),也就是说,除了两个输入值A和B以外,还存在一个输入(input)的carry,那么问题就变成了如何在三个输入的情况下,得到输出(output)的sum(和位)和carry(进位)。

这时,真值表被扩展成下面的形式:

如果你理解了半加器的设计思路,就不难把它扩展到新的真值表,这就是"

全加器"

(full-adder)了。

五、全加器的串联

多个全加器串联起来,就能进行二进制的多位运算了。

先把全加器简写成方块形式,注明三个输入(A、B、Cin)和两个输出(S和Cout)。

然后,将四个全加器串联起来,就得到了四位加法器的逻辑图。

六、逻辑门的晶体管实现

下一步,就是用晶体管做出逻辑门的电路。

先看NOT。

晶体管的基极(Base)作为输入,集电极(collector)作为输出,发射极(emitter)接地。

当输入为1(高电平),电流流向发射极,因此输出为0;

当输入为0(低电平),电流从集电极流出,因此输出为1。

接着是AND。

这需要两个晶体管,只有当两个基极的输入都为1(高电平),电流才会流向输出端,得到1。

最后是OR。

这也需要两个晶体管,只要两个基极中有一个为1(高电平),电流就会流向输出端,得到1。

七、全加器的电路

将三种逻辑门的晶体管实现,代入全加器的设计图,就可以画出电路图了。

(点击看大图)

按照电路图,用晶体管和电路板组装出全加器的集成电路。

左边的三根黄线,分别代表三个输入A、B、Cin;

右边的两根绿线,分别代表输出S和Cout。

八、制作计算机

将四块全加器的电路串联起来,就是一台货真价实的四位晶体管计算机了,可以计算0000~1111之间的加法。

电路板的下方有两组各四个开关,标注着"

A"

B"

,代表两个输入数。

从上图可以看到,A组开关是"

上下上上"

,代表1011(11);

B组开关是"

上下下下"

,代表1000(8)。

它们的相加结果用五个LED灯表示,上图中是"

亮暗暗亮亮"

,代表10011(19),正是1011与1000的和。

九、结论

虽然这个四位计算机非常简陋,但是从中不难体会到现代计算机的原理。

完成上面的四位加法,需要用到88个晶体管。

虽然当代处理器包含的晶体管数以亿计,但是本质上都是上面这样简单电路的累加。

1.1

(一)图形输入

1.半加器

2.一位全加器

3.四位加法器

4.顶层仿真波形:

二、千位计数器:

1.2

(一)程序代码(基于文本和图形的混合设计):

1、十位计数器:

LIBRARYieee;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_unsigned.ALL;

ENTITYcounter10IS

PORT(clk:

INstd_logic;

en:

rest:

cq:

OUTstd_logic_vector(3DOWNTO0);

cout:

OUTstd_logic);

ENDcounter10;

ARCHITECTUREbehavOFcounter10IS

BEGIN

PROCESS(clk,rest,en)

VARIABLEcqi:

std_logic_vector(3DOWNTO0);

BEGIN

IF(rest='

)THEN

cqi:

=(OTHERS=>

'

);

ELSIF(clk'

EVENTANDclk='

1'

IF(en='

IF(cqi<

9)THEN

=cqi+1;

ELSE

ENDIF;

IF(cqi=9)THEN

cout<

='

cq<

=cqi;

ENDPROCESS;

ENDbehav;

2、千位计数器(顶层电路):

仿真结果:

三、药片自动包装计数控制显示系统

(一)设计要求

设计一个药片自动包装计数控制显示系统。

药片通过透明的传送导管加到药瓶中,当药片挡住光电开关时,累计加上一个数。

每计完24片药片,就完成1瓶药片的装瓶,机械手就自动将瓶盖拧上。

1.3

(二)顶层设计方框图

1.4(三)程序代码部分

1.十八分频器

LIBRARYIEEE;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_unsigned.ALL;

ENTITYdivIS

PORT(clk_sys:

clk:

enddiv;

architecturebehavofdivis

signalq:

std_logic_vector(18downto0);

process(clk_sys)

begin

if(clk_sys'

eventandclk_sys='

)then

q<

=q+1;

endif;

clk<

=q(18);

endprocess;

endbehav;

2.二分频器

LIBRARYIEEE;

ENTITYdiv2IS

PORT(clk_scan:

sel:

OUTINTEGERRANGE0TO1);

end;

architecturew1ofdiv2is

signalcnt:

INTEGERRANGE0TO1;

process(clk_scan)

begin

if(clk_scan'

eventandclk_scan='

)then

cnt<

=cnt+1;

else

=cnt;

sel<

endw1;

3.防抖电路:

ENTITYdff_2IS

PORT(clk,ctin:

q_n:

architecturew1ofdff_2is

signalq1,q2:

std_logic;

process(clk)

ifclk'

EVENTANDCLK='

THEN

q1<

=ctin;

q2<

=q1;

q_n<

=not(notq1andq2);

end;

4.二十四进制加法器

ENTITYcnt_24IS

PORT(clk,rst,en:

cao:

OUTstd_logic;

QH,QL:

OUTstd_logic_vector(3downto0));

architecturebehavofcnt_24is

signalh0,h1:

std_logic_vector(3downto0);

process(rst,clk)

if(rst='

h1<

="

0000"

h0<

0001"

elsif(clk'

eventandclk='

if(en='

)then

if(h1=2andh0=4)thenh1<

h0<

elsif(h0=9)thenh0<

=h1+1;

elseh0<

=h0+1;

QL<

=h0;

QH<

=h1;

cao<

when(h1=2andh0=4anden='

)else'

endbehav;

5.八选四选择器

ENTITYmux8_4IS

PORT(SEL:

INSTD_LOGIC_VECTOR(3DOWNTO0);

QOUT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

architectureaofmux8_4is

signals:

s<

=SEL;

PROCESS(QH,QL,S)

BEGIN

IFS='

THENQOUT<

=QL;

ELSEQOUT<

=QH;

ENDa;

6.译码显示模块

ENTITYbcd7IS

PORT(Q:

INstd_logic_vector(3downto0);

A,B,C,D,E,F,G:

architecturebehavofbcd7is

signaldout:

std_logic_vector(6downto0);

signaldin:

din<

=Q;

PROCESS(din)

casedinis

when"

=>

dout<

1111110"

0110000"

0010"

1101101"

0011"

1111011"

0100"

0110011"

0101"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1001"

11

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

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1