日志档案

发表于 2007-10-31 12:57:31

1

标签: 数据地址总线  通用IO  优化设计  

作为总线的P0 P2口也可以做通用I/O口

       一般情况下,并行总线并不是把P0,P2的每一个引脚都作了数据/地址总线来使用的,对于开发人员来说,充分的利用每一个I/O口即可以达到提高系统资源的利用率,也可以避免因需要过多I/O引脚而使得系统芯片占用过多电路板面积的尴尬。

        一般并行总线接口的方式下,8根数据线是并需的,而地址总线并非总是需要16条,特别是对于那些外围扩展器件,比如在我的用DS12887时钟芯片制作的时钟闹钟系统 一文中DS12887的地址就只有9条线, 这样就就使得P2口全部用来做地址总线就显得有些空余,这些空余的地址总线是不是可以更好的利用起来呢?然而在很多书上“若P0,P2口作为数据/地址总线就不能用作通用I/O口”的结论可能会吓住我们进一步的思考。

          用DS12887时钟芯片制作的时钟闹钟系统文中作为地址线而未连接有的P2.6--P2.0,以P2.0为例,用来控制PNP型三极管驱动蜂鸣器作为警报,当P2.0为高时,蜂鸣器不发声;为低时,则发声。设DS12877的地址时,没有连接的线可以设为1或0,这里可以令DS12887的A8(即P2.0口)恒为“高”,这样在写和读DS12887的指令周期中,蜂鸣器总是不发声的。若出现需要报警的情况(比如闹钟设置的时间到),设置一个报警标志位并置位为1,每一次总循环处理的过程中,先处理写和读DS12887的过程,然后紧接着检查报警标志位是否为1,若为1,就使P2.0为低,即蜂鸣器发声,即使在检查报警标志位之前的过程中使得A8为“高”,但是这个过程非常短暂,而且安排在后的判断报警标志位的过程使得P2.0又回到了低(如果有报警的需要,当然若不需要报警,前面出现A8为高本身就是正常的了),所以最后出现的结果使得P2.0所接的蜂鸣器听起来总是在正常工作的。
         所以作为数据地址总线的端口并非总不能用做通用I/O口的,当然在具体设计的时候还要具体考虑的,本文讨论的是比如一些简单的人机接口,利用的是“人体器官并不是很灵敏”的道理,若在一些高可靠性的设计中就要再三权衡了。
 
                  write by eleclike 2007-10-31

系统分类: 单片机   |   用户分类: 单片机   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(632)    回复(2)  

投一票您将和博主都有获奖机会!

最新评论

  • l0p0c

    2007-10-31 14:09:19

    看看!

  • NIKK

    2008-2-21 18:19:43

    我也试试