原创
数码管显示
2012-8-7 07:29
1599
8
8
分类:
电源/新能源
前天晚上焊好的数码管只是大概测试了一下,电路是对的。昨晚使用时才发现用不了。
我的记忆中数码管不是上图这样标示的,是FEDCBAGDp=ABCDEFGDp。那是我大二时的记忆,可能是我记错了。我的电路板是按照我错误的记忆来焊的,不可能再花一个晚上来改电路吧,还是自己来编码“便宜”一些。本来想在网上找现成的,没得懒偷了!还好只有0到9这10个数字。
编码出来的结果出现了乱码,只有0、1和8显示的是对的。不知道哪里出了问题?分析了好久,终于看出了破绽。我是按照ABCDEFGDp来编码的,实质上应该是DpGFEDCBA,被我弄反了。隐隐约约记得以前我也犯过这个错,怪我忘得差不多了。也难怪,0、1、8的二进制码正反一致。
下一个问题是我的8位数码管中的第3位不显示,而一个段码长亮。真是奇怪!因为其他的都显示,说明其它段码是好的。我怀疑是位码的问题,而那个长亮的段码跟地线短路了?果真如此,是第3位的位码线与一根段码线短路了。解决问题倒是简单,找这个问题的原因可真让我好找!
接下来一个问题是显示不正常,像2、3等数字显示得非常暗,几乎看不到。不知道是什么问题。还以为又是哪两根线短路了,找了好久都没有发现。我就只好乱弹琴了。尽量完善系统,即使不在乎的小方面也尽量考虑,希望被我碰到问题的所在。我记得以前用51单片的时候会在P0口加一个上拉排阻,我查看了我现在用的STC12C5A60S2的Datasheet,发现上面有一个LED驱动的电路,旁边只有几句注释,基本可以肯定电路是对的。我想看看STC单片机的I/O口结构,有4种,第一种跟传统51单片机一样,第二种是推挽输出。我想试一试推挽输出,因为我在网上查到一片文章,说是用的推挽输出驱动的数码管。在我的系统上,是让接位码的P1口推挽输出,还是接段码的P0口推挽输出,或者两个口子都这样。我用的共阳数码管,我怀疑P0口不能推挽输出,就只设置了P1口。真的解决了问题。那么,P0口我就不管了。我认为推挽输出,相当于接了一个上拉电阻。传统51单片机是在I/O口外面自己接一个,现在的STC在内部集成了,需要的只是去配置。单片机进步了!
我第一次玩数码管的时候,因为单片机P0口没有上拉,导致我痛苦了好几周才发现问题所在。现在竟然又是这个问题。呵呵!有经验了。
文章评论(0条评论)
登录后参与讨论