点阵显示电路-电子课程设计说明书.doc
燕 山 大 学 课 程 设 计 说 明 书燕山大学课 程 设 计 说 明 书题目: 点阵显示电路 学院(系): 电气工程学院 年级专业: 09级应用电子 学 号: 090103030059 学生姓名: 李 康 指导教师:郑兆兆 周莲莲 教师职称:实验师 高级实验师燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:电子实验中心 学 号090103030059学生姓名李康专业(班级) 应电2班设计题目点阵显示电路设计技术参数控制显示方式如下:由第一行从左到右显示为红绿红红绿,接着第二行按照同样的方式显示,直至最后一行,显示过程中只有一个灯处于亮状态显示间隔为0.5s用两个动态数码管分别显示红绿点累积点亮的个数,周期循环用另一个动态数码管显示周期循环的次数设计要求用双色点阵电路实现显示用时钟频率控制显示间隔动态数码管显示工作量学会使用Max+PlusII软件、Verilog HDL语言和实验箱;独立完成电路设计,编程下载、连接电路和调试;参加答辩并书写任务书。工作计划1. 了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;2. 学习Verilog HDL语言,用Verilog HDL进行程序设计3. 学习使用实验箱,继续电路设计;4. 完成电路设计;5. 编程下载、连接电路、调试和验收;6. 答辩并书写任务书。参考资料数字电子技术基础.阎石主编.高等教育出版社.EDA课程设计A指导书.指导教师签字郑兆兆 周莲莲基层教学单位主任签字金海龙2012年 01月05 日 目 录第一章 摘要4第二章 引言5 第三章 指导书例题7第四章 设计思路10第五章 Verilog HDL设计源程序14第六章 波形仿真图21第七章 管脚锁定及硬件连线24第八章 总结26参考文献 27 第一章 摘 要面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的EDA工具,实用统一的集成设计环境,改变传统设计思路,即优先考虑具体物理实现方式,而将精力集中到设计构思、方案比较和寻找最优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。今天的EDA工具将向着功能强大、简单易学、使用方便的方向发展。此次课程设计的题目为点阵显示电路,此说明书,首先概括介绍了EDA技术、VerilogHDL硬件描述语言,根据任务书对本课题整体思路进行了介绍,然后分别介绍了主程序各部分的功能,并绘制波形仿真,再次给出实现本任务书所要求的功能及其附加功能的源程序以及波形仿真图,最后进行管脚锁定和外部硬件连线并下箱实现了所有功能。在本次课程设计过程中源程序编译及硬件连接过程中都遇到了很多困难,在老师的耐心指导下完成了本次课程设计。再次特别感谢老师的指导。 第二章 引 言数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。1. EDA介绍EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的可开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。利用EDA技术进行电子系统的设计,具有以下几个特点:(1)用软件的方式设计硬件;(2)用软件的方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;(3)设计过程中可用有关的软件进行仿真;(4)系统现场可编程,在线升级;(5)整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。因此,EDA技术是现代电子设计的发展趋势。2.Verilog HDL Verilog HDL 是目前应用最广泛的硬件描述语言之一,被IEEE采纳为IEEE STD1364-1995(也成为Verilog-1995)和IEEE STD.1364-2001(也成为Verilog-HDL)可以进行算法级(Algorithm)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。采用Verilog HDL 进行电路设计于工艺设计无关,这使得设计者在进行电路设计时可以不必过多的考虑工艺实现的具体细节,设计者只需要利用计算机的强大功能,在EDA工具的支持下,通过Verilog HDL的描述,完成数字电路和系统的设计即可,从而提高了设计效率,降低了设计者的劳动强度。 作为硬件描述语言,Verilog HDL具有如下特点:(1) 能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行精确而简练的描述。(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如国有C语言的编程基础经验,只需很短的时间就能学会和掌握Verilog HDL,因此,Verilog HDL可以作为学习HDL设计方法的入门和基础。 第三章 指导书例题module cnt4e(Q,COUT,CLK,ENA);input CLK,ENA;output3:0 Q;output COUT;reg3:0 Q;reg COUT;always(posedge CLK)begin if(ENA)Q=Q+1;if(Q='b1111) COUT='b1;else COUT='b0;endendmodulemodule dec7s(A,Q);input3:0 A;output6:0 Q;reg6:0 Q;always(A)begincase(A)0:Q='b0111111;1:Q='b0000110;2:Q='b1011011;3:Q='b1001111;4:Q='b1100110;5:Q='b1101101;6:Q='b1111101;7:Q='b0000111;8:Q='b1111111;9:Q='b1101111;10:Q='b1110111;11:Q='b1111100;12:Q='b0111001;13:Q='b1011110;14:Q='b1111001;15:Q='b1110001;endcaseendendmodulemodule cnt_dec7s(Q,COUT,CLK,ENA);input CLK,ENA;output6:0 Q;output COUT;wire3:0 X1;cnt4e u1(X1,COUT,CLK,ENA);dec7s u2(X1,Q6:0);endmodule仿真图 第四章 设计说明2.1任务分析本次设计题目为点阵显示电路,任务要求如下:在8*8双色点阵上由第一行从左到右显示为红绿红红绿,接着第二行按照同样的方式显示,直至最后一行,显示过程中只有一个灯处于亮状态,并且要求每次显示间隔为0.5s; 在动态数码管上用两个数码管分别显示红灯和绿灯累积点亮的个数,周期循环;另一个数码管显示循环的次数2.2 设计思路本次设计包括两个输入CLK1、CLK2,五个输出ROW,RA,GA,GG,SS。CLK1为0.5HZ的敏感信号,控制点阵和数码管的关联与点阵显示;CLK2为1024HZ的敏感信号,控制数码管的显示。ROW控制点阵的行输出;RA控制红色点阵的列输出;GA控制绿色点阵的列输出;GG为数码管的位选信号,用来选择第几位数码管工作;SS为数码管的数选信号,用来选择显示的数字。本次设计的程序只有一个,但其中包括了三大部分。分别为点阵和数码管关联部分,点阵显示部分和数码管显示部分。 点阵和数码管关联部分与点阵显示部分在同一个always块中,都由CLK1提供的脉冲i控制。在点阵和数码管关联部分中,当脉冲i为奇数时,给记录红灯次数always块一个脉冲,执行红灯控制always块;当脉冲i为偶数时,给记录绿灯次数always块一个脉冲,执行绿灯控制always块;当脉冲i=64时,给记录循环次数always块一个脉冲,执行循环控制always块;当脉冲i=65时i=1,使脉冲i形成一个循环。 在点阵显示部分中根据脉冲i的case语句执行,即可达成预定目的。在数码管显示部分中包括记录红灯次数always块,记录绿灯次数always块,记录循环次数always块和译码器always快。2.3 设计图表ROW7-ROW0RA7-RA0GA7-GA0 第一行1111111000000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第二行1111110100000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第三行111110110000000100000000000000000000001000000100000000000000000000001000000100000000000000000000001000000100000000000000 第三行111110110000000010000000 第四行1111011100000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第五行1101111100000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第六行110111110000000100000000000000000000001000000100000000000000000000001000000100000000000000000000001000000100000000000000 第六行110111110000000010000000 第七行1011111100000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第八行0111111100000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000001000000000000000000000010000000 第五章Verilog HDL设计源程序根据任务书要求描述,程序设计如下:module koo(CLK1,CLK2,ROW,RA,GA,GG,SS);input CLK1,CLK2;output ROW,RA,GA;output 2:0GG;output 6:0SS;reg7:0 ROW;reg7:0 RA;reg7:0 GA;reg2:0 GG;reg6:0 SS;reg7:0 i;reg2:0 g;reg3:0 s;reg hd;reg ld;reg xh;reg3:0 HONG;reg3:0HONGS;reg3:0 LV;reg3:0LVS;reg3:0 XUN;reg3:0 XUNS;always(posedge CLK1)begini=i+1;if(i=65)i=1;if(i=1|i=3|i=5|i=7|i=9|i=11|i=13|i=15|i=17|i=19|i=21|i=23|i=25|i=27|i=29|i=31|i=33|i=35|i=37|i=39|i=41|i=43|i=45|i=47|i=49|i=51|i=53|i=55|i=57|i=59|i=61|i=63)begin hd=1;ld=0;end/给控制红灯次数数码管一个脉冲else begin hd=0;ld=1;end/给控制绿灯次数数码管一个脉冲if(i=64) xh=1;else xh=0;/给控制循环次数数码管一个脉冲case(i)1:begin ROW='b11111110;RA='b00000001;GA='b00000000;end2:begin ROW='b11111110;GA='b00000010;RA='b00000000;end3:begin ROW='b11111110;RA='b00000100;GA='b00000000;end4:begin ROW='b11111110;GA='b00001000;RA='b00000000;end5:begin ROW='b11111110;RA='b00010000;GA='b00000000;end6:begin ROW='b11111110;GA='b00100000;RA='b00000000;end7:begin ROW='b11111110;RA='b01000000;GA='b00000000;end8:begin ROW='b11111110;GA='b10000000;RA='b00000000;end9:begin ROW='b11111101;RA='b00000001;GA='b00000000;end10:begin ROW='b11111101;GA='b00000010;RA='b00000000;end11:begin ROW='b11111101;RA='b00000100;GA='b00000000;end12:begin ROW='b11111101;GA='b00001000;RA='b00000000;end13:begin ROW='b11111101;RA='b00010000;GA='b00000000;end14:begin ROW='b11111101;GA='b00100000;RA='b00000000;end15:begin ROW='b11111101;RA='b01000000;GA='b00000000;end16:begin ROW='b11111101;GA='b10000000;RA='b00000000;end17:begin ROW='b11111011;RA='b00000001;GA='b00000000;end18:begin ROW='b11111011;GA='b00000010;RA='b00000000;end19:begin ROW='b11111011;RA='b00000100;GA='b00000000;end20:begin ROW='b11111011;GA='b00001000;RA='b00000000;end21:begin ROW='b11111011;RA='b00010000;GA='b00000000;end22:begin ROW='b11111011;GA='b00100000;RA='b00000000;end23:begin ROW='b11111011;RA='b01000000;GA='b00000000;end24:begin ROW='b11111011;GA='b10000000;RA='b00000000;end25:begin ROW='b11110111;RA='b00000001;GA='b00000000;end26:begin ROW='b11110111;GA='b00000010;RA='b00000000;end27:begin ROW='b11110111;RA='b00000100;GA='b00000000;end28:begin ROW='b11110111;GA='b00001000;RA='b00000000;end29:begin ROW='b11110111;RA='b00010000;GA='b00000000;end30:begin ROW='b11110111;GA='b00100000;RA='b00000000;end31:begin ROW='b11110111;RA='b01000000;GA='b00000000;end32:begin ROW='b11110111;GA='b10000000;RA='b00000000;end33:begin ROW='b11101111;RA='b00000001;GA='b00000000;end34:begin ROW='b11101111;GA='b00000010;RA='b00000000;end35:begin ROW='b11101111;RA='b00000100;GA='b00000000;end36:begin ROW='b11101111;GA='b00001000;RA='b00000000;end37:begin ROW='b11101111;RA='b00010000;GA='b00000000;end38:begin ROW='b11101111;GA='b00100000;RA='b00000000;end39:begin ROW='b11101111;RA='b01000000;GA='b00000000;end40:begin ROW='b11101111;GA='b10000000;RA='b00000000;end41:begin ROW='b11011111;RA='b00000001;GA='b00000000;end42:begin ROW='b11011111;GA='b00000010;RA='b00000000;end43:begin ROW='b11011111;RA='b00000100;GA='b00000000;end44:begin ROW='b11011111;GA='b00001000;RA='b00000000;end45:begin ROW='b11011111;RA='b00010000;GA='b00000000;end46:begin ROW='b11011111;GA='b00100000;RA='b00000000;end47:begin ROW='b11011111;RA='b01000000;GA='b00000000;end48:begin ROW='b11011111;GA='b10000000;RA='b00000000;end49:begin ROW='b10111111;RA='b00000001;GA='b00000000;end50:begin ROW='b10111111;GA='b00000010;RA='b00000000;end51:begin ROW='b10111111;RA='b00000100;GA='b00000000;end52:begin ROW='b10111111;GA='b00001000;RA='b00000000;end53:begin ROW='b10111111;RA='b00010000;GA='b00000000;end54:begin ROW='b10111111;GA='b00100000;RA='b00000000;end55:begin ROW='b10111111;RA='b01000000;GA='b00000000;end56:begin ROW='b10111111;GA='b10000000;RA='b00000000;end57:begin ROW='b01111111;RA='b00000001;GA='b00000000;end58:begin ROW='b01111111;GA='b00000010;RA='b00000000;end59:begin ROW='b01111111;RA='b00000100;GA='b00000000;end60:begin ROW='b01111111;GA='b00001000;RA='b00000000;end61:begin ROW='b01111111;RA='b00010000;GA='b00000000;end62:begin ROW='b01111111;GA='b00100000;RA='b00000000;end63:begin ROW='b01111111;RA='b01000000;GA='b00000000;end64:begin ROW='b01111111;GA='b10000000;RA='b00000000;endendcaseendalways(posedge hd) /记录红灯次数beginHONG=HONG+1;if(HONG>9)begin HONG=0;HONGS=HONGS+1;endelse if(HONGS=3&&HONG=3)begin HONG=1;HONGS=0;endendalways(posedge ld) /记录绿灯次数beginLV=LV+1; if(LV>9)begin LV=0;LVS=LVS+1;endif(LVS=3&&LV>2)begin LV=1;LVS=0;endendalways(posedge xh) /记录循环次数beginXUN=XUN+1;if(XUN>9)begin XUN=0;XUNS=XUN+1;endendalways(posedge CLK2)beging=g+1;if(g='b110) g='b000;case(g)0:begin GG='b000;s=HONGS;end1:begin GG='b001;s=HONG;end2:begin GG='b010;s=LVS;end3:begin GG='b011;s=LV;end4:begin GG='b100;s=XUNS;end5:begin GG='b101;s=XUN;endendcasecase(s)0:SS='b0111111;1:SS='b0000110;2:SS='b1011011;3:SS='b1001111;4:SS='b1100110;5:SS='b1101101;6:SS='b1111101;7:SS='b0000111;8:SS='b1111111;9:SS='b1101111;endcaseendendmodule 点阵显示电路原理图 第六章 波形仿真图蓝线所示时刻红灯次数数码管显示26,绿灯次数数码管显示26,循环次数数码管显示02。 蓝线所示时刻红灯次数数码管显示32,绿灯次数数码管显示31,循环次数数码管显示00 。 蓝线所示时刻红灯次数数码管显示32,绿灯次数数码管显示32,循环次数数码管显示00。 蓝线所示时刻红灯次数数码管显示01,绿灯次数数码管显示32,循环次数数码管显示01。蓝线所示时刻红灯次数数码管显示01,绿灯次数数码管显示01,循环次数数码管显示01。 第七章 管脚及硬件连线4.1 管脚锁定程序输入输出扩展下载板接口(PIN)程序输入输出扩展下载板接口(PIN)程序输入输出扩展下载板接口(PIN)CLK175RA2175GA6197CLK283RA3176GA7198ROW085RA4177SS068ROW186RA5179SS169ROW287RA6187SS270ROW388RA7189SS371ROW489GA0190SS473ROW590GA1191SS574ROW692GA2192SS612ROW793GA3193GG013RA0173GA4195GG114RA1174GA5196GG2154.2 硬件连线Clk1连线到频率组的低频组20号,CLK2连线到频率组的中频组11号,PIN 85,PIN86、PIN87、PIN88、PIN89、PIN90、PIN92、PIN93分别接点阵的ROW1ROW8,PIN173、PIN174、PIN175、PIN176、PIN177、PIN179、PIN187、PIN189分别接点阵的RA1RA8,PIN190、PIN191、PIN192、PIN193、PIN195、PIN196、PIN197、PIN198分别接点阵的GA1GA8。PIN68、PIN69、PIN70、PIN71、PIN73、PIN74、PIN12分别接动态数码管的A-G。PIN13、PIN14、PIN15分别接动态数码管的SS0、SS1、SS2。 第5章 实验总结 EDA课程设计是一个理论和实践相结合的过程,着力培养同学们的独立思考和动手的能力。在这两周的时间里,可以说是苦中有乐,虽然在设计的过程中遇到了一下困难,但是我真正学到了很多东西,学会了如何使用如何使用试验箱,如何利用verilog HDL语言设计电路等。 设计是一个历练的过程,我们可以从中学会独立思考问题的能力。设计一个东西最重要的是要有一个正确的思路,这就体现在学生的思考能力上。我设计的是点阵显示电路,刚开始我不知道从何下手,思路理不顺,但是通过对数电知识的回忆和verilog HDL语言的学习,结合课题给定要求,自然就能理清它的前因后果。在编程的过程中可以说是困难重重,用程序语言描述它的功能时刚开始漏洞百出,特别是在动态数码管显示部分,在位选信号和数字输出方面描述得不好,致使错误重重,但是经过了仔细的思考和实际的研究,最终成功编译出来了,那是十分欣慰,真是功夫不负有心人啊。在电路实现其功能的过程中要注意其管脚锁定和硬件连线,如果不细心实验也会失败。参考文献 1 阎石.数字电子技术基础.第五版.高等教育出版社 2 陈白 郑兆兆 周莲莲 .EDA课程设计A指导书.燕山大学教务处,2011年9月。燕山大学课程设计评审意见表指导教师评语:该生学习态度 (认真 较认真 不认真) 该生迟到、早退现象 (有 无)该生依赖他人进行设计情况 (有 无)平时成绩: 指导教师签字: 2012 年 1 月5 日图面及其它成绩:答辩小组评语:设计巧妙,实现设计要求,并有所创新。 设计合理,实现设计要求。 实现了大部分设计要求。 没有完成设计要求,或者只实现了一小部分的设计要求。 答辩成绩: 组长签字: 2012 年 1 月5 日课程设计综合成绩:答辩小组成员签字: 2012年 1 月5 日1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用