当前位置:文档之家› 单片机控制的花样流水灯设计

单片机控制的花样流水灯设计

单片机控制的花样流水灯设计

目录

引言 (3)

1. 绪论 (4)

2 相关元件及电路设计 (4)

2.1 AT89C52芯片功能特性及应用 (4)

2.2 AT89C5252单片机 (5)

2.2.1 AT89C52单片机的硬件结构 (5)

2.2.2主要性能参数 (6)

2.2.3 AT89C52管脚说明 (7)

2.2.4 外部总线构成 (11)

2.3 单片机时钟电路及时钟时序单位 (12)

2.4单片机的复位 (13)

2.4.1 复位状态 (13)

2.4.2 复位电路 (14)

3.Keil C51开发系统基本知识Keil C51开发系统基本知识 (15)

4 电路及程序设计 (16)

4.1 电路原理图设计 (16)

总结 (17)

参考文献 (18)

附录 (19)

引言

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C52单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发更快地成为单片机领域的优秀人才。

1. 绪论

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。本设计用AT89C51单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。

2 相关元件及电路设计

2.1 AT89C52芯片功能特性及应用

单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、传真机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料表明:2007年全球单片机的产值达到151亿美元,我国单片机的销售额达到400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。

AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,

片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。

其主要工作特性是:

(1)片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;(2)片内数据存储器内含256字节的RAM;

(3)具有32根可编程I/O口线;

(4)具有3个可编程定时器;

(5)中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;(6)串行口是具有一个全双工的可编程串行通信口;

(7)具有一个数据指针DPTR;

(8)低功耗工作模式有空闲模式和掉电模式;

(9)具有可编程的3级程序锁定位;

(10)AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;

在AT89C52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是24MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快

2.2 AT89C5252单片机

2.2.1 AT89C52单片机的硬件结构

AT8952系列单片机内部采用模块式结构,其结构组成框图如图1所示。

程序存储器数据存储器

图1 AT8952系列单片机组成框图

由图1可见,MCS-52系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口~P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。

2.2.2主要性能参数

•8K字节可重擦写Flash闪速存储器

•1000次可擦写周期

•全静态操作:0Hz-24MHz

•三级加密程序存储器

•256×8字节内部RAM

•32个可编程I/O口线

•3个16位定时/计数器

•8个中断源

•可编程串行UART通道

•低功耗空闲和掉电模式

图 2 AT89C52外部引脚图

2.2.3 AT89C52管脚说明

VCC:电源

GND:接地

P0口:P0口是一个8位漏级开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口端口写“1”时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接受指令字节:在程序效验时,输出指令字节。程序效验时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P1口写“1”时,内部上拉电阻的原因,将输出电流I LL。

此外,与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX),具体如下表所示。

表 1 P1.0和P1.1的第二功能引脚号功能特性

P1.0 T2(定时/计数器2外部计数脉冲

在Flash编程和校验时,P1口接收低8位地址字节。

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流I LL。

在访问外部好曾许存储器或用16位地址读取外部数据存储器时,P2口送出高8位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P3口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流I LL。P3口除了作为一般、的I/O口线外,更重要的是它的第二功能,如下表所示。

表 2 P3口引脚第二功能

在Flash编程和校验时,P3口也接收一些控制信号。

RST:复位输入。晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。

ALE/PROG:地址锁存器控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(PROG)也使用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。

PSEN:外部程序储存器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据储存器时,PSEN将不被激活。

EA VPP:访问外部程序存储器控制信号。为使能从0000H—FFFFH的外/

部程序存储器读取指令,EA端必须保持低电平(接地)。为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接受12伏VPP电压。

XTA L1:振荡器反相放大器及内部时钟发生器的输入端。

XTA L2:振荡器反相放大器的输出端。

MCS-52系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。采用40引脚PDIP封装的80C52单片机的引脚排列及逻辑符号如图2所示。

由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。为解决这一矛盾,单片机的某些信号引脚被赋以双重功能。

1)电源及电源复位引脚:

(1)V CC (40脚):正常操作时接+5V 直流电源。

(2)V SS (20脚):接地端。 P1P3RST A XTAL1XTAL2V

V SS

PS E

I/O I/O 图3 40引脚PDIP 封装的80C52单片机的引脚

排列及逻辑符号图

(3)RST/V PD (9脚):复位信号输入端。在该引脚上输入一定时间(约两个

机器周期)的高电平将使单片机复位。该引脚的第二功能是V PD ,即备用电源输

入端。当主电源发生故障,降低到低电平规定值时,可将+5V 备用电源自动接入V PD 端,以保护片内RAM 中的信息不丢失,使复电后能继续正常运行。

(4)EA /V PP (31脚):访问程序存储器控制信号/编程电源输入。当EA 保持高电平时,访问内部程序存储器,访问地址范围在0~4KB 内;当PC (程序计数器)值超过0FFFH ,即访问地址超出4KB 时,将自动转向执行外部程序存储器内的程序;当EA 保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H 地址开始)。由此可见,对片内有可用程序存储器的单片机而言,EA 端应接高电平,而对片内无程序存储器的单片机,可将EA 接地。

对于EPROM 型单片机,在EPROM 编程期间,此引脚用于施加21V 的编程电源(V PP )。

2)时钟振荡电路引脚XTAL1和XTAL2:

(1)XTAL1(19脚):外接石英晶体和微调电容引脚1。它是片内振荡电路反向放大器的输入端。采用外部振荡器时此引脚接地。

(2)XTAL2(18脚):外接石英晶体和微调电容引脚2。它是片内振荡电路反向放大器的输出端。采用外部振荡器时此引脚为外部振荡信号输入端。

3) ALE/PROG(30脚):低8位地址锁存控制信号/编程脉冲输入。在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。在访问外部程序存储器期间,ALE信号两次有效;而在访问外部数据存储器期间,ALE信号一次有效。对于EPROM型单片机,在EPROM编程期间,此引脚用于输入编程脉冲PROG。

4)PSEN(29脚):外部程序存储器的读选通信号输出端,低电平有效。在从外部程序存储器取指令(或常数)期间,此引脚定时输出负脉冲作为读取外部程序存储器的信号,每个机器周期PSEN两次有效,此时地址总线上送出的地址为外部程序存储器地址;在此期间,如果访问外部数据存储器和内部程序存储器,不会产生PSEN信号。

5)并行双向输入/输出(I/O)口引脚:

(1)P0口的P0.0~P0.7引脚(39~32脚):8位通用输入/输出端口和片外8位数据/低8位地址复用总线端口。

(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。

(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。

(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。

2.2.4 外部总线构成

所谓总线,就是连接单片机与各外部器件的一组公共的信号线。当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设备间的互连更容易实现。

利用片外引脚可以构造MCS-51系列单片机的三总线结构。单片机的引脚除

了电源端VCC 、接地端VSS 、复位端RST 、晶振接入端XTAL1和XTAL2、通用I/O 口的P1.0~P1.7以外,其余的引脚都是为实现系统扩展而设置的。用这些引脚构造的单片机系统的三总线结构如3所示。

数据总线

地址总线

控制总线

图4 MCS-51系列单片机片外三总线结构

1)地址总线(Address Bus ,AB ):MCS-51系列单片机总共有16根地址线A15~ A0,片外存储器可寻址范围达64KB (216=65536字节),由P2口直接提供高8位地址A15~ A8,P0口经地址锁存器提供低8位地址A7~ A0。

2)数据总线(Data Bus ,DB ):MCS-51系列单片机总共有8根数据线D7~D0,全由P0口提供。由于P0口是分时复用总线,分时输送低8位地址(通过地址锁存器锁存)和高8位数据信息。

3)控制总线(Control Bus ,CB ):控制总线由P3口的第二功能WR (P3.6)、RD (P3.7)和3根独立的控制线EA 、ALE 、PSEN 组成。

2.3 单片机时钟电路及时钟时序单位

1) 时钟电路

单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。MCS-52单片机时钟电路示意图如图4所示。

二分频状态时钟

机器周期ALE

图5 MCS-52单片机时钟振荡电路示意图

在MCS-52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.2~12MHz 。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为f osc /2;状态时钟三分频后为ALE 信号,其频率为f osc /6;状态时钟六分频后为机器周期,其频率为f osc /12。

在图4中,使用晶体振荡器时,C1、C2取值30±10pF;使用陶瓷振荡器时,C1、C2取值40±10pF。C1、C2的取值虽然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值20~30pF 。在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。

也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns 。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图5所示。

外部脉冲信号

图6 MCS-52单片机外部时钟输入接线图

所谓时序,是指在指令执行过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的先后关系。CPU发出的控制信号有两类:一类是用于单片机内部的,用户不能直接接触此类信号,不必对它作过多了解;另一类是通过控制总线送到片外的,人们通常以时序图的形式来表示相关信号的波形及出现的先后次序。为了说明信号的时间关系,需要定义时序单位。89C52的时序单位共有四个,从小到大依次是拍节、状态、机器周期和指令周期。如图4所示。

f OSC

(XTAL2)

2.4单片机的复位

2.4.1 复位状态

复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。

单片机复位后,除P3~P0的端口锁存器被设置成FFH、堆栈指针SP设置成

07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。

2.4.2 复位电路

单片机的复位操作有上电自动复位和手动按键复位两种方式。上电自动复位操作要求接通电源后自动实现复位操作。如图1.5-1所示。图6(a)所示为最简单的复位电路。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。

相比于图6(a),图6(b)所示的电路只是增加了外接二极管V

D

和电阻R。

其优越性在于停电后,二极管V

D

给电容C提供了快速放电通路,保证再上电时RST为高电平,从而保证单片机可靠复位。正常工作时,二极管反偏,对电路没

影响。断电后,V

CC 逐渐下降,当V

CC

=0时,电容C通过V

D

迅速放电,恢复到无电

量的初始状态,为下次上电复位做好准备。

V D

(a) (b)

图6 上电自动复位电路

手动按键复位要求在电源接通的条件下,用按钮开关操作使单片机复位,如图7所示。其工作原理为:复位键按下后,电容C通过R2放电,放电结束后,RST引脚的电位由R1和R2 分压决定,由于R2<

按键按下的瞬间电容C放电产生火花,保护按键的触点。

R2

270

VD

图7 手动按键复位电路

系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位结合。复位电路虽然简单,但其作用十分重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值的方法进行检测。

3.Keil C51开发系统基本知识Keil C51开发系统基本知识

系统概述

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

2. Keil C51单片机软件开发系统的整体结构

C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51

for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

使用独立的Keil仿真器时,注意事项

* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

* 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

4 电路及程序设计

4.1 电路原理图设计

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C52单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O 口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C52单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

设计原理图如图8所示:

图8流水灯硬件原理图

总结

本次课程设计我的课题是花样流水灯的设计,开始的几个星期我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。在本次课程设计过程中,我增强了自己的动手能力和分析能力。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。

总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。

基于51单片机的花样流水灯设计

摘要 摘要 计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。单片机具有体积小、功能强大、低功耗、应用广泛等特点。以AT公司的芯片AT89C51 单片机来实现流水灯的设计。本系统由单片机控制,I/O口接LED的负极,而LED的正极则直接与5V电源相连。通过I/O口输出的低电平点亮LED灯。因此可以通过控制单片机的I/O口的电平高低以达到控制LED,从而实现不同花样的流水灯的目的。 关键词:LED,单片机,高低电平变化

ABSTRACT The rapid development of computer technology and improving, bring us to the new era, now, the application of computer has been deep into the thousands. Single chip microcomputer is made on an integrated circuit chip computer, hereinafter referred to as single chip microcomputer. SCM has been widely used in the present society, small to People's Daily electronic products, big to aerospace aircraft, spacecraft, above has the wide application of single-chip microcomputer. SCM has small volume, powerful function, low power consumption, wide application, etc. AT the company's chip AT89C51 single-chip microcomputer to realize the water lamp design. This system controlled by single chip microcomputer, I/O ports connect the LED the cathode, and LED the anode is directly connected to 5V power supply. Through the I/O port output low level light leds. So you can single chip microcomputer control through the I/O ports to control LED, the level of high and low so as to realize the purpose of the different pattern of flowing water light. Key words:LED , MCU ,High and Low output leve

单片机花样流水灯设计实验报告

**大学 物理学院 单片机花样流水灯设计实验 课题:花样流水灯设计 班级: 物理 *** 姓名: *** 学号: ……………

当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管

1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED 灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

单片机流水灯的程序

单片机流水灯的程序 一、流水灯的概念 流水灯是一种在特定硬件基础上编写的程序,它可以通过单片机控制LED灯的亮灭,从而实现一种特定的灯光效果。流水灯的程序通常利用单片机的定时器/计数器功能,通过对GPIO(通用输入输出)口的操作,控制LED灯的亮灭状态。在程序运行时,LED灯按照特定的顺序逐个亮起,就像流水一样,因此被称为流水灯。 二、硬件组成 要实现流水灯效果,需要准备的硬件包括单片机、LED灯、限流电阻、杜邦线等。其中,单片机是核心控制单元,LED灯是显示设备,限流电阻用于保护LED灯,杜邦线用于连接单片机和LED灯。 三、程序编写 下面是一个基于Arduino的流水灯程序。Arduino是一种常用的单片机开发板,具有易于学习和使用的特点。在这个程序中,我们将使用Arduino板的数字口来控制LED灯的亮灭。 cpp

define NUM_LEDS 8 // LED灯的数量 void setup() { //初始化数字口为输出模式 for (int i = 0; i < NUM_LEDS; i++) { pinMode(i, OUTPUT); } void loop() { //逐个点亮LED灯 for (int i = 0; i < NUM_LEDS; i++) { digitalWrite(i, HIGH); //点亮LED灯 delay(200); //延时200毫秒 digitalWrite(i, LOW); //熄灭LED灯 }

四、程序调试 将程序上传到Arduino板,然后依次连接好LED灯和限流电阻,最后用杜邦线将它们连接到Arduino板的数字口上。当程序运行时,应该可以看到LED灯按照特定的顺序逐个亮起,形成流水灯效果。如果出现问题,可以检查硬件连接是否正确,或者修改程序中的延时时间等参数。 单片机心型流水灯程序 随着科技的不断发展,单片机已经成为了现代电子设备中不可或缺的一部分。其中,流水灯程序作为一种常见的单片机应用,被广泛应用于各种场合。本文将介绍一种基于单片机的简单心型流水灯程序,以帮助读者更好地了解这方面的知识。 一、硬件准备 为了实现心型流水灯程序,我们需要准备以下硬件: 1、单片机开发板(如AT89C51) 2、发光二极管若干

初学单片机花样流水灯(10种亮法)c语言程序

sfr P1=0x90; void delay(unsigned int); void main(void) { unsigned char led,i; while(1) { led=0xfe; for(i=0;i<8;i++) { P1=led; delay(500); led=(led<<1)+1; } for(i=0;i<9;i++) { P1=led; delay(500); led=led<<1; } led=0xff; for(i=8;i>0;i--) { P1=led; delay(500); led=led>>1; } for(i=0;i<5;i++) { P1=led; delay(500); led=(led<<2)+1; } for(i=0;i<5;i++) { P1=led; delay(500); led=(led>>2); } for(i=0;i<9;i++) { P1=led; delay(500); led=(led>>1)+128;

} { led=0xe7; P1=led; delay(500); led=0xc3; P1=led; delay(500); led=0x81; P1=led; delay(500); led=0x00; P1=led; delay(500); } { led=0x7e; P1=led; delay(500); led=0x3c; P1=led; delay(500); led=0x18; P1=led; delay(500); led=0x00; P1=led; delay(500); } { led=0xe7; P1=led; delay(500); led=0xdb; P1=led; delay(500); led=0xbd; P1=led; delay(500); led=0x7e; P1=led; delay(500); } {

单片机课程设计花样流水灯

河南理工学院 课程设计说明书 题目:把戏流水灯设计 姓名: 院〔系〕: 专业班级: 学号: 指导教师: 成绩: 时间:2021 年 4 月23 日至2021 年5月29日

河南理工学院 课程设计任务书 题目: 把戏流水灯设计 专业、班级 学号 主要内容、根本要求、主要参考资料等: 主要内容: 利用单片机控制16个发光二极管模拟的彩灯按照一定的规律点亮、熄灭、闪烁。 根本要求: 1.实现发光二极管的多样化显示; 2.利用proteus软件完成设计电路和仿真; 3.掌握相关芯片和电子元件的使用方法; 4.通过此次设计将单片机软硬件结合起来对程序进行编辑、校验,锻炼实践能力和理论联系实际的能力。 主要参考资料: [1]李全利,单片机原理及接口技术[M],高等教育出版社 [2]王文杰,单片机应用技术[M],冶金工业出版社 [3]朱清慧,PROTEUS教程—电子线路设计、制版与仿真[M],清华大学出版社 [4]单片机实验指导书,天煌教仪 [5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社 完成期限:2021.4.23-2021.5.29 指导教师签名: 课程负责人签名: 年月日

目录 绪论 0 1 课程设计的目的和要求 (1) 1.1 设计目的 (1) 1.2 设计要求 (1) 2 总体设计 (1) 2.1 硬件总体设计 (1) 2.1.1 设计思想 (1) 2.1.2 原件清单 (1) 2.1.3 模块分析 (1) 2.2软件总体设计.................................................................................................... 错误!未定义书签。 3 硬件设计 (2) 3.1 AT89C51单片机的硬件结构 (2) 3.1.1主要特性 (3) 3.1.2主要引脚功能 (3) 3.1.3外部总线结构 (5) 3.1.4振荡器特性 (5) 3.1.5芯片擦除 (5) 3.2硬件电路设计 (6) 3.2.1震荡电路 (6) 3.2.2LED电路显示 (7) 3.2.3复位电路 (8) 4软件设计 (8) 4.1主程序设计 (8) 4.2子程序设计 (9) 4.3流水灯控制码程序设计 (9) 4.4程序流程图 (9) 5使用proteus软件调试仿真说明 (10) 5.1 Proteus的介绍 (10) 5.2 Proteus的特点 (10) 5.3 Proteus的使用方法 (10) 5.4电路原理图的设计方法 (11) 5.5仿真过程 (12) 6测试数据 (12) 7附录 (13) 7.1把戏流水灯程序 (13) 7.2把戏流水灯总线路图 (13) 结束语 (15) 参考文献 (15)

单片机课程设计花样流水灯2

前言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯不断变化闪烁。LED灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 流水灯是一串按一定的规律像流水一样连续闪亮。流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,利用移位寄存器实现最为便利。通常用左移寄存器实现灯的单方向移动;用双向移位寄存器实现灯的双向移动。本案例利用价格低廉的AT89C51系列单片机控制基色LED灯泡从而实现丰富的变化。 1、课程设计的目的和要求 1.1 设计目的 近年来随着科技的发展,单片机的应用正在不断走向深入,同时带动传统控制检测日新月异更新,在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象点的软件结合,加以完善。流水灯,可以更简单、方便的使用。通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论,分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案。

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

基于单片机的花样流水灯设计

题目基于单片机的花样流水灯 姓名王志远学号 201103320275 所在系电子电气工程学院专业年级 P11电气自动化五班指导教师李霞 二〇一二年十二月二十八日

摘要 本文是基于51单片机的花样流水灯的项目设计,在项目程序设计中运用了单片机AT89C51芯片,在程序检测与试验中实现了计数清零(CLR)暂停(LJMP)延时(DELAY)进而实现流水灯循环点亮,控制8个发光二极管的流水亮灭。最后通过实验体现单片机在现实生活中的作用。

目录 摘要 (2) 目录 (3) 一.引言 (4) 二、设计目的 (5) 三、设计要求 (5) 四.硬件组成 (5) 五.软件编程 (7) 5.1流程框图 (7) 5.2 花样流水灯主程序 (8) 六、总结与体会 (10) 七、参考文献 (11)

一.引言 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发更快地成为单片机领域的优秀人才。

单片机花样流水灯设计实验报告

单片机花样流水灯设计实验报告 * * 大学 物理学院 单片机花样流水灯设计实验 课题: 花样流水灯设计班级: 物理 *** 姓名: *** 学号: 【摘要】 当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管 2 【概述】 1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集

成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。 3 【设计方案】 1.设计原理 AT89C51单片机内部包括微处理器、存储器(存放程序指令或数据的 ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。 要实现流水灯功能,只要将发光二极管Led1,Led8依次点亮、熄灭,8只LED 灯便会一亮一暗的做流水灯状,设计花样时可依此类推。此外还应注意的是人眼的视觉暂留效应以及单片机执行每条指令的时间很短,所以控制二极管亮/灭的时候应延时一段时间,否则将无法以肉眼观察到“流水”等花样效果。 2.电路原理图 3.器件配置清单 4

单片机41钟花样爱心流水灯

#include #define uint unsigned int #define uchar unsigned char uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移 uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移 uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位) uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位) uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位) uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位) uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0) uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0) uchar i,j; //定义循环变量 uint tt=70; //定义时间指数 void delay(uint time) //延时函数 { uint x,y; for(x=time;x>0;x--) for(y=110;y>0;y--); } void disp0() //状态0 所有LED闪烁3次 { for(i=0;i<3;i++) { P0=0x00; P2=0x00; P3=0x00; P1=0x00; delay(300); P0=0xff; P2=0xff; P3=0xff; P1=0xff; delay(300); } } void disp1() //状态1 LED顺时针转一圈 { for(i=0;i<8;i++) { P2=table1[i]; delay(100); }

花样流水灯设计

一、原理图设计的目的: 利用AT89C51,通过控制按键来实现六种流水灯把戏的转换,实现把戏流水灯的设计,同时通过外部中断0,来控制流水灯的速度。 二、各器件的功能作用: 1、AT89C51 AT89C51有40个引脚,每个引脚都有其功能。本次设计中,利用P0口当输出口,输出低电平来驱动发光二极管点亮。利用P1.0~P1.5六个引脚,通过按键接地,然后采用扫描的方式,判断哪个引脚所接按键按下,从而来控制六种流水灯的把戏。利用P3.2引脚外接按键接地,通过控制按键来减慢流水灯的速度,利用P3.3引脚外接按键接地,通过控制按键来提高流水灯的速度。利用P3.7输出低电平,导通三极管Q1,从而给八个发光二极管的阳极加高电平,一旦P0口输出低电平就可以驱动发光二极管。 2、八个发光二极管: 通过八个发光二极管来实现流水灯的变化,用低电平驱动发光二级管亮,同时,用高电平使其熄灭 。 3、按键 通过P1.0-P1.5外接的按键来实现流水灯各种把戏的变化,当按键按下时,驱动一种流水灯把戏的闪烁。同时,利用按键来提供外部中断,当按下按键时,产生一个外部中断,向CPU申请中断,CPU响应其中断,因此可以用按键来实现提高流水灯闪烁的速度。

通过在RST口处加上一个按钮手动复位电路,利用复位按钮可以使运行中的流水灯复位到初始的状态。 4、排阻 因为P0口作为输出口时需要外接上拉电阻 三、设计原理图: 四、程序如下: #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay(uint);//声明延时函数 void main(void) { uint i; uchar temp; TCON=0*05; IE=0*85; P*1=1; P*0=0; while(1) { temp=0*01; for(i=0;i<8;i++) //8个流水灯逐个闪动 { P0=temp; delay(100);//调用延时函数 temp<<=1; } temp=0*80; for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P0=temp; delay(150);//调用延时函数 temp>>=1; } temp=0*FE; for(i=0;i<8;i++) //8个流水灯依次全部点亮 { P0=temp;

单片机控制左右循环的流水灯设计

单片机控制左右循环的流水灯设计 单片机是一种微型计算机芯片,可以用于控制和管理各种电子设备。流水灯是一种经典的电子元件,通过依次点亮或熄灭一组LED灯来形成流动效果。本文将设计一个使用单片机控制的左右循环流水灯。 设计思路: 1.硬件设计: a.先准备一个单片机开发板、一组LED灯和与LED灯串联的电阻。 b.将LED灯按照循序连接,连接方式可以为并联或串联。 c.通过引脚和外部电路将LED灯与单片机的IO口相连。每个LED灯与一个IO口相连,并且通过电阻限流。 2.软件设计: a.在单片机上编写控制流水灯的程序。这可以使用C语言或汇编语言进行编写。 b.程序主要通过循环结构来实现流水灯的效果。编写一个循环函数,用于控制LED灯的点亮和熄灭。 c.在循环函数中,通过控制IO口输出高电平或低电平来控制LED灯的亮灭。每次循环,根据需要逐个点亮或熄灭LED灯。 d.为了实现左右循环的效果,可以通过改变点亮或熄灭的顺序来改变流水灯的方向。可以使用一个变量来控制点亮和熄灭的顺序,每次循环后改变该变量的值。 示例代码:

以下是一个使用C语言编写的简单示例代码,来控制左右循环流水灯。 ```c #include //定义LED灯使用的IO口 sbit LED1 = P1^0; sbit LED2 = P1^1; sbit LED3 = P1^2; sbit LED4 = P1^3; //控制流水灯循环 void lightFlow int i; int direction = 1; // 控制流水灯的方向,1表示向右,-1表示 向左 //流水灯循环 while(1) //控制LED灯的点亮和熄灭 LED1=0; LED2=1; LED3=1;

基于51单片机的花样流水灯设计

基于51单片机的花样流水灯设计

目录 第1章引言 (1) 1.1 研究背景及意义 (1) 1.2 国内外研究现状以及本系统的重点问题 (1) 1.3 本文章节安排 (2) 第2章系统设计方案论证 (3) 2.1 控制器模块方案论证 (3) 2.2 键盘模块方案 (4) 2.3 电源模块方案 (4) 第3章系统硬件设计方案 (5) 3.1 系统设计框图 (5) 3.2 硬件电路设计 (5) 3.2.1 电源电路 (5) 3.2.2 单片机89C52最小系统 (6) 3.2.3 按键电路 (13) 3.3.4 LED灯电路 (13) 第4章程序设计及软件仿真 (15) 4.1 软件设计框图 (15) 4.2 软件开发平台选择 (15) 4.3 软件系统功能模块 (16) 4.3.1 初始化模块 (16) 4.3.2 延时函数 (17) 4.3.3 定时器控制模块 (17) 4.3.4 键盘扫描模式 (17) 4.3.5 LED灯输出控制模块 (18) 4.4 程序调试仿真 (19) 4.4.1 仿真平台介绍 (19) 4.4.2 仿真测试 (19) 第5章硬件调试 (21) 5.1 硬件设计 (21)

5.2 硬件调试 (21) 5.2.1 下载功能调试 (21) 5.2.2 LED电路测试 (21) 5.2.3 模式选择功能调试 (22) 5.2.4 速度加减功能调试 (22) 5.2.5 复位电路调试 (22) 5.2.6 稳定性测试 (22) 总结 (23) 致谢 (25) 参考文献 (26) 附录 (28) 附录一:原理图 (28) 附录二:硬件实物 (29) 附录三:程序代码 (30)

2023年单片机花样流水灯设计实验报告

**大学 物理学院 单片机把戏流水灯设计试验 课题:把戏流水灯设计 班级: 物理*** 姓名: *** 学号: ……………

【摘要】 当今时代旳智能控制电子技术,给人们旳生活带来了以便和舒适,而每到晚上五颜六色旳霓虹灯则把我们旳都市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯旳措施有诸多种,有老式旳分立元件,由数字逻辑电路构成旳控制系统和单片机智能控制系统等。本设计简介一种简朴实用旳单片机把戏流水灯设计与制作,采用基于MS-51旳单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要旳软件构成旳以AT89C51为关键,辅以简朴旳数码管等设备和必要旳电路,设计了一款简易旳流水灯电路板,并编写简朴旳程序,使其可以自动工作。 本设计用AT89C51单片机为关键自制一款简易旳把戏流水灯,并简介了其软件编程仿真及电路焊接实现,在实践中体验单片机旳自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管

【概述】 1.单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机旳基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定期/计数器及终端系统等)所有集成在一种半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多旳元件数据库、原则化旳仿真仪器、直观旳捕捉界面、简洁明了旳操作、强大旳分析测试、可信旳测试成果, 为电子工程设计节省研发时间,节省了工程设计费用。运用Protues软件设计一款通过数码管显示计数时间旳流水灯电路及Keil C软件编程后,再将两者关联则可以简朴迅速旳进行仿真。 【试验设计目旳】 设计规定以发光二极管作为发光器件,用单片机自动控制,对8个LE D灯设计至少3种流水灯显示方式,每隔20秒变换一次显示把戏,计时通过一种二位七段数码管显示。

51单片机爱心流水灯原理及制作

51单片机爱心流水灯原理及制作 一、引言 爱心流水灯是一种常见的电子制作项目,它使用51单片机控制LED灯的亮灭顺序,形成一个流动的爱心图案。本文将详细介绍51单片机爱心流水灯的原理及制作过程。 二、原理介绍 1. 51单片机 51单片机是一种非常常见的单片机,具有广泛的应用领域。它具有强大的计算能力和丰富的外设接口,非常适合用于控制LED灯的亮灭。 2. LED灯 LED灯是一种半导体发光二极管,具有低功耗、长寿命和高亮度等特点。在爱心流水灯中,我们使用红色的LED灯来形成爱心图案。 3. 流水灯原理 流水灯是一种常见的电子灯光效果,通过控制LED灯的亮灭顺序,形成一个流动的效果。在爱心流水灯中,我们将多个LED灯按照特定的顺序亮灭,形成一个流动的爱心图案。 4. 原理图 以下是51单片机爱心流水灯的原理图: (在此处插入原理图) 三、制作材料准备 在开始制作爱心流水灯之前,我们需要准备以下材料:

1. 51单片机开发板 2. LED灯(红色) 3. 电阻 4. 面包板 5. 连接线 6. 电源 四、制作步骤 1. 连接电路 首先,将51单片机开发板和面包板连接起来。然后,根据原理图连接LED灯、电阻和51单片机的引脚。确保连接正确且稳固。 2. 编写程序 使用C语言编写51单片机的程序。程序的主要功能是控制LED灯的亮灭顺序,形成一个流动的爱心图案。以下是一个简单的示例程序: (在此处插入示例程序) 3. 烧录程序 将编写好的程序烧录到51单片机中。可以使用专业的烧录工具,也可以使用 通用的USB转串口模块进行烧录。 4. 测试 将电源接入电路,打开电源开关,观察LED灯的亮灭情况。如果一切正常,LED灯将按照程序中设定的顺序亮灭,形成一个流动的爱心图案。 五、注意事项

单片机控制的花样彩灯设计

目录 1引言 (4) 2 设计原理 (5) 2.1MCS51 (5) 2.2 LED (6) 2.3中断指令 (8) 2.4硬件接原理图 (9) 3程序流程图 (11) 3.1主流程图 (11) 3.2流水灯子流程图 (12) 3.3中断程序流程图 (13) 4汇编程序 (14) 4.1主程序 (14) 4.2一秒钟定时程序 (17) 5小结 (18) 参考文献 (19)

1.1引言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。 该程序示例了单片机键盘控制p1口流水灯花样的方法;具体表现为:p3.2 3.2 3.4 3.5四个小本文提出了一种基于AT89S51单片机的彩灯控制方案,实现对LED彩灯的控制。按键,分别实现了四个控制。通过这次实验,我们也了解了团队合作的重要性,集体的力量是伟大的,一个人如何融入一个团队是是一个重要问题,讲究合作才能取得最后的成功! 1

32个心形流水灯单片机课程设计

32个心形流水灯单片机课程设计 题目:心形流水灯 系别:计算机信息与技术系 专业: 计算机科学与技术 班级: B120601 学号: B120601 学生姓名: 指导教师: 郭 2015年06月 目录 绪 论 ..................................................................... ........................ 3 一.题目分 析 ..................................................................... ......... 4 二.硬 件 ..................................................................... (4) 2.1 MCS-51系列单片机的内部结构框图 (4) 2.2系统框图...................................................................... .. (5)

2.3电路原理图...................................................................... ......................... 5 三.系统软件设 计 ..................................................................... .. 7 3.1 Keil_c软件界面图...................................................................... . (7) 3.2程序流程 图 ..................................................................... .............................. 8 四仿真调 试 ..................................................................... . (10) 4.1仿真采用proteus仿真 图 ..................................................................... (10) 4.2导入代码 图 ..................................................................... ............................ 10 五系统调试及结果分 析 (11) 5.1 软件调试...................................................................... (11)

相关主题
文本预览
相关文档 最新文档