【51单片机】【protues仿真】基于51单片机彩灯控制器系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管显示彩灯模式,闪烁时间

2、按键切换彩灯模式和闪烁时间

3、四种彩灯模式

二、使用步骤

51单片机的彩灯控制器系统是一种常见的嵌入式应用,通过编程控制LED灯实现多种动态效果。这类系统通常以AT89C51或STC89C52单片机为核心,配合LED灯组、按键控制、电源模块等硬件组成。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、LED灯模块

4、数码管显示模块

四、软件设计

#include <REGX51.H>

#include "intrins.h"

#include "main.h"

#include "keyscanf.h"

#include "time.h"

#include "dispaly.h"

#define LED P2

uchar keyvalue;

bit LEDSwitch = 0;

uchar LEDMode = 0;

int LEDTime = 50;

uint temp = 0x01;

char i;

void Delay1ms(int ms)

{

unsigned char i, j;

while(ms--)

{

nop();

i = 2;

j = 199;

do

{

while (--j);

} while (--i);

}

}

int main()

{

LED = 0xff;

Timer0Init();

while(1)

{

keyvalue = KeyScanf();

LEDFlag();

if(timefalg ==1)

{

timefalg = 0;

LEDUser();

}

if(LEDSwitch == 1)

{

display(0,LEDMode);

display(1,13);

display(2,LEDTime/100);

display(3,LEDTime/10%10);

}

else

{

displayNo(0,11);

displayNo(1,11);

displayNo(2,11);

displayNo(3,11); }

}

}

void LEDFlag()

{

if(keyvalue == 1)

LEDSwitch = !LEDSwitch; //控制开关灯

if(LEDSwitch == 1) //只有灯开了这些操作才有用

{

if(keyvalue == 2) //按键2控制四种间隔方式

{

LEDMode++;

if(LEDMode >= 4)

LEDMode = 0;

}

else if(keyvalue == 3)

{

LEDTime += 50;

if(LEDTime >= 300)

LEDTime = 300;

}

else if(keyvalue == 4)

{

LEDTime -= 50;

if(LEDTime <= 50)

LEDTime = 50;

}

}

keyvalue = 0;

}

五、实验现象

演示视频:

相关推荐
文火冰糖的硅基工坊6 小时前
[嵌入式系统-146]:五次工业革命对应的机器人形态的演进、主要功能的演进以及操作系统的演进
前端·网络·人工智能·嵌入式硬件·机器人
老六哥_AI助理指南6 小时前
为什么AI会改变单片机的未来?
人工智能·单片机·嵌入式硬件
点灯小铭6 小时前
基于单片机的智能家居多参数环境监测与联动报警系统设计
单片机·mongodb·毕业设计·智能家居·课程设计·期末大作业
点灯小铭6 小时前
基于单片机与上位机的智能宠物喂食管理系统设计
单片机·嵌入式硬件·毕业设计·课程设计·宠物
Lester_11016 小时前
嵌入式学习笔记 - 瑞萨单片机
单片机·嵌入式硬件
麻辣长颈鹿Sir6 小时前
单片机中的机器周期、指令周期、总线周期的联系和区别
单片机·嵌入式硬件·时钟周期·指令周期·机器周期·总线周期·嵌入式指令时间
蜀黍@猿6 小时前
【GD32】输出时钟配置
stm32·单片机·嵌入式硬件
二进制coder7 小时前
深入浅出:I²C多路复用器PCA9546详解 - 解决地址冲突,扩展你的I²C总线
c语言·开发语言·单片机
Lhj06168 小时前
stm32 can错误中断不处理
stm32·单片机·嵌入式硬件