首页 vhdl数字钟程序 数字时钟的VHDL设计

vhdl数字钟程序 数字时钟的VHDL设计

举报
开通vip

vhdl数字钟程序 数字时钟的VHDL设计时钟vhdl vhdl与数字电路设计vhdl数字系统设计vhdl数字钟程序数字频率计vhdl vhdl 数字钟vhdl数字钟设计数字锁相环vhdl 数字秒表vhdl 我们做实验要用把程序发到这里算了`无错无警告 一、设计目的 1.掌握各类计数器及将它们相连的方法; 2.掌握多个数码管动态显示的原理与方法; 3.掌握用FPGA技术的层次化设计方法; 4.进一步掌握用VHDL硬件描述语言的设计思想; 5.了解有关数字系统的设计。 二、设计要求 基本要求: 1、24小时计数显示; 2、具有校时功能...

vhdl数字钟程序 数字时钟的VHDL设计
时钟vhdl vhdl与数字电路 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 vhdl数字系统设计vhdl数字钟程序数字频率计vhdl vhdl 数字钟vhdl数字钟设计数字锁相环vhdl 数字秒 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf vhdl 我们做实验要用把程序发到这里算了`无错无警告 一、设计目的 1.掌握各类计数器及将它们相连的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ; 2.掌握多个数码管动态显示的原理与方法; 3.掌握用FPGA技术的层次化设计方法; 4.进一步掌握用VHDL硬件描述语言的设计思想; 5.了解有关数字系统的设计。 二、设计要求 基本要求: 1、24小时计数显示; 2、具有校时功能(时,分); 附加要求: 1、实现闹钟功能(定时,闹响); 三、源代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity szz is port(clk:in std_logic; clk1:in std_logic; md1:in std_logic; md2:in std_logic_vector(1 downto 0); speak:out std_logic; dout:out std_logic_vector(6 downto 0); selout:out std_logic_vector(2 downto 0)); end szz; architecture one of szz is signal sel:std_logic_vector(2 downto 0); signal hou1:std_logic_vector(3 downto 0); signal hou2:std_logic_vector(3 downto 0); signal min1:std_logic_vector(3 downto 0); signal min2:std_logic_vector(3 downto 0); signal seth1:std_logic_vector(3 downto 0); signal seth2:std_logic_vector(3 downto 0); signal setm1:std_logic_vector(3 downto 0); signal setm2:std_logic_vector(3 downto 0); signal sec1:std_logic_vector(3 downto 0); signal sec2:std_logic_vector(3 downto 0); signal h1:std_logic_vector(3 downto 0); signal h2:std_logic_vector(3 downto 0); signal m1:std_logic_vector(3 downto 0); signal m2:std_logic_vector(3 downto 0); signal s1:std_logic_vector(3 downto 0); signal s2:std_logic_vector(3 downto 0); ------------------------------------------------- begin ----------------------------------------------模6计数 choice:process(clk1) begin if clk1'event and clk1='1' then if sel="101" then sel<="000"; else sel<=sel+1; end if; end if; end process choice; -----------------------------------------------小时十位 h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2) begin if clk'event and clk='1' then if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then hou1<="0000"; elsif hou1="0010"and hou2="0011"and md1='0' and md2="01" then--当时间为23点且处于校时状态时hou1<="0000"; elsif (hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (hou2="1001"and md1='0' and md2="01") then hou1<=hou1+1; end if; end if; end process h110; -----------------------------------------------小时个位 h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1) begin if clk'event and clk='1' then if (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then hou2<="0000"; elsif hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then hou2<="0000"; elsif (hou2="1001"and md1='0' and md2="01")or (hou1="0010"and hou2="0011") then hou2<="0000";--md<='1'; elsif ((min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (md1='0' and md2="01") then hou2<=hou2+1;--speak<=clk; end if; end if; end process h220; -----------------------------------------------分钟十位 m110:process(clk,min2,sec1,sec2,md1,md2) begin if clk'event and clk='1' then if (min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then min1<="0000"; elsif min1="0101"and min2="1001"and (md1='0' and md2="00")then min1<="0000"; elsif (min2="1001"and (sec1="0101" and sec2="1001")) or (min2="1001"and md1='0' and md2="00")then min1<=min1+1; end if; end if;--end if; end process m110; ----------------------------------------------分钟个位 m220:process(clk,sec1,sec2,md1,md2) begin if clk'event and clk='1' then if min2="1001"and (sec1="0101" and sec2="1001")then min2<="0000"; elsif min2="1001"and (md1='0' and md2="00")then min2<="0000"; else if (sec1="0101" and sec2="1001") or(md1='0' and md2="00")then min2<=min2+1; end if; end if;end if; end process m220; ---------------------------------------------秒十位 s110:process(clk) begin if clk'event and clk='1' then if (sec1="0101" and sec2="1001")then sec1<="0000"; else if sec2="1001"then sec1<=sec1+1; end if; end if;end if; end process s110; --------------------------------------------秒个位 s220:process(clk) begin if clk'event and clk='1' then if sec2="1001" then sec2<="0000"; else sec2<=sec2+1; end if; end if; end process s220; -------------------------------------------时间设置小时部分sethour1:process(clk,seth2) begin if clk'event and clk='1' then if seth1="0010"and seth2="0011" then seth1<="0000"; elsif seth2="1001" then seth1<=seth1+1; end if; end if; end process sethour1; ------------------------------------------- sethour2:process(clk,md1,md2,seth1) begin if clk'event and clk='1' then if (seth1="0010"and seth2="0011")or seth2="1001"then seth2<="0000"; elsif md1='1' and md2="00" then seth2<=seth2+1; end if; end if; end process sethour2; -------------------------------------------时间设置分钟部分setmin1:process(clk,setm2) begin if clk'event and clk='1' then if setm1="0101"and setm2="1001"then setm1<="0000"; elsif setm2="1001"then setm1<=setm1+1; end if; end if; end process setmin1; ---------------------------------------------- setmin2:process(clk,md1,md2) begin if clk'event and clk='1'then if setm2="1001"then setm2<="0000"; elsif md1='1' and md2="01"then setm2<=setm2+1; end if; end if; end process setmin2; -------------------------------------------- --------------------------------------------闹铃 speaker:process(clk1,hou1,hou2,min1,min2) begin if clk1'event and clk1='1'then if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then speak<=clk1; else speak<='0'; end if; end if; end process speaker; ------------------------------------------- ------------------------------------------- disp:process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) begin if sel="000" then selout<="000"; case h1 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when others =>dout<="1000000"; end case; elsif sel="001" then selout<="001"; case h2 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when "0110"=>dout<="1111101"; when "0111"=>dout<="0000111"; when "1000"=>dout<="1111111"; when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case; elsif sel="010" then selout<="010"; case m1 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when others=>dout<="1000000"; end case; elsif sel="011" then selout<="011"; case m2 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when "0110"=>dout<="1111101"; when "1000"=>dout<="1111111"; when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case; elsif sel="100" then selout<="100"; case s1 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when others=>dout<="1000000"; end case; elsif sel="101" then selout<="101"; case s2 is when "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when "0110"=>dout<="1111101"; when "0111"=>dout<="0000111"; when "1000"=>dout<="1111111"; when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case; end if; if md1='0' then---------------计时时间显示和设置模式h1<=hou1;h2<=hou2; m1<=min1;m2<=min2; s1<=sec1;s2<=sec2; else -----------闹铃时间现实和设置模式 h1<=seth1;h2<=seth2; m1<=setm1;m2<=setm2; s1<="1111";s2<="1111"; end if; end process disp; ------------------------------------------ end one;
本文档为【vhdl数字钟程序 数字时钟的VHDL设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:35KB
软件:Word
页数:15
分类:互联网
上传时间:2019-04-20
浏览量:16