1、利用按键开关控制点阵进行八进制数字显示1、课程设计目的1.学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌握可编程器件设计的全过程。2、课程设计内容和要求2.1、设计内容 利用按键开关控制点阵进行八进制数字显示。2.2、设计要求 1学习掌握按键开关控制模块、点阵显示模块的工作原理及应用; 2. 熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑; 3. 仿真所编写的程序,模拟验证所编写的模块功能; 4. 下载程序到芯片中,硬件验证所设置的功能,能够实现八进制数字的显示; 5. 整理设计内容,编写设计说明书。3、
2、设计方案及实现情况 3.1、设计思路 根据题目设计要求,采用自顶向下设计方法,顶层采用原理图设计方法,模块分为分频(FENPIN)、计数(JISHU)、功能控制(CNTA)、1616点阵显示(XIANSHI)四个模块,通过对各模块编写程序实现模块功能,生成器件,再将将四个模块综合,实现利用按键开关控制点阵进行八进制数字显示。3.2、工作原理及框图工作原理:系统的输入信号有复位信号RST,系统时钟信号CLOCK,按键信号ANJIAN 。系统的输出信号有点阵行驱动输出信号Y15.0,点阵列选信号Q3.0 。系统利用分频模块对CLOCK进行分频,然后消斗进行手动计数,控制八进制,计数输出结果CN2.
3、0控制XIANSHI模块输出相应的图形。CNTA模块产生类扫描信号,控制XIANSHI模块进行逐列扫描,在点阵上就可以出现八进制数的输出。图1 系统整体工作原理图3.3、各模块功能描述1分频模块(FENPIN):对时钟进行1000分频。图2 分频模块图及管脚library ieee;Use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin is port(clk:in std_logic; clkout:out std_logic);end fenpin;architecture r1 of fenpin
4、 issignal cnt:integer range 0 to 15;begin process(clk) begin if clkevent and clk=1 then if cnt8 then clkout = 0; else clkout = 1; end if; cnt = cnt +1; end if; end process;end r1;2.消斗模块(XIAODOU):对按键信号进行消斗,使案件输出稳定,最终使点阵显示稳定。图3 消抖模块图及管脚library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.
5、ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity xiaodou is port( clk : in std_logic; rst : in std_logic; d_click : out std_logic; click : in std_logic );end xiaodou;architecture r1 of xiaodou is signal count : integer range 0 to 10000;-std_logic_vector(9 downto 0); signal count1 : std_logic_vector(7 down
6、to 0); signal dout1 : std_logic;beginprocess (clk,rst) begin if rst = 1 then dout1 = 1; count1 = 00000000; elsif clk event and clk = 1 then if (click = 0) and (count1(7) = 0) and (dout1 = 1) then dout1 = 1; count1 = count1+1; elsif (click = 0) and (count1(7) = 1) and (dout1 = 1) then dout1 = 0; coun
7、t1 = 00000000; elsif (click = 1) and (count1(7) = 0) and (dout1 = 0) then dout1 = 0; count1 = count1+1; elsif (click = 1) and (count1(7) = 1) and (dout1 = 0) then dout1 = 1; count1 = 00000000; else d_click = dout1; count1 = 00000000; end if; end if; end process; end r1;3.计数模块(JISHU):进行八进制计数,输出控制显示模块
8、的CH2.0 。图4 计数模块及管脚图library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jishu isport( clk : in std_logic; rst : in std_logic; count : out std_logic_vector(2 downto 0);end jishu;architecture r1 of jishu issignal cn : std_logic_vector(2 downto 0)
9、;begin count = cn;process(clk,rst)begin if rst = 1 then cn = 000;elsif clkevent and clk=1 then if cn = 111 then cn = 000; else cn = cn+1; end if;end if;end process;end r1;4.功能控制模块(CNTA):利用时钟进行十六进制计数,控制列信号从0000-1111变化。图5 功能控制模块及管脚图library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.a
10、ll;entity cnta isport(clk:in std_logic; q:out std_logic_vector(3 downto 0);end cnta;architecture r1 of cnta isbeginprocess(clk) variable tmp:std_logic_vector(3 downto 0);beginif clkevent and clk=1 then if tmp=1111 then tmp:=0000; else tmp:=tmp+1; end if;end if;q case sel is when 0000 = dout dout dou
11、t dout dout dout dout dout dout dout dout dout dout dout dout doutnull; end case; when 001= case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout doutnull; end case;when 010 = case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout
12、dout dout dout dout dout null; end case; when 011 = case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout null; end case; when 100 = case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout null; end cas
13、e; when 101 = case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout null; end case; when 110 = case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout null; end case; when 111= case sel is when 0000 = dout dout dout dout dout dout dout dout dout dout dout dout dout dout dout doutnull; end case; when othe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1