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

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


  • 先上proteus仿真图:
    在这里插入图片描述
  • 74HC245:八路数据缓冲器

📝程序代码:

/*
6个独立式按键控制LED移动
*/
#include <reg51.h>
typedef unsigned char uint8;
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,下面是基于C51单片机设计模块化程序通过两个按键分别控制8个LED灯交替和奇偶位的代码: ```c #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit key1 = P3^2; // 定义按键1 sbit key2 = P3^3; // 定义按键2 void delay(uint i) // 延时函数 { while (i--); } void led1() // 交替 { uchar i, j; for (i = 0; i < 8; i++) // 循环左移 { j = 0x01 << i; P1 = j; delay(50000); } } void led2() // 按奇偶位 { uchar i, j; for (i = 0; i < 8; i += 2) // 奇数位 { j = 0x01 << i; P1 = j; delay(50000); P1 = 0x00; delay(50000); } for (i = 1; i < 8; i += 2) // 偶数位 { j = 0x01 << i; P1 = j; delay(50000); P1 = 0x00; delay(50000); } } void main() { while (1) { if (key1 == 0) // 按键1控制交替 { led1(); } else if (key2 == 0) // 按键2控制按奇偶位 { led2(); } } } ``` 在这个程序中,我们定义了两个按键key1和key2,分别用来控制交替和按奇偶位。当按下key1时,调用led1()函数实现交替的效果;当按下key2时,调用led2()函数实现按奇偶位的效果。 led1()函数实现了8个LED灯的交替效果。我们使用循环左移的方法,每次将P1口的值左移1位,再延迟一段时间,从而实现LED灯的交替led2()函数实现了8个LED灯按奇偶位的效果。我们首先让奇数位灯起,偶数位灯熄;然后让偶数位灯起,奇数位灯熄。同样使用延迟函数来控制LED灯的时间。 希望这个程序能够帮助你实现控制8个LED灯的交替和按奇偶位的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值