[AVR单片机] 关于avr单片机按位读取的问题

[复制链接]
2201|6
 楼主| 乐乐闹闹 发表于 2013-6-15 16:20 | 显示全部楼层 |阅读模式
我用的是mega16 iccavr编程 想设置PD为输入口 比如我想检测PD7口的高低电平 我是不是只能写成 if(PIND==0x7f)程序才能运行啊 如果这个时候其他端口也有低电平输入不就检测不到了 我该怎么才能只检测PD7的是否有低电平输入呢
宇容创行 发表于 2013-6-15 16:31 | 显示全部楼层
PIND&0x80
 楼主| 乐乐闹闹 发表于 2013-6-15 16:52 | 显示全部楼层
宇容创行 发表于 2013-6-15 16:31
PIND&0x80

什么意思啊
fp123123 发表于 2013-6-15 18:18 | 显示全部楼层
写成这样就可以了:
if( (PIND & 0x80) == 0x80 )

0x80 对应 二进制 10000000,如果PD7等于1,则PIND的第8位是1,(PIND & 0x80)是按位AND操作,把其他位屏蔽掉,如果结果还是0x80,则表示PD7等于1

评分

参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!

查看全部评分

lion1899 发表于 2013-6-17 19:31 | 显示全部楼层
qin552011373 发表于 2013-6-18 22:06 | 显示全部楼层
方法很多种  楼主要找到适合自己的才可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部