1)问题发生
在上一篇“ 以PWM操控直流电机为例建一个简略的51工程结构”中已向我们介绍了一个封装好的8位8段数码管的驱动(如下图中FUNC文件夹下led8.c文件)。

可是该驱动电路是要有必定的硬件根底的(如下图):如2片74HC573。而我这儿只需几个4位8段共阴数码管又没有74HC573,所以就得寻求用51直接驱动的计划了!

2)失利测验
失利操作:直接在相应的引脚间加5伏电压来测验该数码管是否正常
成果:烧坏了2个3461AS
剖析:被第二张图骗了,认为3461AS能够接受01电平发生的压差,而真实情况如下图:在P0口有10K的排阻,然后丈量一下电压总算茅塞顿开!

3)终究计划
在第二步到第三步之间还找到一个比如:他选用3-8译码器然后串联电阻进行维护。

由于有3-8译码器的比如我的直驱的主意得到进一步的验证,所以归纳上面的剖析给出了下面的计划:

4)运用方法
相同的我把关于3461AS封装起来(如下)

在要运用该功用的文件中首要包括头文件,然后引证DuanMa数组、TempData数组以及用于显现的Display函数。

然后在想要显现数据前把数据存储在TempData中(TempData[0]表明要显现的第一个数字,这儿把共阴8段数码管显现从0~F的值存储在DuanMa数组中。因而要让第一个数字显现2则只需TempData[0]=DuanMa[2])。当在TempData中设置好要显现的信息后就能够调用Display函数进行改写数码管显现(Display的第一个参数表明从第几个数码管开端显现,例如FirstBit=0表明从第一个数码管开端显现num位数据)

注:要确保Display有比较快的改写频率
5)常识同享
https://github.com/beautifulzzzz/stc89c51-or-stc89c52
