万年历设计年月日可调VHDL代码Quartus仿真
名称:万年历设计年月日可调VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
万年历设计年月日可调Quartus9.0
1、使用VHDL设计电子万年历
2、年月日可以通过按键调整
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图







a


部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --万年历 ENTITY calendar IS PORT ( CLK : IN STD_LOGIC; RST : IN STD_LOGIC; --年月日调整按键 day_add : IN STD_LOGIC;--天加 day_sub : IN STD_LOGIC;--天减 month_add : IN STD_LOGIC;--月加 month_sub : IN STD_LOGIC;--月减 year_add : IN STD_LOGIC;--年加 year_sub : IN STD_LOGIC;--年减 day_max : IN STD_LOGIC_VECTOR(4 DOWNTO 0);----月最大天数 year_h : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--年高位 year_l : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--年低位 month : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--月 day : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)--天 ); END calendar; ARCHITECTURE behave OF calendar IS SIGNAL month_add_cin : STD_LOGIC := '0'; SIGNAL month_sub_cin : STD_LOGIC := '0'; SIGNAL year_add_cin : STD_LOGIC := '0'; SIGNAL year_sub_cin : STD_LOGIC := '0'; SIGNAL year_h_temp : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL year_l_temp : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL month_temp : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL day_temp : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN --输出 year_h<=year_h_temp; year_l <= year_l_temp; month <= month_temp; day <= day_temp; --调整天 PROCESS (CLK, RST) BEGIN IF (RST = '1') THEN day_temp <= "00001";--1日 ELSIF (CLK'EVENT AND CLK = '1') THEN IF (day_add = '1') THEN--加 IF (day_temp >= day_max) THEN day_temp <= "00001"; month_add_cin <= '1';--月进1 ELSE day_temp <= day_temp + "00001"; month_add_cin <= '0'; END IF; ELSIF (day_sub = '1') THEN--减 IF (day_temp = "00001") THEN day_temp <= day_max; month_sub_cin <= '1';--月减1 ELSE day_temp <= day_temp - "00001"; month_sub_cin <= '0'; END IF; ELSIF (day_temp >= day_max) THEN day_temp <= day_max; month_add_cin <= '0'; month_sub_cin <= '0'; ELSE day_temp <= day_temp; month_add_cin <= '0'; month_sub_cin <= '0'; END IF; END IF; END PROCESS; --调整月 PROCESS (CLK, RST) BEGIN IF (RST = '1') THEN month_temp <= "0001";--1月 ELSIF (CLK'EVENT AND CLK = '1') THEN IF (month_add = '1' OR month_add_cin = '1') THEN--加 IF (month_temp >= "1100") THEN--12月 month_temp <= "0001"; year_add_cin <= '1';--年加1 ELSE month_temp <= month_temp + "0001"; year_add_cin <= '0'; END IF; ELSIF (month_sub = '1' OR month_sub_cin = '1') THEN--减 IF (month_temp = "0001") THEN month_temp <= "1100"; year_sub_cin <= '1';--年减1 ELSE month_temp <= month_temp - "0001"; year_sub_cin <= '0'; END IF; ELSE
代码文件(付费下载):
![]()
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 万年历设计年月日可调VHDL代码Quartus仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 万年历设计年月日可调VHDL代码Quartus仿真