湖南工程学院基于CPLD的数字锁报告书文档格式.docx

上传人:b****2 文档编号:1398613 上传时间:2023-04-30 格式:DOCX 页数:17 大小:105.48KB
下载 相关 举报
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第1页
第1页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第2页
第2页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第3页
第3页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第4页
第4页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第5页
第5页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第6页
第6页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第7页
第7页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第8页
第8页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第9页
第9页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第10页
第10页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第11页
第11页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第12页
第12页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第13页
第13页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第14页
第14页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第15页
第15页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第16页
第16页 / 共17页
湖南工程学院基于CPLD的数字锁报告书文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

湖南工程学院基于CPLD的数字锁报告书文档格式.docx

《湖南工程学院基于CPLD的数字锁报告书文档格式.docx》由会员分享,可在线阅读,更多相关《湖南工程学院基于CPLD的数字锁报告书文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

湖南工程学院基于CPLD的数字锁报告书文档格式.docx

程序如下:

LIBRARYieee;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_arith.ALL;

USEieee.std_logic_unsigned.ALL;

LIBRARYaltera;

USEaltera.maxplus2.ALL;

ENTITYxiaodouIS

PORT

(CLK,B_IN:

INSTD_LOGIC;

B_OUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREaOFxiaodouIS

signalVcc,INV_B:

std_logic;

signalA0,A1:

signalB0,B1:

BEGIN

Vcc<

='

1'

;

INV_B<

=notB_IN;

dff1:

dffPORTMAP(d=>

Vcc,q=>

A0,clk=>

CLK,prn=>

Vcc,clrn=>

INV_B);

dff2:

A1,clk=>

process(CLK)

begin

ifCLK'

EVENTandCLK='

then

B0<

=notA1;

B1<

=B0;

endif;

endprocess;

B_OUT<

=not(B1andnotB0);

2.2键盘扫描模块

我们在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘编码就可以进行键盘按键识别了。

键盘扫描封装图如下:

该模块程序如下:

LIBRARYIEEE;

USEIEEE.std_logic_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSAOMIAOIS

PORT(

CLK:

INSTD_LOGIC;

CLK_SAOMIAO:

OUTSTD_LOGIC_VECTOR(4downto1));

ARCHITECTUREaOFSAOMIAOIS

SignalM:

STD_LOGIC_VECTOR(2DOWNTO1);

SIGNALN:

STD_LOGIC_VECTOR(4DOWNTO1);

Begin

PROCESS(CLK)

Begin

IFCLK'

EventANDCLK='

THEN

N<

=N+1;

M<

=N(4DOWNTO3);

ENDIF;

ENDPROCESS;

CLK_SAOMIAO<

="

1110"

WHENM=0ELSE

"

1101"

WHENM=1ELSE

1011"

WHENM=2ELSE

0111"

WHENM=3ELSE

1111"

;

2.3七段数码显示电路模块

本模块我们通过串行扫描方式驱动LED数码管,可较少地占用可编程器件资源;

并利用MAXPLUSⅡ对动态扫描LED显示电路进行仿真。

显示电路模块封装图如下:

程序如下:

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSCAN_LEDIS

PORT(A:

INSTD_LOGIC_VECTOR(6DOWNTO0);

B:

E:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

BT:

OUTSTD_LOGIC_VECTOR(1DOWNTO0));

END;

ARCHITECTUREONEOFSCAN_LEDIS

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

PROCESS(N)

CASENIS

WHEN"

00"

=>

BT<

="

01"

E<

=A;

10"

=B;

WHENOTHERS=>

NULL;

ENDCASE;

ENDPROCESS;

PROCESS(CLK)

BEGIN

EVENTANDCLK='

THEN

N<

=N+1;

END;

2.4译码电路模块

本模块上接键盘扫描模块,下接七段数码显示电路模块。

主要功能是实现键盘的译码。

该模块封装图如下:

具体程序如下:

LIBRARYIEEE;

ENTITYkeycodeIS

PORT(X:

INSTD_LOGIC_VECTOR(2DOWNTO0);

Y:

INSTD_LOGIC_VECTOR(3DOWNTO0);

XT:

INSTD_LOGIC;

C,D:

OUTSTD_LOGIC_VECTOR(6DOWNTO0):

0111111"

CO:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDkeycode;

ARCHITECTUREyimaOFkeycodeIS

SIGNALE:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALF:

SIGNALS,EN,EN1:

STD_LOGIC;

PROCESS(X,Y)

VARIABLExy:

STD_LOGIC_VECTOR(6DOWNTO0);

xy:

=(X&

Y);

IFXT='

CASExyIS

WHEN"

1101110"

0000"

C(6downto0)<

1101101"

0001"

0000110"

1101011"

0010"

1011011"

1100111"

0011"

1001111"

1011110"

0100"

1100110"

1011101"

0101"

0110"

1111100"

1010111"

0000111"

0111110"

1000"

1111111"

0111101"

1001"

0111011"

CO<

1010"

0110111"

ELSIFXT='

0'

F<

D(6downto0)<

2.5密码控制电路模块

密码控制电路是本次课题设计的核心部分,我们通过密码控制来断定数字锁的开或关。

当密码输入时,按下确定键,输入数字和所存的密码进行比较,若相同则进入开锁状态。

若输入密码不正确则立刻进入报警状态,然后按下清零键,重新输入密码。

密码控制封装图如下:

ENTITYkongzhiIS

PORT(E_IN:

F_IN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

CO_IN:

K,M:

OUTSTD_LOGIC);

ARCHITECTUREluojiOFkongzhiIS

SIGNALG,H:

STD_LOGIC_VECTOR(3DOWNTO0):

=‘0‘;

SIGNALCOUNT1,COUNT2:

STD_LOGIC:

='

SIGNALCO:

PROCESS(CO_IN)

begin

IFCO_IN="

THEN

EN1<

ELSIFCO_IN="

EN<

EN1<

if(S='

)and(en='

)and(count1='

)then

G(3downto0)<

=E_IN(3downto0);

H(3downto0)<

=F_IN(3downto0);

count1<

=not(count1);

endif;

if(en1='

)and(count2='

if(E_IN(3downto0)=G(3downto0)andF_IN(3downto0)=H(3downto0))then

k<

EN<

s<

else

m<

count2<

=not(count2);

ELSif(en='

)and(en1='

count2<

k<

ENDPROCESS;

2.6总电路图如下:

3、设计仿真

3.1消抖电路的仿真波形图:

3.2键盘扫描模块仿真图:

3.3七段数码显示电路仿真图:

3.4键盘译码电路仿真波形图:

4、编程下载

MAX+PLUSⅡ支持Altera公司的FLEX10K,FLEX10KA,FLEX8000,MAX9000,MAX7000,Classic等系列可编程逻辑器件。

4.1选择器件

应参照设计电路的规模,所需工作速度等诸多因素对器件进行选择。

这里以将上述电路下载到FLEX10K系列器件中的EPF10K10LC84为例进行说明。

(1)返回到编辑窗口

(2)在主菜单Assign中选择Device项,打开器件选择对话框

(3)单击DeviceFamily区的下拉列表,选择FLEX10K系列

(4)在Devices的下拉列表中选择EPF10K10LC84

(5)选择OK。

对话框关闭即完成器件选择

4.2管脚锁定

管脚锁定即是将所设计的原理图的输入、输出信号定义到实际器件某个具体的管脚,此项工

作可以由编译器自动分配,也可以由设计者根据设计要求进行人工分配。

若进行人工分配,具体

操作步骤如下:

(1)在原理图编辑窗中用鼠标右键单击输入或输出信号

(2)在出现的下拉菜单中选择Assign—Pin/Location/Chip,出现Pin/Location/Chip对话框

(3)在NodeName项中显示的应是待锁定管脚的输入或输出信号,在Pin项中键入想要锁

定的管脚号码

(4)选择OK,则管脚号即分配在所选的输入输出信号上

(5)重复上述步骤,将所有输入输出信号的管脚锁定好

总电路图如下:

(6)在主菜单中,选File—Save保存文件

(7)再次编译项目,通过项目编译后即可生成一个.sof文件,此文件用于下载

4.3器件编程/配置

此项工作即是完成将所设计的电路下载到实际器件中,使其具有所设计电路的功能。

在Altera器件中,一类为MAX系列,另一类为FLEX系列。

其中MAX系列为CPLD结构,

编程信息以EEPROM方式保存,故对这类器件的下载称为编程;

FLEX系列有些类似于FPGA,其逻辑块LE及内部互连信息都是通过芯片内部的存储器单元阵列完成的,这些存储器单元阵列可由配置程序装入,存储器单元阵列采用SRAM方式,对这类器件的下载称为配置。

因为MAX系列编程信息以EEPROM方式保存,FLEX系列的配置信息采用SRAM方式保存,所以系统掉电后,MAX系列编程信息不会丢失,而FLEX系列的配置信息会丢失,需每次系统上电后重新配置。

使用的器件是EPF10K10LC84,为FLEX系列。

下面对其进行配置。

(1)将下载电缆一端插入LPT1(计算机的并行口,打印机口),另一端插入实验系统板,打

开实验系统的电源。

(2)在主菜单MAX+PLUSⅡ中选择Programmer,出现Programmer对话框。

(3)在出现的对话框中单击configure,即可完成配置。

注:

若在软件首次运行时,上述对话框可能皆为灰色,此时可从Options菜单下选择“HardwareSetup”对话框,在“HardwareType”下拉框中选择“ByteBlaster”,单击“OK”即可。

五、心得体会

为期两周的课程设计结束了,刚开始由于对嵌入式系统不熟悉,拿到这个课题时毫无头绪,根本不知道从何处入手,并且在设计过程中遇到了很多的问题,但在陈老师的指导和自己的努力下,终于逐个解决了每一个难题。

在这两周中的学习使我对EDA这门课程有了进一步的了解,使我加强了动手、思考和解决实际问题的能力。

并让我深刻的体会到,嵌入式系统的应用十分广泛,运行硬件描述语言,能很容易地设计出具有严格要求的数字锁。

在做完每一个单元模块后,都要验证它是否能够满足此单元的功能。

有时候就是按照了原理来连接,但就是不能实现预期的功能。

这就需要细心地找问题,是不是哪根线坏了,还是哪块芯片坏了或接触不好,但有时也存在原理上的错误。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

在设计过程中,同时也暴露出了自身的许多不足,如自己自主解决问题的能力有所欠缺,这在以后需要更好的加强。

同时在此设计过程中还用到了MAX+PLUSⅡ等软件,我更熟悉了此软件的使用,这对以后的工作和解决实际问题都有了很好的帮助。

我感觉本次课程设计我的收获还是颇多的!

六、参考文献

1.康华光主编.电子技术基础(数字部分),高等教育出版社。

2.阎石主编.电子技术基础(数字部分),清华大学出版社。

3.陈大钦主编,电子技术基础实验,高等教育出版社。

4.彭介华主编,电子技术课程设计指导,高等教育出版社。

5.张原编著,可编程逻辑器件设计及应用,机械工业出版社。

6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。

7.MAX+PLUSⅡ入门

8.刘洪喜,陆颖编著.VHDL电路设计实用教程清华大学出版社

电气与信息工程系课程设计评分表

项目

评价

设计方案的合理性与创造性

硬件制作或软件编程完成情况*

硬件制作测试或软件调试结果*

设计说明书质量

设计图纸质量

答辩汇报的条理性和独特见解

答辩中对所提问题的回答情况

完成任务情况

独立工作能力

组织纪律性(出勤率)

综合评分

指导教师签名:

________________

日期:

________________

表中标*号项目是硬件制作或软件编程类课题必填内容;

此表装订在课程设计说明书的最后一页。

课程设计说明书装订顺序:

封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

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

当前位置:首页 > 自然科学 > 生物学

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

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