打印

P3口可否做中断口和普通I/O口分时复用口

[复制链接]
3317|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lixuanbing|  楼主 | 2007-1-15 14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想将51的P3.2口作为中断口和普通I/O口分时复用口,因为设计需要捕捉到IN0的上升沿。
  可这个程序:
    void IN0_service(void) interrupt 0 using 0 
    {
      ````````````
      while(!P3^2);//等待上升沿
      `````````````
    }
  每次用伟伏仿真器仿真时,就在此处死循环。
请教51的大虾们如何解决????????????????????

相关帖子

沙发
lixuanbing|  楼主 | 2007-1-15 15:05 | 只看该作者

中断口和普通I/O口分时复用口

中断口和普通I/O口分时复用口,你在设计中用到没?可否指点一二???????????????????
请大家指点指点?????????????????????????????????????

使用特权

评论回复
板凳
zusen| | 2007-1-15 17:12 | 只看该作者

当然可以

关闭了中断 就是IO口了,虽要中断时再打开

使用特权

评论回复
地板
sharpxcb| | 2007-1-15 23:08 | 只看该作者

P3口可否做中断口和普通I/O口分时复用口

  回楼主的:既然是中断,其意就为“捕捉到IN0的上升沿”这个时序是未知的,是要靠中断来随机响应的,那就是说,你对中断这个IO口的时序变化很有可能不方便与普通的IO复用,要不就不叫中断,或你能确定你这个中断讯号是很有规律,且保证在某一时序段内不会发生~!

使用特权

评论回复
5
jqwx| | 2007-1-16 03:52 | 只看该作者

支持3楼

支持3楼,关闭中支持3楼,关闭中断后,就可以作为普通I/O口使用断后,就可以作为普通I/O口使用

使用特权

评论回复
6
shiyang800| | 2007-1-16 12:47 | 只看该作者

不稳定,问题可能比较多,要是需要I/O可以外加IC扩

使用特权

评论回复
7
lixuanbing|  楼主 | 2007-1-16 17:07 | 只看该作者

谢谢

是的我关了中断。但是好像还是不行。在中断中好像不能用WHILE(!P3^2)语句。
小弟郁闷。不能了解其缘故。请赐教!!!!!!!!!!!!!!!!

使用特权

评论回复
8
lixuanbing|  楼主 | 2007-1-16 17:17 | 只看该作者

谢谢

很重要一点是我要捕捉到P3.2口的中断信号何时变高就是上升沿。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

33

帖子

0

粉丝