历史上的今天
返回首页

历史上的今天

今天是:2025年04月10日(星期四)

正在发生

2018年04月10日 | 在Keil C51中直接使用二进制数的解决方法

2018-04-10 来源:eefocus

    在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。于是很多人怀念了8051的汇编,很想在C51中使用二进制。没猜错的话搜到本篇日志的人很可能就是来找这种解决办法的,下面两种办法都是不错的选择。

      方法一:

      建立一个头文件,将所有的二进制数宏定义列举出来,用的时候直接使用宏定义,头文件定义:binary(右键>>“目标另存为”>>下载)。

      方法二:

      做一个带参数宏定义,将输入的类二进制数变换为对应的16进制数,整个定义和使用实例请见下文,可以直接使用,如果想研究原理又看不懂带参宏定义的朋友们请参考谭浩强的《C程序设计》预处理命令一章内容(第三版在P204-P211)。

      #define LongToBin(n)

      (

      ((n >> 21) & 0x80) |

      ((n >> 18) & 0x40) |

      ((n >> 15) & 0x20) |

      ((n >> 12) & 0x10) |

      ((n >> 9) & 0x08) |

      ((n >> 6) & 0x04) |

      ((n >> 3) & 0x02) |

      ((n ) & 0x01)

      )

      #define Bin(n) LongToBin(0x##n##l)

      void main(void)

      {

      unisigned char c;

      c = Bin(10101001); //相当于c = 0xA9

      }

      上面预处理指令中使用了反斜杠,这里解释一下:每一条预处理语句总是以"#"字符开始,并且不能超过一行,一旦遇到换行符语句就被当做结束,唯一的一种能将预处理语句扩展到多行的办法就是在换行符之前加一个反斜杠('')。


推荐阅读

史海拾趣

Component Research Co公司的发展小趣事

在电子行业中,环保问题日益受到关注。Component Research Co积极响应环保号召,将环保理念融入产品研发和生产过程中。公司采用环保材料、推行节能减排措施、加强废弃物处理等,努力降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,还为公司赢得了更多客户的青睐。

Cableform Inc公司的发展小趣事

2012年,对于Cableform Inc来说是一个重要的转折点。这一年,公司成功加入了HUBBELL系列,与Hubbell工业控制有限公司建立了战略合作关系。这一合作使得Cableform Inc能够借助Hubbell的品牌影响力和市场渠道,进一步拓展业务范围,提升市场地位。同时,通过与Hubbell的技术交流和资源共享,Cableform Inc在技术创新和产品升级方面也取得了显著进展。

Boundary Devices公司的发展小趣事

作为一家有社会责任感的企业,Boundary Devices始终关注环境保护和可持续发展。公司在生产过程中积极采用环保材料和技术,减少对环境的影响。同时,公司还积极参与社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事基于Boundary Devices公司的发展背景和电子行业的一般趋势进行创作,旨在展示该公司在不同阶段的成长与发展。然而,实际的公司发展历程可能更加复杂和丰富,需要更多的资料和信息来深入了解。

Chips And Technologies Inc公司的发展小趣事

在创立初期,C&T就展现出了强大的技术创新能力。公司不断推出新产品,这些产品不仅性能卓越,而且具有高度的集成性和稳定性,深受市场欢迎。此外,C&T还积极与业界合作,推动技术标准的制定和完善,为整个行业的发展做出了重要贡献。

Chesivale Electronics公司的发展小趣事

Chesivale Electronics公司自成立以来,一直致力于电子技术的研发与创新。在早期,公司面临市场竞争激烈、技术瓶颈等重重困难。然而,公司的研发团队坚持不懈,最终成功研发出一款具有划时代意义的芯片技术。这款芯片不仅性能卓越,而且成本大大降低,迅速在市场上获得了广泛的认可。这一技术突破为Chesivale Electronics公司赢得了大量的订单和市场份额,也为公司的后续发展奠定了坚实的基础。

E-T-A [E-T-A Circuit Breakers]公司的发展小趣事

随着技术的不断进步和市场的日益成熟,E-T-A公司的产品线也逐渐扩展。公司不仅继续深耕断路器领域,还推出了包括保护控制器、流量和液位传感器等一系列新产品。同时,公司也开始积极拓展全球市场,通过设立分支机构和办事处,为全球客户提供更便捷的服务和支持。

问答坊 | AI 解惑

请问步进电机编程问题

请问大虾们怎样用编码器控制步进电机速度,怎么样写程序…

查看全部问答>

谁了解ATMEL24C08这款芯片,方案老是丢数据

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 谁了解ATMEL24C08这款芯片  我的方案老是24C08丢数据 查了这个芯片的型号居然是 ATMLH002 后面是写08 难道这个是ATMEL公司的吗…

查看全部问答>

DNW刷新wince系统,下载不了xip.bin文件?

我使用的是USB下载,下载EBOOT.nb0没有问题,但是到“DOWNLOAD image now(USB)”一步的时候,出现 Enter your selection: u System ready! Preparing for download... Please send the Image through USB. Don\'t support raw image !OEMVERI ...…

查看全部问答>

quartus中的问题,谢谢了!

我的程序是 module add_4(X, Y, Sum, C); input[3:0]  X, Y; output[3:0]  Sum; output C; assign  {C,  Sum} =X + Y; endmodule 我先新建工程 file— new project wizard.工程名与实体名相同。 ...…

查看全部问答>

求助!vs2005的windows mobile 6.0模拟器上面的蓝牙可用否?

vs2005的windows mobile 6.0模拟器上面的蓝牙怎么才能使用它?主要是完成搜索设备,传输文件等功能??…

查看全部问答>

新手想学习ARM制板,弄明白原理图,高手请指点一下,该学什么基础知识?

以前学过软件的知识,现在想自己用ARM做个项目,完全是陌生的,想先学怎么做ARM板的设计,也看不懂别人的原理图,时间也比较紧,高手能不能帮帮忙,指点一下,学什么,怎么学才能迅速了解ARM板的原理图的来龙去脉呢?比如说,怎么接存储器,怎么扩 ...…

查看全部问答>

老师保护学生的最后姿势![图]

220张真实照片一旅游游客在返回途中遭遇地震后,和女友徒步3天走出困境,带来了平武南垻的大量照片 !目前救援部队还未抵达平武,现在缺水缺粮却帐篷和衣物 照片的部队是平武自己的部队,也被困,那里现在正在自救,大量山体垮塌,有泥石流的危险,伤亡也 ...…

查看全部问答>

RegisterDevice的第四个参数是干什么的?

如题,,我知道平常使用的时候都是0,但是想弄明白点,请高手举个例子,区别一下…

查看全部问答>

强烈要求ST公开FFT库!!!!!!

                                 为什么不公开呢?给个理由先…

查看全部问答>

MID的PCB于SCH

发一个MID的资料给大家分享…

查看全部问答>