以下是对应下面时序图的读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是不是必要的,还是可以去掉的,它的作用是什么?希望知道的高手能指点一下!感谢大家。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我明白了,谢谢你的回复。
想读,就先输出个1 。8个口都输出1 ,就是0xff 了。
具体原因,找个51 的IO口的框图分析下吧。 P0 和其他的口不一样。
Snap2.gif (39.01 KB, 下载次数: 0)
下载附件
2013-2-4 17:41 上传
如P0口,作为输出时是漏极开路结构,当给输出锁存器写入“1”时,口线处于浮空状态,能够作为高阻抗输入(上图红字)。
一周热门 更多>