跑马灯电路设计

合集下载

单片机课程设计--跑马灯设计

单片机课程设计--跑马灯设计

单片机课程设计(跑马灯设计)专业:电气自动化摘要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课件

单片机实例之跑马灯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输出窗口设置
.

数字电路设计-跑马灯

数字电路设计-跑马灯
入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制。INH 为低电平时,计数器在时钟上升沿计数;反之,计数功能无效。CR 为高电平时,计数器清零。
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

任务9 用自制的跑马灯电路实现8只LED循环点亮

任务9  用自制的跑马灯电路实现8只LED循环点亮

任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
• (2)短调用指令ACALL addr11 ;;PC←PC+2 • ;SP←SP+1 • ;(SP)←PC7-0 • ;SP←SP+1 • ;(SP)←PC15-8 • ; PC10-0←addr10-0
9.1.2 跟我想 1. 编写跑马灯程序思路 该任务要求通过编写程序,使连接P0口的8个LED灯循环点亮(跑马灯), 每个灯点亮的时间为0.5秒。怎样来编写程序呢?我们用一个寄存器R1存储 用于点亮P0口的LED灯的数据,R1首先存储点亮与P0.0相连的LED灯D0 (数据为:0000001H),可以通过指令MOV P0,R1将与P0.0相连的 LED0点亮,然后调用延时0.5秒的程序,延时时间到后,可以带进位位左移 指令RR A,将R1中的数据左移一位(数据为:00000010),再送给P0口, 点亮与P0.1相连的LED灯D1,依次类推;用寄存器R2存储LED灯从D0移动 到D7的移动次数为8次,每移一次减1,R2的值为0时,表示第1次循环结束, 接下来又从点亮D0开始下一个循环,就这样反复循环点亮,达到跑马灯的效 果。 在编写程序之前,让我们学一学相关指令的功能和用法。
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
• • 2)移位指令 ) 移位指令的功能是对累加器A的内容进行循环移位,除了带进位标 志位CY的移位指令会影响CY外,其它指令都不影响CY、AC、OV等标志 位。 RL A ;循环左移指令;
图6-1 RL A指令示意图
• • • • • • • • • • • • • • • • • • • • • • 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

跑马灯控制电路设计

跑马灯控制电路设计

跑马灯控制电路设计 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芯片的使用方法。

跑马灯实验报告基于硬件设计的跑马灯电路

跑马灯实验报告基于硬件设计的跑马灯电路

数字电子技术基于硬件设计的跑马灯电路系别:电力工程系班级:姓名:学号:一、实验目的1. 熟悉NE555定时器,计数器CD4017的逻辑特性。

2. 熟悉NE555构成多谐振荡器原理。

3. 设计跑马灯电路并利用Multisim软件仿真电路。

二、实验要求1. 知道NE555、CD4017的管脚排列顺序。

2. 利用NE555构成多谐振荡器。

3. 知道电阻的主要参数及其标注方法。

(见实验指导书116页)。

4. 知道电容器的主要作用。

(见实验指导书122页)。

5. 了解有关焊接的知识。

三、实验器材电路板1块。

电容:1μF(1个)。

集成芯片:NE555(1个)、CD4017(1个)。

电阻:22KΏ、1KΏ、500Ώ各一个。

二极管:IN4148(8个)、发光二极管(10个)。

(自行提供)电池:5V四、电路的安装1.555用来定时,用它产生某种方波,相当于有的时钟信号2.4017是个十进制计数器,按照时钟信号从10个口依次输出1. 检查集成芯片NE555,CD4017的安装位置有无错误.2. 检查电解电容的极性有无错误;3. 检查二极管IN4148及发光二极管的安装方向有无错误;4. 检查各个电阻的安装是否有误。

5. 检查有无虚焊。

五、电路的调试1. 电路焊接好后,先将电路板正负端接到直流电压5V及地线处,观察发光二极管是否变亮。

2. 适当改变电位器阻值,观察其对CD4017循环周期(发功二极管依次循环一周)的影响。

3. 利用秒表记录CD4017一个合适循环周期的时间。

(分别测量电阻最大时、最小时、合适时的周期)附录1. 跑马灯电路图分析电路输出图像2. CD4017的相关资料CD4017是5位Johnson计数器,具有10个译码输出端,CP,CR,INH输入端,时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制。

其引脚排列如下引出端功能符号:进位脉冲输出 CP:时钟输入端CR:清除端(CR接低电位时,开始计数。

51单片机8个跑马灯程序设计思路

51单片机8个跑马灯程序设计思路

51单片机8个跑马灯程序设计思路单片机是一种集成电路,内部包含了计算机的主要组件,如中央处理单元(CPU)、存储器等。

通过编程,可以实现各种不同的功能。

在这里,我将以设计一个8个跑马灯的程序为例,来讲解单片机程序的设计思路。

1.硬件准备首先,我们需要准备一个适用于单片机的开发板,例如STC89C52,以及8个LED灯。

将LED灯连接到开发板的GPIO引脚上,并通过电阻进行限流。

使用跳线将GPIO引脚与LED灯的正极连接。

2.程序结构设计在单片机程序中,我们通常会使用循环结构。

因此,在设计跑马灯程序时,我们可以使用一个无限循环,来实现LED灯的闪烁效果。

具体的程序结构如下所示:```c#include <reg52.h>sbit led0 = P0 ^ 0; //第1个LED灯sbit led1 = P0 ^ 1; //第2个LED灯sbit led2 = P0 ^ 2; //第3个LED灯//...sbit led7 = P0 ^ 7; //第8个LED灯void mainwhile (1)//跑马灯代码}}```在这段代码中,我们首先引入头文件`reg52.h`,它包含了STC89C52的寄存器定义和常用函数的声明。

然后,我们定义了8个宏,用于表示8个LED灯所连接的引脚号。

接下来,在`main(`函数中,我们使用一个无限循环`while(1)`,来实现LED灯的闪烁效果。

3.跑马灯实现思路在无限循环中,我们需要通过对GPIO的控制来实现8个LED灯的闪烁。

具体的实现思路如下:- 首先,我们可以定义一个变量`index`,用于表示当前亮起的LED灯的索引值。

初始时,`index`的值为0,表示第一个LED灯亮起。

- 然后,我们可以使用`switch...case`语句来判断当前的`index`值,从而控制不同的LED灯亮起。

- 在每次循环中,我们可以通过对`index`的递增来实现灯的滚动效果。

跑马灯控制系统电路设计

跑马灯控制系统电路设计

HDL数字系统课程设计报告书目录一、设计目的 (1)二、设计思路 (1)三、设计过程 (1)3.1、系统方案论证 (1)3.2、程序代码设计 (2)四、系统调试与结果 (5)五、主要元器件与设备 (8)六、课程设计体会与建议 (8)6.1、设计体会 (8)6.2、设计建议 (9)七、参考文献 (9)论文摘要:共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;regt1,dir; //cnt1控制状态2 led灯的亮次数reg[3:0]t2; //cnt2控制状态2 led灯的亮次数reg[2:0]t3; //cnt3控制状态2 led灯的亮次数always(posedge clk)beginif(rst) begint1<=0;cnt2<=0;cnt3<=0;dir<=0;endelsecase(sel)// LED按奇数,偶数依次显示2'b00:beginled_r=16'b10101;if(cnt1==0)led<=led_r;else led<=led_r<<1;t1<=cnt1+1;end// LED顺序依次显示,顺序依次熄灭2'b01:beginif(!dir)beginif(cnt2==0) begin led_r=16'b00001;led<=led_r;endelse begin led<=(led<<1)+led_r;endif(cnt2==15) begin dir<=~dir;endt2<=cnt2+1;endelsebeginif(cnt2==0) begin led_r=16'b11110;led<=led_r;endelse begin led<=led<<1; endif(cnt2==15) begin dir<=~dir;endt2<=cnt2+1;endend// LED由两侧向中间依次显示,由中间向两侧依次熄灭2'b11:beginif(!dir)beginif(cnt3==0) beginled_r=16'b00001;led_r1=16'b00000;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;endt3<=cnt3+1;endelsebeginif(cnt3==0) begin led_r=16'b11110;led_r1=16'b11111;endelsebegin led_r=led_r<<1;led_r1=led_r1>>1;endled<=led_r&led_r1;if(cnt3==7)begin dir<=~dir;endt3<=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芯片,观察程序是否能控制硬件的实现。

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

跑马灯分析如下:
跑马灯电路采用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。

表2
X/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功能表
该器件具有四种工作方式:同步并行置入、右移、左移、空操作(禁止时钟)。

当加有四位数据并且两个方式控制输入端S1和S0均为高电平时就可以完成并行置数。

在时钟输入正跳变后数据被置入相应的触发器并出现于输出端。

在置数期间,串行数据流被禁止。

当S0为高电平,S1为低电平时,在时钟脉冲上升沿到来时,完成同步右移操作。

此方式的串行数据在右移数据输入端送入。

当S0为低电平,S1为高电平时,数据同步左移,新的数据在左移串行输入端送入。

当S0和S1均为低电平时,触发器的时钟被禁止。

引出端功能符号
Q0~Q3 ∙∙∙∙∙∙∙∙∙∙∙∙∙数据输出端;
D0~D3 ∙∙∙∙∙∙∙∙∙∙∙∙∙并行数据输入端;
S1~S0∙∙∙∙∙∙∙∙∙∙∙∙∙方式控制输入端;
MR∙∙∙∙∙∙∙∙∙∙∙∙∙清零端;
DSR∙∙∙∙∙∙∙∙∙∙∙∙∙右移串行输入端;
DSL∙∙∙∙∙∙∙∙∙∙∙∙∙左移串行输入端;
CP∙∙∙∙∙∙∙∙∙∙∙∙∙时钟输入端。

功能表
74LS153双4――1线数据选择器/多路开关
74LS153包含两个完全相同的4选1数据选择器。

两个数据选择器有公共的地址输入端,而数据输入端和输出端是各自独立的。

通过给定不同的地址代码,可从4个输入数据中选出所要的一个,并送至输出端。

引出端功能符号
S0~S1∙∙∙∙∙∙∙∙∙∙∙∙∙数据选通输入端;
D13~D10∙∙∙∙∙∙∙∙∙∙∙∙∙数据输入端;
D23~D20∙∙∙∙∙∙∙∙∙∙∙∙∙数据输入端;
A1~A0∙∙∙∙∙∙∙∙∙∙∙∙∙选择输入端;
Y1~Y2 ∙∙∙∙∙∙∙∙∙∙∙∙∙数据输出端。

功能表
从74194功能表中,在数据移动关系中我们可以得到如下关系:八路信号灯右移时,右移输入信号初值为1送入BSRSI,将高四位Q B0 Q B1Q B2 Q B3的Q B3传给低四位的Q A0Q A1Q A2Q A3的ASRSI;八路信号灯左移时,左移输入信号初值为0送入ASLSI,将低四位的Q A0Q A1Q A2Q A3中的Q A0传给高四位Q B0 Q B1Q B2 Q B3,既送入BSLSI;八路信号灯闪烁时,并行送数为脉冲信号;八路信号灯左右同时移时,分别在BSRSI及ASLSI送入1。

表格如下:
表6.6.3
采用四选一电路,实现此功能。

从电路仿真波形中可以看出,八路信号输出依次闪烁、右移、左移、和左右移同时进行,完成了电路设计要求。

设计注意事项:
闪烁控制利用D触发器实现方波输出脉冲信号,应用74194置数操作即可实现;
注:时钟信号5HZ,
闪烁脉冲取常态信号为低电平;。

相关文档
最新文档