找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1390|回复: 5
收起左侧

c8051f020单片机 请教个C语言语句看不懂,感谢

[复制链接]
ID:33455 发表于 2020-10-16 21:14 来自手机 | 显示全部楼层 |阅读模式
#define clrP7(bit) P7 |=0x01 <<bit
#define clrP7(bit) P7 &= ~(0x01 <<bit)

这两句是什么意思,单片机是c8051f020,感谢
回复

使用道具 举报

ID:748788 发表于 2020-10-17 10:52 | 显示全部楼层
这2句能通过编译?
回复

使用道具 举报

ID:267932 发表于 2020-10-17 11:19 | 显示全部楼层
bit   是你想改变第几位,P7 |=0x01 <<bit,即是把P7的第几位改为1,其他位保持不变,
同理  P7 &= ~(0x01 <<bit)  即是把P7的第几位改为0,其他位保持不变,
回复

使用道具 举报

ID:822755 发表于 2020-10-17 11:41 | 显示全部楼层
C语言的宏定义, 置位/清零P7的某个位。
回复

使用道具 举报

ID:414556 发表于 2020-10-17 13:39 | 显示全部楼层
1是某位置1,2是某位置0
回复

使用道具 举报

ID:33455 发表于 2020-10-17 15:58 | 显示全部楼层
zhai1995 发表于 2020-10-17 11:19
bit   是你想改变第几位,P7 |=0x01

万分感谢,c8051f的单片机P4-P7口不能位寻址,如果要位寻址这样定义可不可以,吧一个口的8位全部这样定义一下能不能达到位寻址的效果,就像低位口如,sbit P30=P3^0; 下面直接引用P30就可以,感谢师傅
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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