打印

单片机的P0口

[复制链接]
2059|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1、想请教一下大家,这个P0口需要不需要上拉?
2、数据手册如图,请大家看一下,这个地方说如果配置成复用地址/数据线的时候是自带上拉的,单纯写数据的时候单片机怎么会区分是IO模式还是数据总线模式?请指点

QQ图片20150106155551.png (74.24 KB )

QQ图片20150106155551.png

相关帖子

沙发
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到管脚时,当做高阻抗的输入” ...

是啊,可是我不用这功能啊,我想要的是带上拉的数据线!

使用特权

评论回复
5
ayb_ice| | 2015-1-6 17:15 | 只看该作者
wang168506 发表于 2015-1-6 17:00
是啊,可是我不用这功能啊,我想要的是带上拉的数据线!

做总线是不需要上拉的

其它的都需要,

使用特权

评论回复
6
wang168506|  楼主 | 2015-1-6 17:32 | 只看该作者
ayb_ice 发表于 2015-1-6 17:15
做总线是不需要上拉的

其它的都需要,

做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要配置的吧,看图中说可以被configured to  be   我现在就属于没有进行配置但是输出全为低

使用特权

评论回复
7
JY-DX-JY| | 2015-1-6 19:37 | 只看该作者
编程不一样吧,总线好像要用XBYTE吧

使用特权

评论回复
8
落雪绽菊| | 2015-1-6 19:58 | 只看该作者
执行用作地址/数据的指令时(读取或者写入外部数据,MOVX A,@DPTR,MOV @DPTR,A),系统自动配置成内部上拉模式,P0口高低自如。前一句是读取,我们用不到P0的内部上拉功能,后一句是写入,P0口会输出高或者低的信号,具体要看A寄存器中的值。输出低时跟普通的方式一样,输出高时,下边那个管子关闭,上边的管子打开,输出电压是Vcc-0.2V。
指令中看不到P0,但是实际用到了P0。

使用特权

评论回复
9
cainiao_123| | 2015-1-6 22:48 | 只看该作者
wang168506 发表于 2015-1-6 17:32
做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要 ...

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

单纯输出数据时,例如并口驱动1602或12864时,需要上拉

使用特权

评论回复
10
ayb_ice| | 2015-1-7 08:03 | 只看该作者
wang168506 发表于 2015-1-6 17:32
做总线的话不需要上拉么?我单纯输出数据单片机是如何知道我是做IO用还是数据总线用呢?应该有个地方需要 ...

还是去看下51基本结构吧

使用特权

评论回复
11
wang168506|  楼主 | 2015-1-7 08:43 | 只看该作者
落雪绽菊 发表于 2015-1-6 19:58
执行用作地址/数据的指令时(读取或者写入外部数据,MOVX A,@DPTR,MOV @DPTR,A),系统自动配置成内部上拉 ...

大哥  终于看到明白人了,关键问题就在这,之前程序是汇编写的,我现在用C语言写   如何也让系统自动配置成内部上拉呢?

使用特权

评论回复
12
wang168506|  楼主 | 2015-1-7 08:43 | 只看该作者
ayb_ice 发表于 2015-1-7 08:03
还是去看下51基本结构吧

呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么?

使用特权

评论回复
13
疯小子| | 2015-1-7 08:47 | 只看该作者
wang168506 发表于 2015-1-7 08:43
呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么? ...

你还是不明白,赶紧看去吧!

使用特权

评论回复
14
wang168506|  楼主 | 2015-1-7 08:51 | 只看该作者
疯小子 发表于 2015-1-7 08:47
你还是不明白,赶紧看去吧!

那你说说呗?需要配置哪?我洗耳恭听,但是你如果不知道,就别在这乱说话!

使用特权

评论回复
15
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来控制  可是问题是控制不了,加上上拉就可以输出  不加就不行  所以我现在换衣是没能配置成数据线模式?懂了么?

使用特权

评论回复
16
ayb_ice| | 2015-1-7 09:02 | 只看该作者
wang168506 发表于 2015-1-7 08:43
呵呵   ,不是初学者,51单片机这点事我还算的上明白,请问你这块看懂了么? ...

我看是
自以为明白吧

使用特权

评论回复
17
wang168506|  楼主 | 2015-1-7 09:51 | 只看该作者
ayb_ice 发表于 2015-1-7 09:02
我看是
自以为明白吧

呵呵!彼此彼此吧!

使用特权

评论回复
18
wang168506|  楼主 | 2015-1-7 09:54 | 只看该作者
wang168506 发表于 2015-1-7 09:51
呵呵!彼此彼此吧!

如果你真明白,你会给我的是解决方案或者指出可能的方向,而不是顾左右而言他

使用特权

评论回复
19
ayb_ice| | 2015-1-7 10:04 | 只看该作者
wang168506 发表于 2015-1-7 09:51
呵呵!彼此彼此吧!

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

这种基本的东西看手册比什么都强

使用特权

评论回复
20
popeye021| | 2015-1-7 11:23 | 只看该作者
wang168506 发表于 2015-1-7 09:54
如果你真明白,你会给我的是解决方案或者指出可能的方向,而不是顾左右而言他 ...

既然是用C51,那就看C51程序设计的书吧,应该会有外部ram的用法。
印象中是前面有人提到的XBYTE定义外部ram地址,10来年没这么用过了,忘光光了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

811

帖子

5

粉丝