用89C52单片机控制32个LED流水灯的C语言程序,

用89C52单片机控制32个LED流水灯的C语言程序,,第1张

/***32灯流水——火柴天堂作品-20130520***/

/***52单片机,12MHz晶振,P0-P3 接32颗LED,低电平驱动***/

#include"REG52.h"//包含52头文件

#define TRUE 1//定义布尔量'1':真

#define FALSE 0//定义布尔量'0':假

#define uchar unsigned char//定义 无符号字符型数据 简称

#define uint unsigned int//定义 无符号整型数据 简称

#define th0 0xb1

#define tl0 0xe0//20ms at 12MHz Fosc in Model 1

#define LED_Port1 P0

#define LED_Port2 P1

#define LED_Port3 P2

#define LED_Port4 P3

#define LED_AllOff LED_Port1=LED_Port2=LED_Port3=LED_Port4=0xff

#define LED_AllOn LED_Port1=LED_Port2=LED_Port3=LED_Port4=0

#define LED_Status 43//1步全亮+32步单亮+10步闪烁

#define LED_Marquee 32

bit T20msFlag=0

void Timer0() interrupt 1

{

TL0=tl0

TH0=th0

T20msFlag=TRUE

}

void TimerInit()

{

TMOD=0x01

TH0=th0

TL0=tl0

TR0=1

ET0=1

EA=1

}

void LED_Out()

{

static uchar led_status=0

if(T20msFlag)

{

T20msFlag=FALSE

led_status=++led_status%LED_Status

}

if(led_status &&led_status<=LED_Marquee)

{

LED_AllOn

switch((led_status-1)>>3)

{

case 0:LED_Port1=1<<((led_status-1)%8)break

case 1:LED_Port2=1<<((led_status-1)%8)break

case 2:LED_Port3=1<<((led_status-1)%8)break

case 3:LED_Port4=1<<((led_status-1)%8)break

default:led_status=0break

}

}

else

{

if(!led_status &&led_status%2) LED_AllOn

else LED_AllOff

}

}

void main()

{

TimerInit()

while(1)

{

LED_Out()

}

}

一组灯并且在控制系统的控制下按照设定的顺序和时间来发亮和熄灭。形成一定的视觉效果,常安装于店面和招牌上。

流水灯控制原理为:三极管在电路中充当开关的作用,当电路导通,最左边的LED首先点亮。基极串出一电容连接下一个三极管的集电极。当电容充分充电后,下一个三极管导通使得第二个LED点亮,以此类推。可以通过调节电容的容量值,来控制流水灯点亮的时间。

扩展资料

流水灯效果的实现:

以4个灯为例,让4个灯在不同的时间、不同的顺序亮起来实现流水灯的效果,需要有平台来统计每个灯的信息,包括顺序和时间。这个用来统计信息的平台叫做数据寄存器。

数据寄存器主要用来保存 *** 作数和 *** 作运算结果等信息。程序员可利用数据寄存器的特性灵活处理字节信息,从而实现流水灯的效果。

一、材料准备。

LED流水灯套件,可以在网上购买,都很便宜,10元以下,至于电烙铁之类的,学生可以去电子实验室或者自己购买,网上/电子市场有卖,成本不过二、三十元,而且一次投资,终身使用,以后可以再制作其他的电子产品。

二、制作流程。

1、器件清点及测量。将买来的材料全部摆在桌子或试验台,按照制作说明书逐一清点器件。测量各电阻阻值,有万用表的用表测,没有的可以通过电阻上标的电阻环,对应计算电阻值。

(附色环电阻说明)

(1) 五道色环电阻:第一环表示阻值的第一位数字;第二环表示阻值的第二位数字;第三环表示阻值的第三位数字;第四环表示幂的次方;第五环表示误差。

(2)四道色环电阻:第一环表示阻值的第一位数字;第二环表示阻值的第二位数字;第三环表示幂的次方;第四环表示误差。

(3)表示误差的色环间距较其他色环间距大些。并且颜色一般为棕、金、银色。

2、阅读说明书准备焊接。 仔细阅读说明书,看明白套件电路功能以及原理图,将电烙铁接电预热,把器件正确插入基板。

3、焊接工艺 烙铁预热后,将焊锡丝送到引脚与电烙铁焊接前,注意使电烙件头加锡。焊接的时候,要使电烙铁头同时与元件引脚、铜板紧密接触,把锡送到引脚头所成的夹角处。待锡熔化后,把焊锡丝成45度角拿开(注意:加锡不要太多,以免浪费和影响美观)。整个焊接过程一般在3-5秒内完成。4、检查电路焊接完毕,仔细检查电路是否有虚焊、假焊和短路的地方。电阻是否有阻值正确,电容、发光二极管是否正负极接反,三极管的e、b、c脚是否正确。 逐步分析,发现错误及时纠正,以免通电后烧坏元件。

5、安装电池测试。 LED心形流水灯需要3节5号电池,将电池放入电池槽中(注意正负极不要接反),观察流水灯,若有七彩的心形图案不断按照顺时针方向旋转闪亮,说明焊接成功。

三、制作心得。 通过简单的DIY小作品可以培养我们动手实践的能力,可以让我们把课堂学到的与实际联系起来,让枯燥的学习充满乐趣。如果要送给别人,这样的简单制作不仅代表了你的一片真心,而且可以体现一定的技术能力,是不是倍有面子?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11497762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存