电子电路设计之C51单片机常见问题.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子电路设计之 C51单片机常见问题 笔者在工作中实际使用过 AT89C2051、AT89C51、AT89C52 等 51 单 片机,后来应用台湾新茂、华邦等厂家的 51 单片机。实践中遇到许多问题, 都是书本上没有的。我印象中,书本上的知识只有一页插图了,就是cpu 的时序图。最初直接用汇编写程序,然后是 C51 嵌套汇编。编译器曾用伟福系列编译器,后来使用 keil 等,感觉这些编译器大同小异。需要熟练的 C 语言基础, 加上单片机应用的特殊性。 本文就 51 单片机应用中一些常见问题作个总结,这都是我实际碰到过 的,因为文章篇幅所限,这些问题远远不足以表达单片机的常见问题。希望对初学者有所帮助,文中不完善的地方务请指点。谢谢! 1:C51 编译器如何区分位地址和字节地址 是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了 P0 端口地址位于 0x80,后者说明了 P0 端口的 bit0,即 P0.0 位于位地址空间 0x80 处。这 2 个 0x80 具有完全不同的含义,靠关键字 sfr 和 sbit 来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如: C51 语句: P0 = 1; P0 声明为 sfr,因此编译成:mov 80h,01h,将把 0x01 数据送入 0x80 单元,由于 0x80 单元物理上对应 P0 端口,因此,P0.0 脚将输出高电平(其实是呈现高阻态,P0 口独有的),其他.1-.7 脚输出低电平。 C51 语句: P0_0 = 1; P0_0 声明为 sbit,因此编译成:setb 80h,这将把位地址空间的 0x80 地址的 bit 的值置 1。这个位正是 P0 口的 bit0,执行后,P0.0 将输出高阻态。而P0.1-.7 不会变化。

文档评论(0)

mph + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海谭台科技有限公司
IP属地湖北
统一社会信用代码/组织机构代码
91310115MA7CY11Y3K

1亿VIP精品文档

相关文档