不亮的点阵

来源:互联网 发布:js 扫描 编辑:程序博客网 时间:2024/04/29 11:07

为什么两个点阵只亮一个呢?可能的原因:

 1、主函数写错了。

2、74hc595的驱动函数错了。

3、电路图画错了。

4、proteus的bug。

 

    困扰了我几天的问题现在解决了,原因是电路图错了。我用复用的P0(AD0~AD7)口作为74hc595的使能端,这是错误的,而改用普通的P1口后就行了。这是什么原因呢?

    某人的回答:

     由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部  的电路提供,绝大多数情况下P0口是必需加上拉电阻的。
1.一般51单片机的P0口在作为地址/数据复用时不接上拉电阻。
2.作为一般的I/O口时用时,由于内部没有上拉电阻,故要接上上拉电阻!!
3.当p0口用来驱动PNP管子的时候,就不需要上拉电阻,因为此时的低电平有效;
4.当P0口用来驱动NPN管子的时候,就需要上拉电阻的,因为此时只有当P0为1时候,才能够使后级端导通。
简单一点说就是它要驱动LCD显示屏显示就必须要有电源驱动,否则亮不了,而恰好P0口没有电源,所以就要外接电源,接上电阻是起到限流的作用;如果接P1、P2、P3端口就不用外接电源和电阻了。