- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HYPERLINK /forum.php?mod=forumdisplayfid=124filter=typeidtypeid=102 [MSP430] HYPERLINK /icview-269584-1-1.html C语言位操作方法
C语言既有高级语言的各种特点,又可对硬件进行操作,并对进行结构化程序设计,用C语言编写的程序较容易移植,它们可生成简洁可靠的目标代码,在代码效率和代码执行速度上完全可以和汇编媲美。采用C语言进行单片机编程是 HYPERLINK /CAT-2833-EmbeddedSoftware.html \t _blank 嵌入式程 序设计的发展趋势。但是,在嵌入式控制等领域,经常需要控制某一个二进制位,然而除了Keil C51等C环境外,很多单片机C环境都没有扩充对位变量定义的关键字,甚至单片机本身的硬件上也没有对单个位操作的汇编指令,这使得已习惯MCS-51内 核单片机Keil C51编程的用户都为其C环境不能对位变量进行位操作而烦恼。1 用“读-修改-写”方法实现对单个位的位操作 ? ???一般采用“读-修改-写”的方法实现单个位的位操作,通过与0“与”操作,将某一位清0。如使i变量的b0位为0,实现方法为i=i&0xfe。通 过与1“或”操作,将某一位置1。如使i变量的b0位为1,实现方法为i=i|0x01。通过与1“异或”操作,将某一位取反。如使i变量的b0位取反, 实现方法为i=i^0x01。注意:错误“读-修改-写”方法时不要影响其他位,即某位清零时,其他位与1“与”;某位置1时,其他位与0“或”;取反时,其他位与0“异或”。为了方便程序设计和增加程序可读性,很多程序员喜欢采用下面的移位方式实现单个位的位操作,语句简练,可读性强,比如在某单片机的B口连接1个发光二极管,其点亮操作方法如下:#define bit(x) (1<<(x))
2 通过位域的方法实现位操作 标准C提供了一种基于结构体的数据结构--位域(BitField),位域就是把一个存储单元中的二进制划分为几个不同的区域。并说明每个区域的位数。每一个域有一个域名,允许在程序中按域名进行操作,位域的定义格式如下:struct 位域结构名{ 位域列表 }; 位域列表格式为:类型说明符 位域名:位域长度如: struct k{ unsigned int a:1unsigned int :2 unsigned int b:3 unsigned int :0 //空域 }k1;说明:1)各位依次从低位到高位排列,排满一个存储单元,按地址接着排下一单元;2)位域可以无域名,但不能被引用,如第二域,这时其只用来填充或调整位置;3)第四行称空域,目的是将目前存储单元的剩余部分分为一个域,且填充0。位域的引用很简单,如:k1.a=1; //置k1的b0位为1
k1.b=7; //将k1的b3-5位置111通过位域定义位变量,是实现单个位位操作的重要途径和方法,采用位域定义位变量,产生的代码紧凑、高效。定义的方法如下:
通过位域定义位,再通过宏进行定义,可以方便地将Keil C51等程序移植到其他C编译器,从而不再为没有位操作而苦恼。对一个单片机的所有I/O口,通过将位域结构指定到I/O端口地址,I/O口便都可以采用位域进行宏定义,这样,操作I/O口就可以像Keil C51编程一样方便。
您可能关注的文档
- WORD中的图片转成CAD格式.docx
- word中的特殊符号大全Word特殊符号打【2011必威体育精装版符号大全】.doc
- Word中编辑AutoCAD的图形.doc
- Word中表格编辑等技巧.docx
- WORD也可以拆分汉字笔画.doc
- word使用大全(太厉害了不存不行哦).doc
- Word几个实用宏解决方案.doc
- Word办公应用的技巧.doc
- word如何在word中打方框里带对勾的符号.doc
- Word常用快速键使用大全.doc
- 永州市(祁阳)表面处理产业园项目环境影响报告书.pdf
- 阳西县溪头渔港航道疏浚项目(2号-3号航标段)环境影响报告表.pdf
- 抚顺特钢超低排放建设项目(钢渣处理工程)环评报告书.pdf
- 柴油机零部件生产项目环境影响评价报告书.pdf
- 年产1000吨塑料新材料项目环评表.doc
- 建筑石材加工生产线技改项目环评报告表.pdf
- 附件1:年产20万吨多组元高端铝合金新材料技改项目环境影响报告书.pdf
- 莱芜钢铁集团鲁南矿业有限公司露天转地下开采工程(二期_扩界)项目环评报告书.pdf
- 华通铅锌矿采选项目后评价报告书.pdf
- 年产5万吨叔碳酸、叔碳酸缩水甘油酯、叔碳酸乙烯酯项目技改环境影响报告书.pdf
文档评论(0)