标题: 51单片机LED灯分俩组同时点亮。 求帮助 [打印本页]

作者: Enzyme    时间: 2019-11-20 20:29
标题: 51单片机LED灯分俩组同时点亮。 求帮助
dalao们好,我刚来,我想问一下51单片机如何做到8个LED灯分左右俩组从中间向俩边(或者从俩边向中间)一起流水亮。
作者: Enzyme    时间: 2019-11-20 21:15
别沉啊
作者: 那个谁和谁    时间: 2019-11-21 08:49
8个灯用8个引脚,想让哪个亮就把哪个引脚置0,一次可以置0多个引脚。
作者: moluxiyan    时间: 2019-11-21 09:41
最简单的办法就是查表法,把每次要亮的弄成一个数组
作者: 八月初    时间: 2019-11-21 09:45
你试一下用for循环加while(1)来做
作者: wulin    时间: 2019-11-21 11:01
  1. #include<reg52.h>

  2. unsigned char table[]={0x7e,0xbd,0xdb,0xe7};

  3. void delay(unsigned int ms)
  4. {
  5.         unsigned int x,y;
  6.         for(x=ms;x>0;x--)
  7.                 for(y=125;y>0;y--);
  8. }
  9. void main()
  10. {
  11.         unsigned char i;
  12.         while(1)
  13.         {
  14.                 for(i=0;i<4;i++)
  15.                 {
  16.                         P1=table[i];
  17.                         delay(500);
  18.                 }
  19.                 for(i=3;i>1;i--)
  20.                 {
  21.                         P1=table[i-1];
  22.                         delay(500);
  23.                 }
  24.         }
  25. }
复制代码

作者: haokong    时间: 2019-11-21 18:17
查表法
作者: yzwzfyz    时间: 2019-11-21 22:10
楼主啊:
把12345678的顺序改为45362718不就行了吗。难就只会12345678的排序吗?
实在不行,就做个呆事:按上面说的次序重排PCB板把第一个与第4个互换……
作者: 1255230    时间: 2019-11-22 00:07
给八个IO口从两侧向中间两个两个的上电,然后再复位就行了
作者: Enzyme    时间: 2019-11-30 20:24
那个谁和谁 发表于 2019-11-21 08:49
8个灯用8个引脚,想让哪个亮就把哪个引脚置0,一次可以置0多个引脚。

好的,谢谢啦
作者: Enzyme    时间: 2019-11-30 20:36
wulin 发表于 2019-11-21 11:01

好的,谢谢啦
作者: 不知名的小混子    时间: 2019-12-1 15:28
采用左右移函数 就能解决了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1