现场网络化控制技术应用现场网络化控制技术应用手动计数器.docxVIP

  • 0
  • 0
  • 约2.57千字
  • 约 5页
  • 2021-08-16 发布于北京
  • 举报

现场网络化控制技术应用现场网络化控制技术应用手动计数器.docx

南京工业职业技术学院技术报告 PAGE \ PAGE 5 基于EPM7128SLC84-15N的 手动计数器 附录 1 主要源程序 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; --******************实体定义*********************** ENTITY key IS PORT(clk : IN STD_LOGIC;--时钟输入 key : in std_logic;--键入 l : out STD_LOGIC_VECTOR(5 downto 0);--输出 data_o : out STD_LOGIC_VECTOR(7 downto 0); bell : out STD_LOGIC:=0 ); END key; ARCHITECTURE an OF key IS signal clk_1k : std_logic; signal p : integer range 0 to 5; begin --**************分频到1K******************* process(clk) variable cnt1 : integer range 0 to 200;--分频计数器1 variable cnt2 : integer range 0 to 125;--分频计数器2 begin if clkevent and clk=1 then if cnt1=200 then cnt1:=0; if cnt2=125 then cnt2:=0; clk_1k=not clk_1k; else cnt2:=cnt2+1; end if; else cnt1:=cnt1+1; end if; end if; end process; --*****************数码管扫描进程******************** process(p,clk_1k) begin if clk_1k=1 and clk_1kevent then if p=5 then p=0; else p=p+1; end if; end if; case p is when 0 = l=111110; when 1 = l=111101; when 2 = l=111011; when 3 = l=110111; when 4 = l=101111; when 5 = l=011111; when others= end case; end process; --********************显示控制进程************************************* process(clk_1k) FUNCTION b_to_s7(bcd8421:INTEGER RANGE 0 TO 9) RETURN STD_LOGIC_VECTOR IS VARIABLE smg7: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN CASE bcd8421 IS --计算输出值 WHEN 0 = smg7: --abcdefgh WHEN 1 = smg7: WHEN 2 = smg7: WHEN 3 = smg7: WHEN 4 = smg7: WHEN 5 = smg7: WHEN 6 = smg7: WHEN 7 = smg7: WHEN 8 = smg7: WHEN 9 = smg7: if bcd8421=9 then bell=1; end if; END CASE; RETURN smg7; END b_to_s7; VARIAB

文档评论(0)

1亿VIP精品文档

相关文档