单片机花灯开关控制器C语言代码,以51单片机为核心的LED彩灯控制器设计

1 引言

随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。

2 设计原理

2.1 MCS51

引脚说明

MCS单片机都采用40引脚的双列直插封装方式。图1为引脚排列图, 40条引脚说明如下:

(1)主电源引脚Vss和Vcc

① Vss接地

② Vcc正常操作时为+5伏电源

(2)外接晶振引脚XTAL1和XTAL2

① XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。

② XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。

4 软件设计

4.1 流程图

2e4ab8b8be0407f8b6eb2c7b211da57f.png

4.2 源程序

ORG 0000H ;中断入口程序;

LJMP START

ORG 0003H

RETI

ORG 000BH

RETI

ORG 0013H

RETI

ORG 001BH

RETI

CLEAR: RET; ; 初始化程序

;START:ACALL CLEAR ; 主 程 序

STAR1:MOV P3,#0FFH

JNB P3.2,FUN2

JNB P3.3,FUN3 ;关闭按纽

JNB P3.4,FUN0

JNB P3.5,FUN1

JNB F0,STAR1 ;曾经有键按下F0置1

RET;

FUN0:LCALL DL10MS ;消除抖动

JB P3.4,STAR1

WAITL0:JNB P3.4,WAITL0 ;等待键释放

SETB F0

FUN01:LCALL FUN00

LCALL STAR1

LJMP FUN01;

FUN1:LCALL DL10MS ;消除抖动

JB P3.5,STAR1

WAITL1:JNB P3.5,WAITL1 ;等待键释放

SETB F0

FUN10:LCALL FUN11

LCALL STAR1

LJMP FUN10;

FUN2:LCALL DL10MS ;消除抖动

JB P3.2,STAR1

WAITL2:JNB P3.2,WAITL2 ;等待键释放

SETB F0

FUN20:LCALL FUN22

LCALL STAR1

LJMP FUN20;

FUN3:LCALL DL10MS ;消除抖动

JB P3.3,STAR1

WAITL3:JNB P3.3,WAITL3 ;等待键释放

CLR F0

MOV P1,#0FFH ;关显示

LJMP STAR1;

FUN00:MOV A,#0FEH ;从P1.0到P1.7移动点亮

FUN000:MOV P0,A

LCALL DL05S

JNB ACC.7,OUT

RL A

AJMP FUN000

OUT: RET;

FUN11:MOV A,#0FEH ;从P1.0到P1.7依次点亮

FUN111:MOV P1,A

LCALL DL05S

JZ OUT

RL A

ANL A,P1

AJMP FUN111;

FUN22:MOV A,#0FEH ;间隔点亮

FUN222:MOV P1,A

LCALL DL01S

CPL A

RL A

MOV P1,A

LCALL DL01S

RET;

FUN33: MOV A,#01H ;逐点熄灭

FUN333: MOV P1,A

LCALL DL01S

JNZ OUT

RL A

ORL A,P1

AJMP FUN333

DL01S:MOV R2,#0FFH ; 延时程序

MOV R7,#02H

LOOP1: DJNZ R2,LOOP1

LOOP5:DJNZ R7,DL512

RET

DL10MS:MOV R3,#14H

LOOP2: LCALL DL512

DJNZ R3,LOOP2

RET

DL05S:MOV R4,#0AH

LOOP3: LCALL DL10MS

DJNZ R4,LOOP3

RET

DL30S:MOV R5,#03H

LOOP4:LCALL DL05S

DJNZ R5,LOOP4

RET

END

4.2一秒钟定时程序

MOV B,#0AH ;允许中断

MOV TMOD,#01H ;工作方式1

MOV TH0,#0B0H

MOV TL0,#3CH

SETB TR0 ;启动计数

SETB EA ;开中断

BU:JBC TF0,SHI

SJMP BU

SHI:MOV TH0,#3CH

MOV TL0,#0B0H

RET

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114955 人正在系统学习中 相关资源:c#编写的鸡兔同笼程序

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月21日
下一篇 2021年4月21日

相关推荐