#include "reg51h"
#define uchar unsigned charconst tab[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d};
const uchar led[]={0x01,0x01,0x04,0x08,0x10,0x20,0x40,0x80};
void delay()
{
uchar i;
for(i=0;i<10;i++){;}
}
void keyscan()
{
uchar a,b,c,i;
P3=0x0f;
a=P3;
delay();
P3=0xf0;
b=P3;
delay();
c=a+b; for(i=0;i<8;i++)
if(c==tab[i]) P2=led[i];
if(c==0xeb) P2=0xff;
}
void main()
{ P2=0x00; while(1)
{
keyscan();
}
}
micro:bit 上的金手指可以输出所有的关键信号及电流,让你能够和micro:bit建立连接。micro:bit下方5个4mm环形金属孔可以连接标准香蕉插头或者鳄鱼夹。其中的3个金属圆孔(0,1,2)用于连接GPIO引脚,同时也可以连接analog(模拟输出), PWM 及触碰传感器。标志3V及GND金属环可以给外部提供少量的电流,或者使外部电流再反向供电给micro:bit。
金手指上间距为127mm的较小的金手指同样有信号输出,其中一些由micro:bit使用(下文介绍),还有一些可供您随意使用。 有许多micro:bit的扩展板可供购买使用,可用于轻松连接至所有引脚。 对于这些较小的金手指,它们仅连接在micro:bit的正面,背面的较小金手指是断开连接的。
引脚和信号
列表如下显示了micro:bit 金手指的各类数据
注意
引脚分配表(如上)。 您可以参考上图(最左边一列为引脚默认功能,中间一列为数字和模拟的区分),在编辑程序时,对将要使用的引脚进行选择和过滤。
标识为0, 1, 2, 3V及GND的金属环在金手指上的正反面都有连接(区别于较小金手指)。
标识为3V和GND金属环的两侧都有防护条,以避免因鳄鱼夹连接时来回滑动导致micro:bit使用体验下降。 应注意标识为0,1和2的圆环要避免鳄鱼夹夹到相邻的引脚造成短路,这可能会在光感读数中引入一些错误的数据,对LED矩阵上显示的图案造成干扰。
DAL DynamicPWM驱动程序(以及底层的nrF51定时器外设)规定PWM只能同时在3个引脚上激活。 任何尝试为PWM使用而分配的第4个引脚都将导致现有的PWM引脚之一的瘫痪。
当引脚由DAL配置时,数字输入引脚默认配置内部下拉电阻。
应谨慎使用括号中的功能,因为如果软件中的正常使用未首先禁用,则设备的其他功能可能会变得不稳定,导致程序无法运行或导致错误的结果。
标记为ACCESSIBILITY(可访问性)是用于启用/禁用机载可访问模式,不可用于其他(即使它可以作为GPIO供测试使用)。官方micro:bit 编辑器上的未来版本可能会删除写入此引脚的功能。
默认功能
在功能周围用括号标记的引脚需要禁用该引脚的默认功能,然后才能使用其他功能。
引脚:P3, P4, P6, P7, P9, P10
这些引脚与LED矩阵及环境光敏传感器相连接函数displayenable(false)是用于禁用显示功能(将自动禁用光敏传感器) 另请注意,LED 3x9矩阵将LED与相关电阻连接在这些引脚上,因此在设计将这些引脚用于其他用途的电路时应考虑到这一点。
引脚:P5, P11
这段程序没有错误如果你就JTAG的话建议使用在线仿真(具体教程请百度吧,不算复杂),在switch(x)处设置断点,当程序执行到那里就暂停了,可以看到x的值是多少,这样有助于你查找错误
如果没有的话建议买一个,也不贵,五六十就可以买到很方便的东西
如果你的单片机端口有强的推挽输出能力,那就很好办了。假设端口是P1,LX3~0接P17~14,LY3~0接P13~10,那么电量D115就在P1输出00101011,你想电量哪个灯,就在LX3~0上选择对应的输出1,LY3~0上对应的输出0
以上就是关于用52单片机的4x4矩阵键盘的前八个键分别控制8个LED灯全部的内容,包括:用52单片机的4x4矩阵键盘的前八个键分别控制8个LED灯、microbit如何禁用led矩阵、stm32程序如下,为什么按下矩阵键盘,led灯不亮呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)