新手玩单片机,在写C程序的时候使用到一个变量flag作为标志位,设想的是赋初值为0,按键每按下一次进行取反,使得标志位在0和1之间切换。实际调试的时候发现flag定义的时候是无符号整型变量,按位取反之后并不是1。后来想到标志位flag可以用位定义,就可以实现按下按键后标志位取反。
虽然达成了目的,但是我想到一个问题:普通的变量由于位数无法实现0和1的取反,如果使用位定义那会平白占用一个IO口,过于浪费,这肯定不是正常的方法。那么一般51单片机在使用的时候是如何实现这一目的的呢?这个问题百度不知道如何描述,只能上论坛上面来询问一下各位大佬,烦请各位为我答疑解惑。