Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

利用AT89C52单片机和3个74HC245和6个独立按键控制24个3组LED移动亮灭

利用AT89C52单片机和3个74HC245和6个独立按键控制24个3组LED移动亮灭

先上proteus仿真图:
在这里插入图片描述
代码:

/*
6个独立式按键控制LED移动
*/
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;

void delay(uint16 x)  //按键的延时函数,用于消抖
{
uint16 i,j;
	
for(i = x; i > 0; i --)

	for(j = 114; j > 0; j --);
}

uint8 i = 0,k = 0,j = 0;

void Move_LED()
{
if ((P1 & 0x01) == 0x00) i = (i - 1) & 0x07;//P1.0端口触发上移灯亮
else if((P1 & 0x02) == 0x00) i = (i + 1) & 0x07;//P1.1端口触发下移亮
	
else if((P1 & 0x04) == 0x00) j = (j - 1) & 0x07;//P1.2端口触发
else if((P1 & 0x08) == 0x00) j = (j + 1) & 0x07;//P1.3端口触发
	
else if((P1 & 0x10) == 0x00) k = (k - 1) & 0x07;//P1.4端口触发
else if((P1 & 0x20) == 0x00) k = (k + 1) & 0x07;	//P1.5端口触发
	
P0 = ~(1 << i);
P2 = ~(1 << k);	
P3 = ~(1 << j); 

	}

void main()
{
uint8 Key = 0x00;
P0 = 0xFF; 
P2 = 0xFF;
P3 = 0xFF;
	
while(1)
{
if(P1 != Key)
{
Key = P1;
Move_LED();
delay(10);
}
}
}

在这里插入图片描述

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 状态管理模式Vuex

下一篇: RIP实验

精华推荐