数码管的全称是led数码管,也就是说它的使用和“点亮led灯”类似。我们同样需要根据二极管的方向以及电路连线来判断。根据电路连线的差异,数码管又分为共阴和共阳。
b图的左侧,是共阴数码管,这是因为输出端口的另一侧统一接地;相反的,右侧的接法就是共阳了。
如果我们需要控制它输出我们希望的数字(字母),首先我们需要判断我们使用的数码管是共阴还是共阳。其次,我们需要根据二极管的特性来确定数字(字符)对应的16进制表达式。比如,我希望用共阴的数码管输出字符c,那么我需要点亮a,f,e,d,它对应的16进制表达式就为:0011 1001(由dp往上读数);最后就是赋值了,如果控制数码管的8个io口是属于p0的,那我们就直接
p0=0x39;如果我们使用的开发板有8个数码管,这就意味着我们需要通过3个io口来控制点亮哪一个数码管(2^3=8)。具体怎样控制,就需要你去了解你使用的开发板是哪几个io口进行控制。
到这里,我们以及基本掌握了静态数码管的使用,相对应的就是动态数码管了。所谓动态,从实现层面来说,就是我们通过for循环来不断的控制各个数码管输出不同的数值,而每次循环中,穿插十分短暂的延时函数即可。这里,我附上一部分代码帮助大家理解一下:
void display(){ u16 j=0; //这里的u16 = unsigned int for(j=0;j<8;j++) { switch(j) { case (0):aa=0;ab=0;ac=0;break; case (1):aa=1;ab=0;ac=0;break; case (2):aa=0;ab=1;ac=0;break; case (3):aa=1;ab=1;ac=0;break; case (4):aa=0;ab=0;ac=1;break; case (5):aa=1;ab=0;ac=1;break; case (6):aa=0;ab=1;ac=1;break; case (7):aa=1;ab=1;ac=1;break; } p0=xianshi[j]; //控制某个数码管输出内容 delay(10); //短暂延时 p0=0x00; }}看到这里,如果还有不理解的,千万要留言告诉我哦,非常感谢!
应该如何购买物联网卡需要注意什么
效率高达90%的高PF、低THD、低纹波RGB智能照明方案
谁在关注您的维修需求
携手紫光展锐坦克邦,共建芯生态
12V检测电压的调理电路
单片机静态数码管的使用
芯知识 | 什么是CMOS语音芯片?浅析其定义,特性与应用
使用低静态电流小型器件准确测量生命体
UDC尝试OLED发光效率提高4倍
摩根大通正在推动Quorum与以太坊软件开发商ConsenSys的并购计划
5G时代我们的数字生活将发生什么变化
ARCHOS推出全新IMTs产品系列,采用TI OMAP 3
73辆同时充电?最大的“超级快充”站来了!
ST与Mobileye开发汽车视觉驾驶辅助系统处理器SoC
三星A8s值不值得买
区块链如何为互联网优化
变频器常用参数设置步骤图解
互感器可分为哪几类
消息称华为将于12 月23日发布nova8系列机型和Watch Fit等
可穿戴设备中 Apple Watch的心率监测最准确