玩命搏击 2021-11-01 16:14 采纳率: 66.7%
浏览 89
已结题

51单片机, 变量sbit如何转换成变量char 中的某一位,组成一个字节

如题,用51做一个拨码开关检测, IC有8个分散引脚,定义sbit位变量, 我需要把这8个引脚状态装入一个char型变量的某一位,组成的字节供其它函数调用,如何操作,请教!

sbit  K1 = P1^0;
sbit  K2 = P2^0;
sbit  K3 = P3^2;
sbit  K4 = P4^3;
sbit  K5 = P1^1;
sbit  K6 = P2^2;
sbit  K7 = P3^4;
sbit  K8 = P4^5;
extern unsigned char  U1;

void   key  (void)
{
  U1=~( K1 & 0x01 );
  .....?
}

  • 写回答

1条回答 默认 最新

  • qllaoda 2021-11-01 16:34
    关注

    1,直接位运算,把几个bit塞进一个字节,
    char tmp = 0;
    tmp |= K8; tmp <<= 1;
    tmp |= K7; tmp << = 1; .......
    2,定义个联合体,联合体的一个成员是一个字节,另一个是一个带位域的结构体,给结构体的每个成员分别赋值,然后取字节值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答