数码管扫描显示 数电实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数码管扫描显示 数电实验

实验报告 2016 年 1 月 5 日 成绩: 姓名陈孟春、程平安学号14051115班级专业计算机科学与技术课程名称《数字电路课程设计》任课老师冯建文指导老师冯建文机位号实验序号18实验名称数码管扫描显示实验时间2016.1.5实验地点1教233实验设备号一、实验程序源代码(含实验程序源代码及模块设计说明、注释等) /* 实验分工 本实验的代码主要由陈孟春同学完成,程平安同学做了后期的测试工作。 程序介绍 本程序分为4个模块,分别为主模块(shiyan18)、显示模块(Display)、分频模块(Timer)、十进制计数器模块(DecAdder)。 主模块(shiyan18)主要负责连接其他模块以及连接各个管脚。 显示模块(Display)的功能是把4位8421码转换为数码管所需的位选信号和段选信号。 分频模块(Timer)的功能是把100M的时钟转换成其他频率的时钟。比如显示模块每位数字的刷新时间大约为2.6ms,那就用了分频模块输出的第19、18位作为位选的时钟。数码管的计数需要较慢的速度,所以选择了第24位作为它的时钟,如果需要更快的增加速度,也可以选择23或者22位。 十进制计数器模块(DecAdder)的功能是对时钟的脉冲个数进行计数,当来了一个时钟上升沿时就可以加一。由于本实验的数码管是4位的,所以在主模块中创建了4个十进制计数器模块的实例,通过级联来实现4位的十进制计数器。 */ `timescale 1ns / 1ps module shiyan18( input StartStop, input clk, input _clr, output [3:0] AN, output [7:0] seg ); wire [24:0] delay; wire c0,c1,c2,c3; wire [15:0] data; Timer timer(clk,delay); Display display(data,delay[19:18],AN,seg); DecAdder da0(_clr,StartStop,delay[24],data[3:0],c0), da1(_clr,StartStop,c0,data[7:4],c1), da2(_clr,StartStop,c1,data[11:8],c2), da3(_clr,StartStop,c2,data[15:12],c3); endmodule module Timer( input CP, output reg [24:0] delay = {24{1b0}} ); always @(posedge CP) begin delay = delay + 1b1; end endmodule module Display( input [15:0] Data, input [1:0] Bit_Sel, output reg [3:0] AN, output reg [7:0] Seg ); reg [7:0] memory[0:15]={8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 }; always @(Bit_Sel) begin case(Bit_Sel) 0: begin AN = 4b0111; Seg = memory[Data[15:12]]; end 1: begin AN = 4b1011; Seg = memory[Data[11:8]];

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档