搜索
bottom↓
回复: 19

一个小问题,希望知道的高手能指点一下!

[复制链接]

出0入0汤圆

发表于 2013-2-4 17:02:50 | 显示全部楼层 |阅读模式
以下是对应下面时序图的读DS12C887的函数
uchar read_ds(uchar add)
{
    uchar ds_date;
    dsas=1;
    dsds=1;
    dsrw=1;
    dscs=0;
    P0=add;
    dsas=0;
    dsds=0;
    P0=0xff;
    ds_date=P0;
    dsds=1;
    dsas=1;
    dscs=1;
    return ds_date;
}
我的问题就是程序中的P0=0xff是不是必要的,还是可以去掉的,它的作用是什么?希望知道的高手能指点一下!感谢大家。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-2-4 17:10:03 | 显示全部楼层
P0作为输入口,先输出1 才行。必要的。

出0入0汤圆

 楼主| 发表于 2013-2-4 17:16:51 | 显示全部楼层
i_kkyu 发表于 2013-2-4 17:10
P0作为输入口,先输出1 才行。必要的。

从哪里知道需要P0输出1?是时序图中的两个菱形之间的横线吗?

出0入0汤圆

发表于 2013-2-4 17:19:05 | 显示全部楼层
这和12887 没关系。

出0入0汤圆

发表于 2013-2-4 17:19:21 | 显示全部楼层
标准51 ,就是这样的。

出0入0汤圆

 楼主| 发表于 2013-2-4 17:21:23 | 显示全部楼层
i_kkyu 发表于 2013-2-4 17:19
标准51 ,就是这样的。

那个P0需要输出1是从时序图看出来的吗?

出0入0汤圆

 楼主| 发表于 2013-2-4 17:22:13 | 显示全部楼层
i_kkyu 发表于 2013-2-4 17:19
标准51 ,就是这样的。

能麻烦你详细给我讲讲为什么吗?十分感谢

出0入0汤圆

 楼主| 发表于 2013-2-4 17:26:13 | 显示全部楼层
i_kkyu 发表于 2013-2-4 17:19
标准51 ,就是这样的。

我明白了,谢谢你的回复。

出0入0汤圆

发表于 2013-2-4 17:27:33 | 显示全部楼层
fsfwl 发表于 2013-2-4 17:22
能麻烦你详细给我讲讲为什么吗?十分感谢

想读,就先输出个1 。8个口都输出1 ,就是0xff 了。
具体原因,找个51 的IO口的框图分析下吧。 P0 和其他的口不一样。

出0入0汤圆

发表于 2013-2-4 17:44:25 | 显示全部楼层
这源于51单片机独特的IO口电路结构,见下图:




如P0口,作为输出时是漏极开路结构,当给输出锁存器写入“1”时,口线处于浮空状态,能够作为高阻抗输入(上图红字)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出200入657汤圆

发表于 2013-2-4 18:20:06 | 显示全部楼层
大部分旧的51单片机的P0口要作为输入时必须先将输出寄存器全设为为ff的开漏输出,使得输出信号电平最终决定于外部信号电平,此时便可以光明正大的监测输入电平作为真正的外部电平了

出0入0汤圆

发表于 2013-2-4 18:21:32 | 显示全部楼层
zpxa001 发表于 2013-2-4 17:44
这源于51单片机独特的IO口电路结构,见下图:

兄弟,你哪里找的资料?

出0入0汤圆

发表于 2013-2-4 18:21:56 | 显示全部楼层
我还是不太明白,,

出200入657汤圆

发表于 2013-2-4 18:49:44 | 显示全部楼层
本帖最后由 ziruo2002ab 于 2013-2-4 19:01 编辑

认识这个问题,需要多了解下模电的mosfet的控制知识

出0入0汤圆

 楼主| 发表于 2013-2-4 21:06:09 | 显示全部楼层
zpxa001 发表于 2013-2-4 17:44
这源于51单片机独特的IO口电路结构,见下图:

很详细啊,非常感谢~

出0入0汤圆

 楼主| 发表于 2013-2-4 21:16:14 | 显示全部楼层
ziruo2002ab 发表于 2013-2-4 18:20
大部分旧的51单片机的P0口要作为输入时必须先将输出寄存器全设为为ff的开漏输出,使得输出信号电平最终决定 ...

这是不是就是所谓的高阻态?这个知识点是属于场效应管的吗?但是我刚刚学习的模电书上的场效应管并没有你说的知识点,你可以详细介绍一下这个问题吗?我还有一个问题,就是P1,P2,P3作为输入时需不需要像P0一样先置1?问题很多,请见谅。望指点指点,十分感谢。

出0入0汤圆

发表于 2013-2-10 01:35:31 | 显示全部楼层
外围器件只能拉低单片机的IO 不能拉高 如果外围器件拉电流够大 单片机引脚是低电平 那么引脚会坏掉的

出0入8汤圆

发表于 2013-2-10 02:04:39 | 显示全部楼层
随便找一本51的教科书都会介绍的

出0入0汤圆

发表于 2013-2-10 23:21:13 | 显示全部楼层
很简单,当你的同一个IO还挂有其它的器件,操作过程中可能置抵电平了,那么现在这个公用脚可能未复位回高电平。那么外从外部中读取是不是一直读出低电平呢,而低电平是不可能被拉成高电平了,因为这样会有很大的流,会烧坏接口。而设成高电平是弱上拉,可以被拉成低电平。

出0入0汤圆

发表于 2013-2-12 00:06:58 | 显示全部楼层
旧(标准)51的P0口是作为总线口
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表