51单片机,数码管显示

这是单片机开发板的数码管电路图,我想让这八个数码管全部都同时显示数字,我该怎么设计程序呢?用C语言写。

573和138芯片都会使用吧?首先你要注意,电路图中很明显数码管的同一个段选都连在573同一跟线上了,然后跟你分析一下程序的思路,很简单:假如你要显示数字1,首先那P0口输出0x06(数码管应该是共阴的吧)即让b、c亮,然后你程序上让138的15脚输出低电平而7、9、10、11、12、13、14脚输出低电平,这样岂不是第一个数码管亮了,然后再接着是14脚输出高电平而15、7、9、10、11、12、13脚输出低电平,这样就点亮第二个数码管,依次下去直到点亮最后一个数码管。但注意!我们人眼的分辨率是分不清的,换句话说,虽然这是一个个把数码管点亮,但程序执行的很快,而人眼分不清,在我们眼中就是全部数码管被同时点亮了,这就是我们经常所说的“数码管动态扫描”(扫描太快,人眼分不清,以至于人眼的错觉让我们感到数码管同时被点亮)

楼下的说法也不能这么说吧,毕竟51系列高电平输出能力很弱,低电平也仅能点亮LED,所以常见输出低电平才灯亮的接法,而AVR芯片的高低驱动能力都很强,甚至能推动8字数码管的公共极,怎么接都没问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-20
正常扫描动态显示就可以了,注意的是总的一帧扫描时间 不要超过40毫秒,但扫描间隔时间也不能低于3毫秒。
第2个回答  2013-02-19
我可以很直接的告诉你,用这种方法显数码管的人是SB。
直接把段选连P1,位选连P2,直接动态显就行。看到这个在实用中根本不会采用,还加两个芯片。
第3个回答  2013-02-20
你的数码管是共阳的吧,此硬件图不管你怎编程序,都不可能实现。
相似回答