【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;

}

五、实验现象

演示视频:

相关推荐
czwxkn4 分钟前
7STM32(stdl)flash内部闪存
stm32·单片机·嵌入式硬件
咕噜咕噜啦啦13 分钟前
STlink下载程序
stm32·单片机
Deitymoon2 小时前
STM32——串口中断接收
stm32·单片机·嵌入式硬件
charlie1145141913 小时前
嵌入式C++实践开发第21篇(单片机实践):按钮输入 —— 硬件原理、消抖与HAL API
开发语言·c++·单片机
一起搞IT吧3 小时前
Android性能系列专题理论之十一:block IO问题分析思路
android·嵌入式硬件·智能手机·性能优化
余生皆假期-3 小时前
YuanHub 源码分析【一】FlashDB 初始化与项目应用
笔记·单片机·嵌入式硬件
Deitymoon3 小时前
STM32——串口通信发送数据
stm32·单片机·嵌入式硬件
玩转单片机与嵌入式3 小时前
嵌入式AI场景:哪些应用场景不适合将AI模型部署到单片机(MCU)中?
人工智能·单片机·嵌入式硬件
czwxkn4 小时前
8STM32(stdl)低功耗模式
stm32·单片机·嵌入式硬件
czwxkn4 小时前
9STM32(stdl)看门狗
stm32·单片机·嵌入式硬件