- 0
- 0
- 约2.57千字
- 约 5页
- 2021-08-16 发布于北京
- 举报
南京工业职业技术学院技术报告
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
您可能关注的文档
最近下载
- 2025春统编版(2024)道德与法治一年级下册教学计划.docx VIP
- 2025版本成人胃肠功能障碍患者营养治疗指南解读最终版PPT演示课件.pptx VIP
- 最强大脑总题库之一(共800题).pdf VIP
- 病房护理设备器具项目绩效评估报告.docx VIP
- 创建山东省建设工程优质结构杯交流材料.pdf VIP
- 汽车制动系统之卡钳.doc VIP
- 冀少版(2024新版)七年级下册生物期末复习知识点提纲详细版.docx
- 年度供应商审核计划 .xls VIP
- 2026小学语文三年级下册阅读理解必备题型专项练习题库(附答案解析).pdf
- 浙商证券-债市专题报告-风格维度下的可转债多因子体系.pdf
原创力文档

文档评论(0)