打印
[其它应用]

如果系统中某个IO口需要作为双向数据线使用时,如何设定?

[复制链接]
1539|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songqian17|  楼主 | 2017-2-14 19:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SH79F161A单片机的IO口不像传统51单片机那样具有4种模式(准双向,推挽,开漏,仅为输入),161A只有输入和输出两种模式,其中输入又有内部上拉电阻关闭和开启选择,另外,有特定的极个别IO口可以选择作为开漏使用。如果系统中某个IO口需要作为双向数据线使用时,如何设定?
沙发
chenho| | 2017-2-14 19:45 | 只看该作者
双向数据线使用时,当作为输入时,切换为输入,输出时,切换为输出,不是初始化一次后就永远不变的

使用特权

评论回复
板凳
songqian17|  楼主 | 2017-2-14 19:47 | 只看该作者
JTAG烧写用的4个IO口,TDO,TMS,TDI,TCK,如果系统中需要把TDO作为输入IO口脚使用,而把TDI作为输出IO口使用进行相应的寄存器设置,会不会影响JTAG程序的烧写?

使用特权

评论回复
地板
gongche| | 2017-2-14 19:51 | 只看该作者
不会影响

使用特权

评论回复
5
songqian17|  楼主 | 2017-2-14 19:53 | 只看该作者
某个IO口需要作为开漏输出使用,比如P3.2作为开漏输出,如何设置?

使用特权

评论回复
6
huwr| | 2017-2-14 19:55 | 只看该作者
为什么要这么搞

使用特权

评论回复
7
songqian17|  楼主 | 2017-2-14 19:58 | 只看该作者

能作为开漏使用的那几个管脚已经作为AD输入使用了

使用特权

评论回复
8
huwr| | 2017-2-14 20:00 | 只看该作者
开漏输出按照数据手册的说明就好了。

使用特权

评论回复
9
songqian17|  楼主 | 2017-2-14 20:02 | 只看该作者

JTAG下载用到的4个IO口我也做了测试,全部设置为输入或者全部设置为输出模式均不影响代码的下载

使用特权

评论回复
10
songqian17|  楼主 | 2017-2-14 20:06 | 只看该作者
双向数据线的使用,按照你的回复,看来不能像普通的51单片机那样初始化一次不变了,只能是在代码中用作输入时设置为输入IO口,而需要用作输出口时,随时切换设置为输出IO口,是这个意思吧

使用特权

评论回复
11
chenho| | 2017-2-14 20:09 | 只看该作者

对的

使用特权

评论回复
12
songqian17|  楼主 | 2017-2-14 20:11 | 只看该作者
这种设置感觉有点啰嗦麻烦,而且也相应的增加了编译后的目标代码量,不过目前看来好像只能这样解决了。

使用特权

评论回复
13
huanghuac| | 2017-2-14 20:14 | 只看该作者
其实不明白你第三个问题

使用特权

评论回复
14
songqian17|  楼主 | 2017-2-15 20:28 | 只看该作者
中颖SH79F161A能设置为开漏和推挽输出的IO口只有4个,分别是:P02,P03,P04和P05,不过这4个IO口也是复用为AD采样端口的,我的系统刚好要用到这4个IO口作为AD输入,所以现在只能用其他的IO口做开漏输出使用

使用特权

评论回复
15
songqian17|  楼主 | 2017-2-15 20:32 | 只看该作者
但是SH79F161A其他的IO口输出只用一种模式,数据手册里也没有说这唯一的一种模式是什么类型,这种情况下是不是说按照数据手册设置为输出模式即可实现传统51的开漏或者推挽输出的功能?

使用特权

评论回复
16
happy_10| | 2017-2-15 20:34 | 只看该作者

“只能是在代码中用作输入时设置为输入IO口,而需要用作输出口时,随时切换设置为输出IO口,是这个意思吧”------是的;

使用特权

评论回复
17
bqyj| | 2017-2-15 20:36 | 只看该作者
粗看了下数据手册,其它端口的输出模式就是推挽输出,你如果要作为开漏使用,只能外加元件,比如NPN三极管。

使用特权

评论回复
18
tian111| | 2017-2-15 20:39 | 只看该作者
传统的51单片机IO模式只是准双向吧,在用jet51下载程序,所需的4个IO仿真接口无论你怎么设置都没问题,但是前提是下载,不是在线仿真

使用特权

评论回复
19
zhuhuis| | 2017-2-15 21:09 | 只看该作者
另外,LZ说所的双向数据线使用,当你需要输入的时候就设置输入,输出就设置输出,程序得灵活

使用特权

评论回复
20
songqian17|  楼主 | 2017-2-15 21:11 | 只看该作者
结贴了,多谢大家讨论这么多哈,呵呵

使用特权

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

本版积分规则

463

主题

5749

帖子

1

粉丝