跑马灯VHDL课程设计报告

合集下载

vhdl课程设计报告

vhdl课程设计报告

一、设计目的本课程设计的目的是熟练掌握相关软件的使用和操作。

能对VHD1语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。

在成功掌握软件操作基础上,将所数字电路的基础课知识与VHD1语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际:深入了解VHD1语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。

对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。

二、设计内容及操作1、设计循环彩灯控制器1.1设计内容设计一个循环彩灯控制器,该控制器控制红,绿,黄三个发光管循环点亮。

要求红发光管亮3秒,绿发光管亮2秒,黄发光管亮1秒。

1.2程序设计1IBRARYIEEE;USEIEEE.STD_10GIC_1164.A11;USEIEEE.STD_1OGIC_UNSIGNED.A11;ENTITYcaideng_2ISPORT(e1k:INSTD_1OGIC;red,green,ye11ow:OUTSTD1OGIC);ENDENTITYCaideng_2;ARCHITECTUREexamp1eOFcaideng_2ISSIGNA1dout:STD_1OGIC_VECTOR(2DoWNTO0);SIGNA1m:STD_10GIC_VECT0R(2DOWNTO0);BEGINred<=dout(2);green<=dout(1);ye11ow<=dout(0);PROCESS(e1k)ISBEGINIF(c1k,EVENTANDC1k=T')THENIF(In="110")THENm<="001";E1SEm<=m+1;ENDIF;CASEmISWHEN"001"=〉dout<=〃100〃;WHEN"010"=>dout<=T00";WHEN,/0ir=>dout<="100";WHEN"100"=>dout<="010";WHEN"101"=>dout<="010";WHEN"110"=>dout<="001";WHENOTHERS=>dout<="000";ENDCASE;ENDIF;ENDPROCESS;ENDARCHITECTURE;1.3仿真波形图14波形图分析在仿真时已经设置好开始时间和结束时间,根据以上的波形图可知,当e1k 信号处于高电平(高低电平可以根据自己所设计的情况自己定义),红发光管最先亮灯(高电平表示亮灯),时间为3s,3s之后绿发光管开始亮灯2s,2s结束黄发光管亮1s,以此循环亮灯,直到仿真结束时间。

跑马灯实验报告

跑马灯实验报告

电子系统综合设计报告学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导教师刘怀强学院理学院走马灯实验论文--《嵌入式系统技术》1、实验目的1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用;2、理解和学会单片机并口的作为通用i/o的使用;3、理解和学会单片机外部中断的使用;4、了解单片机定时器/计数器的应用。

2、实验设备z pc 机、arm 仿真器、2440 实验箱、串口线。

3、实验内容z 熟悉 arm 开发环境的建立。

z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。

z 编写跑马灯程序。

5、实验原理走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。

然后连接仿真仪,下载监控程序,进行主机与实验箱联机仿真。

为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。

atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure callstandard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规则等。

下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书籍。

1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容:(1)各寄存器的使用规则及其相应的名称。

(2)数据栈的使用规则。

(3)参数传递的规则。

相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。

但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。

心形跑马灯实训报告

心形跑马灯实训报告

一、实训目的本次心形跑马灯实训旨在通过实际操作,让学生掌握心形跑马灯的设计原理、电路搭建、编程控制以及实际应用等方面的知识。

通过实训,提高学生的动手能力、创新能力和团队协作能力,同时加深对电子技术、嵌入式系统及编程的理解。

二、实训背景随着科技的发展,嵌入式系统在日常生活中得到了广泛应用。

心形跑马灯作为一种新颖的电子装饰品,具有较高的观赏性和实用性。

本实训项目以心形跑马灯为载体,让学生在实训过程中学习相关知识,培养创新意识。

三、实训内容1. 心形跑马灯设计原理心形跑马灯采用LED灯珠作为显示单元,通过单片机控制LED灯珠的亮灭,形成动态的心形图案。

设计原理主要包括以下几个方面:(1)心形图案设计:通过数学公式计算心形图案的坐标点,将坐标点映射到LED灯珠上。

(2)LED灯珠驱动电路:设计LED灯珠的驱动电路,确保LED灯珠正常工作。

(3)单片机控制电路:设计单片机控制电路,实现LED灯珠的亮灭控制。

2. 心形跑马灯电路搭建(1)电路元器件:主要包括单片机、LED灯珠、电阻、电容、面包板、导线等。

(2)电路搭建步骤:①根据设计原理,设计电路图。

②在面包板上搭建电路,连接单片机、LED灯珠、电阻、电容等元器件。

③检查电路连接是否正确,确保电路正常工作。

3. 心形跑马灯编程控制(1)编程环境:使用C语言进行编程。

(2)编程步骤:①初始化单片机端口,设置LED灯珠的亮灭模式。

②编写心形图案的生成函数,计算心形图案的坐标点。

③编写控制LED灯珠亮灭的函数,实现心形图案的动态显示。

4. 心形跑马灯实际应用(1)展示平台:将心形跑马灯应用于各类活动、展览等场合,展示其独特魅力。

(2)应用场景:如商场、酒店、旅游景点等。

四、实训过程1. 理论学习:首先,学生对心形跑马灯的设计原理、电路搭建、编程控制等方面进行理论学习,了解相关知识。

2. 电路搭建:在面包板上搭建心形跑马灯电路,连接元器件,确保电路正常工作。

3. 编程实践:使用C语言编写心形跑马灯的代码,实现心形图案的动态显示。

实验报告 跑马灯

实验报告 跑马灯

实验报告跑马灯实验报告:跑马灯引言:跑马灯作为一种常见的室内装饰和广告展示工具,广泛应用于商场、剧院、车站等公共场所。

本实验旨在探究跑马灯的工作原理和设计过程,并通过实际搭建跑马灯模型进行验证。

一、跑马灯的工作原理跑马灯是通过一组灯泡或LED灯组成的,它们按照一定的顺序依次亮灭,从而形成连续的动态效果。

跑马灯的工作原理主要包括电路控制和程序设计两个方面。

1. 电路控制:跑马灯的电路控制是通过继电器或集成电路实现的。

继电器是一种电磁开关,通过控制电磁铁的通断来控制灯泡的亮灭。

而集成电路则是通过逻辑门和计时器等元件实现灯泡的顺序控制。

2. 程序设计:跑马灯的程序设计是通过编写一段简单的代码来实现的。

在代码中,通过控制灯泡或LED灯的亮灭时间和顺序来实现跑马灯效果。

常见的程序设计语言如C、Python等都可以用来编写跑马灯的代码。

二、跑马灯的设计过程跑马灯的设计过程包括灯泡或LED灯的选型、电路设计、程序编写和外壳制作等步骤。

1. 灯泡或LED灯的选型:在跑马灯的设计中,选择合适的灯泡或LED灯是非常重要的。

灯泡的亮度、寿命和能耗等指标需要进行综合考虑。

而LED灯则具有节能、寿命长和颜色丰富等优点,因此在现代跑马灯设计中更加常见。

2. 电路设计:电路设计是跑马灯设计中的关键环节。

在电路设计中,需要考虑灯泡或LED灯的亮灭顺序、时间间隔和电源供应等因素。

通过合理的电路设计,可以实现跑马灯的稳定运行和灯泡的长寿命。

3. 程序编写:程序编写是跑马灯设计中的另一个重要环节。

通过编写一段简单的代码,可以控制灯泡或LED灯的亮灭顺序和时间间隔。

程序编写需要考虑灯泡或LED灯的数量和控制方式等因素,以实现预期的跑马灯效果。

4. 外壳制作:外壳制作是跑马灯设计中的最后一步。

通过设计和制作合适的外壳,可以保护电路和灯泡或LED灯,同时也可以增加跑马灯的美观性。

外壳的材料可以选择塑料、金属或木材等,根据实际需要进行选择。

VHDL课程设计报告

VHDL课程设计报告

VHDL课程设计报告一、题目要求(1)、EDA实验板组装调试参照提供的EDA实验板电路原理图、PCB图以及元器件清单进行电路板的组装,组装过程中要求能读懂电路原理图,了解各部分电路工作的原理。

电路板组装完成后,编写以下三个小程序进行电路板测试:1、流水灯程序编写一个流水灯程序,使实验板上DS2—DS13十二个LED依次循环点亮。

2、数码管动态扫描程序了解BCD—七段锁存译码器CD4511的工作原理及数码管动态扫描技术,编写一个程序,使EDA实验板上的8位数码管由“0000 0000”按一定的频率自加一直到“9999 9999”,然后归零不断循环以上过程。

3、矩阵键盘扫描程序了解矩阵键盘扫描原理,编写一程序,当按下实验板上十六个按键任一键,数码管上显示相应键值1—16。

以上测试程序先经软件仿真通过后下载到实验板上进行测试,观察实验结果,若与预期设计不符则应对软、硬件进行细心检查,排除故障。

完成以上电路板组装且调试通过后可进行第二部分红外遥控系统的设计。

(2)、红外遥控系统的设计红外遥控系统由发射编码和接收解码两个部分组成,本课程设计要求制作发射编码电路板(遥控器)以及编写程序在EDA实验板上实现接收解码,具体说明如下:1、发射编码部分发射编码部分要求使用指定的元器件在万用板上完成红外遥控器的制作,该部分电路原理图参照《PT2248数据手册》,制作前请详细阅读《红外遥控器制作说明》,制作时要求元器件在万用板上排列整齐,布局合理,焊接良好,各按键功能正常,均能发送编码。

2、接收解码部分接收解码用VHDL语言编写程序,在EDA实验板上实现解码,要求具有以下功能:(1)基本要求:(a)将一体化红外接收解调器的输出信号解码(12个单击键、6个连续键,单击键编号为7-18,连续键编码为1-6),在EDA实验板上用七段数码管显示出来;(b)当按下遥控器1—6号连续键时,在EDA实验板上用发光二极管点亮作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。

基于VHDL跑马灯课程设计

基于VHDL跑马灯课程设计

目录一.设计任务与要求 (1)(1)方案论证 (1)(2)原理框图 (1)二.总体框图 (1)三.选择器件 (1)四.功能模块 (2)(1) 八分频模块 (2)(2) JK触发器连接的两位加法计数器 (2)(3) ROM32X8 (3)(4) 实现循环闪烁和模式切换的具体说明 (3)(5) 74LS283与7446组成模式显示电路 (5)(6) 仿真波形 (7)五.总体设计电路图 (7)六.设计心得 (14)课程设计一.设计任务与要求1.在八个LED灯上实现从左至右,从右至左,从两边到中间,从中间到两边;四种模式的闪烁。

2.四种模式是事先设置的。

3.实现四种模式的手动切换。

二.总体框图(1)方案论证:本方案采用一片74LS293与两片JK触发器。

74LS293是4位异步二进制加法计数器。

本方案采用它的八分频功能,构成一个八进制循环电路。

并且将两个JK触发器连接成一个两位加法器且由手动开关输入时钟沿。

两部分组合起来实现每种模式的地址线依次循环导通以及四种模式的切换。

用一片ROM32X8来存储四种闪烁模式。

输出连接八个LED灯。

用74LS283与7446连接成显示电路,在实验板上的七段数码管显示模式的编号。

(2)原理框图:图1——原理框图三.选择器件1.主芯片:Altera®的Cyclone EPEC12Q240C82.八个LED灯3.一个自动反弹开关4.EDA实验箱一台5.含有QuartusⅡ软件的计算机一台6.导线若干四.功能模块(1)八分频模块图二——74LS293模块A实现的是一位二进制循环。

B,C,D实现的是三位八进制循环。

本设计使用B,C,D端。

在CLKB加时钟信号后,BCD端实现八进制循环。

内部原理图如下:图三——74LS293内部结构图八分频模块电路图:图四——八分频模块仿真波形:图五——仿真波形分析:CLRA,CLRB为清零信号端,全部接地使失效。

时钟信号输入端CLKA控制QA计数。

dxp课程设计跑马灯

dxp课程设计跑马灯

dxp课程设计跑马灯一、课程目标知识目标:1. 学生能理解跑马灯的基本概念,掌握跑马灯电路的组成和工作原理。

2. 学生能够运用所学知识,设计并搭建一个简单的跑马灯电路。

3. 学生能够解释跑马灯电路中各元件的功能及其相互关系。

技能目标:1. 学生能够运用所学知识,进行电路图的绘制和电路搭建。

2. 学生能够通过实际操作,掌握基本的电路故障排查和解决方法。

3. 学生能够通过团队合作,共同完成跑马灯项目的设计与实现。

情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发学习科学技术的热情。

2. 学生通过实践操作,增强动手能力,提高解决问题的自信心。

3. 学生在团队合作中,学会相互尊重、沟通协作,培养集体荣誉感。

课程性质:本课程为实践性较强的电子技术课程,旨在让学生通过实际操作,掌握跑马灯电路的基本原理和设计方法。

学生特点:考虑到学生所在年级的特点,课程内容以直观、易懂为主,注重培养学生的动手能力和团队协作能力。

教学要求:教师需结合课程内容和学生的实际情况,采用启发式教学,引导学生主动探索、发现问题,并在实践中解决问题。

同时,注重培养学生的安全意识,确保实践操作的安全性。

通过课程学习,使学生达到上述课程目标,为后续相关课程的学习打下坚实基础。

二、教学内容本课程教学内容围绕跑马灯电路的设计与实现展开,主要包括以下几部分:1. 跑马灯基础知识:- 跑马灯概念及其应用场景- 跑马灯电路的组成与工作原理2. 电路元件功能与选型:- 常用电子元件的认识(如电阻、电容、二极管、三极管等)- 元件在跑马灯电路中的作用及选型3. 跑马灯电路设计与搭建:- 电路图的绘制方法- 电路搭建的步骤与注意事项- 跑马灯程序设计基础4. 实践操作与故障排查:- 跑马灯电路的实际操作演练- 常见故障现象及排查方法5. 团队合作与项目实施:- 项目分组及任务分配- 团队协作完成跑马灯设计与搭建- 项目展示与评价教学内容依据教材相关章节进行组织,确保科学性和系统性。

虚拟仪器课程设计跑马灯

虚拟仪器课程设计跑马灯

虚拟仪器课程设计跑马灯(总7页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除河北北方学院虚拟仪器原理与应用课程设计课程设计名称:基于labview的计算器设计专业班级:电子信息工程技术3班学号: 3学生姓名:马洪印成绩: 签名: 2016年12月22日一、引言:随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

彩灯由于其丰富的灯光色彩,低廉的造价以及控制简単等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。

本次课程设计是基于LabVIEW虚拟仪器系统开发与实践等原理与技术而设计的跑马灯。

虚拟仪器的起源可以追溯到20世纪70年代,“虚拟”的含义主要是强调软件在仪器中的作用,体现了虚拟仪器与主要通过硬件实现各种功能的传统仪器的不同。

由于虚拟仪器结构形式的多样性和适用领域的广泛性,目前对于虚拟仪器的概念还没有统一的定义。

美国国家仪器公司(National Instrunents Corpotion ,NI)认为,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。

过去40年的时间里,美国国家仪器公司(NI)通过虚拟仪器技术为测试测量和自动化领域带来了一场革新:虚拟仪器技术把现成即用的商业技术与创新的软、硬件平台相集成,从而为嵌入式设计、工业控制以及测试和测量提供了一种独特的解决方案。

使用虚拟仪器技术,工程师可以利用图形化开发软件方便、高效的创建完全自定义的解决方案,以满足灵活多变的需求趋势。

本次设计的跑马灯是利用虚拟仪器技术而完成的,跑马灯是一种生活中比较常见的装饰,本文主要通过labv i ew来设计了一个相对简单的对跑马灯的控制,实現了其有规律的亮灭,带来一定的观赏效果。

本文主要是实现了跑马灯的单个流水闪烁、双路同步流水闪烁、四路同步流水闪烁、全体同步闪烁,以此循环。

跑马灯的设计doc

跑马灯的设计doc

EDA 课程设计报告书课题名称 跑马灯的设计 姓 名 杨婷婷 学 号 0812202-33 院 系 物理与电信工程系 专 业 电子信息工程 指导教师曾专武 讲师2011年 6月10日※※※※※※※※※ ※※※※ ※※※※※※※※※※※2008级学生EDA 课程设计跑马灯的设计1设计目的系统设计采用自顶向下的设计方法,使用简单的EDA程序实现跑马灯显示效果设计。

并且熟悉可编程逻辑器件的使用,通过制作来了解跑马灯控制系统。

2 设计的主要内容和要求2.1.实现8个红色LED的亮、灭、交错显示等,其显示如下(1)复位时,8个灯全灭;(2)从左到右第一个开始亮,依次亮到最后一个;(3)从右到左第一个开始亮,依次亮到最后一个;(4)从中间亮到两边;(5)从两边亮到中间;2.2.随着彩灯显示图案的变化,发出不同的音响声。

3 整体设计方案这次的跑马灯设计采用的是分模块来完成的,包括分频器、计数器、选择器、彩灯控制器。

其中彩灯控制器是用来输出不同的花样,彩灯控制器的输出则是用一个32进制的计数器来控制,扬声器的输出时用不同的频率来控制,所以用了一个集成分频器来使输入的频率被分为几种不同的频率,不同频率的选择性的输出则是用一个4选一的选择器来控制。

图3.1跑马灯的输出原理方框图图3.2扬声器输出原理方框图4硬件电路的设计与软件设计4.1集成分频器模块1)设计要求显示不同的跑马灯的时候要伴随不同的音乐,所以设计分频器来用不同的频率控制不同的音乐输出。

模块说明:Rst:输入信号复位信号用来复位集成分频器的输出使输出为“0”,及没有音乐输出。

Clk:输入信号模块的功能即为分频输入的频率信号。

Clk_4、clk_6、clk_8、clk_10:输出信号即为分频模块对输入信号clk的分频,分别为1/4分频输出、1/6分频输出、1/8分频输出、1/10分频输出。

图4.1集成分频器2)分频器VHDL程序编写及仿真结果LIBRARY ieee;USE ieee.std_logic_1164.all; -- IEEE库使用声明ENTITY fenpinqi IS -- 实体端口声明PORT(clk,rst : IN std_logic; -- 类型的输入端口clk_10,clk_4,clk_6,clk_8: OUT std_logic); -- 输出口END fenpinqi;ARCHITECTURE cd OF fenpinqi IS --结构体功能描述语句beginp1:process(clk,rst) --进程语句variable a:integer range 0 to 20;beginif rst='1' thenclk_4<='0'; ---复位信号控制部分elseif clk'event and clk='1'then --时钟信号clk,上升沿有效边沿if a>=3 then a:=0; --当a大于等于3时,则a等于0 clk_4<='1';elsea:=a+1; --否则a等于a加1clk_4<='0';end if;end if;end if;end process p1;p2:process(clk,rst)variable b:integer range 0 to 20;beginif rst='1' thenclk_6<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif b>=5 thenclk_6<='1';elseb:=b+1;clk_6<='0';end if;end if;end if;end process p2;p3:process(clk,rst)variable c:integer range 0 to 20;beginif rst='1' thenclk_8<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif c>=7 thenc:=0;clk_8<='1';elsec:=c+1;clk_8<='0';end if;end if;end if;end process p3; --关闭进程p4:process(clk,rst) --开启另外一个进程variable d:integer range 0 to 20; --定义d为变量beginclk_10<='0'; ----- 复位信号控制部分elseif clk'event and clk='1'thenif d>=9 thend:=0;clk_10<='1';elsed:=d+1;clk_10<='0';end if;end if;end if; end process p4; end cd;图4.2 集成分频器仿真波形4.2 32进制计数器模块1)32进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。

VHDL课程设计报告

VHDL课程设计报告

VHDL课程设计报告湖南科技⼤学信息与电⽓⼯程学院课程设计任务书20 —20 学年第学期专业:学号:姓名:课程设计名称:设计题⽬:完成期限:⾃年⽉⽇⾄年⽉⽇共周设计依据、要求及主要内容(可另加附页):指导教师(签字):批准⽇期:年⽉⽇⽬录⼀、摘要⼆、VHDL语⾔介绍三、设计的⽬的四、设计内容五、电路⼯作原理六、主要程序及仿真结果七、对本次设计的体会和建议⼋、参考⽂献⼀、摘要⼈类社会已进⼊到⾼度发达的信息化社会。

信息化社会的发展离不开电⼦信息产品开发技术、产品品质的提⾼和进步。

电⼦信息产品随着科学技术的进步,其电⼦器件和设计⽅法更新换代的速度⽇新⽉异。

实现这种进步的主要原因就是电⼦设计技术和电⼦制造技术的发展,其核⼼就是电⼦设计⾃动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推⼴应⽤⼜极⼤地推动了电⼦信息产业的发展。

为保证电⼦系统设计的速度和质量,适应“第⼀时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的⼀项先进技术和重要⼯具。

⽬前,在国内电⼦技术教学和产业界的技术推⼴中已形成“EDA热”,完全可以说,掌握EDA技术是电⼦信息类专业学⽣、⼯程技术⼈员所必备的基本能⼒和技能。

EDA技术在电⼦系统设计领域越来越普及,本设计主要利⽤VHDL语⾔设计⼀个电⼦数字钟,它的计时周期为24⼩时,显⽰满刻度为24时59分59秒。

总的程序由⼏个各具不同功能的单元模块程序拼接⽽成,其中包括分频程序模块、时分秒计数和设置程序模块、⽐较器程序模块、三输⼊数据选择器程序模块、译码显⽰程序模块和拼接程序模块。

并且使⽤软件进⾏电路波形仿真。

关键词:数字钟EDA VHDL语⾔⼆、VHDL语⾔介绍1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语⾔。

⾃IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了⾃⼰的VHDL 设计环境,或宣布⾃⼰的设计⼯具可以和VHDL接⼝。

VHDL课程设计报告_硬件描述语言课程设计

VHDL课程设计报告_硬件描述语言课程设计

各专业全套优秀毕业设计图纸湖南科技大学信息与电气工程学院《课程设计报告》题目:硬件描述语言课程设计专业:电子信息工程班级:三班姓名:学号: 1204030xx指导教师:2015 年 1月 12 日信息与电气工程学院课程设计任务书2014—2015 学年第 1 学期专业:学号:姓名:课程设计名称:设计题目:完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页):指导教师(签字):批准日期:年月日摘要在目前,可编程逻辑器件、单片机、DSP已经成为数字系统的硬件基础,而从事数字系统的设计必须掌握可编程逻辑器件的设计方法,而VHDL语言是一种标准的数字系统硬件电路设计语言,为所有可编程逻辑器件厂商所支持,已成为电路设计人员和电子设计工程师必须掌握的工具。

VHDL语言是培养信息类专门人才的一门必修的专业基础课程。

通过本次课程设计,使我们能够学习和掌握现代电子系统设计的新技术、新器件,掌握硬件描述语言VHDL的编程技术和硬件描述方法,能够对设计系统进行规范描述掌握相关软件的使用,操作。

能对VHDL 语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。

本次课程设计设计主要使用了VHDL语言,采用的开发软件是MAXPLUS II,设计一个多功能数字钟。

在MAXPLUS II开发平台下进行了编译、仿真、下载,实现了基本记时显示和设置、调整时间、报时和闹钟功能。

(注意,仅供参考,可以根据自己的具体设计来写,多写一点)关键词:EDA;VHDL ;Max+plus II;目录1.设计目的 (1)2.设计内容 (1)3.电路工作原理 (1)3.1循环彩灯控制器 (1)3.2五人多数表决器 (1)4.主要程序和仿真结果 (1)4.1循环彩灯控制器 (1)4.2五人多数表决器 (1)5.心得体会 (1)参考文献 (1)1.设计目的1. 熟练掌握相关软件的使用,操作。

跑马灯效果的实现

跑马灯效果的实现

跑马灯效果的实现一能力拓展训练的内容和要求控制8个指示灯的循环点亮,包括指示灯控制、速度控制和点亮效果控制1.利用CPLD/FPGA器件实现简单的计算机逻辑接口电路(如地址译码电路、硬件加密电路等);2.基于可编程逻辑器件(CPLD或FPGA)实现DSP功能。

通过训练掌握相关的理论知识及实际处理方法,熟练使用常用EDA工具(如Quartus Ⅱ、Matlab/DSP Builder等)和硬件描述语言(如V erilog HDL等)设计所需应用程序、上机调试、模拟仿真、下载到目标芯片上运行验证,并对实验结果进行理论分析。

二设计思路:将8个彩灯共阴接地,阳极分别为EPIC3的8个I/O相连,I/O输出变化的电平来控制彩灯的点亮,流水灯分不同的时段,指示灯有不同的显示模式,开始时刻流水灯从右到左依次点亮,第二时间段LED流水灯从左向右依次熄灭,第三时间段LED流水灯从中间向两端依次点亮,第四时间段LED流水灯从中间到两边依次熄灭,第五时间段LED由1,4亮,然后2,5……以此类推,最后完成一次循环又回到开始时刻,进入第二轮循环,来实现LED流水灯的控制实验。

从LED流水灯的工作原理来看,无论是第一时间还是其他的时间段,LED流水灯点亮还是熄灭,都是一个频率来控制LED流水灯点亮和熄灭的快慢。

只不过这个频率可以在程序中控制,也可以在定义输入引脚时把频率选择不同的频率段。

三原理框图:(1)总体方框图如下:图1 总体方框图(2)细化框图:此次实验主要分两个大模块:控制模块以及功能模块,其中功能模块还有3个子模块,如下所示:图2 细化框图控制模块:主要是通过控制给定系统的时钟频率,可以改变灯亮暗的快慢。

功能模块:即为灯亮暗方式的选择。

四编写程序并仿真第一种方式波形图如下:图3第一个灯开始亮由上述仿真波形可知,仿真后所得的结果与希望的相同,进行下一步:对引脚的锁定。

图4 从左到右依次亮图5 从右向左依次熄灭第二种方式波形图:图6中间两个灯亮图7向两边扩散开来直至全亮图8从两边向中间熄灭第三种方式波形图:图91、4灯亮图101、4;2、5;3、6亮图11全亮后进入下一轮循环五引脚锁定以及功能预测各引脚锁定如下所示:图4 各引脚锁定图功能预测:当引脚锁定完成之后,再编译一次,然后进行下载,当下载完毕后可以发现试验箱上的灯会从左到右依次被点亮,然后又从右向左依次熄灭,之后灯从中间两个开始亮,向两边开始扩散,直至全亮后再从两边向中间逐次熄灭,然后就是灯会以1,4亮,2,5亮,3,6亮,4,7亮此种方式进行,当此次全亮之后,灯开始进入下一轮循环,从左到右依次点亮……如此反复。

跑马灯课程设计报告

跑马灯课程设计报告

课程设计报告课题名称基于AT89S51的跑马灯设计系别机电系专业班级学号学生姓名指导教师完成日期2010年月教务处制基于AT89S51的跑马灯设计一、设计任务与要求1.设计任务选择采用AT89S51、74LS245、ULN2803、LED等器件,使用汇编语言实现各种跑马灯动态显示效果设计。

2.设计要求实现16个LED的全亮、全灭、交错显示、流水灯显示等。

可结合灯的排布以及程序设计实现各种跑马灯动态显示效果。

三个输入按键,按键S2时,LED 灯亮点依次流动;按键S3时,依次点亮LED灯;按键S4时,LED灯交错点亮。

3.设计目的通过本课程设计掌握单片机系统设计思路和基本步骤;掌握LED驱动电路、延时程序和按键处理程序设计。

能熟练使用Wave6000软件、编程器或下载线。

熟悉Keil、PROTEUS、Protel99se等相关软件的使用。

二、方案设计与论证在日常生活中,我们总是花样百出的流水灯光,随着电子技术的飞速发展,人们对灯的花样要求也就更多,如全亮、全灭、交错显示、流水灯显示等。

因此,跑马灯得到了广泛的应用。

一个由单片机控制的较简单的数字钟由电源电路、控制电路、驱动电路、显示电路4部分组成。

1. 控制电路控制电路时整个电路的核心,主要由单片机来完成。

AT89S51单片机的管脚图如图(1)所示。

单片机执行指令是在时钟脉冲控制下进行的,因此,单片机必须外接振荡器构成时钟电路才能正常工作。

另外,还应该在单片机的RES端外接电阻电容构成复位电路,当单片机运行错误时可以给一个复位信号使其复位。

单片机的对接口电路的控制是由软件向单片机的I/O口(即P0~P3口)来实现的。

AT89S51单片机内部由两个定时/计数器,可以用其中一个定时/计数器来对时间进行计数,而另一个可以对显示器的显示延时进行定时并通过中断把相应的数据通过I/O 口送给显示器显示。

同时,通过对图1 A T89S51管脚图外部按键的状态判断来进行时间的调整。

verilog HDL跑马灯报告

verilog HDL跑马灯报告

跑马灯设计一、实验目的:1.熟悉利用QuartusII开发数字电路的基本流程和QuartusII软件的相关操作;2.掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,利用JTAG/AS进行下载的基本操作;3.了解VerilogHDL语言设计或原理图色剂方法。

二、设计内容使LED成流水的方式,在不同的状态中间进行转换,本设计中主要是让LED显示灯按照一定时间间断来显示,通过这样的间隔来使LED按流水方式显示并循环。

三、实验用到的软件和器材软件:QuartusII软件硬件:实验开发板,计算机四、实验步骤1. 创建工程,选择目标芯片,设置合适的参数,编写设计程序并编译。

源程序如下:module led#(parameter max_length=8)(input clk,rst,output reg[max_length-1:0]led_out);always@(posedge clk,posedge rst)if(rst)led_out<={max_length{1'b0}};elseif(led_out=={max_length{1'b1}})led_out<={max_length{1'b0}};elseled_out<={1'b1,led_out[max_length-1:1]};endmodule2. 编译无误后进行时序仿真,仿真无误后管脚锁定。

管脚锁定图如下:3 .将程序下载至EP1C6+EPCS1 试验箱,观察实验结果。

实验箱上LED灯按照一定的时间间隔顺次点亮,按流水方式显示并循环。

跑马灯设计 说明

跑马灯设计 说明

基于VHDL的跑马灯设计说明1.设计思路:通过给定系统一个时钟,来控制8个LED灯的亮暗,灯亮暗的快慢可以通过改变给定的系统时钟频率。

2.功能分析:通过一个中间变量flag的状态来改变灯亮暗的方式,此次设计灯亮暗的方式总共有3种:(1)灯从左到右依次点亮,然后再从右到左依次熄灭;(2)灯从中间2个开始向两边亮,然后再从两边向中间熄灭;(3)灯按照7…4,3…0亮,其中最初7和3 亮,然后6和2亮…..以此类推,最后全部熄灭,进入下一轮循环。

3.模式选择:选择的为模式5。

4. 引脚锁定如下:灯对应实验板上从左到右为:light7,light6,……light0;Clk1对应实验板上clock05. 程序说明:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity light isport(clk1: in std_logic; --系统给的时钟light: buffer std_logic_vector(7 downto 0));end light;architecture behv of light isconstant len: integer:=7; --定义一个常量signal banner: std_logic:='0'; --中间信号signal clk,clk2: std_logic;beginclk<=(clk1 and banner) or (clk2 and not banner);process(clk1)beginif clk1'event and clk1='1' then --clk1是上升沿时,clk2取反clk2<=not clk2;end if;end process;process(clk)variable flag: bit_vector(2 downto 0):="000";--定义一个状态变量flag;beginif clk'event and clk='1' then --clk是上升沿if flag="000" then --flag为000时,从左到右点亮light<='1' & light(len downto 1); --并置成8位if light(1)='1' then --状态变量flag改变flag:="001";end if;elsif flag="001" then -- flag为001时,从右到左熄灭light<=light(len-1 downto 0) & '0';if light(6)='0' thenflag:="010";end if;elsif flag="010" then -- flag为010时,从中间向两边点亮light(len downto 4)<=light(len-1 downto 4)&'1';light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="011";end if;elsif flag="011" then -- flag为011时,从两边向中间熄灭light(len downto 4)<='0'&light(len downto 5);light(len-4 downto 0)<=light(len-5 downto 0)&'0';if light(2)='0' thenflag:="100";end if;elsif flag="100" then -- flag为100时,按7,3先亮,6,2再亮…..light(len downto 4)<='1'&light(len downto 5);light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="101";end if;elsif flag="101" then -- flag为101时,全部熄灭light<="00000000";flag:="110";elsif flag="110" then --进入下一轮循环banner<=not banner;flag:="000";end if;end if;end process;end behv;注:以上是自己通过看书和向同学请教后对程序的理解,可能有不当之处,望老师可以进行指出,十分感谢。

实验37跑马灯设计

实验37跑马灯设计

实验37 跑马灯设计一、实验目的1. 学习VHDL程序的基本设计技巧;2. 学习状态机的设计技巧;二、实验仪器和设备三、实验原理1.彩灯(二极管)发光原理图2.37.1 LED小灯显示模块图2.37.1为KH-31001 实验箱上显示模块,发光二极管(LED)是一种由磷化镓(GaP)等半导体材料制成的、能直接将电能转变成光能的发光显示器件。

当其内部有一定电流通过时,它就会发光。

发光二极管也与普通二极管一样由PN结构成,也具有单向导电性。

它广泛应用于各种电子电路、家电、仪表等设备中、作电源指示或电平指示。

2.状态机简介状态机是一个有向图形,由一组节点和一组相应的转移函数组成。

状态机通过响应一系列事件而“运行”。

每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。

函数返回“下一个”(也许是同一个)节点。

这些节点中至少有一个必须是终态。

当到达终态,状态机停止。

状态机包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。

当输入符号串,模型随即进入起始状态。

它要改变到新的状态,依赖于转换函数。

在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态等等。

3.控制8个LED进行花式显示,设计四种显示模式:1. 从左到右逐个点亮LED;2.从右到左逐个点亮LED;3.从两边到中间逐个点亮LED;4. 从中间到两边逐个点亮LED 。

四种模式循环切换,如图2.37.2所示,由KH-31001实验箱上左下侧键盘附近的拨码开关SW3的“I01”来控制系统的运行与停止,当“I01”拨到“ON ”位置时系统运行,当“I01”拨到“OFF ”位置时系统停止。

数字电路跑马灯实验报告

数字电路跑马灯实验报告

实验名称:发光二极管走马灯电路设计与实现姓名:班级:班内序号:学院:日期:一、发光二极管走马灯电路设计与实现1.实验目的(1)进一步了解时序电路描述方法;(2)熟悉状态机的设计方法。

2.实验所用仪器及元器件(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

3.实验任务与要求设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功能,并下载到实验板测试。

(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次往复。

4.设计思路和过程(1)设计一个模8计数器和一个模5计数器,在输入的时钟信号的上升沿触发。

(2)对于模8计数器,当计数值达到“001”时,计数标志位设置为‘0’,进行加计数;当计数值达到“110”时,计数标志位设置为‘1’,进行减计数。

(3)模5计数器的设计思路与模8计数器相同。

(4)对于输入的控制信号,当控制信号为“1”时,利用3线至8线译码器输出控制信号,实现单点移动模式;当控制信号为“0”时,利用3线至8线译码器输出控制信号,利用其中的5个状态,实现幕布式;5.VHDL代码这是库申明和实体申明,有三个输入端分别为控制端,时钟,复位。

一个八位的输出端。

TEMP用作输出;TEMP1,TEMP2为计数器状态,用作计数器的设计FLAG1,FLAG2标记计数器的计数方式,当为1是加计数,为0时减计数。

当控制端为1时实现单点移动模式,能够自启动。

当控制端为0时实现幕布式,将TEMP的值赋给输出Q。

6.仿真波形及分析(1)仿真波形(2)波形分析由波形可见,当控制信号输入为“1”时,输出的8个端口依次出现正脉冲,代表一个发光的点在8个发光二极管上来回的亮;当输入为“0”时,输出的8个端口出现正脉冲的时间与脉冲的长度呈现“中间宽,两头窄”的形状,实现了幕布式的点灯方式.由图可知,该电路实现了要求的逻辑。

7.故障及问题分析(1)开始设计时没有想到用计数器实现,导致全用case语句实现当设计单点移动时正确,但当实现幕布式是导致条件有重复故改用模8计数器实现,其实单点移动可以不用计数器而直接使用case语句,但为了统一思路都改为用计数器实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

跑马灯VHDL课程设计
一、设计任务
控制8个led进行花式显示,设计四种显示模式:
1.从左到右逐个点亮led;
2.从右到左逐个点亮led;
3.从两边到中间逐个点亮led;
4.从中间到两边逐个点亮led;
四种模式循环切换,由复位键rst控制系统的运行与停止.
二、设计过程
根据系统设计要求,采用状态机进行设计,状态机具有四种状态,每种状态完成一种显示模式四种状态间使用case语句进行切换.
程序如下:
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_1164.all;
entity pmd is
port( clk, rst: in std_logic;
y: buffer std_logic_vector(7 downto 0));
end pmd;
architecture behave of pmd is
type states is (state0, state1, state2, state3);
signal state: states;
begin
process (clk, rst)
begin
if rst='1' then
y<="00000000" ; state <= state0;
elsif (clk'event and clk='1') then
case state is
when state0 =>
if y="00000000" then y<="10000000";state <= state0; elsif y="10000000" then y<="01000000";state <= state0; elsif y="01000000" then y<="00100000";state <= state0; elsif y="00100000" then y<="00010000";state <= state0; elsif y="00010000" then y<="00001000";state <= state0; elsif y="00001000" then y<="00000100";state <= state0; elsif y="00000100" then y<="00000010";state <= state0; elsif y="00000010" then y<="00000001";state <= state1; end if;
when state1 =>
if y="00000001" then y<="00000010";state <= state1; elsif y="00000010" then y<="00000100";state <= state1; elsif y="00000100" then y<="00001000";state <= state1; elsif y="00001000" then y<="00010000";state <= state1; elsif y="00010000" then y<="00100000";state <= state1; elsif y="00100000" then y<="01000000";state <= state1;
elsif y="01000000" then y<="10000000";state <= state2;
end if;
when state2=>
if y="10000000" then y<="10000001";state <= state2;
elsif y="10000001" then y<="01000010";state <= state2;
elsif y="01000010" then y<="00100100";state <= state2;
elsif y="00100100" then y<="00011000";state <= state3;
end if;
when state3=>
if y="00011000" then y<="00100100";state <= state3;
elsif y="00100100" then y<="01000010";state <= state3;
elsif y="01000010" then y<="10000001";state <= state3;
elsif y="10000001" then y<="00000000";state <= state0;
end if;
end case;
end if;
end process;
end behave;
对程序进行编译波形仿真如下:
配置设备下载到实验箱上仿真.
四、总结
本次实验是功能模块电路的设计,我选作的是跑马灯设计。

跑马灯状态比较多,根据要求选用状态机的设计方法,我选用四状态的状态机,每种状态代表了一种显示模式,四种模式内采用case语句进行切换,在模式内采用if循环语句进行循环,观察仿真结果,程序运行结果与设计思想一致.在本次实验中我虽然按照要求完成了电路的设计,但是程序思想仍然存在很多的不足之处,程序不够简洁,采用列举的方法列举跑马灯的所有状态使程序过于复杂,如果能采用移位寄存器来进行设计,将简化程序,但是在设计过程中存在了没有解决的问题,仍需要继续解决.。

相关文档
最新文档