跑马灯设计方案EDA课程设计方案

合集下载

单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。

我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。

二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。

硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。

2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。

3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。

三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。

按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。

4017跑马灯课程设计

4017跑马灯课程设计

4017跑马灯课程设计一、课程目标知识目标:1. 学生能理解跑马灯的基本原理,掌握跑马灯电路的设计与搭建;2. 学生能运用所学知识,分析跑马灯电路中各个组件的作用及相互关系;3. 学生了解跑马灯在生活中的应用,提高对电子技术的认识和兴趣。

技能目标:1. 学生能独立完成跑马灯电路的搭建,提高动手操作能力;2. 学生能通过跑马灯电路的设计与制作,培养创新思维和问题解决能力;3. 学生能运用跑马灯项目,提高团队协作和沟通能力。

情感态度价值观目标:1. 学生通过跑马灯课程,培养对电子技术的热爱和好奇心,增强学习动力;2. 学生在跑马灯设计与制作过程中,树立自信心,勇于面对挑战,培养克服困难的意志;3. 学生在团队协作中,学会尊重他人,培养良好的合作精神和沟通能力。

课程性质:本课程为电子技术实践课程,结合理论知识与动手操作,培养学生的实际应用能力。

学生特点:四年级学生具有一定的电子技术基础,好奇心强,喜欢动手操作,但注意力容易分散,需要激发兴趣和引导。

教学要求:注重理论与实践相结合,强调学生动手操作和团队协作,注重培养学生的学习兴趣和创新能力。

通过跑马灯课程,使学生在实践中掌握知识,提高技能,培养情感态度价值观。

教学过程中,关注学生个体差异,因材施教,确保每个学生都能达到课程目标。

二、教学内容本课程教学内容围绕跑马灯电路的设计与制作展开,包括以下部分:1. 跑马灯原理及电路设计- 介绍跑马灯基本原理,引导学生理解电路工作过程;- 结合课本相关章节,讲解跑马灯电路的设计方法,分析电路中各组件的作用及选型。

2. 跑马灯电路搭建与调试- 指导学生进行跑马灯电路的搭建,培养学生的动手操作能力;- 引导学生根据电路原理图,连接电路,并调试电路,确保跑马灯正常工作。

3. 跑马灯程序编写与优化- 介绍跑马灯程序的编写方法,结合课本内容,使学生掌握编程技巧;- 引导学生优化程序,实现跑马灯的不同效果,培养学生的创新思维。

EDA实验 跑马灯

EDA实验 跑马灯

实验题目:跑马灯设计一、设计任务:设计8个LED进行花式显示,设计4种显示模式:1、从左到右逐个点亮LED;2、从右到左逐个点亮LED;3、从两边到中间逐个点亮LED;4、从中间到两边逐个点亮LED。

使得四种模式循环切换,由复位键rst控制系统的运行与停止。

二、实验过程⒈设计思路:分析该题目出现的所有状态,用“00000000”表示s0,“10000000”表示s1,“01000000”表示s2,“00100000”表示s3,“00010000”表示s4,“00001000”表示s5,“00000100”表示s6,“00000010”表示s7,“00000001”表示s8,“10000001”表示s9,“01000010”表示s10,“00100100”表示s11,“00011000”表示s12,另外定义了一个中间变量pp,用来表示该种状态的下一个状态为何,用来满足四种状态模式的连接操作。

在程序的结构体中编写两种进程,时序进程和组合进程,它们分别用来控制时钟、复位等时序信息和具体的状态转换关系。

根据状态转换图,对每一种状态编写下一项的确定状态,用pp来引导。

同时在适当的位置,进行pp值的定义变化,分别是“00000000”、“10000000”、“00000001”、“00011000”、“10000001”。

⒉设计方案:将列写出的状态转换图用VHDL语言表达出来,设计好相应的输入输出端口及功能过程,进行设计处理,编译文件,修改其中的错误,再用波形图进行编辑仿真描述,以便检查其功能是否正确,最后下载链接到硬件设备上检查其功能。

⒊设计步骤:(1)用VHDL语言设计实现计数器:运行QuartusII软件,选择菜单File/New Project Wizard...,新建一个项目,选择cyclone系列的芯片;在此项目下新建VHDL文件,编写计数器代码:library ieee;use ieee.std_logic_1164.all;entity test3 isport(clk, reset,stop : in std_logic;qout : buffer std_logic_vector(7 downto 0));end test3;architecture be of test3 istype fsm_st is(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12);signal current_state, next_state : fsm_st;signal pp : std_logic_vector(1 downto 0);beginreg : process(reset, clk)beginif reset = '1' then current_state <= s0;elsif rising_edge(clk) thencurrent_state <= next_state;end if;end process;com : process(current_state, reset)begincase current_state iswhen s0 => qout <= "00000000";if( reset ='0' and stop='0') then next_state <= s1; pp <= "00"; end if;when s1 => qout <= "10000000";if (pp = "00" and stop='0') then next_state <= s2;elsif (pp = "01" and stop='0')then next_state <= s9; pp <= "10"; end if;when s2 => qout <= "01000000";if (pp = "00" and stop='0')then next_state <= s3;elsif (pp = "01" and stop='0')then next_state <= s1;end if;when s3 => qout <= "00100000";if (pp = "00" and stop='0') then next_state <= s4;elsif (pp = "01" and stop='0')then next_state <= s2;end if;when s4 => qout <= "00010000";if (pp = "00" and stop='0')then next_state <= s5;elsif( pp = "01" and stop='0')then next_state <= s3;end if;when s5 => qout <= "00001000";if( pp = "00" and stop='0')then next_state <= s6;elsif (pp = "01" and stop='0')then next_state <= s4;end if;when s6 => qout <= "00000100";if (pp = "00" and stop='0')then next_state <= s7;elsif( pp = "01" and stop='0')then next_state <= s5;end if;when s7 => qout <= "00000010";if (pp = "00" and stop='0')then next_state <= s8;elsif (pp = "01" and stop='0')then next_state <= s6;end if;when s8 => qout <= "00000001";if (pp = "00" and stop='0')then next_state <= s7; pp <= "01"; end if;when s9 => qout <= "10000001";if (pp = "10" and stop='0')then next_state <= s10;elsif (pp = "11" and stop='0')then next_state <= s1; pp <= "00"; end if;when s10 => qout <= "01000010";if (pp = "10" and stop='0')then next_state <= s11;elsif (pp = "11" and stop='0')then next_state <= s9;end if;when s11 => qout <= "00100100";if (pp = "10" and stop='0')then next_state <= s12;elsif (pp = "11" and stop='0')then next_state <= s10;end if;when s12 => qout <= "00011000";if (pp = "10" and stop='0') then next_state <= s11; pp <= "11"; end if;when others => null;end case;end process;end be;(2)将此文件进行编译.(3)新建一个vector waveform form波形图文件,设置为波形仿真。

数电课程设计(跑马灯)

数电课程设计(跑马灯)

数字电子技术课程设计设计题目:跑马灯目录设计题目 (1)1设计要求及主要技术指标.. ............................. .. (3)1.1 设计要求 (3)1.2 主要技术指标 (3)2 设计过程 (3)2.1题目分析 (3)2.2 整体构思 (3)2.3 具体实现 (4)3 元件说明 (4)3.1 元件说明 (4)4 检查过程 (7)4.1 检查过程 (7)4.2 遇到问题及解决措施..................... . (7)5 心得体会........................... ............. (8)参考文献......................................... (9)附录一:电路原理图 (9)附录二:元件清单 (10)一.设计要求及主要技术指标1.1 设计要求(1)、根据技术指标要求确定电路形式,分析工作原理,计算元件参数。

(2)、列出所用元器件清单并购买。

(3)、安装调试所设计的电路,使之达到设计要求。

(4)、记录实验结果。

(5)、撰写设计报告。

1.2 主要技术指标(1)实现8灯循环点亮。

(2)间隔时间可调。

(3)广告灯的样式自定。

二.设计过程2.1题目分析我们设计的跑马灯实际上是主要使用一个74LS161,一个74LS138,一个74LS20和一个78L05这四个芯片对8个LED进行控制,产生循环控制的效果。

形成一个流水似的广告灯。

2.2 整体构思拟定系统方案框图,画出系统框图中每框的名称、信号的流向,各框图间的接口,使用protel99电路设计软件画出原理图,再生成网络表和PCB板。

对照原理图进行统计要使用的元器件后,在电子市场购买所需要的电子元器件。

最后在指导老师的辅导下在实验室进行下一步工作。

2.3具体实现我们需要使用碳粉打印机把我们设计的原理图打印出来,不过要注意必须要使用不干胶纸的光滑面进行打印。

EDA实验一:流水灯与跑马灯

EDA实验一:流水灯与跑马灯

准备工作注意事项:先听老师进行讲解,然后才可以进行后面的操作。

①先进行软件破解。

破解方法可参考附件《QuartusII的奇幻漂流_v1.0》的第11-13页。

其中“licence.dat”文件在“C:\altera91\91”下,将“licence.dat”文件用记事本打开,将本电脑的网卡Mac地址去替换“HOSTID”后面的那一段,保存。

然后在quartus II菜单栏“tools”-“license setup”里把修改后的license.dat 挂上,即完成破解。

详细方法请听现场老师讲解。

(在破解之前先不要把USB-blaster数据线接到电脑上)②在插拔JTAG数据线的时候,必须保证实验箱的电源是关闭的。

如果通电时进行插拔JTAG数据线,极易损坏JTAG口。

如果不按要求操作造成设备损坏的,学生本人照价赔偿。

③驱动程序的安装。

将USB-blaster数据线接到电脑上,电脑会提示安装驱动,具体的安装方法可参考附件《QuartusII的奇幻漂流_v1.0》的第14-18页,也可听老师现场讲解。

④驱动安装好后,在保证实验箱电源是关闭的情况下,将USB-blaster数据线的JTAG接口连接到实验箱上的JTAG接口上。

连接无误后,再打开实验箱电源。

至此,准备工作就绪。

实验一流水灯与跑马灯一、实验目的1、通过一个简单的流水灯和跑马灯实验,掌握时序电路的设计方法;2、初步了解QUARTUS II 的使用全过程;3、熟悉实验箱的使用流程。

二、实验原理本实验实现的是让实验箱上的4个LED灯实现流水灯和跑马灯功能。

流水灯,就是让LED灯像流水一样地点亮。

如果把流水做慢动作播放,可以想象到其实就是移动,即:水块不断地向同一方向移动,而原来的水块保持不动,就形成了流水。

同样,如果使得最左边的灯先亮,然后,通过移位,在其右侧的灯,由左向右依次点亮,而已经亮的灯又不灭,便形成了向右的流水灯。

而当4个灯都点亮时,需要一个操作使得所有的灯恢复为初始状态,即灯都不亮。

跑马灯设计 电子课程设计

跑马灯设计   电子课程设计

电子课程设计题目:时钟和跑马灯电路
学院:
专业:
学号:
姓名:
指导:
成绩:
一、实习目的
1、了解时钟电路的工作原理。

2、熟悉电路中主要元器件555集成块的作用及特性。

3、了解跑马灯电路的工作原理。

4、熟悉电路中主要电子元器件集成块4017、74HC240的作用
和特性。

5、掌握利用三极管开关特性构成反相器的原理。

6、掌握焊接工艺的基本技能。

二、原件清单
三、电路原理
1.由555时钟电路产生的方波信号,输入到10位计数——分频器(CD4017),分频计数器产生输出信号经过74HC240驱动后输出到发光二极管D10~D19上,D10~D19循环一次点亮。

2.由于74HC240只能对8位二进制数进行反相,所以电路中加入了两个三极管非门。

3.电路图如(1-1)
四、实习成果展示
五、注意事项
1.注意集成块、二极管,三极管的插装位置,电阻阻值的识别和各元件的正负极。

注意线的连接位置要正确,且精简。

往往好的排线方式可以大大的简化电路板,使其更美观!
2.整个电路焊接完成后便可插入集成块进行测试,焊接时应谨慎小心,由于此电路焊点多且密,注意不要出现相临焊点连在一起,不要出现虚焊。

六、小结
这个设计实习非常有意义,让我学会了识别和使用各种电子元件,培养了我对电子技术的兴趣。

初步接触了电路板,使我懂得其设计要点和工作原理。

通过动手实践我发现了一些不足并且通过自己的努力解决了问题,这让我很高兴,对以后的学习大有裨益!。

跑马灯课程设计

跑马灯课程设计

摘要:本设计使用89C51芯片,利用P0的8个端口连接8个发光二极管,通过P0.0到P0.7的值控制“跑马灯”的亮灭,以达到显示效果。

设计的中断程序要对多个按键动作进行响应,灯光变换的花样有4种,用4个按键k0,k1,k2,k3切换。

按下k1键,程序作左向流水灯; 按下k2按键程序作右向流水灯; 按下k3键为亮点向中间移动; 按下k4键为执行亮点向两边移动。

浏览了网上的各种作品及代码,通过各种实现代码的比较,和各种优化,总结出本程序,以较优秀的代码实现各种可控的“跑马”功能。

引言:本设计用4个开关按键控制8个发光二极管,组成为一排跑马灯进行各种样式的亮灯形式,在中断程序中处理多个按键动作的响应,以控制一排跑马灯的工作。

1设计概述本程序设计意在展示跑马灯的色彩样式及“跑马”变换效果,如果将跑马灯做大,会有很高的观赏价值。

我查阅书籍资料,浏览网上的各种作品及代码,通过各种实现代码的比较,和各种优化,总结出本程序,以较优秀的代码实现各种可控的“跑马”功能。

本设计的中断程序要对多个按键动作进行响应,灯光变换的花样有4种,用4个按键k1,k2,k3,k4切换。

进入程序后,程序作双向流水灯;按下k1键,程序作左向流水灯; 按下k2按键程序作右向流水灯; 按下k3键为亮点向中间移动; 按下k4键为执行亮点向两边移动。

2硬件电路设计及描述本设计使用89C51芯片,利用P0的8个端口连接8个发光二极管,通过P0.0到P0.7的值控制“跑马灯”的亮灭,以达到显示效果,连接图如图1所示。

图1:硬件电路连接图1利用P1.0到P1.3这4个端口作为4个控制开关的输入,控制开关连接INT0中断,按键触发中断响应以停止“跑马灯”当前的执行样式,进而改变跑马灯的显示样式。

图2:硬件电路连接图2综上所述,总体的电路连接如图3:图3:总体硬件电路连接图3软件设计流程及描述主程序的设计思路为,开始时执行左右流水灯,在中断服务程序中,首先读取按键状态,然后延时10ms,再次读取按键状态。

单片机课程设计跑马灯

单片机课程设计跑马灯

单片机课程设计跑马灯一、教学目标本节课的教学目标是使学生掌握单片机的基本原理和编程方法,通过设计和实现一个跑马灯项目,培养学生运用单片机技术解决实际问题的能力。

具体目标如下:1.知识目标:a.了解单片机的基本结构和原理;b.掌握单片机的编程语言和编程方法;c.熟悉单片机的硬件接口和外围电路。

2.技能目标:a.能够使用单片机开发工具进行程序编写和烧录;b.能够根据项目需求设计单片机的程序;c.能够搭建单片机的硬件电路并进行调试。

3.情感态度价值观目标:a.培养学生对科技创新的兴趣和热情;b.培养学生团队合作精神和自主学习能力;c.培养学生关注社会问题并运用技术解决实际问题的意识。

二、教学内容本节课的教学内容主要包括以下几个部分:1.单片机的基本原理和结构;2.单片机的编程语言和编程方法;3.跑马灯项目的需求分析和设计;4.跑马灯项目的编程和调试;5.跑马灯项目的硬件电路搭建和调试。

三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解单片机的基本原理、编程语言和编程方法,使学生掌握相关知识;2.案例分析法:通过分析跑马灯项目的需求,引导学生学会项目分析和设计;3.实验法:通过搭建跑马灯项目的硬件电路和编程调试,使学生掌握单片机的实际应用;4.讨论法:在课堂上鼓励学生提问、讨论,促进学生之间的交流和合作。

四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《单片机原理与应用》;2.参考书:单片机技术的相关书籍;3.多媒体资料:单片机的原理讲解、编程方法演示、跑马灯项目案例分析等视频资料;4.实验设备:单片机开发板、外围电路元件、编程器、调试器等。

五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

具体评估方式如下:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

《单片机应用课程设计》跑马灯

《单片机应用课程设计》跑马灯

目录第1章课程设计内容及要求 (5)第2章引言 (6)第3章系统硬件电路设计 (7)第4章系统软件设计 (12)第5章课程设计心得 (14)第6章参考文献 (15)第7章附录(实物图,程序清单) (16)第1章课程设计内容及要求一、设计内容:1.1.1、了解各种元器件在电路中的作用和一些芯片的功能,并学会掌握Keil和proteus两个软件;1.1.2、对照原理图在proteus软件中画出原理电路图;1.1.3、检查焊接好的硬件实物图并检验实物图效果;1.1.4、根据实物图写出程序并仿真,并结合Keil和proteus两个软件进行调试和仿真。

二、设计要求:1.2.1外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。

具体过程为:按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。

反之则蜂鸣器鸣响较短时间示意输掉游戏。

下次再按下开始键,游戏又开始;1.2.2、按下开关K1,实现跑马灯模式则进行灯循环点亮;1.2.3、按下开关K2,跑马灯停止循环,并停在LED灯中的一个;1.2.4、若是停在P1.0~P1.6中的一个,则响起短时间的音乐并表示游戏失败;1.2.5、若是停在P1.7LED灯时,则该对应的这LED 灯亮并响起较长时间的音乐并表示游戏胜利。

第2章引言跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。

在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。

当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。

此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。

本设计使用AT89C2051芯片,利用P1的8个端口连接8个发光二极管,通过P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。

EDA综合实践-跑马灯

EDA综合实践-跑马灯

XI ’AN UNIVERSITY OF TECHNOLOGYEDA 综合实践跑马灯设计一.设计要求:1、控制16个led进行显示2、模式1:依次点亮led;模式2:从中间向两边依次点亮led;模式3:按顺序依次点亮4led,循环显示,就是说,16个led中只有4个led亮。

3、三种模式在按键的控制下,可循环切换。

二..设计跑马灯原理其原理框图如下:由原理图上可以清楚的看到,首先选择时钟输入。

选择50M的时钟输入,再经由分频器分成1Hz的频率作为状态机的时钟输入。

题目要求用键盘控制,故用clink键盘输入,并加上复位键作为整体的复位控制。

由于led灯的状态有十六种,故而需要按键clink的频率为输入1Hz时钟信号的16倍(波形仿真中已有)。

其次是状态机控制四种状态:st0,st1,st2,st3。

经由4选一数据选择器输出接入16个led灯显示。

三、源程序module wer(clk50M,reset,clink,z);input clk50M;input reset;input clink;//键盘输入output reg[15:0] z;reg[4:0] state0,state1,state2,state3;reg[15:0] st0,st1,st2,st3;reg [2:0] mode;reg[64:0] count;wire clk1hz;parameters0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5,s6='d6,s7='d7,s8='d8,s9='d9,s10='d10,s11='d11,s12='d 12,s13='d13,s14='d14,s15='d15,s16='d16;always @(posedge clk50M)//把50M的时钟分频begin if (count==50000000 ) count<=0;else count<=count+1;endassign clk1hz=count[64];//得到1Hz的时钟信号always @(posedge clink or negedge reset)//四选一模块进行选择begin if (!reset) mode<=0;elseif (mode>3) mode<=0;elsemode<=mode+1;endalways@(*)case (mode)0:z=st0;1:z=st1;2:z=st2;3:z=st3;endcasealways @(posedge clk1hz)beginstate0=state0+1;endalways @(state0)//模式一begin case(state0)s0:st0<=16'b0000000000000000;s1:st0<=16'b1000000000000000;s2:st0<=16'b1100000000000000;s3:st0<=16'b1110000000000000;s4:st0<=16'b1111000000000000;s5:st0<=16'b1111100000000000;s6:st0<=16'b1111110000000000;s7:st0<=16'b1111111000000000;s8:st0<=16'b1111111100000000;s9:st0<=16'b1111111110000000;s10:st0<=16'b1111111111000000;s11:st0<=16'b1111111111100000;s12:st0<=16'b1111111111110000;s13:st0<=16'b1111111111111000;s14:st0<=16'b1111111111111100;s15:st0<=16'b1111111111111110;s16:st0<=16'b1111111111111111;default:st0<=16'b0000000000000000; endcaseendalways @(state1)//模式二begin case(state1)s0:st1<=16'b0000000000000000;s1:st1<=16'b0000000110000000;s2:st1<=16'b0000001111000000;s3:st1<=16'b0000011111100000;s4:st1<=16'b0000111111110000;s5:st1<=16'b0001111111111000;s6:st1<=16'b0011111111111100;s7:st1<=16'b0111111111111111;s8:st1<=16'b1111111111111111; default:st1<=16'b0000000000000000; endcaseendalways @(state2)//模式三begin case(state2)s0:st2<=16'b0000000000000000;s1:st2<=16'b1000000000000001;s2:st2<=16'b1100000000000011;s3:st2<=16'b1110000000000111;s4:st2<=16'b1111000000001111;s5:st2<=16'b1111100000011111;s6:st2<=16'b1111110000111111;s7:st2<=16'b1111111001111111;s8:st3<=16'b1111111111111111;default:st2<=16'b0000000000000000;endcaseendalways @(state3)//模式四begin case(state3)s0:st3<=16'b1000100010001000;s1:st3<=16'b0100010001000100;s2:st3<=16'b0010001000100010;s3:st3<=16'b0001000100010001;default:st3<=16'b0000000000000000;endcaseendendmodule四、编译和仿真波形图1: 跑马灯设计仿真图:五、仿真分析及结论由仿真波形图可以看出,16种状态需要按键频率为时钟频率的16分之1.复位从第一次按键下触发。

EDA跑马灯程序加仿真

EDA跑马灯程序加仿真

实验四跑马灯的设计一、实验目的1、熟悉同步时序电路的设计方法;2、学习跑马灯的设计原理和实践,并对其进行仿真和硬件测试。

二、实验原理试验箱上有16个连成一排的LED灯,它们受FPGA IO引脚的控制,通过这些引脚输出高低电平可以控制这16个灯的点亮或熄灭,控制这些灯以不同的方式点亮或熄灭即可获得跑马灯的显示效果。

三、实验内容:设计一个具有多种LED灯显示模式的电路,基本模式如下:1、先奇数灯,后偶数灯。

2、先偶数灯,后奇数灯。

3、LED灯依次点亮。

4、自己设计一种模式。

四、程序编写module paomadeng(CLK, RST, K1,K2,ledout);parameter M=16;input CLK, K1, K2, RST;output reg[M:1] ledout;reg[M:1] yw;always @(posedge CLK or negedge RST)if(!RST)beginledout=16'h0000;case ({K1, K2})2'b00:yw=16'h5555;2'b01:yw=16'haaaa;2'b10:yw=16'h0001;2'b11:yw=16'h8000;default:yw=16'h0001;endcaseendelsecase ({K1, K2})2'b00:beginledout=yw;yw=~yw;end2'b01:beginledout=yw;yw=~yw;end2'b10:beginledout=yw;if (ledout[M]==1) yw=16'h0001;else yw=yw<<1;end2'b11:beginledout=yw;if (ledout[1]==1) yw=16'h8000;else yw=yw>>1;enddefault:ledout=16'hffff;endcaseendmodule五、波形仿真限于纸面大小,将LED灯显示模式分开仿真:1.先奇数灯亮后偶数灯亮2.先偶数灯亮后奇数灯亮3.LED依次点亮(上为LED从低依次点亮)(LED从高依次点亮)。

跑马灯的设计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进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。

跑马灯的设计与仿真1(电子科大版)

跑马灯的设计与仿真1(电子科大版)

光电信息学院数字电路课程设计报告课程名称:数字设计原理与实践设计题目:跑马灯设计及仿真专业:光电工程与光通信学号:2905103032 2905402009姓名:生艳梅周高翔选课号:60 712011年06月08日光电学院数字电路课程设计任务名称:跑马灯的设计及仿真专业:光电工程与光通信姓名:生艳梅周高翔指导教师:周建华(1)课程设计应达到的目的、任务及要求:控制8 个LED 进行花式显示,设计4 种显示模式:S0,从左到右逐个点亮LED;S1,从右到左逐个点亮LED;S2,从两边到中间逐个点亮LED;S3,从中间到两边逐个点亮LED。

4 种模式循环切换,复位键(rst)控制系统的运行与停止。

跑马灯的状态转换图如图所示:(2)设计思路要达到跑马灯的灯依次亮的效果。

我们只需要将跑马灯的8 盏灯用8 位二进制数表示,1 代表灯亮,0 代表灯灭,然后设计若干个状态,让clk 在上升沿处带动状态的改变。

按照要求,初始状态是全灭,即00000000 然后由左往右依次亮,既:1000000 →11000000→11100000 →………依次类推。

(3)程序如下:module ledwalk(clk,rst,led);input clk,rst;output [7:0] led;reg [7:0] led;reg [24:0] count;reg [4:0] state;wire clk;always @ (posedge clk,negedge rst) beginif(!rst)count<=0;elsecount=count+1;endalways @ (posedge clk)begin :AAcase(state)5'b00000: led=8'b00000000;5'b00001: led=8'b10000000;5'b00010: led=8'b11000000;5'b00011: led=8'b11100000;5'b00100: led=8'b11110000;5'b00101: led=8'b11111000;5'b00110: led=8'b11111100;5'b00111: led=8'b11111110;5'b01000: led=8'b11111111;5'b01001: led=8'b00000000;5'b01010: led=8'b00000001; 5'b01011: led=8'b00000011; 5'b01100: led=8'b00000111; 5'b01101: led=8'b00001111; 5'b01110: led=8'b00011111; 5'b01111: led=8'b00111111; 5'b10000: led=8'b01111111; 5'b10001: led=8'b11111111; 5'b10010: led=8'b00000000; 5'b10011: led=8'b10000001; 5'b10100: led=8'b11000011; 5'b10101: led=8'b11100111; 5'b10110: led=8'b11111111; 5'b10111: led=8'b00000000; 5'b11000: led=8'b00011000; 5'b11001: led=8'b00111100; 5'b11010: led=8'b01111110; 5'b11011: led=8'b11111111; default: disable AA; endcaseendalways @ (posedge clk) beginstate=state+1;if(state==5'b11100) state=5'b00000;endendmodule(4)仿真结果:(5)收获、体会及改进想法等:通过本次设计,我们巩固了时序逻辑的理论知识,同时也掌握了QUARTUS II时序设计的基本方法和技巧,在这个过程中遇到很多困难,比如:总线、支线、数据分配、源信号丢失等编译错误,但最终通过查阅相关资料解决了这些问题。

单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计

闪烁灯跑马灯控制系统河南工院院系:电气工程系班级:电气0903学号:04010904XX姓名:WLM指导教师:赵阳第1章概述 (3)1.1设计的目的及意义 (3)1.2单片机的概述与应用 (3)第2章设计原理 (4)2.1设计要求与基本思路 (4)2.2设计方案选择 (5)2.3设计框图 (5)第3章硬件电路设计 (7)3.1时钟电路 (7)3.2扩展电路 (8)第4章程序设计 (9)4.1 程序设计思路与流程图 (9)4.2程序清单与代码 (11)4.3程序调试 (12)第5章原件明细表 (13)总结 (14)参考文献 (15)第1章概论1.1设计的目的与意义当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。

作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。

闪烁灯控制系统是利用8051单片机的P1控制的8个发光二极管。

可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1秒,如此循环,紧急情况下,控制P3.1进行报警2S停止。

闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础1.2单片机概述与应用单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。

跑马灯课程设计报告

跑马灯课程设计报告

课程设计报告课题名称基于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管脚图外部按键的状态判断来进行时间的调整。

实验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 ”位置时系统停止。

EDA课程设计跑马灯设计

EDA课程设计跑马灯设计

第一章设计内容与设计方案1.1课程设计内容控制8个LED进行花样性显示。

设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮LED。

4种模式循环切换,复位键(rst)控制系统的运行停止。

数码管显示模式编号。

可预置彩灯变换速度,4档快、稍快、中速、慢速,默认工作为中速。

1.2设计方案在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGA进行一个简单的电子系统设计,本次课程设计采用Verilog HDL硬件描述语言编写控制程序,应用Quartus Ⅱ软件实现仿真测试。

采用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。

2.1设计原理及设计流程本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。

跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。

第二种显示:从右向左逐个点亮LED。

第三种显示:从两边向中间逐个点亮LED。

第四种显示:从中间到两边逐个点亮LED。

四种显示模式循环切换,并带有一位复位键控制系统的运行停止。

为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来完成灯的点亮,我们将LED灯采用共阳极接法,当给于低电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予低电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。

eda跑马灯课程设计

eda跑马灯课程设计

eda跑马灯课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握跑马灯电路的设计原理。

2. 学生能描述跑马灯电路中各个元件的功能及相互关系,理解其工作过程。

3. 学生掌握数字电路基础知识,了解进制转换方法及其在跑马灯设计中的应用。

技能目标:1. 学生能运用所学知识,使用EDA软件进行跑马灯电路的设计与仿真。

2. 学生能通过编程实现对跑马灯电路的控制,培养实际操作能力。

3. 学生具备分析并解决跑马灯设计过程中遇到问题的能力。

情感态度价值观目标:1. 学生在课程学习中,培养对电子设计的兴趣,提高创新意识和实践能力。

2. 学生通过团队协作完成课程任务,培养团队精神和沟通能力。

3. 学生认识到电子设计在实际应用中的重要性,激发社会责任感和使命感。

本课程针对高年级学生,结合电子设计相关知识点,注重理论知识与实际操作相结合。

课程目标旨在帮助学生掌握EDA跑马灯电路设计的基本方法,提高学生运用所学知识解决实际问题的能力,培养学生对电子设计的兴趣和情感。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容本章节教学内容以《电子技术基础》教材中关于数字电路及EDA技术的内容为基础,结合以下要点展开:1. 数字电路基础知识:包括逻辑门电路、触发器、计数器等基本概念和功能。

2. EDA软件介绍:讲解EDA软件的基本操作、原理图绘制、电路仿真等。

3. 跑马灯电路设计:- 电路原理:介绍跑马灯电路的工作原理、元件选用及连接方式。

- 编程控制:讲解如何利用编程语言(如Verilog HDL)实现对跑马灯电路的控制。

- 进制转换:分析进制转换方法在跑马灯设计中的应用。

4. 电路仿真与调试:教授如何使用EDA软件进行跑马灯电路的仿真、调试及优化。

教学大纲安排如下:第一课时:数字电路基础知识回顾,介绍EDA软件及其基本操作。

第二课时:跑马灯电路原理讲解,分析电路元件及连接方式。

数电课程设计跑马灯

数电课程设计跑马灯

数电课程设计跑马灯一、课程目标知识目标:1. 理解数字电路基础知识,掌握基本逻辑门的功能和运用;2. 学会使用触发器、计数器等组件设计简单的时序逻辑电路;3. 掌握跑马灯电路的原理,了解其设计过程和实现方法。

技能目标:1. 能够运用所学知识,设计并搭建简单的数字电路;2. 能够分析和解决跑马灯电路中可能出现的问题;3. 培养动手实践能力,提高团队协作能力。

情感态度价值观目标:1. 培养学生对数字电路的兴趣,激发学习热情;2. 培养学生严谨的科学态度,注重实践与理论相结合;3. 培养学生的创新意识,鼓励探索未知领域。

课程性质:本课程为电子技术课程的一部分,主要针对数字电路设计进行教学。

通过跑马灯电路的设计,使学生掌握数字电路的基本原理和设计方法。

学生特点:学生已具备一定的电子技术基础,对数字电路有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生的创新能力和团队协作能力。

将课程目标分解为具体的学习成果,以便在教学设计和评估中实现有效监控。

二、教学内容1. 数字电路基础知识回顾:逻辑门(与门、或门、非门等)、触发器(RS触发器、D触发器等)、计数器(二进制计数器、十进制计数器等)。

相关教材章节:第一章 数字逻辑基础2. 跑马灯电路原理:介绍跑马灯电路的构成、工作原理及其在数字电路中的应用。

相关教材章节:第三章 时序逻辑电路3. 跑马灯电路设计:讲解跑马灯电路的设计方法,包括电路图绘制、元件选型、电路搭建等。

相关教材章节:第四章 数字电路设计实例4. 动手实践:分组进行跑马灯电路的设计与搭建,培养学生动手实践能力和团队协作精神。

教学内容安排与进度:第一课时:回顾数字电路基础知识,讲解跑马灯电路原理。

第二课时:讲解跑马灯电路设计方法,制定设计方案。

第三课时:分组进行跑马灯电路的设计与搭建,教师巡回指导。

第四课时:展示各组跑马灯电路成果,总结经验教训。

教学内容注重科学性和系统性,结合教材章节和课程目标,确保学生在学习过程中掌握数字电路的基本原理和设计方法。

闪烁式跑马灯课程设计

闪烁式跑马灯课程设计

闪烁式跑马灯课程设计一、课程目标知识目标:1. 学生能理解跑马灯的基本原理,掌握闪烁式跑马灯电路的设计与搭建。

2. 学生能够运用所学的电子元件知识,正确选择并使用所需的元器件。

3. 学生理解并掌握跑马灯程序设计的基本思路,能够编写简单的跑马灯程序。

技能目标:1. 学生通过动手实践,培养电路搭建和调试的能力。

2. 学生通过编程实践,提高逻辑思维能力和问题解决能力。

3. 学生能够运用团队协作,共同完成跑马灯项目的制作。

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

2. 学生在学习过程中,树立正确的价值观,认识到科技进步对生活的影响。

3. 学生通过团队协作,培养沟通与合作的意识,增强团队荣誉感。

课程性质:本课程为电子技术实践课,以项目式教学为主,注重学生的动手实践能力和创新思维能力的培养。

学生特点:本课程针对的是初中年级学生,他们对电子技术有一定的好奇心,喜欢动手实践,但理论知识相对薄弱。

教学要求:结合学生特点,教师应以引导为主,让学生在实践中学习,注重培养学生的创新意识和实际操作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 理论知识:- 介绍跑马灯的基本原理,包括电路工作原理和程序设计思路。

- 讲解并认识所需的电子元器件,如LED灯、电阻、微控制器等。

- 概述编程基础知识,如循环结构、条件语句等。

2. 实践操作:- 搭建闪烁式跑马灯电路,学习电路连接和调试方法。

- 编写跑马灯程序,掌握程序设计的基本步骤和技巧。

- 实践团队协作,共同完成跑马灯项目制作。

3. 教学大纲:- 第一阶段(1课时):介绍跑马灯原理和电子元器件,明确学习目标。

- 第二阶段(2课时):指导学生搭建电路,讲解编程基础知识。

- 第三阶段(3课时):编写程序,调试电路,完成跑马灯制作。

- 第四阶段(1课时):成果展示,总结评价,交流经验。

4. 教材关联:- 本教学内容与教材中关于电子技术基础、编程入门等章节相关。

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

第一章设计内容与设计方案
1.1课程设计内容
控制8个LED进行花样性显示。

设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮LED。

4种模式循环切换,复位键(rst)控制系统的运行停止。

数码管显示模式编号。

可预置彩灯变换速度,4档快、稍快、中速、慢速,默认工作为中速。

1.2设计方案
在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGA进行一个简单的电子系统设计,本次课程设计采用Verilog HDL硬件描述语言编写控制程序,应用Quartus Ⅱ软件实现仿真测试。

采用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。

2.1设计原理及设计流程
本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。

跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。

第二种显示:从右向左逐个点亮LED。

第三种显示:从两边向中间逐个点亮LED。

第四种显示:从中间到两边逐个点亮LED。

四种显示模式循环切换,并带有一位复位键控制系统的运行停止。

为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来完成灯的点亮,我们将LED灯采用共阳极接法,当给于低电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予低电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。

同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。

为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。

当需要程序复位时,只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。

3.1 Verilog HDL程序
module ceshi(clk,rst,Q,DIN,CLK,a);
input clk,rst;
input [1:0]DIN; //DIN为变换速度档output signed[7:0]Q; //Q为7个LED output [6:0]a; //a为数码管显示模式output CLK; //自定义时钟parameter DOUT=8'b0111_1111;
reg CLK;
reg [6:0]x;
reg [1:0]cs;
reg [7:0]Q;
reg [6:0]a;
always@(posedge clk)begin
x<=7'b0000000;CLK=0;
case(DIN)
0:begin
x<=x+1'b1;
if(x==20)begin
x<=7'b0;
CLK=~CLK;
end
end
1:begin
x<=x+1'b1;
if(x==15)begin
x<=7'b0;
CLK=~CLK;
end
end
2:begin
x<=x+1'b1;
if(x==10)begin
x<=7'b0;
CLK=~CLK;
end
end
3:begin
x<=x+1'b1;
if(x==5)begin
CLK=~CLK;
end
end
default begin
x<=x+1'b1;
if(x==20)begin
x<=7'b0;
CLK=~CLK;
end
end
endcase
end
always@(posedge CLK or negedge rst)begin if(!rst)begin
Q<=DOUT;cs<=2'b00;a=7'b000_0000;
end
else begin
case(cs)
0:begin Q<=Q>>1;Q[7]<=1'b1;a=7'b0111111;
if(Q==8'b1111_1110)begin
Q<=8'b1111_1101;
cs<=2'b01;
end
end
1:begin Q<=Q<<1;Q[0]<=1'b1;a=7'b0000_110;
if(Q==8'b0111_1111)begin
Q<=8'b0111_1110;
cs<=2'b10;
end
end
2:begin Q[7:4]<=Q[7:4]>>1;
Q[3:0]<=Q[3:0]<<1;
Q[7]<=1'b1;
Q[0]<=1'b1;a=7'b1011_011;
if(Q==8'b1110_0111)begin
Q<=8'b1101_1011;
cs<=2'b11;
end
end
3:begin Q[7:4]<=Q[7:4]<<1;
Q[3:0]<=Q[3:0]>>1;
Q[4]<=1'b1;
Q[3]<=1'b1;a=7'b100_1111;
if(Q==8'b0111_1110)begin
Q<=8'b0111_1111;
end
end
default begin
Q<=DOUT;
cs<=2'b00;
a=7'b0000_000;
end
endcase
end
end
endmodule
第四章设计结果及仿真波形4.1 设计结果
图1 顶层文件原理图
4.2仿真波形
4.3仿真结果分析
当输入DIN为00时选择慢速档,CLK的周期大约为20us,随着CLK上升沿的到来输出Q做移位变化,开始从左向右移,数码管段码输出a显示0,然后从右向左移,数码管段码输出a显示1,然后从中间向两边移,数码管段码输出a显示2,然后从两边向中间移,数码管段码输出a显示3,之后循环显示,当按下复位键rst时系统运行停止,第一个灯点亮,数码管无显示。

当输入DIN为01时选择中速档,CLK的周期大约为15us,执行以上循环显示。

当输入DIN为10时选择稍快档,CLK的周期大约为10us,执行以上循环显示。

当输入DIN为11时选择快速档,CLK的周期大约为5us,执行以上循环显示。

第五章设计总结
通过这次有关于EDA技术的课程设计的学习与应用,我们基本了解了EDA技术的相关应用,也掌握了EDA设计的相关软件Quartus7.2的最基础的使用方法,丰富了我们的设计手段,也让我了解了更多的仿真方法。

在上机操作的过程中,刚开始我们遇到了很多的困难,对软件的不熟悉以及对原理掌握的不透彻,使得刚开始的时候举步维艰,但是经过对最简单的模型的设计及仿真练习过后,我们基本掌握了软件的使用方法,通过软件仿真及对各个参数的设置,我们不断调试仿真出来的波形。

这期间我们也了解到,虽然软件的仿真功能很强大,但是还是需要操作人员仔细的进行观察及调试的,否则也容易出现仿真错误。

这次的学习开阔了我们的视野,使我们了解了更多的专业方面的实际应用,在生产应用方面的用处等,以及专业方面的发展方向等……随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。

EDA技术发展迅猛,完全可以用日新月异来描述。

EDA技术的应用广泛,现在已涉及到各行各业。

EDA水平不断提高,设计工具趋于完美的地步,所以我们更加应该多多掌握这方面的知识。

第六章参考文献
[1] 潘松、黄继业编著. EDA技术与VHDL,北京:清华大学出版社
[2] 边计年主编.用VHDL设计电子线路, 北京:清华大学出版社
[3] 王金明,杨吉斌编著.数字系统设计与Verilog HDL.北京:电子工业出版社
[4] 徐志军,徐光辉编著.CPLD/FPGA的开发与应用.北京:电子工业出版社
[5] 叶天迟主编.EDA实用技术实验及课程设计指导书.长春:自编实验指导书。

相关文档
最新文档