




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. . . . .陕西国防工业职业技术学院实训报告科 目 CPLD技术实训 班 级 dz5081 姓 名 贾彬 李丹 路清云 学 号 10# 28# 11# 指导教师 李想 许燕 2012年05月28日目 录一、项目记录卡1) 8灯跑马灯22) 16灯跑马灯53) 8位数码扫描显示电路84) 7人表决器105) 14人表决器136) 4*4键盘控制电路167) 简单时钟198) 数字频率计259) 乒乓游戏机2910) 交通灯34二、实训总结41CPLD技术实训项目记录卡编号(001)项目名称8灯跑马灯项目组成员贾彬 李丹 路清云项目内容LIBRARY IEEE;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY test53 IS PORT(clk,rst: IN std_logic; q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END test53;ARCHITECTURE one OF test53 IS-定义4种模式 type states is (s0,s1,s2,s3); signal present:states; signal q1:STD_LOGIC_VECTOR(7 DOWNTO 0); signal cnt:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,rst)BEGIN-系统复位if rst=1 then present=s0;q10);elsif clkevent and clk=1 then case present is-s0模式:从左到右逐个点亮LED when s0= if q1=00000000 then q1=10000000; elsif cnt=0111 then cnt0); q1=00000001; present=s1; else q1=q1(0)&q1(7 DOWNTO 1); cnt=cnt+1; present if cnt=0111 then cnt0); q1=10000001; present=s2; else q1=q1(6 DOWNTO 0)&q1(7); cnt=cnt+1; present if cnt=0111 then cnt0);q1=00011000;present=s3; else q1(7 DOWNTO 4)=q1(4)&q1(7 DOWNTO 5); q1(3 DOWNTO 0)=q1(2 DOWNTO 0)&q1(3); cnt=cnt+1; present if cnt=0111 then cnt0);q1=10000000;present=s0; else q1(7 DOWNTO 4)=q1(6 DOWNTO 4)&q1(7); q1(3 DOWNTO 0)=q1(0)&q1(3 DOWNTO 1); cnt=cnt+1; present=s3; end if; end case;end if;END PROCESS;q=q1;END ARCHITECTURE one ;项目组成员分工贾彬编程贾彬调试贾彬在功能板上实现程序项目实施过程中遇到的困难第一次接触eda功能板不了解内部原理,功能板和编译好的程序没有办法匹配。解决问题的过程及方法通过老师的讲解了解。总结与反思Eda功能板很强大,可以讲理论与实践很好的结合。编号(002)项目名称16灯跑马灯项目组成员贾彬 李丹 路清云项目内容LIBRARY IEEE;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY cpld IS PORT(clk,rst: IN std_logic; q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END cpld;ARCHITECTURE cpld OF cpld IS-定义4种模式 type states is (s0,s1,s2,s3); signal present:states; signal q1:STD_LOGIC_VECTOR(7 DOWNTO 0); signal cnt:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,rst)BEGIN-系统复位if rst=1 then present=s0;q10);elsif clkevent and clk=1 then case present is-s0模式:从左到右逐个点亮LED when s0= if q1=00000000 then q1=10000000; elsif cnt=0111 then cnt0); q1=00000001; present=s1; else q1=q1(0)&q1(7 DOWNTO 1); cnt=cnt+1; present if cnt=0111 then cnt0); q1=10000001; present=s2; else q1=q1(6 DOWNTO 0)&q1(7); cnt=cnt+1; present if cnt=0111 then cnt0);q1=00011000;present=s3; else q1(7 DOWNTO 4)=q1(4)&q1(7 DOWNTO 5); q1(3 DOWNTO 0)=q1(2 DOWNTO 0)&q1(3); cnt=cnt+1; present if cnt=0111 then cnt0);q1=10000000;present=s0; else q1(7 DOWNTO 4)=q1(6 DOWNTO 4)&q1(7); q1(3 DOWNTO 0)=q1(0)&q1(3 DOWNTO 1); cnt=cnt+1; present=s3; end if; end case;end if;END PROCESS;q=q1;END ARCHITECTURE cpld ;项目组成员分工贾彬编程,调试李丹,路清云检查程序贾彬在功能板上实现程序项目实施过程中遇到的困难Led灯的显示频率太快解决问题的过程及方法讲频率的范围值改变。总结与反思灯的显示快慢与频率息息相关。编号(003)项目名称8位数码扫描显示电路项目组成员贾彬 李丹 路清云项目内容LIBRARY IEEE;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY cpld IS PORT(clk: IN std_logic; seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); scan: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END cpld;ARCHITECTURE one OF cpld IS-扫描数码管地址的计数器 signal cnt8:integer range 0 to 7;-数码管的数据显示 signal data:integer range 0 to 15;BEGINPROCESS(clk)BEGINif clkevent and clk=1 then cnt8scan=000;datascan=001;datascan=010;datascan=011;datascan=100;datascan=101;datascan=110;datascan=111;datanull;end case;END PROCESS;process(data)begincase data iswhen 0=segsegsegsegsegsegsegsegsegsegsegsegsegsegsegsegnull;end case;END PROCESS;END ARCHITECTUR one;项目组成员分工贾彬编写程序路清云,李丹运行程序贾彬在功能板上实现程序项目实施过程中遇到的困难不理解数码管的显示功能和引脚连接功能,解决问题的过程及方法通过学习ppt里面的内容总结与反思学会应用8段数码管了,并实现了自己的学号。编号(004)项目名称7人表决器项目组成员贾彬 李丹 路清云项目内容LIBRARY IEEE;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY test55 IS PORT(clk,k1,k2,k3,k4,k5,k6,k7: IN std_logic; led1,led2:OUT STD_LOGIC; seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); scan: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END test55;ARCHITECTURE one OF test55 IS-赞成票的二进制计数器 signal q:STD_LOGIC_VECTOR(3 DOWNTO 0);-赞成票的十进制计数器 signal qy:integer range 0 to 7;-反对票的十进制计数器 signal qn:integer range 0 to ;-扫描数码管地址的计数器 signal cnt8:integer range 0 to 7;-数码管的数据显示 signal data:integer range 0 to ;BEGIN-计票进程process(qy,qn,q)beginq=(000&k1)+k2+k3+k4+k5+k6+k7;qy=conv_integer(q);qn=7-qy;if qy8 then led1=0;led2=1;else led1=1;led2=0;end if;END PROCESS;-扫描数码管地址的计数进程PROCESS(clk)BEGINif clkevent and clk=1 then cnt8scan=000;datascan=001;datascan=010;datascan=011;datascan=100;datascan=101;datascan=110;datascan=111;datanull;end case;END PROCESS;-7段译码process(data)begincase data iswhen 0=segsegsegsegsegsegsegsegsegsegsegsegsegsegsegsegnull;end case;END PROCESS;END ARCHITECTURE one ;项目组成员分工李丹编写程序李丹运行程序贾彬改写程序并在功能板上实现程序项目实施过程中遇到的困难没有理解程序,不会使用表决器解决问题的过程及方法了解程序后,一切很容易就化解了。总结与反思这个实验很有意思,通过数码管和开关实现表决。编号(005)项目名称14人表决器项目组成员贾彬 李丹 路清云项目内容LIBRARY IEEE;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY test55 IS PORT(clk,k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14: IN std_logic; led1,led2:OUT STD_LOGIC; seg: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); scan: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END test55;ARCHITECTURE one OF test55 IS-赞成票的二进制计数器 signal q:STD_LOGIC_VECTOR(2 DOWNTO 0);-赞成票的十进制计数器 signal qy:integer range 0 to 14;-反对票的十进制计数器 signal qn:integer range 0 to 14;-扫描数码管地址的计数器 signal cnt8:integer range 0 to 7;-数码管的数据显示 signal data:integer range 0 to 15;BEGIN-计票进程process(qy,qn,q)beginq=(00&k1)+k2+k3+k4+k5+k6+k7+k8+k9+k10+k11+k12+k13+k14;qy=conv_integer(q);qn=14-qy;if qy7 then led1=0;led2=1;else led1=1;led2=0;end if;END PROCESS;-扫描数码管地址的计数进程PROCESS(clk)BEGINif clkevent and clk=1 then cnt8scan=000;datascan=001;datascan=010;datascan=011;datascan=100;datascan=101;datascan=110;datascan=111;datanull;end case;END PROCESS;-7段译码process(data)begincase data iswhen 0=segsegsegsegsegsegsegsegsegsegsegsegsegsegsegsegnull;end case;END PROCESS;END ARCHITECTURE one;项目组成员分工李丹,贾彬编写程序路清云运行程序贾彬改写程序并在功能板上实现程序项目实施过程中遇到的困难没有理解程序,不会使用表决器解决问题的过程及方法了解程序后,一切很容易就化解了。总结与反思1. 这个实验很有意思,通过数码管和开关实现表决。 2.要认真去看程序理解程序,才能很快完成它。编号(006)项目名称4*4键盘控制电路项目组成员贾彬 李丹 路清云项目内容library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cpld isport(clk,start:in std_logic;-列扫描信号 kbrow:in std_logic_vector(3 downto 0);-行扫描信号 kbcol:out std_logic_vector(3 downto 0);-数码管显示信号(abcdefgh) seg7:out std_logic_vector(7 downto 0);-数码管地址选择信号 scan:out std_logic_vector(2 downto 0);end cpld;architecture one of cpld is signal count:std_logic_vector(1 downto 0); signal state:std_logic_vector(1 downto 0); signal seg7_1:std_logic_vector(7 downto 0); signal dat:std_logic_vector(4 downto 0); signal fn:std_logic;begin-只使用一个数码管显示scan=000;-循环扫描计数器process(clk)beginif clkevent and clk=1 then countkbcol=0001;statekbcol=0010;statekbcol=0100;statekbcol=1000;statekbcol=1111;end case;end if;end process;-列扫描译码process(clk,start)beginif start=0 then seg7_1 case kbrow is when 0001= seg7_1=10001110; dat seg7_1=10011110; dat seg7_1=01111010; dat seg7_1=10011100; datseg7_1=00000000;dat case kbrow iswhen 0001= seg7_1=00111110; dat seg7_1=11101110; dat seg7_1=11110110; dat seg7_1=11111110; datseg7_1=00000000;dat case kbrow iswhen 0001= seg7_1=11100000; dat seg7_1=10111110; dat seg7_1=10110110; dat seg7_1=01100110; datseg7_1=00000000;dat case kbrow iswhen 0001= seg7_1=11110010; dat seg7_1=11011010; dat seg7_1=01100000; dat seg7_1=11111100; datseg7_1=00000000;datseg7_1=00000000; end case;end if;end process;fn=not(dat(0)and dat(1)and dat(2)and dat(3)and dat(4);-产生按键标志位,用于存储按键信息process(fn)begin-按键信息存储if fnevent and fn=1 thenseg7=seg7_1;end if;end process;end;李丹编写程序路清云运行程序贾彬改写程序并在功能板上实现程序项目实施过程中遇到的困难1.刚开始编译时,程序出错。 2.在实验箱与计算机结合时,连接不上。 3.看不懂程序,不理解4*4键盘实现的理解,通过对十六进制与二进制的转换便可改变它的值。解决问题的过程及方法1.在检查了程序时,发现忘了拷贝是少了一行程序,然后添加了程序后,正常运行。2.端口线与实验箱没连接上,然后连接好了,正常运行。 3. 看ppt,了解到了程序运行的原理。总结与反思1.在做4*4键盘控制电路设计中,当中程序有很多问题,认真检查了程序,然后改正,让其正常运行,实现功能。 2.再这次实验中懂得了,要认真负责的看好每一个环节,才保证实验能够顺利进行,进而完成实验项目。编号(007)项目名称简单时钟项目组成员贾彬 李丹 路清云项目内容library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cpld isport(clk:in std_logic;-时钟输入 1024hz clr:in std_logic;-清零 en:in std_logic;-暂停 seg:out std_logic_vector(7 downto 0);-数码管显示信号 scan:out std_logic_vector(2 downto 0);-数码管扫描信号end;architecture one of cpld issignal qhh,qhl,qmh,qml,qsh,qsl:std_logic_vector(3 downto 0);signal data:std_logic_vector(3 downto 0);signal cnt:integer range 0 to 5;signal clk1hz:std_logic;signal sec,min:integer range 0 to 59;signal hour:integer range 0 to 23;begin-1hz分频process(clk)variable count:integer range 0 to 511;beginif clkevent and clk=1 then if count=511 then clk1hz=not clk1hz;count:=0; else count:=count+1; end if;end if;end process;-记时process(clk1hz,clr,en,hour,min,sec)beginif en=1 then hour=hour;min=min;sec=sec;elsif clr=1 then hour=0;min=0;sec=0;elsif clk1hzevent and clk1hz=1 then if sec=59 then sec=0; if min=59 then min=0; if hour=23 then hour=0; else hour=hour+1;end if; else min=min+1;end if; else secqslqslqslqslqslqslqslqslqslqslnull;end case;case sec is when 0|1|2|3|4|5|6|7|8|9 =qshqshqshqshqshqshnull;end case;end process;-分计数的十进制转BCD码process(min)begincase min iswhen 0|10|20|30|40|50 =qmlqmlqmlqmlqmlqmlqmlqmlqmlqmlnull;end case;case min is when 0|1|2|3|4|5|6|7|8|9 =qmhqmhqmhqmhqmhqmhnull;end case;end process;-小时计数的十进制转BCD码process(hour)begincase hour iswhen 0|10|20 =qhlqhlqhlqhlqhlqhlqhlqhlqhlqhlnull;end case;case hour is when 0|1|2|3|4|5|6|7|8|9 =qhhqhhqhhnull;end case;end process;-数码管动态扫描计数process(clk)beginif clkevent and clk=1 then if cnt=5 then cnt=0; else cnt data=qsl;scan data=qsh;scan data=qml;scan data=qmh;scan data=qhl;scan data=qhh;scannull;end case;end process; -七段译码process(data)begincase data is when0000=segsegsegsegsegsegsegsegsegsegseg=00000000;end case;end process;end;项目组成员分工李丹,贾彬编写程序路清云检查程序贾彬运行程序并实现项目实施过程中遇到的困难在实施时不了解程序的原理,看不懂如何使用。 解决问题的过程及方法看过书之后懂得了接线和如何使用。总结与反思1.在拿到这个试验项目时,先不要盲目的去看,要认真对待,才能顺利地完成实验。2.学会使用实箱去定时。编号(008)项目名称数字频率计项目组成员贾彬 李丹 路清云项目内容library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cpld isport(sysclk:in std_logic;-12mhz 时钟输入 clkin:in std_logic;-待测频率信号输入 seg7:out std_logic_vector(7 downto 0);-7段显示控制信号(abcdefg) scan:out std_logic_vector(2 downto 0);-数码管地址选择信号end;architecture one of cpld issignal cnt:std_logic_vector(24 downto 0);-用于分频的计数器signal clk_cnt :std_logic;signal cntp1,cntp2,cntp3,cntp4,cntp5,cntp6,cntp7,cntp8:std_logic_vector(3 downto 0);signal cntq1,cntq2,cntq3,cntq4,cntq5,cntq6,cntq7,cntq8:std_logic_vector(3 downto 0);signal dat:std_logic_v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中级经济师职称考试模拟试题及答案
- 2025年农业专家招聘考试知识点详解与模拟题答案解析
- 披萨店员工安全培训课件
- 2025年聚醚砜PES项目合作计划书
- 内蒙古自治区呼伦贝尔市牙克石市联考2024-2025学年七年级上学期期末考试数学试题(含部分答案)
- 江苏省南京市2024-2025学年九年级(上)物理第一次月考试卷(含答案)
- 2025年碳酸二甲酯合作协议书
- 抗菌药物合理应用原则
- 福建省南平市部分学校2025-2026学年高二上学期质量检测(开学联考)语文试卷(含答案)
- 2024-2025学年江西省上饶市鄱阳县人教版三年级下册期末考试数学试卷(含答案)
- 竞争法培训课件
- 10kV电缆模塑熔接接头技术规范书
- 2025年4月自考13126管理学原理初级试题及答案
- 2023医疗质量安全核心制度要点释义(第二版)对比版
- 2025年注册土木工程师(水利水电)之基础知识模考模拟试题(全优)
- 2025年云南省中考数学试卷真题及解析答案
- 货运平台项目可行性研究报告
- CJ/T 448-2014城镇燃气加臭装置
- 租房开午托园合同范本
- 脚手架废弃物的分类与处理
- 河北建投集团招聘笔试题库2025
评论
0/150
提交评论