电子
proteus折腾第二步——数码管动态显示
标签(空格分隔): 电子
定时炸弹怎么能少了计数器,所以点一个led自然是远远不够地。现在我们就让数码管跑起来,折腾这个折腾了一整天也是醉了。我是按照郭天祥开发板的原理图接的锁存器(74h573)和共阴极数码管。注意!7esg-mpx8-ca才是共阴极的,cc是共阳极的。还有一点需要知道的就是锁存器的接法,proteus还是一如既往地帮你接好了gnd和vcc,接下来就是oe和le端了。参考如下这段话:
2、管脚说明:
OE:output_enable,输出使能;
LE:latch_enable,数据锁存使能,latch是锁存的意思;
Dn:第n路输入数据;
On:第n路输出数据;
3、工作原理简述
当OE=1是,无论Dn、LE为何,输出端为高阻态;
当OE=0、LE=0时,输出端保持不变;
当OE=0、LE=1时,输出端数据等于输入端数据;
在实际应用的时候是这样做的:
a. OE=0;
b. 先将数据从单片机的口线上输出到Dn;
c. 再将LE从0->1->0
d. 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输出的数据了;
可以看出,oe端只要长期置零就ok了,所以我们果断连上gnd,然后le端位选接p2^7,段选接p2^6(和郭天祥开发板的接法一样,这样可以直接用他的程序做测试)。至于Dn口的接法需要注意,因为单片机内部P0是没有上拉的,所以得接上拉电阻,我偷懒就直接接P1口啦。最后,对应的数码管段选数组得用这个
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
不然显示不正常。附上我自己改好的程序和最终效果图。