历史上的今天
返回首页

历史上的今天

今天是: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。

推荐阅读

史海拾趣

ADI(亚德诺半导体)公司的发展小趣事

亚德诺半导体(Analog Devices Inc.,简称ADI)是一家全球领先的模拟技术公司,以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展: 亚德诺半导体成立于1965年,总部位于美国马萨诸塞州。公司最初的业务主要集中在研发和生产模拟集成电路(ICs),为各种应用提供信号处理解决方案。其产品包括放大器、数据转换器、功率管理器等。

  2. 技术创新与产品推出: 亚德诺半导体在模拟领域持续进行技术创新,并不断推出具有竞争力的产品。公司在数据转换器、放大器、射频器件等方面处于领先地位,并不断扩展业务范围,涉足汽车、工业、通信等多个领域。

  3. 并购与战略合作: 亚德诺半导体通过并购和战略合作不断扩大规模和增强实力。公司先后收购了一系列企业,包括Hittite Microwave Corporation、Linear Technology Corporation等,进一步拓展了产品线和市场份额。

  4. 市场拓展与国际化发展: 亚德诺半导体积极拓展国内外市场,并实现了国际化发展。公司产品远销全球各地,与全球范围内的主要客户建立了长期合作关系。同时,公司在全球范围内设有研发中心、销售办事处和生产基地,为客户提供本地化服务和支持。

  5. 未来展望与持续发展: 亚德诺半导体将继续致力于技术创新和产品开发,加强与客户的合作,满足不断变化的市场需求。公司将继续扩大在汽车、工业、通信等领域的市场份额,并积极布局新兴市场,保持行业领先地位,实现业务的持续增长和发展。

Galaxy Microelectronics公司的发展小趣事

江苏飞翼智能科技有限公司成立于2023年,该公司迅速将无人机技术与大数据技术相结合,实现了从传统无人机表演企业向无人机应用型企业的转型。通过自主研发和技术创新,飞翼智能的无人机在地理测绘、土方开挖计算、三维建模等领域展现出强大实力。例如,在地理测绘领域,无人机通过镜头采集地面照片,结合后期处理,能够高效完成数据测绘,大大降低了人工用量,提高了工作效率。这一技术的成功应用,不仅为公司赢得了市场认可,也推动了无人机技术的智能化发展。

Holt Integrated Circuits公司的发展小趣事

除了传统的航空电子解决方案外,Holt还致力于高压LCD显示驱动器的研发。这些产品不仅满足了航空电子设备对高可靠性和高清晰度的需求,还广泛应用于工业过程自动化和井下钻探等领域。Holt的高压LCD显示驱动器以其卓越的性能和稳定性,赢得了众多客户的信赖和好评。

FASTRAX公司的发展小趣事

2012年,瑞士公司u-blox宣布以1300万欧元收购FASTRAX 100%的股权。这一并购事件引起了业界的广泛关注。u-blox看中了FASTRAX在GPS接收模块领域的领先地位和技术实力,希望通过并购加强其在定位市场的竞争优势。并购完成后,FASTRAX成为u-blox集团的重要一员,继续为全球客户提供优质的GPS产品和服务。

屹晶微(EG)公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,屹晶微逐渐意识到与合作伙伴建立长期战略合作关系的重要性。于是,在2023年,他们与电子产业一站式服务平台华秋电子达成了授权代理合作。这一合作不仅为屹晶微提供了更广阔的市场渠道和客户资源,也为其未来的发展奠定了坚实的基础。

在合作过程中,华秋电子为屹晶微提供了全方位的支持和服务。他们共同推广屹晶微的芯片产品,为客户提供更优质的解决方案和服务。同时,华秋电子还利用自身的技术优势和渠道优势,帮助屹晶微拓展海外市场,提升品牌知名度和影响力。

以上两个故事只是屹晶微在电子行业中发展起来的一部分。他们的发展历程充满了挑战和机遇,但黄米龙和他的团队始终保持着坚定的信念和不懈的努力,为中国的芯片产业做出了积极的贡献。

Global Power Technology Co., Ltd公司的发展小趣事
检查冰箱门密封条是否老化或变形,如有损坏需更换新的密封条;同时定期清理密封条上的污垢和杂物,保持密封条的清洁和弹性。

问答坊 | AI 解惑

求助高手:大家帮忙看看这个模拟电路到底是什么问题

如图所示,VCC=+5V;VDC=+29V左右,单片机给PE0一个宽度为 1us  的脉冲信号使得 TIP42 开通,但是测量开通后 TIP42 和二极管D2连接那端的信号起码有的 10us 宽度,这非常影响我后面接个1:1:1变压器出来的信号。查了资料,TIP42开通时0. ...…

查看全部问答>

u-boot在skyeye下运行报错!!!!!

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当汇编用,简直是在糟蹋C语言! 如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和 ...…

查看全部问答>

请教PC104下 中断的使用方法?

请高手给我详细讲下中断的使用方法例程.我想把我的DLL和相应的中断响应关联起来,不知道要怎么做.我现在只知道 先Oalintr.h里加一个中断定义.#define SYSINTR_TOUCH   (SYSINTR_FIRMWARE+20)然后就不清楚要做什么了? 希望高手给我提供 ...…

查看全部问答>

wince 如何修改网关?

请问在不接屏的情况下通过网络怎么修改wince5.0的网关?系统定制的时候要加哪些东西?我自己定制了一个web server在里面,能过访问设备IP进去,可以修改IP,但找不到修改网关的,知道的或做过的请给说说,谢谢!…

查看全部问答>

请教:多线程之间的切换问题

项目描述: 用atmel的ARM9芯片做一个工厂数据采集的项目,采用WinCE5.0系统,底层和系统都是供应商做好的,我不能修改.供用商提供SDK和简单的示例代码.不支持图形窗口显示(因为配的是128*64的单色LCD),支持win32 API编程. 整个项目中包括IC卡读写(COM ...…

查看全部问答>

关于双核与中断描述表IDT的简单问题

我似乎在网上看到如果是双核的话,那每个处理器都有一个中断描述表IDT。那我想问一下每一个处理器他们的中断号都是统一的吗?也就是说第一处理器IDT[0x93]是键盘中断,那第二处理器0x93的IDT[0x93]也一定是键盘中断吗?…

查看全部问答>

各位高手有人知道ST的那款处理器能够嵌入vxworks吗

各位高手 有人知道ST的那款处理器能够嵌入vxworks吗 谢谢 或者推荐一个常用嵌入vxworks的处理器…

查看全部问答>

有人用过qemu吗?

我想问下nand flash的模拟原理问题…

查看全部问答>

前辈 前辈们 快来救救我吧 都一周多了

小弟 我卡住了好几天了 希望前辈们指教啊我这个程序是产生相位互差90度 出来的波形是 一样的 怎么回事啊 #include <msp430x14x.h>unsigned int flag1=0,flag2=0,num=0; 全局变量void Init_Clock(void)  &n ...…

查看全部问答>