51单片机C语言编程手册

1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不是教你各种 8051 嵌入式系统的解决方法 为使问题讨论更加清晰在适当的地方给出了程序代码我们以讨论项目的方法来说 明每章碰到的问题所有的代码都可在附带的光盘上找到你必须熟系C 和8051 汇编因 为本书不是一本C 和汇编的指导书你可以买到不少关于ANSI C 的书最佳选择当然是Intel 的数据书可从你的芯片供应商处免费索取和随编译工具附送的手册 附送光盘中有我为这本书编写和收集的程序这些程序已经通过测试这并不意味着 你可以随时把这些程序加到你的应用系统或工程中有些地方必须首先经过修改才能结合 到你的程序中 这本书将教你充分使用你的工具如果你只有8051 的汇编程序你也可以学习该书和 使用这些例子但是你必须把C 语言的程序装入你的汇编程序中这对懂得C 语言和8051 汇编程序指令的人来说并不是一件困难的事 如果你有C 编译器的话那恭喜你使用C 语言进行开发是一个好的决定你会发现 使用C 进行开发将使你的工程开发和维护的时间大大减少如果你已经拥有Keil C51 那 你已经选择了一个非常好的开发工具我发现Keil 软件包能够提供最好的支持本书支持 Keil C 的扩展如果你有其它的开发工具像Archimedes 和Avocet 这本书也能很好地为 你服务但你必须根据你所用的开发工具改变一些Keil 的特殊指令 在书的一些地方有硬件图实例程序在这些硬件上运行这些图绘制地不是很详细 主要是方框图但足以使读者明白软件和硬件之间的接口 读者应该把这本书看成工具书而不是用来学习各种系统设计通过本书你可以了 解给定一定的硬件和软件设计之后8051 的各种性能希望你能从本书中获取灵感并有助 于你的设计使你豁然开朗当然我希望你也能够从本书中学到有用的知识使之能够 提升你的设计 2 第二章 硬件 1 概述 8051 系列微处理器基于简化的嵌入式控制系统结构被广泛应用于从军事到自动控制 再到PC 机上的键盘上的各种应用系统上仅次于Motorola 68HC11 在 8 位微控制器市场 上的销量很多制造商都可提供8051 系列单片机像Intel Philips Siemens 等这些 制造商给51 系列单片机加入了大量的性能和外部功能像I2C 总线接口模拟量到数字量 的转换看门狗PWM 输出等不少芯片的工作频率达到40M 工作电压下降到1.5V 基 于一个内核的这些功能使得8051 单片机很适合作为厂家产品的基本构架它能够运行各种 程序而且开发者只需要学习这一个平台 8051 系列的基本结构如下 1 一个8 位算术逻辑单元 2 32 个I/O 口4 组8 位端口可单独寻址 3 两个16 位定时计数器 4 全双工串行通信 5 6 个中断源两个中断优先级 6 128 字节内置RAM 7 独立的64K 字节可寻址数据和代码区 每个8051 处理周期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取指 令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期数 因此如果你的系统时钟是11.059MHz 除以12 后就得到了每秒执行的指令个数为921583 条指令取倒数将得到每条指令所须的时间1.085ms 3 2 存储区结构 8051 结构提供给用户3 个不同的存储空间如图A-1 每个存储空间包括从0 到最大 存储范围的连续的字节地址空间通过利用特定地址的寻址指令解决了地址重叠的问题 三个地址空间的功能如图所示 图A-1-8051 存储结构 2.1 CODE 区 第一个存储空间是代码段用来存放可执行代码被16 位寻址空间可达64K 代码 段是只读的当要对外接存储器件如EPROM 进行寻址时处理器会产生一个信号但这并 不意味着代码区一定要用一个EPROM 目前一般使用EEPROM 作为外接存储器可以被外 围器件或8051 进行改写这使系统更新更加容易新的软件可以下载到EEPROM 中而不 用拆开它然后装入一个新的EEPROM 另外带电池的SRAMs 也可用来代替EPROM 他可 以像EEPROM 一样进行程序的更新并且没有像EEPROM 那样读写周期的限制但是当电 源耗尽时存储在SRAMs 中的程序也随之丢失使用SRAMs 来代替EPROM 时允许快速下 载新程序到目标系统中这避免了编程/调试/擦写这样一个循环过程不再需要使用昂贵 的在线仿真器 除了可执行代码还可在代码段中存储查寻表为达此目的8051 提供了通过数据指 针DPTR 或程序计数器加上由累加器提供的偏移量进行寻址的指令这样就可以把表头地址 装入DPTR 中把表中要寻址的元素的偏移量装入累加器中8051 在执行指令时的过程中 把这两者相加由此可节省不少指令周期在以后的例子中我们会看到这点 4 2.2 DATA 区 第二个存储区是8051 内128 字节的内部RAM 或8052 的前128 字节内部RAM 这部分 主要是作为数据段称为DATA 区指令用一个或两个周期来访问数据段访问DATA 区比 访问XDATA 区要快因为它采用直接寻址方式而访问XDATA 须采用间接寻址必须先初 始化DPTR 通常我们把使用比较频繁的变量或局部变量存储在DATA 段中但是必须节省 使用DATA 段因为它的空间毕竟有限 在数据段中也可通过R0 和R1 采用间接寻址R0 和R1 被作为数据区的指针将要恢 复或改变字节的地址放入R0 或R1 中根据源操作数和目的操作数的不同执行指令需要 一个或两个周期 数据段中有两个小段第一个子段包含四组寄存器组每组寄存器组包含八个寄存器 共32 个寄存器可在任何时候通过修改PSW 寄存器的RS1 和RS0 这两位来选择四组寄存器 的任意一组作为工作寄存器组8051 也可默认任意一组作为工作寄存器组工作寄存器组 的快速切换不仅使参数传递更为方便而且可在8051 中进行快速任务转换 另外一个子段叫做位寻址段BDATA 包括16 个字节共128 位每一位都可单独寻 址8051 有好几条位操作指令这使得程序控制非常方便并且可帮助软件代替外部组合 逻辑这样就减少了系统中的模块数位寻址段的这16 个字节也可像数据段中其它字节一 样进行字节寻址 2.3 特殊功能寄存器 中断系统和外部功能控制寄存器位于从地址80H 开始的内部RAM 中这些寄存器被称 做特殊功能寄存器简称 SFR 其中很多寄存器都 可位寻址可通过名字进 行引用如果要对中断使 能寄存器中的EA 位进行 寻址可使用EA 或IE.7 或0AFH SFRs 控制定时/ 计数器串行口中断源 及中断优先级等这些寄 存器的寻址方式和DATA 取中的其它字节和位一样 可位寻址SFR 如表A-1 所示可进行位寻址的SFR 表 A-1 5 2.4 IDATA 区 8051 系列的一些单片机如8

51单片机c语言工作手册,51单片机C语言编程手册相关推荐

  1. 单片机是如何工作的?单片机内部结构原理,让你豁然开朗!

    一.单片机内部结构分析 我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可 ...

  2. 单片机 rs232 c语言,完全手册 51单片机C语言开发详解系列之第8章 串口通讯实战—RS232...

    完全手册 51单片机C语言开发详解系列 技术凝聚实力 专业创新出版 第8章 串口通讯实战-RS232接口电路与软件设计 本章主要通过实际的例子讲解AT89S51单片机的RS232串行通讯接口设计. 随 ...

  3. 单片机从事什么工作?只会51单片机能找到工作吗?

    我当初是自学转行进入单片机行业,没有211/985这种学历背景. 转行纯粹是为了脱离阶层,我们那个年代都兴蓝领,白领. 我们学的专业就是属于蓝领类的. 蓝领就是做苦力活的,白领就是衣光鲜艳,坐办公室拿 ...

  4. 51单片机c语言学习感想,51单片机实训心得体会

    [www.hywsbj.com--心得体会] 单片机实训有哪些心得体会呢?下面是小编为大家收集的资料,欢迎阅读哦. 51单片机实训心得体会 通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥 ...

  5. c语言时钟加秒表报告,51单片机秒表计时器课程设计报告(含C语言程序)-20210419061005.docx-原创力文档...

    XXXXXX学院 51单片机系统设计课程设计报告 题 目:秒表系统设计 专业.班级: 学生姓名: 学号: 指导教师: 分数: [摘要]本设计是一个秒表计时器,采用51单片机实现.电路包括以下儿部分:单 ...

  6. 湿度控制c语言程序,基于51单片机的湿度控制系统设计.doc

    基于51单片机的湿度控制系统设计 基于51单片机的湿度控制系统设计 摘要 关键词:单片机:湿度传感器:ADC0832数模转换 目 录 序 言1 第一章 系统的整体设计方案2 1.1设计内容2 1.2系 ...

  7. c语言单片机停车场收费系统,基于51单片机停车场车位引导系统设计

    ?周明彬 曾伊玲 摘要:在很多人流量大的地方,因为车辆集中的情况,所以每次经过停车场时都需要工作人员来指挥车辆,告诉车主停车场那些地方还有空余车位可以泊车.所以很多地方的旧停车场使用的管理方式,是十分 ...

  8. 洗衣机控制系统c语言编程,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文.doc...

    采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文 深 圳 大 学 本 科 毕 业 论 文(设计) 题目: 基于单片机设计的全自动 洗衣机控制器 姓名: 郑嘉泽 专业: 电子信息工程 学院: ...

  9. 51单片机c语言试题及答案,单片机考试复习题及答案

    <单片机考试复习题及答案>由会员分享,可在线阅读,更多相关<单片机考试复习题及答案(14页珍藏版)>请在人人文库网上搜索. 1.选择题1.主频为12MHz的单片机他的机器周期为 ...

最新文章

  1. ionic + cordova+angularJs 搭建的H5 App完整版总结
  2. ASP.NET中常用的26个优化性能方法(转)
  3. easy_install 安装
  4. JavaMail中解决中文附件名乱码的问题
  5. “约见”面试官系列之常见面试题第七篇说说Vue的生命周期(建议收藏)
  6. ELT和ETL分不清楚?2张图就能理解透彻
  7. grafana mysql插件_grafana插件动态数据
  8. ReportViewer教程(10)-给报表分组合计
  9. warning LNK4098: defaultlib MSVCRT conflicts with use of other libs; use /NODE
  10. Fiddler抓包详解
  11. System.Security.Cryptography.CryptographicException
  12. 190418每日一句
  13. 很多网友反映QQ被盗
  14. Oracle 软件包及补丁包免费下载及简单说明
  15. 七日杀服务器技能点修改,七日杀技能点修改方法 七日杀技能点怎么调
  16. python对sqlite增删改查_Python操作sqlite3数据库 增删改查
  17. 视频号|常见违规限流情况及解除方法
  18. 计算机安装msvcr110.dll,安装WampServer报错 计算机中丢失MSVCR110.dll 的解决方法 | 睿客网...
  19. 【PHP+微信开发】实现微信对账单处理
  20. TI AWR1642BOOST-ODS EVM开发板入门

热门文章

  1. 宽带知识-光纤局域网FTTB
  2. “程序设计与算法训练”课程设计:“BP神经网络的实现”(C++类封装实现)
  3. mysql数据库预处理_一种MySQL数据库中间件预处理方法与流程
  4. 腾讯人力资源管理体系
  5. cmake添加查找目录_CMake如何查找库路径(一)
  6. 国际学术论文写作与发表 期末考试
  7. Java程序员最全面的学习路线图
  8. 时间转换数字与日期互转
  9. SAP 接口测试操作-顾问
  10. 输入空间、输出空间、特征空间与假设空间