ADuC834单片机使用内部XRAM后P2口的信号输入问题

[复制链接]
 楼主| frmngil 发表于 2008-9-5 10:45 | 显示全部楼层 |阅读模式
我在使用ADuC834单片机时,如果不是用内部自带的2K XRAM,那么P2口的输入正常,高电平幅值也在5V。 

如果使用内部自带的2K XRAM,那么其他部分都正常,但是P2口的输入信号就无法读出了,用示波器一打,高电平幅值只有1.5伏左右了。 

我找遍了使用手册,只有一个XRAM的使能控制位XRAMEN,再也没找到其他的设置了 

但是ADuC单片机手册上说,如果用内部XRAM时,P0口和P2口可以作为普通IO口使用。 

请问,有什么解决的办法吗?我问了很多老工程师,都没有同时使用过内部XRAM和P2口作输入。 

谢谢! 
dengm 发表于 2008-9-5 12:13 | 显示全部楼层

用 ASM TEST

    MOVX A, @DPTR
    MOVX @DPTR, A

    DPTR 不能大于片内XRAM
 楼主| frmngil 发表于 2008-9-5 13:50 | 显示全部楼层

其他功能都正确,就是P2口的数据进不来了

关键是,使用内部自带的2K XRAM,那么其他部分都正常,但是P2口的输入信号就无法读出了,用示波器一打,高电平幅值只有1.5伏左右了。不知道是什么原因。 
农民讲习所 发表于 2008-9-5 14:19 | 显示全部楼层

信息不全

gjg191 发表于 2008-9-5 14:28 | 显示全部楼层

o

那你看看p2输出还正常马?
 楼主| frmngil 发表于 2008-9-5 16:41 | 显示全部楼层

p2用作输出是正常的


就是说单片机运行的时候,串口等一切都正常,就是P2口的输入数据进不来。

本来按照常理,51单片机的P2口复用地址线。但是ADUC单片机数据手册上说使用内部XRAM时,P2P0口可以用作普通IO口使用。
 楼主| frmngil 发表于 2008-9-6 08:26 | 显示全部楼层

有谁知道?

有谁知道?
5880527 发表于 2008-9-6 09:27 | 显示全部楼层

照2楼的做,写一简短程序,一个劲MOVX

然后用示波器观察
 楼主| frmngil 发表于 2008-9-6 09:48 | 显示全部楼层

问题解决

问题解决了,给大家说一下

ADuC834单片机使用内部XRAM后,P2口作为输入必须先向口线写入“1”
音乐乐乐 发表于 2008-9-6 10:02 | 显示全部楼层

晕,51都是这样啊

lyjian 发表于 2008-9-6 23:52 | 显示全部楼层

呵呵

这点是所有讲51基础的书中都特别强调的:51 IO口作为输入必须先向口线写入“1”。
5880527 发表于 2008-9-7 00:08 | 显示全部楼层

其实这个1很多时候不需要的

复位后它们的状态本来就是输入状态,楼主的情况特殊而已
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部