找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1174|回复: 9
打印 上一主题 下一主题
收起左侧

请问明明一个单片机置零的语句为什么要这么复杂呢...

[复制链接]
跳转到指定楼层
楼主
本帖最后由 laopihappy123 于 2019-11-18 12:28 编辑

最近研究pwm ,下载了STC的例程,发现了里面这个指令,这条指令是让P3M1 清零的 但是,直接让他清零不就行了 为啥要这么复杂呢...请问..为什么呢?
难道是不能按位读取?
新手问问题 可能有点幼稚 还请大佬能给一点提示 真心求问..为什么呢?

批注 2019-11-17 201750.png (6.68 KB, 下载次数: 15)

批注 2019-11-17 201750.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2019-11-18 06:36 | 只看该作者
这可不是在给P35置0,这是在为P35配置工作模式,让P3M1=0,P3M0=1,设置为推挽输出模式。
回复

使用道具 举报

板凳
ID:138097 发表于 2019-11-18 07:57 | 只看该作者
这个要看这个芯片的寄存器手册,他这么做是因为寄存器的移位操作,看起来比较直观
回复

使用道具 举报

地板
ID:25310 发表于 2019-11-18 08:03 | 只看该作者
这个不是引脚取反,是设置P3 口某IO的状态,比如高阻,开漏,准双向,推挽输出的设置,貌似不能直接简单取反能设置的。
回复

使用道具 举报

5#
ID:213173 发表于 2019-11-18 08:04 | 只看该作者
这不是让P3.5 清零的指令,是设置P3.5 端口模式为推挽输出。
P3M0、P3M0是端口模式特殊功能寄存器,不支持位操作。
回复

使用道具 举报

6#
ID:123289 发表于 2019-11-18 10:49 | 只看该作者
道理很简单:普通P35只有一个IO的功能,而STC的P35有多重功能。所以需要做功能的选择。
回复

使用道具 举报

7#
ID:518902 发表于 2019-11-18 12:25 | 只看该作者
xuyaqi 发表于 2019-11-18 06:36
这可不是在给P35置0,这是在为P35配置工作模式,让P3M1=0,P3M0=1,设置为推挽输出模式。

对对对,发现我写错了 ,其实我就是这个意思,我的疑问是为什么他要这么写,为什么不能直接写=0x(数值) 呢
回复

使用道具 举报

8#
ID:518902 发表于 2019-11-18 12:25 | 只看该作者
pcbboy 发表于 2019-11-18 08:03
这个不是引脚取反,是设置P3 口某IO的状态,比如高阻,开漏,准双向,推挽输出的设置,貌似不能直接简单取 ...

意思是不能位操作?
回复

使用道具 举报

9#
ID:518902 发表于 2019-11-18 12:26 | 只看该作者
wulin 发表于 2019-11-18 08:04
这不是让P3.5 清零的指令,是设置P3.5 端口模式为推挽输出。
P3M0、P3M0是端口模式特殊功能寄存器,不支持 ...

奥 是这样啊! 谢谢 不过为什么不能直接=0x(数值) 呢 而要用移位来操作呢?
回复

使用道具 举报

10#
ID:518902 发表于 2019-11-18 12:27 | 只看该作者
yzwzfyz 发表于 2019-11-18 10:49
道理很简单:普通P35只有一个IO的功能,而STC的P35有多重功能。所以需要做功能的选择。

嗯嗯 谢谢大佬解答 其实我想问的是为什么他这么写 而不是直接赋值=0x(数值)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表