bit用法——单片机C语言

来源:百度知道 编辑:UC知道 时间:2024/09/27 09:24:12
KEIL.C中的bit,书上介绍的都很简略,如何应用,请附例详细说明。。

#include <stdio.h>
#include <absacc.h>
#include <./Atmel/at89x52.h>
extern void start_t2imer(void);
unsigned char scankey;
bit Timerout=0;
bit keypress;
#define KR0 P1_0
……
main(){
……
while(1){
if(Timerout){
Timerout=0;
switch(fsm_key){
case FSM_INIT:
KR0=1;
KR1=1;
……
}
}
}
……
void time2()interrupt 5 {//base 10 ms
TF2=0;
Timerout=1;
scankey=KBD_PORT;
if(scankey&0x0f){
keypress=1;
}
else{
keypress=0;
}

}
……

以上部分程序中的
bit Timerout=0;
bit keypress;
是什么意思?以及后面的使用,请把程序解释清楚。谢谢。。

bit Timerout=0; 这里的bit本质上和char、int一样的(功能一样,类型不一样),char是8位,int是16位,bit是1位。
每个字节是8位,就可以包含8个bit,bit只有两个值,1和0.
bit Timerout=0;
bit keypress;
就是定义两个长度为1位的变量。

BIT 定义一个位变量
用bit定义了keypress后,在后面的程序中变量keypress就只有 0 和 1 两个值
timerout也是一样

bit 在C51里面类似C语言的bool,bit定义的是一个位数据类型,只能为0或1两个值

bit就是定义位变量嘛,你要先看懂汇编,和单片机的内存结构,低128字节里面20~2fH,都是可以位寻址,你必须打好扎实的基础,这程序太简单,没什么好说的

bit 位定义。
来自汇编。