静态数码管实验
我感觉静态数码管这块更多的是对硬件知识的再认识吧,其中关于程序设计方面可以拿出来评赏的东西其实不多。目前get到的是对高低电平的在认识以及使用十六进制来灵活的表示十进制。
项目实现代码
关于实验代码这块了,我不太想直接让大家CV吧,因为代码量不是特别大,然后小伙伴们对照我的代码敲一遍,可以更好的发现自己看不到的一些问题。
实验效果:
刨根问底环节
浅识数码管
数码管是一种半导体发光器件,其基本单元仍旧是发光二极管。数码管有时候也称LED数码管
1、数码管的分类
① 数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容;
② 按能显示多少个(8)可分为1 位、2 位、3 位、4 位、5 位、6 位、7 位等数码管。
③ 按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。
2、共阳极数码管和共阴极数码管的认识
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM 接到+5V。
当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM 接到地线GND 上,它们的阳极是独立的。
当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
这里有个小常识需要作为知识储备。对于开发板这种集成电路而言,共阳极数码管更为常用,这是因为数码管的非公共端一般都是接在IC芯片的I/O口上,但是I/O口的驱动能力其实是比较差的,使用共阳极数码管能够接驱动电流到公共端,这样下来,芯片的负担会小很多。
但是51用的数码管是2 个四位一体的共阴极数码管,也就是8 个LED的阳极全部并联一起引出,阴极分别引出如A、B、C、D、E、F、G、DP。
对于共阴极数码管了,举个例子,如果要让共阴数码管显示数字0,即对应的段ABCDEF 要点亮即给它高电平,其他的段熄灭即给它低电平
在清楚了怎么通过高低电平点亮数码管中的LED灯之后,我们就可以设计出不同的组合来显示我们需要的内容,为后续的代码落实做铺垫。
下图就是通过改变高低电平来显示0 ~ 9以及显示A ~ F
代码设计
单片机的东西,想要把代码写出来,主要还是要会看电路图,通过电路图清楚那些引脚来控制当前的这个设备。
和我一起浅看一下数码管的电路图吧
首先观察上面一个电路图,控制a~dp八个LED灯的引脚是P0,意思就是,我们要操作P0引脚输出的高低电才能够得到咱想要显示的数字。
下面这个是这八个LED灯的总汇的图,74HC138是一个译码器,P22、P23、P24默认是高电平了,现在就保持默认,不动它,待会动态数码管实验详细阐述这个译码器。
项目代码
感觉很像算法里面的打表,提前把共阴极的表打出来,在主函数里直接使用表中数据即可。