小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 8014|回复: 2

如何给单片机不连续的io按位赋值

[复制链接]
发表于 2016-9-2 13:06:27 | 显示全部楼层 |阅读模式
本人方法可能不是最简单的,方法很多
按位赋值很方便比如8个io你用一个十六进制的数值就可以了

  1. sbit relay4=P3^6;
  2. sbit relay5=P3^7;
  3. sbit relay6=P2^0;


  4. void arryio(int temp)
  5. {
  6.    int a,b,c;
  7.            a=temp&0x01;.// 0 0 0 0   0 0 0 0  保留最后一位
  8.     relay6 = a;
  9.     b=(temp&0x02)>>1;  //保留十六进制的倒数第二位,然后右移到最小位
  10.     relay4 =b;
  11.     c=(temp&0x04)>>2; //保留十六进制的倒数第三位,然后右移到最小位
  12.     relay5 = c;
  13. }
复制代码
这是如果给arryio赋值(0x05)  0x05 // 0000  0101;
则P2^0和P3^7高电平   , P3^6是低电平
回复

使用道具 举报

发表于 2016-10-28 10:48:43 | 显示全部楼层
写一个具体例子就更好了。谢谢分享
回复 支持 反对

使用道具 举报

发表于 2016-11-2 19:07:41 | 显示全部楼层
3位5位的也可以
也不是很难
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-22 23:46 , Processed in 1.080325 second(s), 23 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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