




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数数 字字 钟钟 EDAEDA 课程设计课程设计 姓姓 名名 专专 业业 班班 级级 指导教师 指导教师 一 数字钟的设计要求一 数字钟的设计要求 1 具有正确的时 分 秒计时功能 2 计时结果要用 6 个数码管分别显示时 分 秒的十位和个位 3 有校时功能 当键 MINUTE 按下时 分计数器以秒脉冲的速度递增 并按 60min 1 循环 即计数到 59min 后再回 00 当 HOUR 键按下时 时计数器以秒脉冲的速度 递增 并按 24h 循环 即计数到 23h 后再回 00 二 数字钟顶层结构二 数字钟顶层结构 根据数字钟的功能要求 就可以对数字钟按照功能进行模块划分 图 2 1 是它的顶 层电路原理图 在图 2 1 中 外界通过 CLK 端输入 1Hz 的脉冲信号 1Hz 信号作为秒脉冲信号送入 SECOND 60 进制 计数器进行秒计时 满 60s 产生一个进位信号 CARRY 经过或门 被送入 MINUTE 60 进制 计数器进行分计数 当按下 SECOND 键后 1Hz 秒脉冲信 号通过或门被送入 MINUTE 60 进制 计数器进行分计数 从而实现快速校分功能 HOUR 24 进制 计数器也是经过同样的过程实现计数和校时功能 时 分 秒计数器的输出均是十位和个位分开显示的 8421BCD 码 将这六组 BCD 码通过一个六选一数据选择器 MUX6 1SCAN 选出一组 BCD 码 由外界输入的 CLKCAN 信号作为 MUX6 1SCAN 的选择控制信号 然后再将选出的一组 BCD 码送至 七段译码显示器进行译码 译码每输出结果同时送至 6 个 LED 数码管的 a b c d e f 7 个段 至于哪个数码管能够显示 取决于扫描控制信号 SEL 的输出 结果 即 SEL 选择哪个数码管 那个数码管就点亮 用多个 个 数码管显示数据时有并行显示和动态扫描显示两种方式 所谓并行 显示 是 个数码管同时被驱动 它需要同时对 组 BCD 码数据进行编译 并输出 6 组 LED 段驱动信号去驱动 个数码管的 个显示段 共需要 42 个 I O 管脚 另外还 需要 个 BCD 段译码器 本设计采用动态扫描显示 每次仅仅点亮 个数码管 各个数码管轮流被扫描点亮 如果扫描的速度足够快 由于人眼存在视觉暂留现象 就看不出闪烁 开始工作时 先 从 组 数据中选出一组 通过 段译码器译码后输出 然后选出下一组数据译码 输出 数据选择的时序和顺序由 个进制计数器 SEL 控制 与此同时 MUX6 1SCAN 产生选通信号 这种显示方式需要的资源少 而且节能 2 图图 2 1 数字钟的顶层原理图数字钟的顶层原理图 3 三 数字钟各模块的三 数字钟各模块的 VHDL 源程序设计源程序设计 以下是数字钟各模块的 VHDL 程序及部分主要模块的仿真波形 整体模块 VHDL 代码 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY s clock signal IS PORT clk reset IN STD LOGIC ca1 ca2 ca3 out std logic seline out std logic vector 2 downto 0 seg7 out std logic vector 7 downto 0 seg s l seg s h seg m l seg m h seg h l seg h h buffer integer range 0 to 9 END ENTITY s clock signal ARCHITECTURE mzm OF s clock signal IS SIGNAL sec1 t sec2 t min1 t min2 t hour1 t hour2 t integer range 0 to 9 SIGNAL carry1 carry2 carry3 STD LOGIC SIGNAL cnt std logic vector 2 downto 0 SIGNAL cnt freq integer range 0 to 999 SIGNAL sel std logic vector 2 downto 0 SIGNAL clk 1Hz std logic function i2seg7 i in integer range 0 to 9 return std logic vector is variable seg7 std logic vector 7 downto 0 begin case i is when 0 seg7 x 3f digital tubes display 0 to 9 when 1 seg7 x 06 when 2 seg7 x 5B when 3 seg7 x 4F when 4 seg7 x 66 when 5 seg7 x 6D when 6 seg7 x 7D when 7 seg7 x 07 4 when 8 seg7 x 7F when 9 seg7 x 6F when others seg7 others 0 end case return seg7 end function i2seg7 BEGIN p1 PROCESS clk 1Hz reset sec1 t sec2 t BEGIN IF reset 1 THEN sec1 t 0 sec2 t 0 ELSIF rising edge clk 1Hz THEN IF sec1 t 9 THEN sec1 t 0 IF sec2 t 5 THEN sec2 t 0 ELSE sec2 t sec2 t 1 END IF ELSE sec1 t sec1 t 1 END IF IF sec1 t 9 AND sec2 t 5 THEN carry1 1 ELSE carry1 0 END IF END IF seg s l sec1 t seg s h sec2 t END PROCESS p1 p2 PROCESS reset min1 t min2 t carry1 BEGIN IF reset 1 THEN min1 t 0 min2 t 0 ELSIF rising edge carry1 THEN IF min1 t 9 THEN min1 t 0 IF min2 t 5 THEN min2 t 0 ELSE 5 min2 t min2 t 1 END IF ELSE min1 t min1 t 1 END IF IF min1 t 9 AND min2 t 5 THEN carry2 1 ELSE carry2 0 END IF END IF seg m l min1 t seg m h min2 t END PROCESS p2 p3 PROCESS reset hour1 t hour2 t carry2 carry3 BEGIN IF reset 1 THEN hour1 t 0 hour2 t 0 ELSIF rising edge carry2 THEN IF hour1 t 3 AND hour2 t 2 THEN hour1 t 0 hour2 t 0 ELSE IF hour1 t 9 THEN hour1 t 0 IF hour2 t 2 THEN hour2 t 0 ELSE hour2 t hour2 t 1 END IF ELSE hour1 t hour1 t 1 END IF END IF IF hour1 t 0 AND hour2 t 0 THEN carry3 1 ELSE carry3 0 END IF END IF seg h l hour1 t seg h h hour2 t END PROCESS p3 ca1 carry1 ca2 carry2 6 ca3 carry3 p4 process clk reset sel begin if reset 1 then cnt 0 cnt freq 0 clk 1Hz 0 elsif rising edge clk then if cnt 7 then 6 counter to scan digital tubes cnt 0 else cnt cnt 1 end if if cnt freq 999 then 1k divid cnt freq 0 clk 1Hz not clk 1Hz else cnt freq cnt freq 1 if cnt freq 499 then clk 1Hz sel 000 seg7 sel 001 seg7 sel 010 seg7 sel 011 seg7 sel 100 seg7 sel 101 seg7 sel 110 seg7 7 sel 111 seg7 sel ZZZ end case seline sel 001 end if end process p4 END mzm 1 秒计数器的源程序 秒计数器的源程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY second IS PORT clk reset IN STD LOGIC sec1 sec2 OUT STD LOGIC VECTOR 3 DOWNTO 0 carry OUT STD LOGIC END second ARCHITECTURE rt1 OF second IS SIGNAL sec1 t sec2 t STD LOGIC VECTOR 3 DOWNTO 0 BEGIN PROCESS clk reset BEGIN IF reset 1 THEN sec1 t 0000 sec2 t 0000 ELSIF clk event AND clk 1 THEN IF sec1 t 1001 THEN sec1 t 0000 IF sec2 t 0101 THEN sec2 t 0000 ELSE sec2 t sec2 t 1 END IF ELSE sec1 t sec1 t 1 END IF IF sec1 t 1001 AND sec2 t 0101 THEN carry 1 ELSE 图图 3 1 秒计数器秒计数器 8 carry 0 END IF END IF sec1 sec1 t sec2 sec2 t END PROCESS END rt1 2 分计数器的源程序 分计数器的源程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY minute IS PORT clk reset IN STD LOGIC min1 min2 OUT STD LOGIC VECTOR 3 DOWNTO 0 carry OUT STD LOGIC END minute ARCHITECTURE rt1 OF minute IS SIGNAL min1 t min2 t STD LOGIC VECTOR 3 DOWNTO 0 BEGIN PROCESS clk reset BEGIN IF reset 1 THEN min1 t 0000 min2 t 0000 图图 3 2 秒计数器仿真波形秒计数器仿真波形 图图 3 3 秒计数器局部放大仿真波秒计数器局部放大仿真波 形形 9 ELSIF clk event AND clk 1 THEN IF min1 t 1001 THEN min1 t 0000 IF min2 t 0101 THEN min2 t 0000 ELSE min2 t min2 t 1 END IF ELSE min1 t min1 t 1 END IF IF min1 t 1001 AND min2 t 0101 THEN carry 1 ELSE carry 0 END IF END IF min1 min1 t min2 min2 t END PROCESS END rt1 3 时计数器的源程序 时计数器的源程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL 图图 3 3 分计数器分计数器 图图 3 4 分计数器仿真波形分计数器仿真波形 图图 3 5 分计数器局部放大仿真波形分计数器局部放大仿真波形 10 ENTITY hour IS PORT clk reset IN STD LOGIC hour1 hour2 OUT STD LOGIC VECTOR 3 DOWNTO 0 carry OUT STD LOGIC END hour ARCHITECTURE rt1 OF hour IS SIGNAL hour1 t STD LOGIC VECTOR 3 DOWNTO 0 SIGNAL hour2 t STD LOGIC VECTOR 3 DOWNTO 0 BEGIN PROCESS clk reset BEGIN IF reset 1 THEN hour1 t 0000 hour2 t 0000 ELSIF clk event AND clk 1 THEN IF hour1 t 0011 AND hour2 t 0010 THEN hour1 t 0000 hour2 t 0000 ELSE IF hour1 t 1001 THEN hour1 t 0000 IF hour2 t 0010 THEN hour2 t 0000 ELSE hour2 t hour2 t 1 END IF ELSE hour1 t hour1 t 1 END IF END IF IF hour1 t 0000 AND hour2 t 0000 THEN carry 1 ELSE carry 0 END IF END IF hour1 hour1 t hour2 seg7 10111111 when 1 seg7 10000110 when 2 seg7 11011011 when 3 seg7 11001111 when 4 seg7 11100110 when 5 seg7 11101101 when 6 seg7 11111101 when 7 seg7 10000111 when 8 seg7 11111111 when 9 seg7 11100111 12 when others seg7 others 0 end case return seg7 end function i2seg7 component s clock signal is port rst in std logic reset time to 00 00 00 clk in std logic assume 1 Hz seg s l out integer range 0 to 9 seg s h out integer range 0 to 9 seg m l out integer range 0 to 9 seg m h out integer range 0 to 9 seg h l out integer range 0 to 9 seg h h out integer range 0 to 9 end component s clock signal begin u1 s clock signal port map rst rst clk clk 1Hz seg s l seg s l seg s h seg s h seg m l seg m l seg m h seg m h seg h l seg h l seg h h seg h h process clk rst is begin if rst 0 then cnt 0 cnt freq 0 clk 1Hz 0 elsif rising edge clk then if cnt 5 then cnt 0 e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电临汾市2025秋招笔试行测题库及答案网络优化与维护类
- 中国联通毕节市2025秋招笔试行测题库及答案财务审计类
- 甘南藏族自治州中储粮2025秋招面试典型题目及答案
- 国家能源黄南藏族自治州2025秋招综合管理类面试追问及参考回答
- 渭南市中储粮2025秋招面试半结构化模拟题30问及答案
- 中考英语阅读试题及答案
- 河池市中石化2025秋招面试半结构化模拟题及答案法律与合规岗
- 中国联通怀化市2025秋招面试无领导高频议题20例
- 晋城市中石油2025秋招笔试模拟题含答案油品分析质检岗
- 通辽市中储粮2025秋招笔试题库含答案
- 2025事业单位联考A类《综合应用能力》模拟试题(含答案)
- 水路危险货物运输员专项考核试卷及答案
- 多传感器融合赋能无人驾驶列车的安全感知-洞察及研究
- 汉字的六种结构方式
- 口腔补牙课件
- 2025至2030年中国茄尼醇行业市场需求预测及投资战略规划报告
- 2025年四川省事业单位考试公共基础知识真题及答案解析
- 保障农民工工资课件
- 人脸采集管理办法
- 壶腹部肿瘤的治疗及护理
- 感术行动培训课件
评论
0/150
提交评论