CPLD制作数字钟的报告.doc

上传人:飞****2 文档编号:60928483 上传时间:2022-11-19 格式:DOC 页数:15 大小:35.50KB
返回 下载 相关 举报
CPLD制作数字钟的报告.doc_第1页
第1页 / 共15页
CPLD制作数字钟的报告.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《CPLD制作数字钟的报告.doc》由会员分享,可在线阅读,更多相关《CPLD制作数字钟的报告.doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、CPLD制作数字钟的报告论文 2008-06-18 11:45:01 阅读429 评论0 字号:大中小 通过这8周的学习,我知道了CPLD及电子电路CAD主要是学习里利用可编程器件使其实现某种指定功能。将通过编程做出的器件进行设计组装,调试使其成为一个简易的电子产品。同时我也了解如何设计一个电子产品。首先必须明确系统的设计任务,根据任务设计方案,然后对方案中的各部分进行单元电路的设计,参数计算和器件选择,最后将各部分连接在一起,画出符合设计要求的完整的电路图。然后进行编译,使其功能在可编程器件上能够实现。 在这8周的时间里,我们主要完成了以下六个实验:实验一: 组合逻辑设计、实验装置的使用方法

2、 一 实验目的: 1通过一个简单的3-8译码器的设计,掌握组合 逻辑电路的设计方法; 2.初步了解EPLD设计的全过程, 初步掌握Altera软件的使用;3.掌握组合逻辑电路的静态测试方法.二 实验步骤: 1 进入Windows操作系统,打开Max+PLUSII的设计软件. 启动File口Project Name菜单,将出现Project Name 对话框,在对话框内键入设计项目名YUSHI,选Ok即可2.点击Assign 口Device菜单,选择器件EPF10K144-13 设计的输入. 画出的实验原理图如下: 点击保存按钮保存原理图. 将起保存在YUSHI文件下,起扩展名为.gdf4. 设

3、计项目的编译. 点击MAX+PLUSII 口compiler项,出现编译窗口,点击start即可开始编译5.设计项目的模拟仿真. 通过模拟一个项目来证明它的功能是否是正确的. 上述电路的仿真波形如下: 6.在底层图编辑器中观察适配结果以及管脚的重新分配定位.对照结构管脚分配表,根据自己的设计进行分配. 7, 器件的编译. 三. 实验效果产生的现象:通过按键输入,发光二极管显示3-8译码器的功能。 四 实验小结:通过这个实验,我们初步了解了Max+PLUSII软件设计环境以及软件的使用。也实现了3-8译码器的从理论到实践验证过程。让我们亲身体验了3-8译码器的逻辑功能。实验二 用D触发器设计异步

4、四位二进制加法计数器实验目的:1 了解时序电路的经典设计方法; 2.理解D触发器和一般逻辑门组成的时序逻辑电路实验原理图:仿真波形:实验产生的现象或效果: 每个时钟下降沿时计数器就加一,D0,D1,D2,D3表示四进制的从低位到高位的四进制数。Reset是清零端,低电平后计数重新开始。小结: 通过这个实验进一步了解软件的使用,更加熟悉了四进制的原理。通过软件实现D触发器设计异步四位二进制加法计数。实验三 6进制、60,24进制计数器实验目的:1 了解同用同步记数器,异步计数器的使用方法 2.了解用同步计数器通过清零阻塞法和预显数法得到循环任意进制计数器的方法 3 理解时序电路和同步计数器加译码

5、电路的联系,设计任意编码计数器实验原理: 对可编程器件EPF10K144-1进行编程,通过程序的控制,使起实现6进制,60进制,24进制计数器功能. 各计数器的程序如下:六进制:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sy6 is port(clk,clr,en: in std_logic; count :out std_logic; q :out std_logic_vector( 3 downto 0); end sy6;architecture one of sy

6、6 issignal m:std_logic_vector(3 downto 0); begin process(clk,clr,en,m) begin if clr= 1 then m=0000; elsif clkevent and clk=1then if en=0 then if m=0101 then m=0000; count=1; else m=m+1; count=0; end if; end if; end if; end process; q=m; end; 仿真产生的波形是:六十进制:library ieee; use ieee.std_logic_1164.all; u

7、se ieee.std_logic_unsigned.all; entity sy60 is port(clk,clr,en: in std_logic; count :out std_logic; q :out std_logic_vector( 3 downto 0); shi :out std_logic_vector(3 downto 0); end sy60;architecture one of sy60 issignal g :std_logic_vector(3 downto 0);signal s:std_logic_vector(3 downto 0); begin pro

8、cess(clk,clr,en,s,g) begin if clr= 1 then s=0000;g=0000; elsif clkevent and clk=1then if en=0 then if s5 and g=1001 then s=s+1;g=0000; elsif s=5 and g=1001 then s=0000;g=0000; count=1; else g=g+1; count=0; end if; end if; end if; end process;q=g;shi=s; end;仿真波形:二十四进制:library ieee; use ieee.std_logic

9、_1164.all; use ieee.std_logic_unsigned.all; entity sy24 is port(clk,clr,en: in std_logic; count :out std_logic; q :out std_logic_vector( 3 downto 0); shi :out std_logic_vector(3 downto 0); end sy24;architecture one of sy24 issignal g :std_logic_vector(3 downto 0);signal s:std_logic_vector(3 downto 0

10、); begin process(clk,clr,en,s,g) begin if clr= 1 then s=0000;g=0000; elsif clkevent and clk=1then if en=0 then if s2 and g=1001 then s=s+1;g=0000; elsif s=2 and g=0011 then s=0000;g=0000; count=1; else g=g+1; count=0; end if; end if; end if; end process;q=g;shi=s; end;仿真波形:实验效果: 6进制计数器 每当有一个时钟脉冲到来,计

11、数器加1;当其值为0101时,再来一个脉冲则计数器就向上一位进1,其本身值为0000; 60 进制计数器 每当有一个时钟脉冲到来,计数器加1;当其个位的值为1001时,再来一个脉冲时向十位进1,其本身值为0000;当个位为1001,十位为0101时,再来一个脉冲时计数器就向上一位进1,其本身的值为0000 24进制计数器 每当有一个时钟脉冲到来,计数器加1;当其十位值小于2,个位值为1001时,再来一个脉冲则计数器个位向十位进1;当十位为0010,个位0011就向更高一位进1,其本身值为0000;实验小结:通过本实验熟悉了6进制、60进制,以及24进制的软件实现方法。掌握了举一反三,其他各进制

12、的软件实现都可以通过类似的方法实现。设计也开始向复杂进了一步,更深入地了解运用该设计软件。初步了解如何用AHDL语言编写程序。实验四 报时电路、分频电路、二选一电路实验目的:1 报时电路实现时钟在接近整点时间能提供报时信号; 2 分频电路将给定的频率分成所需要的频率; 3 二选一电路是实现在计时和设置时间两个界面之间的切换.实验原理: 对可编程器件EPF10K144-1进行编程,通过程序的控制,使起实现报时,分频和二选一的功能. 它们的编辑程序如下报时电路:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigne

13、d.all; entity baoshi1 is port(fg,fs,mg,ms: in std_logic_vector(3 downto 0); clk2,clk3: in std_logic; sp :out std_logic); end baoshi1;architecture one of baoshi1 is begin process(fg,fs,mg,ms,clk2,clk3) begin if fs=0101 and fg=1001 and ms=0101 and mg0100 then sp=clk2; elsif fs=0 and fg=0 and ms=0 and

14、mg=0 then sp=clk3; else sp=0; end if; end process; end;分频程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sy100fp is port(clk: in std_logic; count :out std_logic); end sy100fp;architecture one of sy100fp issignal g :std_logic_vector(3 downto 0);signal s:std_logic

15、_vector(3 downto 0); begin process(clk,s,g) begin if clkevent and clk=1then if s9 and g=1001 then s=s+1;g=0000; elsif s=9 and g=1001 then s=0000;g=0000; count=1; else g=g+1; count=0; end if; end if; end process; end;二选一:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; enti

16、ty sy2v1 is port(mg,ms,fg,fs,ss,sg,dss,dsg,dfs,dfg: in std_logic_vector( 3 downto 0); s: in std_logic; mga :out std_logic_vector( 3 downto 0); msa :out std_logic_vector( 3 downto 0); fga :out std_logic_vector( 3 downto 0); fsa :out std_logic_vector( 3 downto 0); ssa :out std_logic_vector( 3 downto 0

17、); sga :out std_logic_vector( 3 downto 0); end sy2v1;architecture one of sy2v1 is begin process(mg,ms,fg,fs,ss,sg,dfg,dfs,dsg,dss,s) begin if s= 0 then mga=mg;msa=ms;fga=fg;fsa=fs;sga=sg;ssa=ss; else mga=0000;msa=0000;fga=dfg;fsa=dfs;sga=dsg;ssa=dss; end if; end process; end;实验效果:1 报时电路:当时间的分钟到了59且秒

18、到了55开始响铃,每进一秒响一次,直到59秒;最后一秒分钟秒钟同时进位,并以另一频率响铃一声。从而达到了最后报时功能。2 分频电路:将系统所提供的3MHz通过两次100分频和一次3分频将其分成所需的100Hz.3 通过软件实现显示通路的切换,当s为低电平时显示当前时间;当s为高电平时,显示定时界面。通过操作操作另外的键调节定时。实验五 数字钟综合设计实验目的: 1 掌握多位计数器相连的设计方法 2 掌握十进制,六进制, 二十四进制计数器的设计方法 3 继续巩固多位共用级扫描显示数码管的驱动及编码 4. 掌握扬声器的驱动;5 LED灯的花样显示.6. 掌握EPLD技术的层次化设计方法。 实验原理

19、:在同一EPLD芯片EPF10K10上集成如下电路模块:1 时钟计数 秒60进制BCD码计数 分60进制BCD码计数 时24进制BCD码计数2 具有驱动8位8段共阴扫描数码管的片选驱动信号输出和八段字型译码输出。3 扬声器在整点时有报时信号产生。4 LED灯按个人爱好在整点时有花样显示信号产生。实验电路: 该电路的模块组成: 各种进制的计数及时钟控制模块(60进制,6进制,24进制); 扫描分时显示,译码模块; 彩灯,扬声键编码模块 各模块都由AHDL语言编写,各模块产生的波形在前面实验中已出现 实验效果:将程序下载到实验板上,先将S键设为低电平,使LED显示当前记时时间,从低位到高位依次是微

20、秒,秒,分,时。在显示过程中可通过按EN键暂停。通过按clear键清除当前显示,即复位。通过另两个键设置时间的分和时。将S设置为高电平,即灯为亮时,显示定时设置界面。通过按df键设置定时的分,ds设置定时时。当时间到了预设的定时间时通过定时比较器比较定时时间和当前时间,若一致便驱动喇叭响。 实验小结: 本实验着重锻炼实验者的实验创新能力以及综合设计能力。这个实验不仅要求对前几个实验有较深入的了解掌握,而且还要求对这些实验成果的组合兼容。这个实验要求对在以前实验的基础上进行综合创新。通过此项实验熟悉了电子表的原理功能,以及实现途径。这个实验也是整个CPLD及CAD课程的精华,知识量最大,对实验者

21、的创新意识要求较高。要求掌握的东西也很多;如多位计数器相连的设计方法,掌握十进制,六进制,二十四进制计数器的设计方法;进一步巩固了多位共用级扫描显示数码管的驱动及编码;掌握扬声器的驱动;LED显示的多样性;掌握EPLD技术的层次化设计方法。在同一EPLD芯片EPF10K10上集成了六十进制BCD码计数器,二十四进制BCD码计数器。具有驱动八位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。喇叭在整点有报时驱动信号产生。通过此项实验成功锻炼了实验者的综合能力,不论是从基础方面,还是创新意识,创新思想上都有了提高。体会到了综合设计的趣味与要求。实验六 PROTEL99SE原理图、印制电路板

22、图(PCB)设计 实验目的 初步了解利用PROTEL设计PCB版图实验内容 555组成的多谐振荡器:电路图:自动布线后的电路板: 实验小结: 此项试验重在熟悉PROTEL软件的基本运用,学习了制作简单的板,通过该软件制作设计电路。课程心得学习了CPLD这门课,我学到了最重要的东西便是:是让自己对CPLD有了一个初步的认识,知道它可以做哪些事情了。也是通过这次课,让我快速入门了,在上这门课之前,我也听其他同学谈起过CPLD这门课,但是也只是听说过而已。根本就不知道学什么,怎么学。由于上课的时间太短,老师没有时间讲它的语法和结构等等。我刚开始是根据自己试试出来的,但是太浪费时间了,后来我在写一些自

23、己的程序时,要是遇到问题就去图书馆借了本参考书,有针对性地找问题的答案,感觉效果还不错,还懂了很多课上没有用过的语法和结构。在课上听了老师的讲解后,有些问题就很快解决了。所以我觉得不管学什么东西,都要结合自学与课堂教学或者是说是要加强与别人的交流,这样的话对自己的知识结构会是一个很大的补充。的确,在完成了这些实验,我对这门课程有了一些认识。电子线路设计是在插线板上用已经存在的芯片,电容,电阻等器件连接,组装以实现某种功能或某种电子产品,它主要进行的是硬件的开发与组装;与“电子线路设计”相比,“CPLD及电子电路CAD” 是软件方面的应用。它利用AHDL 语言编写程序使其实现特定功能,因而需要我

24、们对计算机编程语言有一定的基础和运用。在进行电子设计时软件控制与硬件组装相比节省了器件,不用担心因为设计疏忽而使器件报废造成经济损失。同时,也不用再为连接烦琐的电路而头痛,在调试时也不用被插线板上五颜六色的导线弄得眼花缭乱。这使得电子电路的组装调试变得格外的简单。虽然仅仅只有八周的时间,我们从中学习了很多东西,足以让我受益匪浅,但是,其中也存在了很多问题,就我个人看来,老师的讲课速度有时候真的很快,使我们难以接受和理解,故而我希望老师能够改一改。还有就是在同学们询问的时候,老师的态度让人难以接受,我们也知道,老师你在讲授这门课时是很有经验,教导我们易于反掌,感觉对这些理解很透彻,再加上可能是老师经常面对这些,有点厌倦,但是我们学生就不一样,毕竟是刚刚接触,很多都要学习。在这过程中,肯定存在着很多问题,所以希望老师能够改进,这样更能使人接受,更能让人尊重,这些是我的一些拙见,只能代表个人的建议,谢谢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com