|
楼主 |
发表于 2003-12-12 14:22:26
|
显示全部楼层
EDA入门套件设计实例详解
用VHDL语言制作秒表
1.功能和要求:
1/100S计时器常用于体育竟赛及各种要求有较精确订时的地方.其功能主要有
(1).精度应大于1/100S;
(2).计时器最长计时时间为1h,故需6位显示器,例如 36分12秒56(1/100);
(3).设置复位和启停开关, 复位开关用于使计时器清零,按一下启停开关计时器开始
计数,再按一下启停开关计时器停止计数; 复位开关可以在仍何情况下使用,即使
在计时过程中,只要一按复位开关,计时进程应立即停止,并对计时器清零.
2.制作思路:
秒表的核心部件是6位计数器,每个计数器由四位二进制数组成.计数器的时钟信号
为100hz.每按一次按键开关输入一个单脉冲用于复位和启停.由于EDA实验板上只
有4为数码管,故需借用LED指示灯资源.用数码管左边两位显示(分),用数码管右边
两位显示(秒),用LED左边四位直接显示(1/100)高位(二进制形式),用LED右边四位
显示(1/100)低位.
可以用6个串行进位计数器作为核心,计数器最低位时钟为100hz方波; 100hz方波可
由对光盘中os.xnf(相当于晶振)适当分频得到。
3.源程序注释:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity counter60 is
port (
reset:in std_logic; -------reset为清零信号
stop:in std_logic; -------stop为启停信号
ledut std_logic_vector(6 downto 0); -------led为数码管7段显示信号
digut std_logic_vector(3 downto 0); ------dig为数码管位选信号
bcd1: inout STD_LOGIC_VECTOR (3 downto 0); ----bcd1为1/100s低位
bcd10: inout STD_LOGIC_VECTOR (3 downto 0)---bcd10为 1/100 高位
);
end counter60;
部分内容
|
|