77范文网 - 专业文章范例文档资料分享平台

14电气EDA实验指导书(1)(5)

来源:网络收集 时间:2019-06-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。

四、实验步骤

1、打开QUARTUSII软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

------------------------------------------------------------------ entity exp20 is

port( Clk : in std_logic; --时钟输入 Rst : in std_logic; --复位输入

S1,S2 : in std_logic; --时间调节输入 SPK : out std_logic; --整点输报时输出

Display : out std_logic_vector(6 downto 0); --七段码管显示输出

SEG_SEL : buffer std_logic_vector(2 downto 0) --七段码管扫描驱动

); end exp20;

--------------------------------------------------------------------

architecture behave of exp20 is

signal Disp_Temp : integer range 0 to 15;

signal Disp_Decode : std_logic_vector(6 downto 0); signal SEC1,SEC10 : integer range 0 to 9; signal MIN1,MIN10 : integer range 0 to 9; signal HOUR1,HOUR10 : integer range 0 to 9;

20

signal Clk_SM : std_logic; signal Clk1Hz : std_logic; signal Clk2Hz : std_logic;

signal led_count : std_logic_vector(2 downto 0);

BEGIN

PROCESS(clk) --产生显示扫描时钟

variable cnttemp : INTEGER RANGE 0 TO 59999; BEGIN

IF clk='1' AND clk'event THEN

IF cnttemp=59999 THEN cnttemp:=0; ELSE

IF cnttemp<30000 THEN clk_SM<='1'; ELSE clk_SM<='0'; END IF;

cnttemp:=cnttemp+1; END IF; END IF; END PROCESS;

PROCESS(clk) --产生显示扫描时钟1HZ

variable cnt : INTEGER RANGE 0 TO 23999999; BEGIN

IF clk='1' AND clk'event THEN IF cnt=23999999 THEN cnt:=0; ELSE

IF cnt<12000000 THEN clk1hz<='1'; ELSE clk1hz<='0'; END IF;

cnt:=cnt+1; END IF; END IF; END PROCESS;

PROCESS(clk) --产生显示扫描时钟2HZ

variable cnt : INTEGER RANGE 0 TO 23999999; BEGIN

IF clk='1' AND clk'event THEN

21

IF cnt=11999999 THEN cnt:=0; ELSE

IF cnt<6000000 THEN clk2hz<='1'; ELSE clk2hz<='0'; END IF;

cnt:=cnt+1; END IF; END IF; END PROCESS;

process(Clk1Hz,Rst) begin

if(Rst='0') then --系统复位 SEC1<=0; SEC10<=0; MIN1<=0; MIN10<=0; HOUR1<=0; HOUR10<=0;

elsif(Clk1Hz'event and Clk1Hz='1') then -- if(S1='0') then --调节小时 if(HOUR1=9) then HOUR1<=0;

HOUR10<=HOUR10+1;

elsif(HOUR10=2 and HOUR1=3) then HOUR1<=0; HOUR10<=0; else

HOUR1<=HOUR1+1; end if;

elsif(S2='0') then --调节分钟 if(MIN1=9) then MIN1<=0;

if(MIN10=5) then MIN10<=0; else

MIN10<=MIN10+1; end if;

22

正常运行

else

MIN1<=MIN1+1; end if;

elsif(SEC1=9) then SEC1<=0;

if(SEC10=5) then SEC10<=0;

if(MIN1=9) then MIN1<=0;

if(MIN10=5) then MIN10<=0;

if(HOUR1=9) then HOUR1<=0;

HOUR10<=HOUR10+1;

elsif(HOUR10=2 and HOUR1=3) then HOUR1<=0; HOUR10<=0; else

HOUR1<=HOUR1+1; end if; else

MIN10<=MIN10+1; end if; else

MIN1<=MIN1+1; end if; else

SEC10<=SEC10+1; end if; else

SEC1<=SEC1+1; end if; end if; end process;

process(Clk) begin

if(Clk2hz'event and Clk2hz='1') then

23

if(MIN10=5 and MIN1=9 and SEC10=5 and sec1>3) then --在59分55秒开始提示

led_Count<=led_Count+1; else

led_count<=\ end if; end if;

SPK<=led_count(0); end process;

process(SEG_SEL) begin

case (SEG_SEL+1) is

when \ when \ when \ when \ when \ when \ when \ when \ end case; end process;

process(Clk) begin

if(Clk_SM'event and Clk_SM='1') then --扫描累加 SEG_SEL<=SEG_SEL+1; Display<=Disp_Decode; end if; end process;

process(Disp_Temp) --显示转换 begin

case Disp_Temp is

when 0=>Disp_Decode<=\ when 1=>Disp_Decode<=\

24

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库14电气EDA实验指导书(1)(5)在线全文阅读。

14电气EDA实验指导书(1)(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/662402.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: