求祝C8051F IO设置问题

[复制链接]
 楼主| xiaobinkitty 发表于 2010-9-27 13:43 | 显示全部楼层 |阅读模式
本帖最后由 xiaobinkitty 于 2010-9-27 13:55 编辑

我把P2设置为 P2MDOUT|=0XFF,只能输出不能输入,是不是他输入时要再设置一下??SFR里面只有P1MDIN呀??
handlike 发表于 2010-9-27 18:51 | 显示全部楼层
是要重新设置。P1MIN是设置数字口还是模拟口的,而不是设置输入还是输出的。
设输入时只要把P2MOUT=0X00;(如果不是整个P2口读入,只把对应位设为0) 就可以了。
 楼主| xiaobinkitty 发表于 2010-9-28 11:01 | 显示全部楼层
2# handlike
哦 我没用P1口呢 输入只要P2MDOUT=0X00么 好的 我并口方式连得CH375 读不到数据 不知道是硬件问题还是时序问题
/*******CH375读数据***************************************************/
unsigned char CH375_read_data(void)
{
unsigned char temp;
P2MDOUT=0X00;
delay(10);
CS=0;
WR=1;
RD=0;
A0=0;
temp=P2;
delay(100);
CS=1;
WR=1;
RD=1;
A0=1;
P2=0XFF;
delay(10);
P2MDOUT|=0XFF;
return temp;
}
执行CH375硬件复位命令 CH375输出应该是0 可是读到的数据不是0
测试CMD_CHECK_EXIST数据也不对 我一直以为是我IO设置不对
 楼主| xiaobinkitty 发表于 2010-9-28 11:03 | 显示全部楼层
void PORT_Init (void)
{
           char SFRPAGE_SAVE = SFRPAGE;         
           SFRPAGE = CONFIG_PAGE;         
          
           XBR0     = 0x04;                 // Enable UART0
           XBR1     = 0x00;
           XBR2     = 0x40;                 // Enable crossbar and weak pull-up
          
           P0MDOUT |= 0x01;                 // Set TX0 pin to push-pull
           P1MDOUT |= 0x40;                 // Set P1.6(LED) to push-pull
        P2MDOUT |= 0xff;
        P3MDOUT |= 0xff;
//        P2        =0XFF;
//        P3        =0XFF;

           SFRPAGE = SFRPAGE_SAVE;     
}
这是IO设置子程序 串口倒是工作正常
handlike 发表于 2010-9-28 11:59 | 显示全部楼层
P2口作为接收数据只设为P2MDOUT=0X00;就可以了,不用再换成输出形式,然后输出0xff
因为接收方是被动的,线路上的高低电平是受CH375控制的,你只设成接收形式老老实实在那
接收就可以了.
如下:
unsigned char CH375_read_data(void)
{
unsigned char temp;

delay(10);
CS=0;
WR=1;
RD=0;
A0=0;
temp=P2;

return temp;   
}

端口初始化中改为:P2MDOUT=0X00;
如再出问题那真要认真地查一下硬件和时序了。
 楼主| xiaobinkitty 发表于 2010-9-28 15:40 | 显示全部楼层
5# handlike
那发送的命令怎么办 也是用P2的啊
 楼主| xiaobinkitty 发表于 2010-9-28 15:59 | 显示全部楼层
6# xiaobinkitty
貌似你很少上论坛 要不你邮箱留下联系你??
handlike 发表于 2010-9-28 16:32 | 显示全部楼层
P2MDOUT=0XFF时为推挽,=0x00时为开漏,你设为开漏方式,加个上拉10K电阻,不就可以即可发又可收了吗!
      看来用这个MCU的人在这里太少了,这是个不错的MCU呀。大家都只看不说话。新华龙的论坛里人问这个应该不是个问题。
 楼主| xiaobinkitty 发表于 2010-9-28 17:04 | 显示全部楼层
新华龙的论坛貌似关了吧。。。我觉得是硬件故障,CH376压根就没工作。。。哎,烦死了。最怕硬件有问题了,完全不知道怎么办。。。你用过CH376么??
 楼主| xiaobinkitty 发表于 2010-9-28 17:04 | 显示全部楼层
8# handlike
新华龙的论坛貌似关了吧。。。我觉得是硬件故障,CH376压根就没工作。。。哎,烦死了。最怕硬件有问题了,完全不知道怎么办。。。你用过CH376么??
 楼主| xiaobinkitty 发表于 2010-9-28 17:22 | 显示全部楼层
8# handlike
我突然想到 是不是CH376的IO驱动力不够 或者是C8051F的驱动力不够?? 这个驱动力,是指什么啊??我看他们高低电平的电压定义得都差不多啊??驱动力指电流么??那这个要怎么看啊??
 楼主| xiaobinkitty 发表于 2010-9-28 17:24 | 显示全部楼层
8# handlike
问题好多 原谅我吧 我刚实际开始用单片机 以前看着 觉得这个好简单 用起来 这么简单的芯片都搞不定 哎。。。
 楼主| xiaobinkitty 发表于 2010-9-29 10:06 | 显示全部楼层
8# handlike
谢谢你的回复,IO问题搞懂了,我确定是硬件问题了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

26

帖子

1

粉丝

0

主题

26

帖子

1

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