跑马灯设计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; // 标记按键状态已经改变}}}。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器)(FPEROM—Flash Programmable and Erasable Read Only Memory 的低电压、高性能CMOS 8位微处理器,即单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
该设计使用A T89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。
开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。
时继续,并要求有多种亮暗组合。
按键跑马灯 按键单片机 跑马灯关键词:A T89C51单片机目录摘要 (I)第一章芯片分析和设计概述 (3)第一节 AT89C51芯片分析 (3)第一节第二节 设计概述 (8)第二节第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章 芯片分析和设计概述第一节 AT89C51芯片分析ATMEL 的AT89S51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
且价廉的方案。
AT89C51AT89C51的芯片引脚图如下:的芯片引脚图如下:图1.1 AT89C51引脚图引脚图各引脚的说明和功能分析如下:各引脚的说明和功能分析如下:VCC VCC:供电电压。
:供电电压。
:供电电压。
GND GND:接地。
:接地。
:接地。
P0口:口:P0P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
时,被定义为高阻输入。
P0P0能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。
4017跑马灯课程设计
4017跑马灯课程设计一、课程目标知识目标:1. 学生能理解跑马灯的基本原理,掌握跑马灯电路的设计与搭建;2. 学生能运用所学知识,分析跑马灯电路中各个组件的作用及相互关系;3. 学生了解跑马灯在生活中的应用,提高对电子技术的认识和兴趣。
技能目标:1. 学生能独立完成跑马灯电路的搭建,提高动手操作能力;2. 学生能通过跑马灯电路的设计与制作,培养创新思维和问题解决能力;3. 学生能运用跑马灯项目,提高团队协作和沟通能力。
情感态度价值观目标:1. 学生通过跑马灯课程,培养对电子技术的热爱和好奇心,增强学习动力;2. 学生在跑马灯设计与制作过程中,树立自信心,勇于面对挑战,培养克服困难的意志;3. 学生在团队协作中,学会尊重他人,培养良好的合作精神和沟通能力。
课程性质:本课程为电子技术实践课程,结合理论知识与动手操作,培养学生的实际应用能力。
学生特点:四年级学生具有一定的电子技术基础,好奇心强,喜欢动手操作,但注意力容易分散,需要激发兴趣和引导。
教学要求:注重理论与实践相结合,强调学生动手操作和团队协作,注重培养学生的学习兴趣和创新能力。
通过跑马灯课程,使学生在实践中掌握知识,提高技能,培养情感态度价值观。
教学过程中,关注学生个体差异,因材施教,确保每个学生都能达到课程目标。
二、教学内容本课程教学内容围绕跑马灯电路的设计与制作展开,包括以下部分:1. 跑马灯原理及电路设计- 介绍跑马灯基本原理,引导学生理解电路工作过程;- 结合课本相关章节,讲解跑马灯电路的设计方法,分析电路中各组件的作用及选型。
2. 跑马灯电路搭建与调试- 指导学生进行跑马灯电路的搭建,培养学生的动手操作能力;- 引导学生根据电路原理图,连接电路,并调试电路,确保跑马灯正常工作。
3. 跑马灯程序编写与优化- 介绍跑马灯程序的编写方法,结合课本内容,使学生掌握编程技巧;- 引导学生优化程序,实现跑马灯的不同效果,培养学生的创新思维。
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波形图文件,设置为波形仿真。
单片机跑马灯课程设计
第一章概论随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
本产品不仅具有电路简单,造价便宜,功耗低等优点,还有多种亮灯花样。
而且可以通过修改源程序中延迟程序的参数来改变亮灯速度和频率,还可以通过修改表中的数据来改变亮灯的方式,这便大大提高了产品的性能与灵活性,使产品不会局限于单一的功能而限制产品的适用范围。
课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。
进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。
综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。
学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。
通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。
第二章设计方案2.1、设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
2.2、设计要求以MCS51单片机为核心,辅以外围接口电路,设计一个花样LED闪烁彩灯,使彩灯按事先编好的流程不断闪烁,并有不同种闪烁花样。
LED灯管可以使用共阳极,单片机芯片可采用AT89C52。
数电课程设计(跑马灯)
数字电子技术课程设计设计题目:跑马灯目录设计题目 (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实验一:流水灯与跑马灯
准备工作注意事项:先听老师进行讲解,然后才可以进行后面的操作。
①先进行软件破解。
破解方法可参考附件《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个灯都点亮时,需要一个操作使得所有的灯恢复为初始状态,即灯都不亮。
跑马灯课程设计
摘要:本设计使用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,再次读取按键状态。
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跑马灯程序加仿真
实验四跑马灯的设计一、实验目的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
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进制模块用来控制彩灯输出模块,即确定跑马灯控制器的不同的输出。
数字电路设计-跑马灯
数字电路课程设计报告设计课题:跑马灯专业班级:12电信2班学生姓名:刘鹏学号:120802084指导教师:曾祥志设计时间:2016.4-2016.5目录1 设计要求 (2)1.1 设计规范 (2)2 设计方案 (2)2.1题目分析 (2)2.2 整体构思 (2)3 元件说明 (3)3.1 元件说明 (3)3.2电路原理图 (3)4 安装与调试 (6)5 心得体会........................... ............. (7)6参考文献......................................... .. (7)7附录 (8)1 设计任务与要求1.1 设计规范(1)、根据技术指标要求确定电路形式,分析工作原理,计算元件参数。
(2)、安装调试所设计的电路,使之达到设计要求。
(3)、记录实验结果。
(4)、撰写设计报告。
设计要求(1)实现10灯循环点亮。
(2) 红绿灯各5盏。
(3)实现红绿灯流水交替显示。
2设计方案2.1题目分析我们设计的跑马灯实际上是主要使用一个555芯片产生脉冲给到,CD4017芯片对10个LED进行控制,产生流水交替的效果。
形成跑马灯。
2.2 整体构思拟定系统方案框图,画出系统框图中每框的名称、信号的流向,各框图间的接口,使用电路设计软件画出原理图。
3. 元件说明3.1元件说明555功能:555 的功能主要由两个比较器决定。
两个比较器的输出电压控制RS 触发器和放电管的状态。
在电源与地之间加上电压,当5 脚悬空时,则电压比较器C1 的同相输入端的电压为2VCC /3,C2 的反相输入端的电压为VCC /3。
若触发输入端TR 的电压小于VCC /3,则比较器C2 的输出为0,可使RS 触发器置1,使输出端OUT=1。
如果阈值输入端TH 的电压大于2VCC/3,同时TR 端的电压大于VCC /3,则C1 的输出为0,C2 的输出为1,可将RS 触发器置0,使输出为低电平。
跑马灯的设计与仿真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时序设计的基本方法和技巧,在这个过程中遇到很多困难,比如:总线、支线、数据分配、源信号丢失等编译错误,但最终通过查阅相关资料解决了这些问题。
跑马灯设计 电子课程设计
电子课程设计题目:时钟和跑马灯电路
学院:
专业:
学号:
姓名:
指导:
成绩:
一、实习目的
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.整个电路焊接完成后便可插入集成块进行测试,焊接时应谨慎小心,由于此电路焊点多且密,注意不要出现相临焊点连在一起,不要出现虚焊。
六、小结
这个设计实习非常有意义,让我学会了识别和使用各种电子元件,培养了我对电子技术的兴趣。
初步接触了电路板,使我懂得其设计要点和工作原理。
通过动手实践我发现了一些不足并且通过自己的努力解决了问题,这让我很高兴,对以后的学习大有裨益!。
跑马灯课程设计报告
课程设计报告课题名称基于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 跑马灯设计一、实验目的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课程设计跑马灯设计
第一章设计内容与设计方案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跑马灯课程设计一、课程目标知识目标: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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跑马灯设计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,这样就得到了相应的现象。
同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都能够采用这样赋值的方法。
为了达到四种显示模式循环切换的目的,能够将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此重复循环。
当需要程序复位时,只需按下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;。