没有合适的资源?快使用搜索试试~ 我知道了~
Keil C51语言使用技巧及实战
需积分: 9 2 下载量 84 浏览量
2008-11-05
11:41:54
上传
评论
收藏 1.03MB PDF 举报
温馨提示
试读
185页
Keil C51语言使用技巧及实战......
资源推荐
资源详情
资源评论
广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925
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 的各种性能
希望你能从本书中获取灵感 并有助
于你的设计
使你豁然开朗 当然 我希望你也能够从本书中学到有用的知识 使之能够
提升你的设计
广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925
2
第二章 硬件
1概述
8051 系列微处理器基于简化的嵌入式控制系统结构
被广泛应用于从军事到自动控制
再到 PC 机上的键盘上的各种应用系统上
仅次于 Motorola 68HC11 在 8 位微控制器市场
上的销量
很多制造商都可提供 8051 系列单片机 像 Intel Philips Siemens 等 这些
制造商给 51 系列单片机加入了大量的性能和外部功能
像 I
2
C 总线接口 模拟量到数字量
的转换
看门狗 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
广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925
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 在执行指令时的过程中
把这两者相加
由此可节省不少指令周期 在以后的例子中我们会看到这点
广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925
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
广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925
5
2.4 IDATA 区
8051 系列的一些单片机如 8052 有附加的 128 字节的内部 RAM
位于从 80H 开始的地址
空间中
被称为 IDATA 因为 IDATA 区的地址和 SFRs 的地址是重叠的 通过区分所访问的
存储区来解决地址重叠问题
因为 IDATA 区只能通过间接寻址来访问
2.5 XDATA 区
8051 的最后一个存储空间为 64K
和 CODE 区一样 采用 16 位地址寻址 称作外部数
据区
简称 XDATA 区 这个区通常包括一些 RAM 如 SRAM 或一些需要通过总线接口的外
围器件
对 XDATA 的读写操作需要至少两个处理周期 使用 DPTR R0 或 DPTR R1 对 DPTR
来说
至少需要两个处理周期来装入地址 而读写又需要两个处理周期 同样 对于 R0
或 R1 装入需要一个以上的处理周期
而读写又需两个周期 由此可见 处理 XDATA 中的数
据至少要花 3 个指令周期
因此 使用频繁的数据应尽量保存在 DATA 区中
如果不需要和外部器件进行 I/O 操作或者希望在和外部器件进行 I/O 操作时开关 RAM
则 XDATA 可全部使用 64K RAM 关于这方面的应用将在以后介绍
剩余184页未读,继续阅读
资源评论
walker_99
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Fortran语言语法快速入门.pdf
- 明日方舟 年 鼠标指针.rar
- 全国银行经济监管可视化系统
- e商小二-供应链管理物流交仓创业商业计划书.rar
- Edge浏览器下载文件提示 “无法安全下载” 的解决方法
- 基于springboot+layui的医院日常耗材管理系统.zip
- Emkex亿迈克思新型互联网磁材供应链商业计划书.rar
- 计算机毕业设计-ASP.NET某店POS积分管理系统-销售情况,会员卡再发行数据生成(源代码+)-毕设源码实例.zip
- 计算机毕业设计-asp.net某店POS积分管理系统-清除履历表、日志表、月购买额(源代码+)-毕设源码实例.zip
- 计算机毕业设计-ASP.NET某店POS积分管理系统-积分实绩更新及销售状况统计(源代码+)-毕设源码实例.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功