历史上的今天
今天是:2025年03月18日(星期二)
2019年03月18日 | 51单片机bit数据类型
2019-03-18 来源:eefocus
bit是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。事实上,bit和数据类型为int,char等具有许多相同特性。
1. 值域:
以char为例。Char为8位一个字节的数据类型,取值范围为 -128到+127。而bit只有1位,只能表示0和1两种值。通常bit定义的变量作为一个标志位用。
2.类型定义:
例如一个数据为25,那么它就可以定义为char型、int型等。因为他们都在自己的值域内。同样一个在自己值域的数0和1就可以定义为bit型。Bit可以指定函数返回值的类型, 如bit display(),也可对别的类型的数据进行数据强制转换,如x=(bit)y, (y为char,int型等)。此时,x的值便为0或1。那么如何确定x是0还是1呢? 现在看下面例题:
bit lcd_busy()
{
bit result;
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
delayNOP();
result = (bit)(P0&0x80);
LCD_EN = 0;
return(result);
}
在上面例题中我们可以看到,bit定义了一个函数返回值类型 bit lcd_busy(),一个变量 result 和 一个运算表达式 P0&0x80 .由此可以bit的用法和char、int等相同。那么resulit的值如何确定呢? 这个和运算表达式 P0&0x80有关。如果表达式 P0&0x80的运算结果为非零的值,那么resulit的值为1,否则为0。
上一篇:STC89C52单片机RAM模式
史海拾趣
|
如图所示,VCC=+5V;VDC=+29V左右,单片机给PE0一个宽度为 1us 的脉冲信号使得 TIP42 开通,但是测量开通后 TIP42 和二极管D2连接那端的信号起码有的 10us 宽度,这非常影响我后面接个1:1:1变压器出来的信号。查了资料,TIP42开通时0. ...… 查看全部问答> |
|
SKYEYE:Error in mem_read_word, no bank found, NumInstrs 4182, mem_read_word addr = 4160 no bank SKYEYE:Error in mem_read_word, no bank found, NumInstrs 4183, mem_read_word addr = 4164 no bank SKYEYE:Error in mem_read_word, no ba ...… 查看全部问答> |
|
写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言! 如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和 ...… 查看全部问答> |
|
请高手给我详细讲下中断的使用方法例程.我想把我的DLL和相应的中断响应关联起来,不知道要怎么做.我现在只知道 先Oalintr.h里加一个中断定义.#define SYSINTR_TOUCH (SYSINTR_FIRMWARE+20)然后就不清楚要做什么了? 希望高手给我提供 ...… 查看全部问答> |
|
请问在不接屏的情况下通过网络怎么修改wince5.0的网关?系统定制的时候要加哪些东西?我自己定制了一个web server在里面,能过访问设备IP进去,可以修改IP,但找不到修改网关的,知道的或做过的请给说说,谢谢!… 查看全部问答> |
|
项目描述: 用atmel的ARM9芯片做一个工厂数据采集的项目,采用WinCE5.0系统,底层和系统都是供应商做好的,我不能修改.供用商提供SDK和简单的示例代码.不支持图形窗口显示(因为配的是128*64的单色LCD),支持win32 API编程. 整个项目中包括IC卡读写(COM ...… 查看全部问答> |
|
我似乎在网上看到如果是双核的话,那每个处理器都有一个中断描述表IDT。那我想问一下每一个处理器他们的中断号都是统一的吗?也就是说第一处理器IDT[0x93]是键盘中断,那第二处理器0x93的IDT[0x93]也一定是键盘中断吗?… 查看全部问答> |
|
小弟 我卡住了好几天了 希望前辈们指教啊我这个程序是产生相位互差90度 出来的波形是 一样的 怎么回事啊 #include <msp430x14x.h>unsigned int flag1=0,flag2=0,num=0; 全局变量void Init_Clock(void) &n ...… 查看全部问答> |




