打印

对I/O的迷惑(看过这贴的朋友,再进来看资料)

[复制链接]
4229|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szshawn2010|  楼主 | 2010-1-12 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 szshawn2010 于 2010-1-13 15:17 编辑

对所有I/O进行 了设置,只是以下两个I/O有些奇怪.
有两个I/O,一个是OSCO(晶振OUT),一个是RESET

说明书中,称:RESET仅能当做输入口来用. OSCO未说明,即可作为I/O来用.


于是,本人对这两个I/O进行了方向设置,均为输出口.(reset只能当输入,因此,这个设置对他应该是无效的)

然后,再对所有的I/O 寄存器进行,清零.

测试结果是:

OSCO 居然有电压,为1.99V
RESET也有电压,为3.2V
VDD为4.10V

本想把问题简化一下.既然大家这么想知道芯片的型号,我就把资料发到附件.这样就够详细了.

按资料:I/O,分为A 部分 4位的,B部分8位的.
其中A,没有太多的讲究.
实测中,我将A的四个端口全设为输出模式,并在软件之初就将其全部设为0.然后,软件就没再动了,处于等待命令状态.

此时,我去检测,怪事发生了:A1,A2,A3都是低电平,A0却是高电平.

---------------------***********-----------------------

AT8PS53.pdf

509.67 KB

相关帖子

沙发
szshawn2010|  楼主 | 2010-1-12 19:32 | 只看该作者
疑问:
1.如果I/O的方向为输出,那么,当该I/O为低电平,即0V时,外围电路的电流能否与之构成回路?
2.如果I/O的方向为输入,那么,当I/O为高电平时,能否对外围的电路提供电压?
3.当外围电路需要I/O为低电平,以与其形成回路时.那么该I/O应该设置为输入还是输出?

-----
再请高手,解答下通常OSCO端口的特殊性

使用特权

评论回复
板凳
HWM| | 2010-1-12 19:38 | 只看该作者
OSCO 功能取消了没有?
RESET作为输入,呈现高阻,量其电压没有意义。

使用特权

评论回复
地板
NE5532| | 2010-1-12 20:21 | 只看该作者
用的哪种单片机?报上名来,我们不是李XX,算不出你用的什么机型。

使用特权

评论回复
5
szshawn2010|  楼主 | 2010-1-12 20:36 | 只看该作者
MCU的品牌很偏避.但是万变不离其中嘛

那问一下.reset 作为为输入.呈高阻.那么没实测中发现其电压为3.2V.那么这3.2V能作为电源供外围电路工作吗

使用特权

评论回复
6
NE5532| | 2010-1-12 20:44 | 只看该作者
你是蓄意来21IC踢馆?这么横,我也只告诉你答案:悬浮电压;不能!

使用特权

评论回复
7
szshawn2010|  楼主 | 2010-1-12 20:53 | 只看该作者
呵呵~~!
再请教一下:输出方向的I/O,呈低电平.能与有电压的 外围电路形成回路吗?
               输入方向的I/O,呈低电平,能与有电压的外围电路形成回路吗?

使用特权

评论回复
8
NE5532| | 2010-1-12 20:55 | 只看该作者
只要有电压,就有回路,输入输出只是电路形式罢了。

使用特权

评论回复
9
ningling_21| | 2010-1-12 21:00 | 只看该作者
楼上正解.

使用特权

评论回复
10
szshawn2010|  楼主 | 2010-1-12 21:48 | 只看该作者
既然如此,那么对I/O的方向进行定义岂不是多此一举吗?期望解答

使用特权

评论回复
11
huamunv| | 2010-1-12 22:38 | 只看该作者
越看越糊涂

使用特权

评论回复
12
程序匠人| | 2010-1-12 22:56 | 只看该作者
连什么芯片都不说,这个问题没法讨论。

使用特权

评论回复
13
szshawn2010|  楼主 | 2010-1-12 23:15 | 只看该作者
本帖最后由 szshawn2010 于 2010-1-12 23:21 编辑

12# 程序匠人

我不认为这个问题会与芯片的品牌有关!
我认为这是设计的基本理论.

不知可以按如下方式理解:
1.OUTPUT,当读其端口状态的时候,其端口状态不会随芯片外围电路的变化而变化,只会按指令的要求去执行.

譬如:当端口外部为低电平时,而端口指令要求其端口为高电平.那么,当软件读其端口状态时,其内容会为高电平,而不是因外围短地,而变为低电平. (实测时,该端口可能是低电平.但是软件读该端口数据却一定是1)


2.INPUT端口的状态,当读端口时,其状态是会随外围变化而变化的.
譬如:按键的使用.其端口为input,每当外围短路到地时,读该端口就会得到一个0值.而如果这是一个OUTPUT端口,当外围短路时,读其端口值,应该不会是一个低电平,而是一个软件指令赋于他的值.(可能是高也可能是低).

使用特权

评论回复
14
szshawn2010|  楼主 | 2010-1-12 23:29 | 只看该作者
请教众网友图中的问题

2.JPG (144.26 KB )

2.JPG

使用特权

评论回复
15
一级菜鸟| | 2010-1-13 02:42 | 只看该作者
13# szshawn2010

转牛角尖了不是?不同的MCU有不同的IO接口设计,这么个论法真的没**,端口的设计各大厂家有各自的分隔,51只要写1就能做为INPUT,而有很多MCU则有专用的IO方向控制寄存器,甚至有上拉使能、下拉使能、端口电流控制、您老怎么谈怎么谈法?

灰常建议你多读几款MCU的数据手册,里面的IO口描述部分能完整的解答你的问题。

使用特权

评论回复
16
badbird1234| | 2010-1-13 09:59 | 只看该作者
明显是SONIX
或是台湾的垃圾货色

使用特权

评论回复
17
szshawn2010|  楼主 | 2010-1-13 11:05 | 只看该作者
现在碰到问题是,这个问题不搞清楚.软件没法子跑下去.

至于楼上说的芯片中的垃圾货色 我不敢苟同.搞设计的是为商业服务的.在商业中是没有垃圾与非垃圾之分,有市场就是好的.

使用特权

评论回复
18
micropower| | 2010-1-13 12:43 | 只看该作者
哪么保密,问个问题都不说清出题目。
除了功能的使用外,各种单片机架构都不一样,涉及到IO的更是多种多样。没有说万变不离其宗的。
比如我现在用的PIC,当时没看清DATASHEET,设置IO的时候,漏了一个东西没设置好,结果出现了类似你那样的错误。

使用特权

评论回复
19
badbird1234| | 2010-1-13 13:45 | 只看该作者
LS
是复用没用好吧
我当时是LCD COM没设好

使用特权

评论回复
20
反质子| | 2010-1-13 13:52 | 只看该作者
厉害就直接看IO口电路自己分析:lol

使用特权

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

本版积分规则

92

主题

636

帖子

1

粉丝