数字电子技术课程设计报告(LED矩形点阵).doc
《数字电子技术课程设计报告(LED矩形点阵).doc》由会员分享,可在线阅读,更多相关《数字电子技术课程设计报告(LED矩形点阵).doc(16页珍藏版)》请在咨信网上搜索。
数字电子技术课程设计报告(LED矩形点阵) ———————————————————————————————— 作者: ———————————————————————————————— 日期: 16 个人收集整理 勿做商业用途 【设计题目】 LED点阵循环显示设计 【设计任务及要求】 利用EDA/SOPC试验开发平台提供的16*16点阵LED以及EP2C35核心板,实现循环显示设定内容,显示内容为自己的“学号名字”。 (1) 手动生成“学号姓名”这几个字符在16*16点阵LED上的字摸(即控制某些LED亮,某些LED灭,可下载字摸软件帮助确定)。 (2) 实现循环显示“学号姓名",并要求左移 (3) 扩展要求:自主设计(如控制循环速度,方向等)。 设计原理及方案: 1、16*16点阵LED内部结构如下图所示。 2、 总体设计框图。 计数器 列数据 列选择 系统时钟输入 输出 输出 16*16点阵 FPGA 3、 各子模块的设计: (1)分频,扫描 module saomiao (clk_50Mhz,clk_1k); input clk_50Mhz; output clk_1k; reg[24:0] cnt; reg clk_1k; always @(posedge clk_50Mhz) begin if (cnt〈25000) begin cnt〈=cnt+1; clk_1k<=0; end else if(cnt<50000) begin cnt〈=cnt+1; clk_1k〈=1; end else cnt=0; end endmodule 封装生成的模块如下: (2)分频,移动,控制速度 module yidong (clk_50Mhz,clk_fourhz,k2,k3); input clk_50Mhz,k2,k3; // 输入端口声明 output clk_fourhz; // 输出端口声明 reg[24:0] count,ccount; reg clk_fourhz; always @(posedge clk_50Mhz) begin if ((k2==0) && (k3==0)) ccount<=50000000; if ((k2==0) && (k3==1)) ccount〈=100000000; if ((k2==1) && (k3==0)) ccount〈=5000000; if ((k2==1) && (k3==1)) ccount<=10000000; if(count<ccount) begin count〈=count+1’b1; clk_fourhz〈=0; end else begin count〈=0; clk_fourhz〈=1; end end endmodule 封装生成的模块如下: (3)显示,控制输出,控制左右移动 module xianshi(clk_saomiao,clk_pingyi,row,con,k); input clk_saomiao,clk_pingyi,k; output[15:0] row; output[15:0] con; reg[15:0] row; reg[15:0] con; integer cnt=0,b=0; reg[15:0] r[111:0]; initial begin // 学号: r[0]〈=16’b1111_0111_1011_1111; r[1]<=16'b1111_0111_1101_1111; r[2]<=16’b1111_0000_0001_1111; r[3]<=16'b1111_0111_1111_1111; r[4]<=16'b1111_0111_1111_1111; r[5]<=16'b1111_1111_1111_1111; r[6]〈=16'b1111_0111_0011_1111; r[7]〈=16’b1111_0111_1101_1111; r[8] <=16'b1111_0111_1101_1111; r[9]〈=16'b1111_1000_0011_1111; r[10]<=16'b1111_1111_1111_1111; r[11] <=16’b1111_1111_1111_1111; r[12] <=16’b1111_1000_0011_1111; r[13] 〈=16’b1111_0111_1101_1111; r[14]〈=16'b1111_0111_1101_1111; r[15] 〈=16’b1111_1000_0011_1111; //”100" r[16] <=16’b1111_0111_1011_1111; r[17] <=16’b1111_0111_1101_1111; r[18] 〈=16’b1111_0000_0001_1111; r[19] <=16’b1111_0111_1111_1111; r[20] 〈=16'b111_0111_1111_1111; r[21] 〈=16'b1111_1111_1111_1111; r[22] <=16'b1111_0011_1011_1111; r[23] 〈=16’b1111_0101_1101_1111; r[24]<=16’b1111_0110_1101_1111; r[25]<=16’b1111_0111_0011_1111; r[26]〈=16’b1111_1111_1111_1111; r[27]<=16'b1111_1111_1111_1111; r[28]<=16'b1111_1011_0011_1111; r[29]〈=16’b1111_0111_1101_1111; r[30]〈=16'b1111_0111_1101_1111; r[31]<=16'b1111_1001_0011_1111; //”123” r[32] 〈=16'b1111_1111_1111_1111; r[33]<=16'b1111_1111_1111_1111; r[34]<=16’b1110_1111_1111_1111; r[35]〈=16’b1110_1111_1110_1111; r[36]〈=16’b1110_1111_1111_0111; r[37]<=16'b1110_0000_0000_0111; r[38]<=16’b1110_1111_1111_1111; r[39]<=16'b1110_1111_1111_1111; r[40]<=16'b1111_1111_1111_1111; r[41] <=16’b1110_1111_1111_1111; r[42] 〈=16'b1110_1111_1110_1111; r[43] 〈=16’b1110_1111_1111_0111; r[44] <=16'b1110_0000_0000_0111; r[45] <=16’b1110_1111_1111_1111; r[46] 〈=16’b1111_1111_1111_1111; r[47] <=16'b1111_1111_1111_1111; //"11” //姓名: r[48] <=16’b1111_1111_0110_1111; r[49]〈=16'b1101_1111_0111_1111; r[50]<=16’b1110_1111_0111_1011; r[51]<=16’b1111_0111_0111_1011; r[52]<=16’b1111_1011_0111_1011; r[53]〈=16’b1111_1101_0111_1011; r[54]〈=16'b1111_1110_0111_1010; r[55]〈=16’b0000_0000_0000_1001; r[56] 〈=16'b1111_1110_0111_1011; r[57] <=16’b1111_1101_0111_1011; r[58] <=16’b1111_1011_0111_1011; r[59] <=16’b1111_0111_0111_1011; r[60] <=16’b1110_1111_0111_1011; r[61] <=16'b1101_1111_0110_1011; r[62] <=16’b1101_1111_0111_0011; r[63] <=16’b1111_1111_1111_1111; r[64]<=16’b1111_1111_0111_1111; r[65]〈=16'b1111_1111_1011_1111; r[66]〈=16'b1111_1111_1101_1111; r[67]〈=16'b0000_0000_0000_1111; r[68]<=16'b1111_1111_1111_0000; r[69]<=16’b1011_1111_1011_1111; r[70]〈=16’b1011_1011_1011_0111; r[71]〈=16’b1011_1011_1011_0111; r[72] <=16’b1011_1011_1011_0111; r[73]〈=16'b1000_0000_0000_0000; r[74]〈=16’b1011_1011_1011_0111; r[75] <=16'b1011_1011_1011_0111; r[76] <=16’b1011_1011_1011_0111; r[77] 〈=16’b1011_1011_1011_0111; r[78]<=16’b1011_1111_1011_1111; r[79] <=16'b1111_1111_1111_1111; r[80] <=16'b1111_1111_1111_1111; r[81] <=16'b1011_1101_1111_1111; r[82] 〈=16'b1100_1110_1111_1111; r[83] 〈=16’b1111_1111_0111_0111; r[84] <=16’b1111_1111_1011_0111; r[85] 〈=16'b1110_1111_1101_1111; r[86] <=16’b1001_1111_1110_0111; r[87] 〈=16'b1111_0000_0000_0000; r[88]<=16'b1110_1111_1110_0111; r[89]〈=16'b1001_1111_1101_0111; r[90]〈=16’b1111_1111_1011_0111; r[91]<=16’b1111_1111_0111_0111; r[92]〈=16'b1110_1110_1111_0111; r[93]〈=16'b1001_1101_1111_0111; r[94]〈=16’b1111_1101_1111_1111; r[95]〈=16’b1111_1111_1111_1111; r[96]〈=16’b1111_1111_1111_1111; r[97]<=16’b1111_1111_1111_1111; r[98]<=16'b1111_1111_1111_1111; r[99]〈=16’b1111_1111_1111_1111; r[100]〈=16’b1111_1111_1111_1111; r[101]〈=16'b1111_1111_1111_1111; r[102]<=16’b1111_1111_1111_1111; r[103]〈=16'b1111_1111_1111_1111; r[104] <=16’b1111_1111_1111_1111; r[105]〈=16'b1111_1111_1111_1111; r[106]<=16'b1111_1111_1111_1111; r[107] <=16'b1111_1111_1111_1111; r[108] <=16'b1111_1111_1111_1111; r[109] 〈=16’b1111_1111_1111_1111; r[110]〈=16’b1111_1111_1111_1111; r[111] <=16'b1111_1111_1111_1111; end always@(posedge clk_pingyi) begin if (k==0) //k值控制左右移动 begin if (b==95) b〈=0; else b<=b+1; end else begin if (b==0) b<=96; else b<=b-1; end end always@(posedge clk_saomiao) begin if(cnt==15) begin cnt〈=0; end else cnt〈=cnt+1; case(cnt) 0: con〈=16'b0000_0000_0000_0001; 1: con〈=16’b0000_0000_0000_0010; 2: con<=16’b0000_0000_0000_0100; 3: con〈=16'b0000_0000_0000_1000; 4: con〈=16’b0000_0000_0001_0000; 5: con〈=16'b0000_0000_0010_0000; 6: con〈=16’b0000_0000_0100_0000; 7: con〈=16'b0000_0000_1000_0000; 8: con<=16'b0000_0001_0000_0000; 9: con〈=16'b0000_0010_0000_0000; 10: con〈=16'b0000_0100_0000_0000; 11: con〈=16’b0000_1000_0000_0000; 12: con〈=16’b0001_0000_0000_0000; 13: con<=16'b0010_0000_0000_0000; 14: con〈=16'b0100_0000_0000_0000; 15: con<=16’b1000_0000_0000_0000; endcase //行使能 case(cnt) 0: row〈=r[b+0]; 1: row〈=r[b+1]; 2: row<=r[b+2]; 3: row<=r[b+3]; 4: row<=r[b+4]; 5: row<=r[b+5]; 6: row<=r[b+6]; 7: row〈=r[b+7]; 8: row〈=r[b+8]; 9: row<=r[b+9]; 10: row〈=r[b+10]; 11: row<=r[b+11]; 12: row<=r[b+12]; 13: row<=r[b+13]; 14: row<=r[b+14]; 15: row<=r[b+15]; endcase end endmodule 封装生成的模块如下: 【电路设计、仿真与实现】 (1) 电路设计 将封装好的三个模块连接起来。 电路如下: (2) 电路仿真 扫描模块和移动模块实际上都是分频器,只是分频不一样,前者的分频后频率高(看不到很明显地闪烁),后者低(控制移动速度便于观察)。这里只仿真分频器的功能如下(10分频): 字体显示模块的仿真如下,由于所给频率太高,分频又太大,仿真不易实现。本仿真的clk2取1ns,clk3取32ns,k取0(进行左移)。 (3) 电路实现 将连接好的电路的输入和输出端分别用对应的FBGA管脚封装起来,便可以在实验室的平台上进行电路的实现了. 【分析与讨论】 这次数电课程设计我一共去下载了三次,第一次的时候在那个模版上没有显示,只是看到了列的灯有亮的,回去检查的时候发现是扫描的频率太小了,之前设定的频率只有2Hz,这样的情况下每秒只会显示两列数据,不能得出所需要的显示。将扫描的频率改成10kHz后去下载的时候发现能够正常地循环显示了,这也完成了基本的设计。我中午回去后又对原有程序进行了改写,多加了三个输入端,其中两个输入端用来控制字幕移动的速度,另一个用来控制左右移动,编了一个中午,程序没有错误后,仍然有点忐忑的去下载(quartusⅡ只能检查错误不能检验功能,而且这是最后一次下载机会了),不过去老师那里下载的时候,模版上正常循环我的学号名字显示,而且通过三个附加的输入端可以控制它的左右移动以及移动速度(移动的速度共设定了4个),看到自己所编译的功能都实现后,心情还是很愉悦的。个人感觉整个编译过程中,写自己名字的二进制代码太费劲了。通过这次课程设计,我巩固了之前数电实验课上学的quartusⅡ的一些基本操作,并且会自己编写简单的verilog程序了,有些东西和我们之前学过的一些语言很是相像。最重要的还是我自己学会了如何将之前所学过的知识和查找的资料有机的融合在一起,并且得到自己想要的结果。非常感谢老师在我设计过程中的指导。文档为个人收集整理,来源于网络本文为互联网收集,请勿用作商业用途 【参考文献】 [1] Verilog数字系统设计教程(第2版)(夏宇闻 ,北京航空航天大学出版) [2] Verilog HDL入门(第3版) [3] 数字电子技术基础(刘润华,于云华,中国石油大学出版社,2008)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子技术 课程设计 报告 LED 矩形 点阵
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文