找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3089|回复: 9
打印 上一主题 下一主题
收起左侧

4个单片机IO控制12个LED如何扫描?

[复制链接]
跳转到指定楼层
楼主
如上,请教下这种接法怎么扫描?其中LED6可以稍暗于其余灯

LED-4-12.png (38.81 KB, 下载次数: 77)

LED-4-12.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:548551 发表于 2020-8-20 15:33 | 只看该作者
分作12次来扫描, 不能当做数码管那样来扫描,那样扫描的话会出现其它微亮或者直接乱亮的情况. 很简单,要LED10亮,你11脚和12脚为输出口, 输出相应的高低电平就可以了.那其它13 14这两个口就不要设置为输出,设置为输入模式. 其它灯同理.明白么?

评分

参与人数 1黑币 +5 收起 理由
slckkk + 5 感谢回答

查看全部评分

回复

使用道具 举报

板凳
ID:332444 发表于 2020-8-20 15:37 | 只看该作者
输出对应高低电平就是了。
回复

使用道具 举报

地板
ID:148486 发表于 2020-8-20 17:03 | 只看该作者
xqleft 发表于 2020-8-20 15:33
分作12次来扫描, 不能当做数码管那样来扫描,那样扫描的话会出现其它微亮或者直接乱亮的情况. 很简单,要LED1 ...

嗯嗯,看来只有分为12次转换输入输出扫描了,但是我这个单片机转换为输入后要4/5个nop的稳定时间,板子出来尝试一下,感谢回答
回复

使用道具 举报

5#
ID:240034 发表于 2020-8-22 08:56 | 只看该作者
LED6回路都接了R11,R12两个电阻,肯定暗,把每个灯单独点亮起来,最后组合起来就是了
回复

使用道具 举报

6#
ID:814418 发表于 2020-8-22 09:52 | 只看该作者
分别进行扫描检测即可
回复

使用道具 举报

7#
ID:676437 发表于 2020-8-22 12:09 | 只看该作者
算好高低电平即可
回复

使用道具 举报

8#
ID:148486 发表于 2020-9-4 07:49 | 只看该作者
扫描代码,显示OK,1ms扫描一次,供参考,谢谢回复
  1. switch(led_suoyin)
  2.                 {
  3.                         case 0: //1 4输出 2 3输入
  4.                         {
  5.                                 P_d  = 0;
  6.                                 TRISD |= 0x05;
  7.                                 TRISC &= 0xf7;
  8.                                 TRISD &= 0xfd;       
  9.                                 if(bled_2H) P_a = 1;
  10.                         }break;
  11.                         case 1: //2 3输出 1 4输入
  12.                         {
  13.                                 P_a  = 0;
  14.                                 TRISD |= 0x02;
  15.                                 TRISC |= 0x08;
  16.                                 TRISD &= 0xfa;                               
  17.                                 if(bled_M) P_b = 1;
  18.                         }break;
  19.                         case 2: //3 4输出 1 2输入
  20.                         {
  21.                                 P_b  = 0;
  22.                                 TRISD |= 0x06;
  23.                                 TRISC &= 0xf7;
  24.                                 TRISD &= 0xfe;                               
  25.                                 if(bled_power) P_c = 1;
  26.                         }break;
  27.                         case 3: //1 4输出 2 3输入
  28.                         {
  29.                                 P_c  = 0;
  30.                                 TRISD |= 0x05;
  31.                                 TRISC &= 0xf7;
  32.                                 TRISD &= 0xfd;                       
  33.                                 if(bled_4H) P_d = 1;
  34.                         }break;
  35.                         case 4: // 1 2输出 3 4输入
  36.                         {                       
  37.                                 P_d  = 0;
  38.                                 TRISC |= 0x08;
  39.                                 TRISD |= 0x01;
  40.                                 TRISD &= 0xf9;                       
  41.                                 if(bled_ziran) P_a = 1;
  42.                         }break;
  43.                         case 5: //2 4输出 1 3输入
  44.                         {
  45.                                 P_a  = 0;
  46.                                 TRISD |= 0x03;
  47.                                 TRISC &= 0xf7;
  48.                                 TRISD &= 0xfb;               
  49.                                 if(bled_swing) P_b = 1;
  50.                         }break;
  51.                         case 6: //2 3输出 1 4输入
  52.                         {       
  53.                                 P_b  = 0;
  54.                                 TRISD |= 0x02;
  55.                                 TRISC |= 0x08;
  56.                                 TRISD &= 0xfa;               
  57.                                 if(bled_putong) P_c = 1;
  58.                         }break;
  59.                         case 7: //3 4输出 1 2输入
  60.                         {
  61.                                 P_c  = 0;
  62.                                 TRISD |= 0x06;
  63.                                 TRISC &= 0xf7;
  64.                                 TRISD &= 0xfe;                       
  65.                                 if(bled_H) P_d = 1;
  66.                         }break;
  67.                         case 8: // 1 3输出 2 4输入
  68.                         {
  69.                                 P_d  = 0;
  70.                                 TRISD |= 0x04;
  71.                                 TRISC |= 0x08;
  72.                                 TRISD &= 0xfc;               
  73.                                 if(bled_1H) P_a = 1;
  74.                         }break;
  75.                         case 9: // 1 2输出 3 4输入
  76.                         {
  77.                                 P_a  = 0;
  78.                                 TRISC |= 0x08;
  79.                                 TRISD |= 0x01;
  80.                                 TRISD &= 0xf9;               
  81.                                 if(bled_cool) P_b = 1;
  82.                         }break;
  83.                         case 10: // 1 3输出 2 4输入
  84.                         {
  85.                                 P_b  = 0;
  86.                                 TRISD |= 0x04;
  87.                                 TRISC |= 0x08;
  88.                                 TRISD &= 0xfc;       
  89.                                 if(bled_L) P_c = 1;
  90.                         }break;
  91.                         case 11: //2 4输出 1 3输入
  92.                         {       
  93.                                 P_c  = 0;
  94.                                 TRISD |= 0x03;
  95.                                 TRISC &= 0xf7;
  96.                                 TRISD &= 0xfb;       
  97.                                 if(bled_sleep) P_d = 1;
  98.                         }break;
  99.                         default : break;
  100.                 }
复制代码
回复

使用道具 举报

9#
ID:548551 发表于 2020-9-4 19:12 | 只看该作者
slckkk 发表于 2020-9-4 07:49
扫描代码,显示OK,1ms扫描一次,供参考,谢谢回复

敢问老哥用的是FMD的IC?
回复

使用道具 举报

10#
ID:148486 发表于 2020-9-7 14:26 | 只看该作者
xqleft 发表于 2020-9-4 19:12
敢问老哥用的是FMD的IC?

不是,中微的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表