Keil C51单片机高级语言应用编程技术(含CD光盘1张)
  • 推荐0
  • 收藏0
  • 浏览704

Keil C51单片机高级语言应用编程技术(含CD光盘1张)

徐爱钧 (作者)  孙学瑛 (责任编辑)

  • 书  号:978-7-121-27030-7
  • 出版日期:2015-09-21
  • 页  数:436
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:孙学瑛
本书是《Keil C51单片机高级语言应用编程与实践》的简化版,详细介绍了Keil Cx51 V9.0版本单片机C语言编译器和全新Windows集成开发环境Vision4的强大功能和具体使用方法。全面介绍了最新版本Cx51编译器新增加的控制命令,给出了全部Cx51运行库函数及其应用范例,对Keil Cx51软件包中各种应用工具,如BL51/Lx51连接定位器、A51/Ax51宏汇编器、LIB51库管理程序以及OH51符号转换程序等都作了详细介绍。
单片机经典畅销书精华版
德国Keil公司推出的C51编译器被公认为是最有效的单片机开发手段之一,Keil公司最新推出的V9版本C51编译器全面支持8051单片机主流产品及其众多的派生系列,经过优化编译后生成的代码,其效率接近于汇编语言代码,编译过程中可产生详细警告信息和错误信息,帮助用户处理各种程序问题。全新集成开发环境Vision4具有强大的项目管理功能,包括源程序文件、开发工具选项以及编程说明等。Vision4内部集成了一个器件数据库(device database),其中储存了各种型号单片机的片上存储器和集成外围功能信息,通过器件数据库可以自动设置C51编译器、A51汇编器、BL51/Lx51连接定位器、Debug调试器等开发工具的功能选项,充分满足用户使用特定单片机的要求。集成仿真调试功能允许在统一的Vision4环境下进入Debug调试器,提供纯软件模拟仿真(Simulator)和硬件驱动调试。Simulator可以在没有单片机硬件的条件下在PC机上用纯软件模拟方式完成单片机应用程序仿真调试,多种硬件驱动可以直接对用户目标板进行实时仿真调试而无须采用昂贵的硬件仿真器。
本书完整地阐述了Keil C51开发工具的功能和使用方法,力求先进性和实用性,给出了大量具体应用实例。全书共分8章:
第1章阐述8051单片机存储器结构,以及在Vision4集成开发环境下进行C51程序设计和编译调试的基本方法。
第2章阐述C51程序设计基础知识,详细介绍C51的数据类型、基本语法、变量及其存储模式、函数、数组与指针等。
第3章阐述Vision4集成开发环境,详细介绍了工作环境、目标程序的仿真调试以及各种应用选项的设置方法。
第4章阐述Keil C51编译器,介绍了各种编译控制命令、数据调用协议,给出了全部C51库函数及其功能说明。
第5章阐述BL51/Lx51链接定位器与实用工具,详细介绍了各种链接控制命令、符号转换工具OH51、库管理工具LIB51的使用方法。
第6章阐述8051单片机片内资源的C51应用编程,介绍了C51编程的基本原则、常见问题与解决方法,给出了中断系统、定时器/计数器、串行口等片内资源的具体应用实例。
第7章阐述8051单片机片外扩展的C51应用编程,给出了LED数码管、非编码矩阵键盘、点阵字符型和点阵图型LCD、D/A及A/D转换、I2C总线扩展等具体应用实例。
第8章阐述Keil C51综合应用编程,介绍了C51编程的若干实际应用技巧,C51与汇编语言混和编程方法,给出了红外遥控系统、点阵LED显示屏、带农历的电子万年历、电子密码锁、DS18B20多点温度监测系统、STH11数字温-湿度测量系统、单片机SD卡读写接口、DTMF发送/接收系统等大量综合应用实例。
为帮助读者更好地学习和掌握Keil C51应用方法,本书带有一张CD-ROM光盘,其中包含Keil公司全功能C51评估软件包、本书各章所有范例的程序代码。
本书在出版过程中得到电子工业出版社的热情支持,孙学瑛编辑提出了许多宝贵意见,徐阳、彭秀华、陈召军、刘冰、贺媛、许雪怡、郑鹏鹏、秦波、黄存坚等参加了本书的编写工作,在此一并表示衷心感谢。由于作者水平有限,书中难免会有错误和不妥之处,恳请广大读者批评指正,读者可通过电子邮件ajxu@tom.com,ajxu41@sohu.com直接与作者联系。

徐爱钧
2015年5月于长江大学

目录

第1章 8051单片机与Keil C51基础 1
1.1 8051单片机的存储器组织结构 1
1.2 Keil C51开发工具 6
1.3 C51简单编程与调试 7
第2章 Keil C51程序设计基础 17
2.1 标识符与关键字 17
2.2 C51程序设计的基本语法 19
2.2.1 C51程序的一般结构 19
2.2.2 数据类型 20
2.2.3 用typedef重新定义数据类型 22
2.2.4 常量、变量及其存储模式 23
2.2.5 运算符与表达式 26
2.3 C51程序的基本语句 31
2.3.1 表达式语句 31
2.3.2 复合语句 31
2.3.3 条件语句 32
2.3.4 开关语句 32
2.3.5 循环语句 33
2.3.6 goto、break、continue语句 34
2.3.7 返回语句 34
2.4 函数 35
2.4.1 函数的定义与调用 35
2.4.2 中断服务函数与寄存器组定义 36
2.5 数组 38
2.5.1 数组的定义与引用 38
2.5.2 数组名作为函数的参数 39
2.5.3 数组与存储器空间 39
2.6 指针 40
2.6.1 指针与地址 40
2.6.2 指针变量的定义 40
2.6.3 指针变量的引用 41
2.6.4 用指针引用数组元素 42
2.6.5 函数型指针 43
2.6.6 返回指针型数据的函数 44
2.9 结构体、联合体与枚举 44
2.9.1 结构体变量的定义与引用 44
2.9.2 联合体变量的定义与引用 47
2.9.2 枚举变量的定义与引用 48
第3章 Vision4集成开发环境 50
3.1 Vision4的项目管理 52
3.2 Vision4中的调试器 64
3.2.1 Debug状态下窗口分配与View下拉菜单 66
3.2.2 通过Debug下拉菜单进行程序代码调试 72
3.2.3 通过Peripherals下拉菜单观察仿真结果 79
3.3 Vision4的调试命令 81
3.3.1 显示和更新存储器内容命令 82
3.3.2 程序执行控制命令 86
3.3.3 断点管理命令 88
3.3.4 其他通用命令 91
3.4 Vision4的表达式 96
3.4.1 表达式的组成 97
3.4.2 Vision4表达式与C语言表达式之间的差别 101
3.4.3 Vision4表达式应用举例 101
3.5 Vision4的函数 103
3.5.1 内部函数 103
3.5.2 用户函数 104
3.5.3 信号函数 106
3.5.4 Vision4函数与C51函数的差别 108

第4章 C51编译器 109
4.1 C51编译器简介 109
4.2 C51编译器的控制命令 110
4.3 Keil C51编译器对ANSI C的特殊扩展 113
4.3.1 存储器类型与编译模式 113
4.3.2 关于bit、sbit、sfr、sfr16数据类型 115
4.3.3 一般指针与基于存储器的指针及其转换 117
4.3.4 C51编译器对ANSI C函数定义的扩展 119
4.4 C51编译器的数据调用协议 124
4.4.1 数据在内存中的存储格式 124
4.4.2 目标代码的段管理 126
4.5 C51编译器的特殊支持 128
4.6 用户配置文件 129
4.6.1 启动代码文件 129
4.6.2 变量初始化文件 131
4.6.3 基本I/O函数文件 133
4.6.4 分组配置文件 133
4.7 与汇编语言程序的接口 135
4.8 与PL/M51程序的接口 145
4.9 绝对地址访问 146
4.9.1 采用扩展关键字“_at_”或指针定义变量的绝对地址 146
4.9.2 采用预定义宏指定变量的绝对地址 147
4.9.3 采用链接定位控制命令指定变量的绝对地址 148
4.10 C51的库函数 149
4.10.1 本征库函数 150
4.10.2 字符判断转换库函数 151
4.10.3 输入/输出库函数 151
4.10.4 字符串处理库函数 156
4.10.5 类型转换及内存分配库函数 157
4.10.6 数学计算库函数 159
4.10.7 绝对地址访问 159
4.10.8 函数变量参数表 160
4.10.9 全程跳转 161
4.10.10 计算结构体成员偏移量 161
4.10.11 创建测试条件 162
第5章 BL51/Lx51链接定位器与实用工具 163
5.1 BL51/Lx51的链接定位方式 163
5.1.1 链接定位中的数据段处理 163
5.1.2 链接定位器的引用 165
5.1.3 数据覆盖 166
5.1.4 代码分组 167
5.2 链接定位控制命令 168
5.2.1 列表文件控制命令 168
5.2.2 输出文件控制命令 169
5.2.3 段与存储器定位控制命令 169
5.2.4 高级语言控制命令 170
5.3 Intel HEX文件格式符号转换工具 176
5.4 库管理器——LIBx51 177
第6章 8051单片机片内资源应用编程 179
6.1 编写C51应用程序的基本原则 179
6.2 C51应用中的一些常见问题与解决方法 180
6.3 中断系统应用编程 183
6.3.1 外部中断源扩展 184
6.3.2 中断嵌套 186
6.3.3 Keil与Proteus原理图联机仿真调试 188
6.4 定时器/计数器应用编程 189
6.4.1 定时器方式应用 190
6.4.2 计数器方式应用 195
6.5 利用定时器产生音乐 196
6.6 串行口应用编程 200
6.6.1 串行口实现串/并转换应用编程 201
6.6.2 串行口的通信方式应用编程 203
第7章 8051单片机片外扩展应用编程 220
7.1 LED数码管显示器接口应用编程 220
7.1.1 I/O端口驱动LED数码管应用编程 221
7.1.2 单个74HC595驱动多位LED数码管应用编程 224
7.1.3 8位共阴极LED数码管驱动器MAX7219应用编程 227
7.2 非编码矩阵键盘接口应用编程 233
7.2.1 采用I/O端口实现的键盘及显示接口应用编程 234
7.2.2 采用8279实现的键盘及显示接口应用编程 236
7.3 点阵字符型LCD显示模块接口应用编程 243
7.3.1 点阵字符型LCD显示模块简介 243
7.3.2 点阵字符型LCD模块与单片机直接接口应用编程 249
7.3.3 点阵字符型LCD模块与单片机间接接口应用编程 252
7.4 无字库12864点阵图型液晶显示模块接口应用编程 256
7.5 带字库12864点阵图型液晶模块接口应用编程 264
7.5.1 带字库12864点阵图型液晶模块并行接口应用编程 264
7.5.2 带字库12864液晶模块串行接口应用编程 275
7.6 内置T6963C的点阵图型LCD模块接口应用编程 279
7.7 D/A与A/D转换接口应用编程 289
7.7.1 DAC0832转换接口应用编程 290
7.7.2 串行接口DAC芯片TLC5615应用编程 293
7.7.3 ADC0809转换接口应用编程 296
7.7.4 ICL7135转换接口应用编程 299
7.7.5 串行接口ADC芯片TLC549应用编程 304
7.8 单片机I2C总线扩展应用编程 307
7.8.1 I2C总线简介 307
7.8.2 I2C总线通用驱动程序 311
7.8.3 I2C接口器件24C04的读写程序 313
第8章 Keil C51综合应用编程实例 319
8.1 有关C51编程的若干实际应用技巧 319
8.2 C51和汇编语言混合编程与生成应用库文件 325
8.2.1 C51和汇编语言混合编程 325
8.2.2 在Vision4中生成应用库文件 327
8.3 在Vision4中应用硬件目标板 328
8.4 红外遥控系统设计 331
8.4.1 功能要求 331
8.4.2 硬件电路设计 331
8.4.3 软件程序设计 332
8.5 点阵图形LED显示屏设计 339
8.5.1 功能要求 339
8.5.2 硬件电路设计 339
8.5.3 软件程序设计 340
8.6 带农历的电子万年历设计 342
8.6.1 功能要求 342
8.6.2 硬件电路设计 343
8.6.3 软件程序设计 346
8.7 电子密码锁设计 358
8.7.1 功能要求 358
8.7.2 硬件电路设计 358
8.7.3 软件程序设计 359
8.8 DS18B20多点温度监测系统设计 376
8.8.1 功能要求 376
8.8.2 硬件电路设计 376
8.8.3 软件程序设计 381
8.9 SHT11数字温—湿度测量系统设计 390
8.9.1 功能要求 390
8.9.2 硬件电路设计 390
8.9.3 软件程序设计 394
8.10 单片机SD卡读写接口设计 400
8.10.1 功能要求 400
8.10.2 硬件电路设计 400
8.10.3 软件程序设计 403
8.11 DTMF发送/接收系统设计 407
8.11.1 功能要求 407
8.11.2 硬件电路设计 407
8.11.3 软件程序设计 411
附录1 Keil C51与ANSI C的差别 423
附录2 C51编译器的限制 425
参考文献 426

读者评论