5611BH一位数码管及SMA420354L四位数码管引脚图

5611BH一位数码管及SMA420354L四位数码管引脚图

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可以直接复制即可。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用AT89C52汇编语言编写的四位数码管动态显示1234的程序: ``` ORG 0H ; 程序起始地址 MOV P1, #0FFH ; 将P1口设置为输出模式 MOV P2, #00H ; 将P2口设置为输入模式 MOV TMOD, #01H ; 将计时器T0设置为模式1 MAIN: MOV TH0, #0B1H ; 将计时器T0的高字节设置为0B1H MOV TL0, #0E0H ; 将计时器T0的低字节设置为0E0H SETB TR0 ; 启动计时器T0 MOV A, #01H ; 将A寄存器设置为1 MOV P1, #0FFH ; 将P1口设置为输出模式 MOV P2, #00H ; 将P2口设置为输入模式 MOV R2, #04H ; 将R2寄存器设置为4 MOV DPTR, #NUM ; 将DPTR寄存器指向NUM数组的起始地址 LOOP: MOV P1, A ; 将A寄存器的值输出到P1口 MOV R0, #20H ; 将R0寄存器设置为20H DELAY: DJNZ R0, DELAY ; 循环20次延时 CPL A ; 取反A寄存器的值 INC DPTR ; 将DPTR寄存器指向下一个数字的地址 DJNZ R2, LOOP ; 循环4次显示数字 SJMP MAIN ; 跳回程序开始处 NUM: DB 3FH ; 数字0 DB 06H ; 数字1 DB 5BH ; 数字2 DB 4FH ; 数字3 ``` 本程序使用计时器T0来控制数码管的动态显示,每个数字显示的时间为20ms。程序首先将P1口设置为输出模式,将P2口设置为输入模式,然后将计时器T0设置为模式1。在主循环中,程序将A寄存器的值输出到P1口,然后通过循环20次的延时来控制显示时间。程序通过循环4次显示数字来实现动态显示。在每次循环中,程序将A寄存器的值取反,将DPTR寄存器指向下一个数字的地址,然后再次循环显示数字。最后,程序跳回程序开始处,继续循环动态显示数字。在本程序中,数字0-3的编码已经存储在NUM数组中,可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞲_大河弯弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值