单片机/MCU论坛
直播中

席毖庸

9年用户 1114经验值
擅长:596874
私信 关注
[问答]

Char型变量与Bit型变量,如何进行”或运算”?

连续将key4值通过T0中断一位一位用“或运算“写入char 型变量keybuf中。这与其他地方对不同变量的运算描述不符,请大神们赐教。小弟拜谢。

void Interrupttimer0() interrupt 1
{  static unsigned char keybuf = 0xFF;  //按键扫描缓冲区,保存一段时间内的扫描值   
    TH0 = 0xF8; TL0 = 0xCD;   
    keybuf = (keybuf << 1) | KEY4;  //只取KEY4为例,缓冲区左移一位,并将当前扫描值移入最低位
    if (keybuf == 0x00)
    { //当连续8次扫描值都为0,即16ms内都只检测到按下状态时,可认为按键已按下
        KeySta = 0;       //按键状态值为按下
    }
    else if (keybuf == 0xFF)
    { //当连续8次扫描值都为1,即16ms内都只检测到弹起状态时,可认为按键已弹起
        KeySta = 1;      //按键状态值为弹起
  }

回帖(1)

陈蕾

2023-10-31 09:33:40
要看你的bit是第几位了吧,这个要你人为的确认,再转成char进行移位 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分