51单片机之按键控制RGB灯

51单片机之按键控制RGB灯

描述:利用KEIL5编程,使AT89C52通过按键输入控制RGB灯显示不同颜色。

硬件:

电路仿真图(未运行)

电路仿真图(运行)

程序:

主要是按键消抖,机械按键按下有一定的抖动时间,按下时需要延时一段时间再次判断。

仿真软件的按键波形

#include <REGX52.H>

sbit KEY1 = P3^0; //°´¼ü

sbit LED_R = P2^0; //ºì

sbit LED_G = P2^1; //ÂÌ

sbit LED_B = P2^2; //˦

unsigned char LED_Mode = 0;

unsigned char Key_Flag = 0;

//ÑÓʱ1ms(?? 12MHz)

void delay_ms(unsigned int ms)

{

unsigned int i, j;

for(i = ms; i > 0; i--)

for(j = 110; j > 0; j--); // 12MHz???110? ˜ 1ms

}

void LED_RGB(unsigned char i)

{

switch(i)//¿ØÖÆLEDÏÔʾÑÕÉ<<

{

case 0: LED_R = 1; LED_G = 1; LED_B = 1; break; //black

case 1: LED_R = 0; LED_G = 1; LED_B = 1; break; //red

case 2: LED_R = 1; LED_G = 0; LED_B = 1; break; //green

case 3: LED_R = 1; LED_G = 1; LED_B = 0; break; //blue

case 4: LED_R = 0; LED_G = 0; LED_B = 1; break; //yellow

case 5: LED_R = 0; LED_G = 1; LED_B = 0; break; //violet

case 6: LED_R = 1; LED_G = 0; LED_B = 0; break; //cyan

case 7: LED_R = 0; LED_G = 0; LED_B = 0; break; //white

default: break;

}

}

void Button_Trigger()//°´¼ü´¥·¢

{

//Åжϰ´¼ü°´ÏÂÇÒ°´¼ü±êÖ¾Î>>ÊÇÃ>>Óд¥·¢µÄ״̬

if(KEY1 == 0&&Key_Flag == 0)

{

delay_ms(10); //>>úе°´¼üÏû¶¶

if(KEY1 == 0&&Key_Flag == 0)

{

Key_Flag = 1; //°´¼ü±êÖ¾Î>>ÖÃ1£¬È·¶¨°´¼üÒѾ­°´ÏÂ

++LED_Mode;

LED_Mode %= 8;

}

}

else if(KEY1 == 1&&Key_Flag == 1)//°´¼üËÉ¿ªÇÒ°´¼ü֮ǰ°´Ï¹ý

{

Key_Flag = 0;//°´¼ü±êÖ¾Î>>ÖÃ0

}

}

void main()

{

while(1)

{

Button_Trigger();

LED_RGB(LED_Mode);

}

}

以上都是个人练习经验。

相关推荐
吠品6 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
Chery11407 小时前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
小李不想当小白10 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米10 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
尼喃12 小时前
662K/65Z5三脚稳压芯片规格书—PW6566B33/B30引脚功能
嵌入式硬件
创界工坊工作室12 小时前
63-基于STC89C52霍尔传感器的智能化电能表设计
stm32·单片机·嵌入式硬件·51单片机·proteus
智购科技自动售货机厂家13 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习
Zwawa14 小时前
从 printf 到曲线:把数据送上 VOFA+
c语言·单片机·嵌入式
意法半导体STM3214 小时前
【官方原创】LAT6048 如何扩大MP2的A35核和M33核共享内存
stm32·单片机·嵌入式硬件·内存映射·stm32mp2
en.en..15 小时前
STM32(F429)启动模式与两种烧录方式
stm32·单片机·嵌入式硬件