实验五 数码管显示_第1页
实验五 数码管显示_第2页
实验五 数码管显示_第3页
实验五 数码管显示_第4页
实验五 数码管显示_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 数码管显示一、 实验目的1. 掌握用verilog HDL的编程方法七段数码管显示;2. 掌握七段数码管的使用;3. 掌握对设计电路进行仿真。二、 实验设备1. 安装Quartus II软件的计算机2. SmartEDA实验箱 三、 实验内容PART I : 数码管显示电路(基础)1. 实验原理数字钟电路的设计主要包含三个部分:1) 秒信号产生;2) 时钟计数,包括分和秒的计数;3) 数码管的动态显示,将分和秒同时用数码管显示出来。1) 秒信号的产生整个数字钟的基准时钟为核心板上所提供的48M晶振时钟,要将其转化成为秒时钟信号,需要对其进行计数分频。2) 时钟计数由秒信号作为计数时钟,

2、完成秒和分的计时。应分别由两个60进制的计数器来完成。3) 数码管的动态显示要将分和秒的信息用数码管显示出来。为了完整的显示信息,至少需要4根数码管。由于4 根数码管的段码是复用(共用)的,所以需要对数码管进行动态管理。即通过位码的选择,使得在某一时刻将段码用于某根数码管,另一时刻则将段码用于另一根数码管,经过一段时间后再重复刚才的步骤。则只要位码的切换速度足够快,由于人眼的视觉停留效应,相关的数码管在感觉上都是一直处于显示状态。2. 实验程序a) 秒信号的产生always (posedge clk) /定义clock上升沿触发begincount = count + 1b1;if(count

3、 = _)/0.5S到了吗?begincount = 25d0;/计数器清零sec = _;/置位秒标志endendb) 时钟计数always (negedge sec)/计时处理beginhour3:0 = _;/秒加1if(hour3:0 = 4ha)beginhour3:0 = _;hour7:4 = _;/秒的十位加一if(hour7:4 = _)beginhour7:4 = _;hour11:8 = hour11:8 + 1b1;/分个位加一if(hour11:8 = _)beginhour11:8 = _;hour15:12 = hour15:12 + 1b1;/分十位加一if(h

4、our15:12 = 4h6)hour15:12 =_;endendendendc) 数码管的动态显示/数码管动态扫描显示部分always (posedge clk) /count17:15大约1ms改变一次begincase(count17:15)/选择扫描显示数据3d0:disp_dat = _;/秒个位3d1:disp_dat = _;/秒十位3d2:disp_dat = 4ha;/显示-3d3:disp_dat = _;/分个位3d4:disp_dat = _;/分十位3d5:disp_dat = 4ha;/显示-3d6:disp_dat = 8h00;/时个位,本次实验不计小时3d7

5、:disp_dat = 8h00;/时十位,本次实验不计小时endcasecase(count17:15)/选择数码管显示位3d0:dig_r = _;/选择第一个数码管显示3d1:dig_r = _;/选择第二个数码管显示3d2:dig_r = _;/选择第三个数码管显示3d3:dig_r = _;/选择第四个数码管显示3d4:dig_r = _;/选择第五个数码管显示3d5:dig_r = 8b;/不显示3d6:dig_r = 8b;/不显示3d7:dig_r = 8b;/不显示endcaseendalways (posedge clk)begincase(_)4h0:seg_r = 8h

6、c0;/显示04h1:seg_r = 8hf9;/显示14h2:seg_r = 8ha4;/显示24h3:seg_r = 8hb0;/显示34h4:seg_r = 8h99;/显示44h5:seg_r = 8h92;/显示54h6:seg_r = 8h82;/显示64h7:seg_r = 8hf8;/显示74h8:seg_r = 8h80;/显示84h9:seg_r = 8h90;/显示94ha:seg_r = 8hbf;/显示-default:seg_r = 8hff;/不显示endcaseif(count17:15= 3d2)&sec)seg_r = 8hff;end3. 实验步骤a) 阅

7、读上述三部分代码,并完成空格处的代码填写。b) 将三部分代码组织在一起,再添加必要的代码段,完成完整的程序。c) 根据Quartus II的设计流程,实现数字钟,并观察现象。PART II : 音乐电路(兴趣)实验内容:解读所附代码,完成音乐演奏电路设计。/*/ 友谊地久天长乐曲 / 时钟:48MHz /*/音高与频率的对应关系/-/|1 | 2 | 3 | 4|5 | 6 | 7 |/|低音 |261.6Hz |293.7Hz |329.6Hz |349.2Hz | 392Hz | 440Hz |493.9Hz | /|中音 |523.3Hz |587.3Hz |659.3Hz |698.5

8、Hz | 784Hz | 880Hz |987.8Hz |/|高音 |1045.5Hz|1174.7Hz|1318.5Hz|1396.9Hz| 1568Hz | 1760Hz |1975.5Hz|/-modulesong(clk,beep);/模块名称songinputclk;/系统时钟48MHzoutputbeep;/蜂鸣器输出端reg beep_r;/寄存器reg7:0 state;/乐谱状态机reg15:0count,count_end;reg23:0count1;/乐谱参数:D=F/2K (D:参数,F:时钟频率,K:音高频率)parameter L_5 = 16d61224, /低音

9、5L_6 = 16d54545,/低音6M_1 = 16d45863,/中音1M_2 = 16d40865,/中音2M_3 = 16d36402,/中音3M_5 = 16d30612,/中音5M_6 = 16d27273,/中音6H_1 = 16d22956;/高音1parameterTIME = ;/控制每一个音的长短(250ms)assign beep = beep_r;/输出音乐always(posedge clk)begincount = count + 1b1;/计数器加1if(count = count_end)begincount = 16h0;/计数器清零beep_r = !b

10、eep_r;/输出取反endendalways (posedge clk)beginif(count1 TIME)/一个节拍250mScount1 = count1 + 1b1;elsebegincount1 = 24d0;if(state = 8d147)state = 8d0;elsestate = state + 1b1;case(state)8d0,8d1: count_end = L_5;/低音5,持续2个节拍8d2,8d3,8d4,8d5,8d6,8d7,8d8: count_end = M_1;/中音1,持续7个节拍8d9,8d10:count_end = M_3;/中音3,持续

11、2个节拍8d11,8d12,8d13,8d14: count_end = M_2;8d15: count_end = M_1;8d16,8d17: count_end = M_2;8d18,8d19: count_end = M_3;8d20,8d21,8d22,8d23,8d24: count_end = M_1;8d25,8d26: count_end = M_3;8d27,8d28: count_end = M_5;8d29,8d30,8d31,8d32,8d33:count_end = M_6;8d34,8d35,8d36,8d37,8d38: count_end = M_6;8d39

12、,8d40,8d41,8d42: count_end = M_5;8d43,8d44,8d45: count_end = M_3;8d46,8d47: count_end = M_1;8d48,8d49,8d50,8d51: count_end = M_2;8d52: count_end = M_1;8d53,8d54: count_end = M_2;8d55,8d56:count_end = M_3;8d57,8d58,8d59,8d60: count_end = M_1;8d61,8d62,8d63: count_end = L_6;8d64,8d65: count_end = M_5;

13、8d66,8d67,8d68,8d69:count_end = M_1;8d70,8d71,8d72,8d73: count_end = M_1;8d74,8d75: count_end = M_6;8d76,8d77,8d78,8d79: count_end = M_5;8d80,8d81,8d82: count_end = M_3;8d83,8d84: count_end = M_1;8d85,8d86,8d87,8d88: count_end = M_2;8d89: count_end = M_1;8d90,8d91: count_end = M_2;8d92,8d93: count_e

14、nd = M_6;8d94,8d95,8d96,8d97:count_end = M_5;8d98,8d99,8d100: count_end = M_3;8d101,8d102: count_end = M_5;8d103,8d104,8d105,8d106:count_end = M_6;8d107,8d108,8d109,8d110: count_end = M_6;8d111,8d112: count_end = H_1;8d113,8d114,8d115,8d116: count_end = M_5;8d117,8d118,8d119: count_end = M_3;8d120,8d121: count_end = M_1;8d122,8d123,8d124,8d125: count_end = M_2;8d126: count_end = M_1;8d127,8d128: count_end = M_2;8d129,8d130: count_end = M_3;8d131,8d132,8d133,8d134: count_end = M_1;8d135,8d136,8d137: co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论