emmm,因为刚开始学arduino的时候在淘宝买的一个实验箱似的东西,所以就是一大堆散件,然后插在面包板上使用,所以现在学51单片机的时候就直接只买了一个最小的系统板学习,然后发现当时的数码管的管脚并没有给出来,在网上搜这俩个型号也搜不出来,就直接写了写代码去看一下这个引脚跟数字段的关系,希望可以帮助大家
查看的方法:
首先规范一下接线,这个5611BH的是共阳极的数码管,除了上下中间的俩个管脚接高电平,其他按照顺序可以全部接P1管脚,然后按照16进制数,依次只让一个管脚灭,在设置一个时间长一点的延时,这样的话判断哪一个引脚是控制的哪个段了,代码如下:
P1 = 0x01;
delay(3000);
P1 = 0x02;
delay(3000);
P1 = 0x04;
delay(3000);
P1 = 0x08;
delay(3000);
P1 = 0x10;
delay(3000);
P1 = 0x20;
delay(3000);
P1 = 0x40;
delay(3000);
P1 = 0x80;
delay(3000);
然后在草稿纸上写好上面的图,自己画出来每个引脚对应的段位置。
然后再在网上百度一个LED代码查询的小程序,设置一下即可知道显示的数字的16进制的写法。
网上的一位管:
https://zhinan.sogou.com/guide/detail/?id=1610051132
网上的四位管:
https://jingyan.baidu.com/article/e9fb46e1168c987521f766e0.html
**注:**网址内的四位管是共阴级的,使用时需要把十六进制取逆。
如果读者也是碰到标题的两种型号的就可以直接按照连接里的接线控制即可;如果是碰到1位数码管不确定的,可以按照上面的方法来判断;如果是4位数码管不确定大致思路就是跟上面一样,不过试着会很费时间吧。
一位管的数字显示代码:
unsigned char leddata[]={
0x11, //"0"
0xD7, //"1"
0x32, //"2"
0x92, //"3"
0xD4, //"4"
0x98, //"5"
0x18, //"6"
0xD3, //"7"
0x10, //"8"
0x90, //"9"
0x50, //"A"
0x1C, //"B"
0x39, //"C"
0x16, //"D"
0x38, //"E"
0x78, //"F"
0x54, //"H"
0x3D, //"L"
0x51, //"n"
0x15, //"u"
0x70, //"P"
0x1E, //"o"
0xFE, //"-"
0xFF, //??
0xFF //???
};
四位管的数字显示代码:
unsigned char leddata[]={
0x28, //"0"
0xEB, //"1"
0x32, //"2"
0xA2, //"3"
0xE1, //"4"
0xA4, //"5"
0x24, //"6"
0xEA, //"7"
0x20, //"8"
0xA0, //"9"
0x60, //"A"
0x25, //"B"
0x3C, //"C"
0x23, //"D"
0x34, //"E"
0x74, //"F"
0x61, //"H"
0x3D, //"L"
0x68, //"n"
0x29, //"u"
0x70, //"P"
0x27, //"o"
0xF7, //"-"
0xFF, //??
0xFF //???
};
读者若使用51单片机,可将数组声明成 unsigned code leddata[],数组将存储在程序存储器中,节省数据存储器的内存。arduino可以直接复制即可。