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

}

五、实验现象

演示视频:

相关推荐
wuyk5552 小时前
104.C 语言字节对齐:从底层原理到工程实践的完整指南
c语言·开发语言·stm32·单片机·嵌入式硬件
star learning white9 小时前
STM32入门学习5
stm32·嵌入式硬件·学习
新晨单片机设计10 小时前
S006A-基于STM32单片机温湿度检测系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
逐步前行12 小时前
ESP32-S3-分区表(Partition Table)
单片机
星河单片机12 小时前
STM32驱动HS‑S37A水位传感器+OLED完整实验讲解
stm32·单片机·嵌入式硬件
代码不接地12 小时前
【EDA】0.公共部分&元件库设计
嵌入式硬件
糖糖单片机设计13 小时前
STM32水稻苗大棚环境监测系统
stm32·单片机·嵌入式硬件
star learning white15 小时前
STM32入门学习3
stm32·单片机·学习
jianqiang.xue15 小时前
审查技能库(上):内存安全四件套
stm32·单片机·物联网·架构·esp32
XiHongShi201615 小时前
cpuz分享,建议保存
单片机·学习