高分请教,如何控制单片机地址线状态!

hbzxlin 2003-01-11 03:50:04
我用KEIL C 7.0,请问如何编程使89C51的P0.1,P0.1和P1.4变成高电平,其余所有地址线全部为低电平,谢谢!
...全文
74 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbzxlin 2003-01-26
  • 打赏
  • 举报
回复
谢谢大家,结帐!
hbzxlin 2003-01-19
  • 打赏
  • 举报
回复
谁能给画一个简单测试的电路原理图啊?另外再给出相应的Keil C代码!简单就好,我想了解一下单片机,多谢多谢了,分数不够再给!
我的邮箱:hbzxlin@163.net
ht_toto 2003-01-18
  • 打赏
  • 举报
回复
楼上的Tyg,不好意思,是我搞错了,的确如你所说,P1.4=1,输出的是高电平,没错。
但是,在89C51(至少是P0)上,低电平的输出电流比较大,也就是说低电平时,有比较大的驱动能力,所以一般接P0口的电路都是做成低电平有效的。因此给人(也给我)产生了错觉,以为P0口是低电平有效。

再一次更正:89C51的P0口 不 是 低 电 平 有 效 的 !

再一次感谢Tyg的指正,谢谢!
TangYunGang 2003-01-18
  • 打赏
  • 举报
回复
楼上的,你讲的有问题。
1、89C51只有P0口在用做一般的I/O口才需要上拉电阻。
2、谁说89C51的I/O口是低电平有效,哪本书上讲的?你说的例子是直接测的P1.4,还是测的是P1.4经过一些电路后的输出?
所谓的低电平有效,只是针对一些控制引脚而言的,如89C51的PSEN脚(不好意思,PSEN上面应该有一横),按照惯例,低电平有效的引脚上面都应该有一横。
jeffekin 2003-01-18
  • 打赏
  • 举报
回复
我也决的89C51的I/O口是低电平有效
hbzxlin 2003-01-17
  • 打赏
  • 举报
回复
谢谢大家帮助,我还没有试验成功!
ht_toto 2003-01-17
  • 打赏
  • 举报
回复
据我所知,
1、要使用上拉电阻
2、89C51是低电平有效的。也就是说,要想在P1.4输出高电平,就要用 P1_4=0,相反,要输出低电平,就要P1_4=1 才行!
3、另外,89C51的P0口是带锁存的,不用做循环也可以。
以上是我的一些小经验,我也是刚学单片机的,大家互相切磋切磋。
TangYunGang 2003-01-17
  • 打赏
  • 举报
回复
好象有些口要使用上拉电阻,具体的现在有点记不清楚了。
TangYunGang 2003-01-17
  • 打赏
  • 举报
回复
你的问题很简单呀,除非你的系统根本没有正常工作。建议用仿真器调试一下。
另外,P0口在用做一般I/O口时,最好外接上拉电阻。
hbzxlin 2003-01-14
  • 打赏
  • 举报
回复
谢谢,我试试!
xiaocha 2003-01-14
  • 打赏
  • 举报
回复
#include <reg51.h>
main()
{
while (1)
{
P0 = 0x01;
/* ...... */
}
}
hbzxlin 2003-01-14
  • 打赏
  • 举报
回复
我试了,发现不行,P0.0口始终输出一个方波,P1、P2、P3口都是低电平,为什么?
我的程序:
#include <reg51.h>
main()
{
P0=0x01;
}
hbzxlin 2003-01-13
  • 打赏
  • 举报
回复
没有人给指教一下吗?着急哦!
TangYunGang 2003-01-13
  • 打赏
  • 举报
回复
不好意思,上面敲错了,应该为:
unsigned char a;
a = P1;
a = a | 0x10;
P1 = a;
TangYunGang 2003-01-13
  • 打赏
  • 举报
回复
以使P1.4变成高电平为例,
unsigned char a;
a = 0;
a = a | 0x10;
p1 = a;
其它与此类似。
当然,如果只是让P1.4变成高电平,直接赋值更简单:p1 = 0x10;
但是,作为一种通用的方法,在不知道具体的值,而只想改变某一位时,一般都用“与”或者“或”运算。
zhanxia 2003-01-13
  • 打赏
  • 举报
回复
用一个地址锁存器,地址选择开关。 或用p0,p2端口 。或用movx | movc指令中的之一。
hbzxlin 2003-01-12
  • 打赏
  • 举报
回复
这样行吗:
#include <reg51.h>
main()
{
P0=1; //将P0口P0.0置为高电平
}
atrons 2003-01-11
  • 打赏
  • 举报
回复
计算一个其低位为0的地址,再用movex指令
xiaocha 2003-01-11
  • 打赏
  • 举报
回复
直接设置P0,P2

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧