单片机的P0口

[复制链接]
2508|23
 楼主| wang168506 发表于 2015-1-6 15:58 | 显示全部楼层 |阅读模式
1、想请教一下大家,这个P0口需要不需要上拉?
2、数据手册如图,请大家看一下,这个地方说如果配置成复用地址/数据线的时候是自带上拉的,单纯写数据的时候单片机怎么会区分是IO模式还是数据总线模式?请指点

本帖子中包含更多资源

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

×
leon19911224 发表于 2015-1-6 16:09 | 显示全部楼层
看看资料里面会不会有其他地方提到关于这一块的配置,或者寄存器设置里面有没有相应的内容,要是找不到搭个最小系统写几句最简单的程序测一下也看出来了
ayb_ice 发表于 2015-1-6 16:17 | 显示全部楼层
说的不是很清楚吗

“是个8位的开漏双向口,写1到管脚时,当做高阻抗的输入”
 楼主| wang168506 发表于 2015-1-6 17:00 | 显示全部楼层
ayb_ice 发表于 2015-1-6 16:17
说的不是很清楚吗

“是个8位的开漏双向口,写1到管脚时,当做高阻抗的输入” ...

是啊,可是我不用这功能啊,我想要的是带上拉的数据线!
ayb_ice 发表于 2015-1-6 17:15 | 显示全部楼层
wang168506 发表于 2015-1-6 17:00
是啊,可是我不用这功能啊,我想要的是带上拉的数据线!

做总线是不需要上拉的

其它的都需要,
 楼主| wang168506 发表于 2015-1-6 17:32 | 显示全部楼层
ayb_ice 发表于 2015-1-6 17:15
做总线是不需要上拉的

其它的都需要,

做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要配置的吧,看图中说可以被configured to  be   我现在就属于没有进行配置但是输出全为低
JY-DX-JY 发表于 2015-1-6 19:37 | 显示全部楼层
编程不一样吧,总线好像要用XBYTE吧
落雪绽菊 发表于 2015-1-6 19:58 | 显示全部楼层
执行用作地址/数据的指令时(读取或者写入外部数据,MOVX A,@DPTR,MOV @DPTR,A),系统自动配置成内部上拉模式,P0口高低自如。前一句是读取,我们用不到P0的内部上拉功能,后一句是写入,P0口会输出高或者低的信号,具体要看A寄存器中的值。输出低时跟普通的方式一样,输出高时,下边那个管子关闭,上边的管子打开,输出电压是Vcc-0.2V。
指令中看不到P0,但是实际用到了P0。
cainiao_123 发表于 2015-1-6 22:48 | 显示全部楼层
wang168506 发表于 2015-1-6 17:32
做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要 ...

做总线时不需要上拉,例如用于访问片外的RAM或ROM等

单纯输出数据时,例如并口驱动1602或12864时,需要上拉
ayb_ice 发表于 2015-1-7 08:03 | 显示全部楼层
wang168506 发表于 2015-1-6 17:32
做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要 ...

还是去看下51基本结构吧
 楼主| wang168506 发表于 2015-1-7 08:43 | 显示全部楼层
落雪绽菊 发表于 2015-1-6 19:58
执行用作地址/数据的指令时(读取或者写入外部数据,MOVX A,@DPTR,MOV @DPTR,A),系统自动配置成内部上拉 ...

大哥  终于看到明白人了,关键问题就在这,之前程序是汇编写的,我现在用C语言写   如何也让系统自动配置成内部上拉呢?
 楼主| wang168506 发表于 2015-1-7 08:43 | 显示全部楼层
ayb_ice 发表于 2015-1-7 08:03
还是去看下51基本结构吧

呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么?
疯小子 发表于 2015-1-7 08:47 来自手机 | 显示全部楼层
wang168506 发表于 2015-1-7 08:43
呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么? ...

你还是不明白,赶紧看去吧!
 楼主| wang168506 发表于 2015-1-7 08:51 | 显示全部楼层
疯小子 发表于 2015-1-7 08:47
你还是不明白,赶紧看去吧!

那你说说呗?需要配置哪?我洗耳恭听,但是你如果不知道,就别在这乱说话!
 楼主| wang168506 发表于 2015-1-7 08:56 | 显示全部楼层
疯小子 发表于 2015-1-7 08:47
你还是不明白,赶紧看去吧!

做IO是开漏  没能力输出高电平,写1高阻态,写0 为灌电流模式,
做数据总线时,有一个MUX多路开关需要配置才行,在汇编语言环境下 MOVX A,@DPTR,MOV @DPTR,A的确会自动切换读写因为数据/地址线上是带上拉的,可是切换到KEIL C下之后就我需要结合RD  WR来控制  可是问题是控制不了,加上上拉就可以输出  不加就不行  所以我现在换衣是没能配置成数据线模式?懂了么?
ayb_ice 发表于 2015-1-7 09:02 | 显示全部楼层
wang168506 发表于 2015-1-7 08:43
呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么? ...

我看是
自以为明白吧
 楼主| wang168506 发表于 2015-1-7 09:51 | 显示全部楼层
ayb_ice 发表于 2015-1-7 09:02
我看是
自以为明白吧

呵呵!彼此彼此吧!
 楼主| wang168506 发表于 2015-1-7 09:54 | 显示全部楼层
wang168506 发表于 2015-1-7 09:51
呵呵!彼此彼此吧!

如果你真明白,你会给我的是解决方案或者指出可能的方向,而不是顾左右而言他
ayb_ice 发表于 2015-1-7 10:04 | 显示全部楼层
wang168506 发表于 2015-1-7 09:51
呵呵!彼此彼此吧!

叫你去看手册是诚心的
毕竟写书的人表达能力强,权威,并非一言两语能说清楚的

这种基本的东西看手册比什么都强
popeye021 发表于 2015-1-7 11:23 | 显示全部楼层
wang168506 发表于 2015-1-7 09:54
如果你真明白,你会给我的是解决方案或者指出可能的方向,而不是顾左右而言他 ...

既然是用C51,那就看C51程序设计的书吧,应该会有外部ram的用法。
印象中是前面有人提到的XBYTE定义外部ram地址,10来年没这么用过了,忘光光了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

811

帖子

5

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