打印

汇编读单片机端口引脚需要先写一条指令将端口置1,C51需要吗?

[复制链接]
1890|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tian111|  楼主 | 2018-2-3 19:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汇编读单片机端口引脚需要先写一条指令将端口置1,C51需要吗?
沙发
songqian17| | 2018-2-3 19:57 | 只看该作者

看看C51的反汇编后的汇编程序

使用特权

评论回复
板凳
chenho| | 2018-2-3 20:01 | 只看该作者

没有将要读引脚的端口置1的汇编指令啊

使用特权

评论回复
地板
chenho| | 2018-2-3 22:54 | 只看该作者


使用特权

评论回复
5
gongche| | 2018-2-3 22:56 | 只看该作者
估计编译器没有那么智能,知道你要读端口状态然后生成端口置1的指令。需要在C程序中先把端口置1,然后再读。

使用特权

评论回复
6
huwr| | 2018-2-3 22:59 | 只看该作者

不过51的端口默认状态是1,如果没有置零的操作直接读就行了。

使用特权

评论回复
7
xxdcq| | 2018-2-5 09:26 | 只看该作者
本帖最后由 xxdcq 于 2018-2-5 09:30 编辑

先写1的目的是让引脚客观,由外部输入来决定引脚是0是1,而且引脚还不能是推挽模式,必须是输入模式或弱上拉模式,这样读进来才准确
这就像领导干部一样,不能封闭起来自己想当然,要谦虚听听别人的意见

使用特权

评论回复
8
huanghuac| | 2018-2-5 20:59 | 只看该作者

安全起见,还是加上吧,反正也耗不了多少时间。

使用特权

评论回复
9
happy_10| | 2018-2-5 21:03 | 只看该作者
编译器不会,自己操作吧。

使用特权

评论回复
10
tian111|  楼主 | 2018-2-5 21:06 | 只看该作者
可是我在使用过程中却发现我没这么做也行的耶。。。

使用特权

评论回复
11
bqyj| | 2018-2-5 21:14 | 只看该作者
没有深究过这个问题 一般我都会先设定为输入口

使用特权

评论回复
12
wenfen| | 2018-2-5 21:17 | 只看该作者

51没有输入一说,就是拉高,度状态

使用特权

评论回复
13
lyjian| | 2018-2-5 23:35 | 只看该作者
不是每一次都要
如果已经是要1的话就不需要了

使用特权

评论回复
14
zhuhuis| | 2018-2-8 16:39 | 只看该作者

5楼正确,书本上写的也是复位后为FF,绝大多数情况直接读就可以了

使用特权

评论回复
15
songqian17| | 2018-2-8 16:44 | 只看该作者

IIC之类的通讯才是需要读之前先置1

使用特权

评论回复
16
tian111|  楼主 | 2018-2-8 16:48 | 只看该作者


IIC之类的通讯才是需要读之前先置1

使用特权

评论回复
17
songqian17| | 2018-2-8 16:53 | 只看该作者
后面读再多次也不需要重新置1的,不管它是高电平还是低电平

使用特权

评论回复
18
chenho| | 2018-2-8 16:57 | 只看该作者
51默认IO输出都为1,所以你不把它之前置0的话,是不用置1的。

使用特权

评论回复
19
gongche| | 2018-2-8 17:00 | 只看该作者

需要的;

使用特权

评论回复
20
huanghuac| | 2018-2-8 17:04 | 只看该作者


和编译器无关;是硬件上的特点;

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝