论坛风格切换切换到宽版
  • 3872阅读
  • 5回复

问一个端口清零问题 [复制链接]

上一主题 下一主题
离线BG3MVR
 
发帖
463
只看楼主 倒序阅读 0楼 发表于: 2007-08-11
比如89c2051片子,p1.0的端口的状态为0.现在再用clr p1.0,那它的状态是什么?如果是1那就是我的书对了。如果是0那就是书有问题了!
离线庄乾章
发帖
1047
只看该作者 1楼 发表于: 2007-08-11
clr p1.0     p.0=0
setb p1.0   p1.0=1
离线BG4UVR
发帖
11288
只看该作者 2楼 发表于: 2007-08-11
clr p1.0 的结果,肯定是p1.0为低电位。

不过,setb p1.0的结果,却不一定是p1.0为高电位。

这是因为,89c2051的p1.0内部并没有上拉电阻。在外部没上拉电阻的情况下,此时p1.0是高阻态。比如驱动一个没有上拉电阻的npn管(接成常见的共射极放大器)的基极,你会发现这个管子并不能导通。

以上纯属猜测,未经实验验证。如有错误,还请指正。
离线BD0AAI
发帖
3050
只看该作者 3楼 发表于: 2007-08-15
前两天做的一个东西也发现, 89s52的p1.7 死活不能置0,换上p89c669就ok了, 一直搞不懂是怎么回事, 上拉,下拉都没用.
离线Sullivan
发帖
4817
只看该作者 4楼 发表于: 2007-08-23
89s52也是mcs-51 不可能1.7不能置位,只有几种可能: 电路有短路, cpu坏了, 或者程序有误
如果换个cpu 就好了,那肯定是芯片坏咯....

我用这些芯片包括8031作了好多好玩的电路, 没发现有芯片某个脚功能上和mcs-51系列不兼容的..
离线电磁波FM
发帖
917
只看该作者 5楼 发表于: 2007-08-24
写个简单的测试程序对两个输出口测试一下以确定端口是否损坏,ok后再写其他程序.