跑马灯控制电路设计
《嵌入式技术应用开发项目教程》项目2 跑马灯控制设计
GPIO_AF_SEL(DIGITAL, PB, 1, 0); //设置PB1引脚是数字通道和GPIO功能
GPIO_AF_SEL(DIGITAL, PB, 2, 0); //设置PB2引脚是数字通道和GPIO功能
GPIO_AF_SEL(DIGITAL, PB, 3, 0); //设置PB3引脚是数字通道和GPIO功能
uint16_t temp, i;
void delay(unsigned int count)
//延时函数
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
int main()
{
GPIO_AF_SEL(DIGITAL, PB, 0, 0); //设置PB0引脚是数字通道和GPIO功能
3.LED循环点亮控制设计与实现
实施过程:
1.移植工程模板
复制“任务3 LED闪烁控制” 文件夹,然后然后修改文件夹 名为“任务4 LED循环点亮控 制”,USER文件夹下的M0_ LED.uvprojx工程名不用修改 。
2. LED循环点亮控制程序设计
#include <SC32F5832.h>
#include <GPIO.h>
GPIO_AF_SEL(DIGITAL, PB, 7, 0); //设置PB7引脚是数字通道和GPIO功能
PB->OUTEN|=0x00ff;
//PB0~PB7引脚输出使能,既设置PB0~PB7引脚为输出引脚
PB -> OUT = 0x00ff;
//PB0~PB7输出高电平,LED1~LED8熄灭
跑马灯控制电路设计
HDL数字系统课程设计报告书目录一、设计目的2二、设计思路2三、设计过程23.1、系统方案论证23.2、程序代码设计3四、系统调试与结果5五、主要元器件与设备9六、课程设计体会与建议96.1、设计体会96.2、设计建议9七、参考文献10论文摘要:共16个LED灯,连成一排,实现几种灯的组合显示。
通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
此外,本实验也可通过EDA软件Quartus6.0和modelSim SE 6.0实现。
关键词: HDL数字系统跑马灯设计一、设计目的1、熟悉Verilog HDL程序编程。
2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。
3、熟悉Quartus II 6.0和Modesim SE 6.0软件的使用。
4、了解16个数码管的显示原理和方法。
二、设计思路1、编写跑马灯设计程序。
2、定义LED灯引脚分配。
3、设计状态控制。
4、下载到EPEK30QC208-2芯片上显示。
三、设计过程3.1、系统方案论证16位LED跑马灯设计框图如图1所示:图1 LED跑马灯设计框图3.2、程序代码设计module paomadeng(rst,clk,sel,led); //端口定义,参数列表input rst,clk; //rst复位,clk为4Hz的时钟信号input[1:0] sel; //sel 状态选择端口output[15:0] led; //led 跑马灯显示reg[15:0] led;reg[15:0] led_r,led_r1;reg t1,dir; //t1控制状态2 led灯的亮次数reg[3:0] t2; //t2控制状态2 led灯的亮次数reg[2:0] t3; //t3控制状态2 led灯的亮次数always(posedge clk)beginif(rst) begin t1<=0;t2<=0;t3<=0;dir<=0;endelsecase(sel)// LED按奇数,偶数依次显示2'b00:beginled_r=16'b0101010101010101;if(t1==0)led<=led_r;else led<=led_r<<1;t1<=t1+1;end// LED顺序依次显示,顺序依次熄灭2'b01:beginif(!dir)beginif(t2==0) begin led_r=16'b0000000000000001;led<=led_r;end else begin led<=(led<<1)+led_r;endif(t2==15) begin dir<=~dir;endt2<=t2+1;endelsebeginif(t2==0) begin led_r=16'b1111111111111110;led<=led_r;endelse begin led<=led<<1; endif(t2==15) begin dir<=~dir;endt2<=t2+1;endend// LED由两侧向中间依次显示,由中间向两侧依次熄灭2'b11:beginif(!dir)beginif(t3==0) beginled_r=16'b0000000000000001;led_r1=16'b1000000000000000;endelsebegin led_r=(led_r<<1)|led_r;led_r1=(led_r1>>1)|led_r1;endled<=led_r|led_r1;if(t3==7)begin dir<=~dir;endt3<=t3+1;endelsebeginif(t3==0) begin led_r=16'b1111111111111110;led_r1=16'b0111111111111111;endelsebegin led_r=led_r<<1;led_r1=led_r1>>1;endled<=led_r&led_r1;if(t3==7)begin dir<=~dir;endt3<=t3+1;endenddefault: ;endcaseendendmodule引脚分配:to,locationrst, pin_47 //复位引脚clk, pin_79//时钟控制引脚sel[0], pin_45 //状态控制引脚sel[1], pin_46//状态控制引脚led[0], pin_19//0—15个LED灯显示引脚led[1], pin_24led[2], pin_25led[3], pin_26led[4], pin_27led[5], pin_28led[6], pin_29led[7], pin_30led[8], pin_31led[9], pin_36led[10], pin_37led[11], pin_38led[12], pin_39led[13], pin_40led[14], pin_41led[15], pin_44四、系统调试与结果1、LED灯和波形结果显示结果如图2,3,4,5,6,7所示图2、先奇数灯亮,即第1、3、5、7、9、11、13、15灯亮图3、偶数灯亮,即第2、4、6、8、10、12、14、16灯亮图4、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次点亮图5、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次熄灭所有灯图6按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次点亮图7、按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次熄灭灯波形显示:图8、LED灯按先奇数,偶数灯亮图9、LED灯依次按顺次亮,顺次熄灭图10,LED灯依次从两边向中间亮,两边向中间熄灭五、主要元器件与设备EDA技术试验箱,EDA软件QuartusⅡ6.0,ModelSim SE 6.0分频芯片:SN74HC04N—2,SN74LS393N—4片LED灯16个LED灯,电脑一台六、课程设计体会与建议6.1、设计体会通过这次对跑马灯控制电路的设计与制作,让我了解了设计电路的程序,也让我了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
单片机课程设计--跑马灯设计
单片机课程设计(跑马灯设计)专业:电气自动化摘要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能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。
单片机实例之跑马灯PPT课件
40
常用的调试按钮
KEIL 软件开发平台
复位按钮全,速按停运止全进速入跳循运跳过环行出循并单环步并执执单行行到断点处
下后,所行有的
系统状态将变
单步执行步执过行程
成初始状态。
图3-27 调试按钮
.
41
KEIL 软件开发平台
二、ISP软件的使用
打开下载软件,双击目录下的文件 ISP析,实现任务的思路是:程序 开始时,给某一变量赋初始值0xFE,然后每次将 数据左移后送入P1口直到所有循环次数输出完毕, 再次重复整个过程。根据思路得出的程序框图如 图3-29所示。
.
46
图3-29 程序流程图
.
47
(1)C语言程序:
#include "reg51.h"
#include "intrins.h"
退出此程序。
.
42
.
43
任务二 跑马灯
本任务让图3-28中的LED依次点亮
图3-28 LED硬件图
.
44
程序设计分析
为了让图3-28所示的LED依次点亮,就是要求从P1口从 P1.0至P1.7依次输出低电平,其余引脚都输出高电平,就 能让被接在端口的彩灯依次点亮。
从输出的具体的数据来看,第一个LED点亮需要的输 出数据,是对应于P1.0的位为0,其余位为1,组合为一个 字节时对应的二进制位从高到低为:1111 1110,即十六 进制数0xFE;同理,第二个LED点亮对应的数为:1111 1101,化为十六进制数为0xFD。
图3-10 目标1属性设置窗口
.
24
KEIL 软件开发平台
图3-11 目标1输出窗口设置
.
跑马灯电路设计
跑马灯分析如下:跑马灯电路采用74LS194为核心控制彩灯左移、右移及闪烁功能,围绕74LS194的S1、S0工作的控制方式,S1、S0需要自动周期性的变化,为了实现自动模式转换,设计一个状态计数器,控制彩灯模式转换,利用74153双四选一电路,将S1、S0的状态置入74194,完成周期性地读取。
本设计方案的关键是S1、S0状态信息如何传送给74194,S1、S0状态信息要与整个彩灯控制电路相匹配,不同的S1、S0状态,送入74LS194数据输入端的数据不同,利用74LS153作为数据选通,连接到74LS194数据输入端,不同的工作状态,选通数据输出不同,这是设计的主要关键点之一。
电路中,利用74161完成状态计数工作,每8个时钟脉冲,状态计数器完成加一操作,完成移位方式控制,利用74194完成左移或右移及闪烁功能功能,利用74153完成左右移数据输入选通控制。
根据任务要求列出自动循环状态和74194移位控制工作方式表2。
表2X/0表示电路设计过程中,尽管状态表中取任意态,但在实际电路连接中,取低电平。
彩灯控制器完成左移、右移、闪烁及同时左右移,只需要4种状态,故状态计数器完成模4计数即可。
移位寄存器的工作状态由方式控制字S1、S0决定,查阅74LS194数据手册,确定S1、S0工作方式。
利用表.2,分析S1、S0的状态。
因为彩灯是八路输出,用两片74LS194,其中高位标号为74194B,低位为74194A,所以高位的74LS194工作方式标称为BS1、BS0,低位为AS1、AS0。
将BS1、BS0、AS1、AS0放在一起,用74153将数据状态选通输出即可从表格中可以看出,状态计数器描述计数状态,移位寄存器完成左移、右移、闪烁、左右同时移动功能,且自动循环进行。
2)74153选通电路及74194移位电路控制设计74194功能表该器件具有四种工作方式:同步并行置入、右移、左移、空操作(禁止时钟)。
数字电路设计-跑马灯
Johnson 计数器,提供了快速操作、2 输入译码选通和无毛刺译码输出。防锁选通,保证了正确的计数顺序。译码输出一般为低电平,只有在对应时钟周期内保持高电平。在每10 个时钟输入周期CO 信号完成一次进位,并用作多级计数链的下级脉动时钟。
555引脚图:
功能表:
清零端
高触发端TH
低触发端TR
V0
放电管T(V)
功能
0
x
x
0
导通
直接清零
1
0
1
x
保持上一状态
保持上一状态
1
1
0
1
截止
置1
1
0
0
1
截止
置1
1
1
1
0
导通
清零
CD4017:十进制计数器/脉冲分配器
CD4017 是5 位Johnson 计数器,具有10 个译码输出端,CP、CR、INH 输入端。时钟输
7附录………………………………………………………………………………………………………..8
1 设计任务与要求
1.1设计规范
(1)、根据技术指标要求确定电路形式,分析工作原理,计算元件参数。
(2)、安装调试所设计的电路,使之达到设计要求。
(3)、记录实验结果。
(4)、撰写设计报告。
设计要求
(1)实现10灯循环点亮。
2 设计方案..........................................................2
跑马灯控制电路设计
跑马灯控制电路设计 The Standardization Office was revised on the afternoon of December 13, 2020HDL数字系统课程设计报告书目录一、设计目的.......................... 错误!未定义书签。
二、设计思路.......................... 错误!未定义书签。
三、设计过程.......................... 错误!未定义书签。
、系统方案论证.................... 错误!未定义书签。
、程序代码设计.................... 错误!未定义书签。
四、系统调试与结果.................... 错误!未定义书签。
五、主要元器件与设备.................. 错误!未定义书签。
六、课程设计体会与建议................ 错误!未定义书签。
、设计体会........................ 错误!未定义书签。
、设计建议........................ 错误!未定义书签。
七、参考文献............................. 错误!未定义书签。
论文摘要:共16个LED灯,连成一排,实现几种灯的组合显示。
通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
此外,本实验也可通过EDA软件和modelSim SE 实现。
关键词: HDL 数字系统跑马灯设计一、设计目的1、熟悉Verilog HDL程序编程。
2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。
任务9 用自制的跑马灯电路实现8只LED循环点亮
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
• (2)堆栈的作用 • 堆栈的作用是在子程序调用与中断时,用于保存断点地址及片 内数据单元的内容。 • (3)堆栈的使用方法 • • 需要用到堆栈时,首先通过MOV SP,#data指令设置栈底,如 :MOV SP,#60H. 注意: 注意:51单片机复位后,默认的栈底为07H,即SP的默认值为 07H。因07H地址在RAM的工作寄存器区,所以用07H作为栈底 ,不是很合适,使用时必须另设栈底。
• • • • • • • • • • • • • • • • • • • • • • ORG 0000H AJMP START ;转移至标号START ORG 0030H ;以下程序下载到单片机的ROM时,从ROM的0030地址开始存储 START: MOV R1, #00000001B ;将立即数01H送R1 MOV R2, #08 ;将立即数8送R2,循环8次(8个灯) LOOP: MOV A, R1 ;将R1中的数送A MOV P0, A ;将A中的数送P0口,点亮LED灯 CALL DEL1S ;调用延时子程序,控制亮灯时间 RL A ;A中的数据左移一位,为下一次亮灯作准备 MOV R1, A ;左移后的数据存放在R1 DJNZ R2, LOOP ;循环了8次吗?没有则继续 AJMP START ;完成8次循环,转移至START重新开始 ;***************1秒钟延时子程序************************************* DEL1S: MOV R3, #5 DEL: MOV R4, #100 DEL1: MOV R5, #250 DEL2: NOP DJNZ R5, DEL2 DJNZ R4, DEL1 DJNZ R3, DEL RET END
跑马灯控制设计与实现
② GPIO_Write()函数是向指定IO口写数据,也就是是向寄存器ODR写数 据
n 例如:向PC8写1的代码是: GPIO_WriteBit(GPIOC, GPIO_Pin_8, 1);
n STM32的IO端口操作
n 输入输出函数
1. GPIO_ReadInputDataBit ()函数
n 是读取指定IO口的对应引脚值,也就是读取IDR寄存器的值 n 例如:读取GPIOA.6(既PA6)引脚值:
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
2. GPIO_ReadInputData ()函数
n 常用的IO端口寄存器有6个:CRL、CRH、IDR、ODR、BSRR 和BRR。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 在前面,我们围绕STM32的IO端口寄存器如何使用,进行了详 细的介绍。现介绍一下IO口的操作步骤,步骤如下:
1. 调用RCC_APB2PeriphClockCmd()函数,使能IO口时钟; 2. 调用GPIO_Init()函数,初始化IO口参数; 3. 使用IO口操作方法,对IO口进行各种操作。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 初始化函数
3. GPIO_ReadOutputDataBit ()和GPIO_ReadOutputData ()函数
① GPIO_ReadOutputDataBit ()函数是读取指定IO口某个引脚的输出值 ,也就是读取寄存器ODR相应位的值
11.2 跑马灯控制程序设计
二、跑马灯控制程序设计 结合顺序控制设计法来设计跑马灯控制程序。
首先来看一下该任务的控制要求: 要求通过启动按钮SB1使得8盏灯按照L0、L1~L7的 顺序亮,每隔1S亮一盏灯;再按L7、L6~L1、L0的 顺序灭,每隔1S灭一盏灯;如此循环,直至按下停 止按钮SB2,全部灯熄灭,停止工作。
下面我们按步来看一下程序的编写: (2)S1步:S1步是起始步,表示程序开始运行,满足 转换条件SB1可以进入S2步。SB1为启动按钮I0.0,按 下后程序开始运行,S2步激活。我们使用M0.0来指示 启停状态,M0.0为1表示启动,M0.0为0表示停止。这 段程序比较简单,使用置位线圈指令,当I0.0按下, 使M0.0置位为1。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
(4)S3步和S4步
S3步负责控制左移,S4步负责控制右移,这两步 是密切相关的。由于操作对象是MW20,是一个字的存 储空间,所以我们要选择字的移位指令。如图蓝色圈 中所示,使用移位脉冲T1,T1每1S产生一个下降沿, 检测这个下降沿使移位指令产生移位。如图红色圈中 所示,在写入初值后,一次移一位,先左移,就会看 到MB20的各个位,从M20.0至M20.7依次变1;等M20.7 变1了,再右移,一次移一位,就会看到MB20的各个 位,从M20.7至M20.0依次变0。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
第二项工作是为移位对象写入初值,有的同学要 问了,移位对象不是输出Q0.0至Q0.7吗?应该这么说 ,控制Q0.0至Q0.7是我们的目的,怎么来达到这个目 的呢?为了避免直接控制输出所带来的误操作,我们 要使用一个中间存储空间MW20来作为移位对象,将移 位后的结果通过MB20来传送到QB0。我们来看看这个 MW20的空间,MW20包含MB20和MB21两个字节,给这个 空间填入初值W#16#FF,这时MB20的各个位为0,MB21 的各个位为1。
跑马灯控制电路设计
HDL数字系统课程设计报告书目录一、设计目的.......................... 错误!未定义书签。
二、设计思路.......................... 错误!未定义书签。
三、设计过程.......................... 错误!未定义书签。
、系统方案论证..................... 错误!未定义书签。
、程序代码设计..................... 错误!未定义书签。
四、系统调试与结果.................... 错误!未定义书签。
五、主要元器件与设备.................. 错误!未定义书签。
六、课程设计体会与建议................ 错误!未定义书签。
、设计体会......................... 错误!未定义书签。
、设计建议......................... 错误!未定义书签。
七、参考文献............................. 错误!未定义书签。
论文摘要:共16个LED灯,连成一排,实现几种灯的组合显示。
通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
此外,本实验也可通过EDA软件和modelSim SE 实现。
关键词: HDL 数字系统跑马灯设计一、设计目的1、熟悉Verilog HDL程序编程。
2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。
3、熟悉Quartus II 和Modesim SE 软件的使用。
4、了解16个数码管的显示原理和方法。
跑马灯电路设计
跑马灯电路设计单片机嵌入式系统中的跑马灯就像C语言的―Hello World!‖程序一样,虽然简单,却是一个非常经典的例子。
对初学者来说,通过跑马灯系统设计的学习与编程,能很快熟悉单片机的操作方式,了解单片机系统的开发流程,并通过第一个实例增强自己学习单片机系统设计的信心。
下面详细讲解跑马灯电路的设计。
6.1.1 跑马灯跑马灯,顾名思义,就是―会像马儿一样跑动‖的小灯,故取名―跑马灯‖。
跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由8个LED发光二极管组成,可以方便地显示一个8位数据(0~255)。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
如图6-1所示为开发板上的跑马灯,由8个贴片LED发光二极管组成,下面详细介绍LED 发光二极管的知识与电路设计方法。
6.1.2 发光二极管基础知识发光二极管的英文名为Light Emitting Diode,简称LED,发明于20世纪60年代,几十年来,发光二极管在各种电路及嵌入式系统中得到了广泛的应用,跑马灯使用的―小灯‖就是8个并排的LED。
LED发光二极管将电能转变成光能,可由Ⅲ-V族半导体材料制成。
当工作在正向偏置状态时,LED发光二极管与普通的二极管极其相似,其同样具备单向导电特性,不同之处仅在于当加上正向偏置时,LED发光二极管将向外发光,此时能量通过PN结的载流子过程从电能转换为光能。
LED发光二极管具有亮度高、耗电小、体积小、重量轻、寿命长、可靠性高、价格便宜等优点,已经被广泛地应用到不同的产品中,作为电源指示灯、系统状态灯、信号灯等用途。
在通常工作状态下,LED发光二极管的使用寿命保守估计约为10万小时,部分甚至可以达到100万小时。
倒计时光控跑马灯电路设计
电子线路课程设计报告设计课题:倒计时跑马灯倒计时跑马灯一、设计任务该制作能自行识别工作环境,即白天“跑马灯”自行停止运行,待到傍晚天暗下来,数码管自动显示“0”时,说明“跑马灯”电路得电即可以工作运行。
此后手工按下工作键,电路延时十秒钟,在延时的同时,数码管倒计时显示“0-9-8-7-6-5-4-3-3-2-1-0”。
当其从“1-0”瞬间,“跑马灯”立即分两路工作,工作过程是:1)第一路是绿灯红灯(绿灯在前,红灯在后)在黑暗背景中流动。
当绿灯独自从头到尾流动时,这一路的任何变色管不亮,形成黑暗背景。
而绿灯在尾部消失瞬间,红灯立即出现在头部并开始从头部到尾部独自地沿原来绿灯路线在黑暗背景中流动。
当红灯在尾部消失瞬间,绿灯立即出现在头部并开始从头部到尾部独自地沿原来绿灯路线在黑暗背景中流动·····彼此循环往复。
第一路是绿灯红灯(绿灯在前,红灯在后)在橙色背景中流动。
当绿灯独自从头到尾流动时,这一路的变色管显橙色,形成橙色背景。
而绿灯在尾部消失瞬间,红灯立即出现在头部并开始从头部到尾部独自地沿原来绿灯路线在橙色背景中流动。
当红灯在尾部消失瞬间,绿灯立即出现在头部并开始从头部到尾部独自地沿原来绿灯路线在橙色背景中流动·····彼此循环往复。
直到第二天凌晨天亮后,数码管熄灭····再到傍晚时,作品有重复上述过程。
二、设计要求1)电源稳压管输出电压用绿发光二极管指示2)脉冲信号发生器输出用红发光二极管指示3)二路“跑马灯”各用五只变色发光二极管制作4)数码管得电后显示“0”,倒计时只能从“0”开始,经“0-9-8-7-6-5-4-3-3-2-1-0”再停在“0”状态,此间延时十秒。
5)“跑马灯”严格地按照“手动按下工作键后”,当倒计时至“1-0”瞬间开始运动,在运动过程中,数码管始终保持“0”态。
单片机课程设计跑马灯的控制
单片机课程设计跑马灯的控制摘要:本设计选择对跑马灯的控制,先构思跑马灯实现预想效果,然后进行分析,根据要求编写程序,选择硬件端口,并进行调试致预想效果,最后浅谈课程设计的经历,以及总结。
目录一)课程设计的目的二)课程设计的要求三)流程图四)原理图五)程序语言六)总结七)参考资料设计题目:试设计一个闪烁跑马灯控制器,该控制器可以控制8个灯顺序亮灭。
当单片机上电后,8个灯依次从左向右亮,并且每个灯亮的时间为1秒钟。
这时,如果按钮K1按下,则灯亮的顺序是从右向左,同样,每个灯亮的时间是1秒钟。
这时,如果按下按钮K2,则此时,4个灯亮4个灯灭,延迟4秒钟以后,又开始从左向右点亮。
最后,若按下按钮K3,则全部灯亮。
此时若想再次点亮灯,必须重新上电。
题目分析:该题目要求控制8盏灯的亮灭,可使用单片机的P1.0到P1.8口来控制。
按钮K1用P3.4口,K2用P3.2口,及外部中断0,K3用P3.3口,及外部中断1,分别来实现。
单片机使用AT89C52,电源使用5V标准电源。
顺序亮灭使用外部中断源构成循环控制语句。
一、课程设计的目的课程设计是本专业集中实践环节的主要内容之一。
训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。
学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。
例如组成系统、编程、调试、绘图等。
使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。
通过本课程设计,主要达到以下目的:1.使学生增进对单片机的感性认识,加深对单片机理论方面的理解。
2.使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。
3.使学生了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
二、课程设计的要求1.学生需认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉各种设计规范的有关内容,认真完成任务书规定的设计内容。
数字电路设计-跑马灯
数字电路课程设计报告设计课题:跑马灯专业班级: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,使输出为低电平。
基于AT89C51单片机的跑马灯电路课程设计
目录1 实验目的 (1)2 元器件清单及简介 (1)3 设计原理及分析 (1)3.1 主要设计要求 (1)3.2 实验总流程图 (2)3.3 实验总图及说明 (3)4 实验中的问题与改进 (3)5 总结 (4)5.1 四级调速 (4)5.2 跑马灯闪烁方向的改变 (5)5.3 跑马灯循环闪烁灯的个数的改变 (6)6 实验分析与心得 (7)参考文献: (9)附录............................................... 错误!未定义书签。
基于AT89C51单片机的跑马灯电路课程设计1实验目的了解AT89C51管脚的基本功能,学会运用Proteus 7.7设计电路,学会运用汇编语言编写程序,来实现跑马灯的左右转换、0.1ms,0.25ms,0.5ms,1ms的四级变速、灯的闪烁个数为1,2,3,4等功能。
使用KEIL C51设计单片机程序,生成HEX文件,将程序烧录到AT89C51芯片中。
然后在实验电路中运行,调试。
2元器件清单及简介3设计原理及分析3.1主要设计要求1.灯的循环左右移动。
2.灯循环闪烁的个数可由1变到4。
3.灯循环闪烁的速度可变,分别是现0.1ms,0.25ms,0.5ms,和1ms的循环转变。
4.能在仿真图和面包板上进行实物运行并实现以上功能。
并能尽量节省器材。
3.2实验总流程图图1实验流程图3.3实验总图及说明图2 实验总图1.右边与P0口相连的8个灯采用上拉电阻方式,采用此方式是因为P0口驱动能力较大,且内部无上拉电阻,因此采用低电平驱动时,需加上拉电阻;且防止因电流过大而烧毁二极管。
2.左边依次与P1.0-P1.5的开关K0、K1、K2、K3、K4、K5,右边与P2.0-P2.3依次相连开关为K6、K7、K8、K9。
3.K0、K1控制灯的闪烁方向;K2、K3、K4、K5控制跑马灯闪烁的速度;K6、K7、K8、K9控制跑马灯灯闪烁的个数。
4.当有开关按下时相应的P口被置0,定时器中扫描P口程序扫描到相应P口为低电平,从而转到相应子程序执行,从而达到1所说功能。
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,这样就得到了相应的现象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HDL数字系统课程设计报告书目录一、设计目的 (2)二、设计思路 (2)三、设计过程 (2)3.1、系统方案论证 (2)3.2、程序代码设计 (3)四、系统调试与结果 (5)五、主要元器件与设备 (9)六、课程设计体会与建议 (9)6.1、设计体会 (9)6.2、设计建议 (10)七、参考文献 (10)论文摘要:共16个LED灯,连成一排,实现几种灯的组合显示。
通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
此外,本实验也可通过EDA软件Quartus6.0和modelSim SE 6.0实现。
关键词: HDL 数字系统跑马灯设计一、设计目的1、熟悉Verilog HDL程序编程。
2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。
3、熟悉Quartus II 6.0和Modesim SE 6.0软件的使用。
4、了解16个数码管的显示原理和方法。
二、设计思路1、编写跑马灯设计程序。
2、定义LED灯引脚分配。
3、设计状态控制。
4、下载到EPEK30QC208-2芯片上显示。
三、设计过程3.1、系统方案论证16位LED跑马灯设计框图如图1所示:图1 LED跑马灯设计框图3.2、程序代码设计module paomadeng(rst,clk,sel,led); //端口定义,参数列表input rst,clk; //rst复位,clk为4Hz的时钟信号input[1:0] sel; //sel 状态选择端口output[15:0] led; //led 跑马灯显示reg[15:0] led;reg[15:0] led_r,led_r1;reg cnt1,dir; //cnt1控制状态2 led灯的亮次数reg[3:0] cnt2; //cnt2控制状态2 led灯的亮次数reg[2:0] cnt3; //cnt3控制状态2 led灯的亮次数always@(posedge clk)beginif(rst) begin cnt1<=0;cnt2<=0;cnt3<=0;dir<=0;endelsecase(sel)// LED按奇数,偶数依次显示2'b00:beginled_r=16'b0101010101010101;if(cnt1==0)led<=led_r;else led<=led_r<<1;cnt1<=cnt1+1;end// LED顺序依次显示,顺序依次熄灭2'b01:beginif(!dir)beginif(cnt2==0) begin led_r=16'b0000000000000001;led<=led_r;end else begin led<=(led<<1)+led_r;endif(cnt2==15) begin dir<=~dir;endcnt2<=cnt2+1;endelsebeginif(cnt2==0) begin led_r=16'b1111111111111110;led<=led_r;end else begin led<=led<<1; endif(cnt2==15) begin dir<=~dir;endcnt2<=cnt2+1;endend// LED由两侧向中间依次显示,由中间向两侧依次熄灭2'b11:beginif(!dir)beginif(cnt3==0) beginled_r=16'b0000000000000001;led_r1=16'b1000000000000000;endelsebegin led_r=(led_r<<1)|led_r;led_r1=(led_r1>>1)|led_r1;endled<=led_r|led_r1;if(cnt3==7)begin dir<=~dir;endcnt3<=cnt3+1;endelsebeginif(cnt3==0) begin led_r=16'b1111111111111110;led_r1=16'b0111111111111111;endelsebegin led_r=led_r<<1;led_r1=led_r1>>1;endled<=led_r&led_r1;if(cnt3==7)begin dir<=~dir;endcnt3<=cnt3+1;endenddefault: ;endcaseendendmodule引脚分配:to,locationrst, pin_47 //复位引脚clk, pin_79 //时钟控制引脚sel[0], pin_45 //状态控制引脚sel[1], pin_46 //状态控制引脚led[0], pin_19//0—15个LED灯显示引脚led[1], pin_24led[2], pin_25led[3], pin_26led[4], pin_27led[5], pin_28led[6], pin_29led[7], pin_30led[8], pin_31led[9], pin_36led[10], pin_37led[11], pin_38led[12], pin_39led[13], pin_40led[14], pin_41led[15], pin_44四、系统调试与结果1、LED灯和波形结果显示结果如图2,3,4,5,6,7所示图2、先奇数灯亮,即第1、3、5、7、9、11、13、15灯亮图3、偶数灯亮,即第2、4、6、8、10、12、14、16灯亮图4、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次点亮图5、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次熄灭所有灯图6按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次点亮图7、按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次熄灭灯波形显示:图8、LED灯按先奇数,偶数灯亮图9、LED灯依次按顺次亮,顺次熄灭图10,LED灯依次从两边向中间亮,两边向中间熄灭五、主要元器件与设备EDA技术试验箱,EDA软件QuartusⅡ6.0,ModelSim SE 6.0分频芯片: SN74HC04N—2,SN74LS393N—4片LED灯 16个LED灯,电脑一台六、课程设计体会与建议6.1、设计体会通过这次对跑马灯控制电路的设计与制作,让我了解了设计电路的程序,也让我了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
但是最后的成品却不一定与仿真时完全一样,因为,电路模拟与仿真是在理想的环境下,在实际中因为芯片本身的特性而能够成功。
所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。
此外,本实验也可通过EDA软件Quartus6.0和modelSim SE 6.0实现。
通过这次学习,让我对各种电路的设计和控制都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。
6.2、设计建议我希望老师在我们动手制作之前应先告诉我们一些关于所做电路的资料、原理,以及如何检测电路的方法,还有关于检测芯片的方法。
这样会有助于我们进一步的进入状态,完成设计。
七、参考文献[1][美].Palnitkar.VerilogHDL数字设计与综合.北京:电子工业出版社,2010年;[2]袁俊泉.verilog HDL数字系统设计及其应用.西安:西安电子科技大学出版社,2003年;[3]黄继业.EDA技术实验教程.北京:科学出版社.[4]夏宇闻.verilog数字系统设计教程.北京:北京航空航天大学出版社,2008年;[5]贺敬凯.基于FPGA的专用CPU的设计.深圳: 深圳信息职业技术学院学报,2008年;[6]潘松.EDA技术与VHDL.北京:清华大学出版社,2007年;[7] 贺敬凯. verilog HDL数字设计教程.西安:西安电子科技大学出版社,2010年;[8]李洪伟.基于QuartusⅡ的FPGA/CPLD设计.北京:电子工业出版社,2010年.。