目录__eol__第1章 8051单片机与Keil C51基础 1__eol__1.1 8051单片机的存储器组织结构 1__eol__1.2 Keil C51开发工具 6__eol__1.3 C51简单编程与调试 7__eol__第2章 Keil C51程序设计基础 17__eol__2.1 标识符与关键字 17__eol__2.2 C51程序设计的基本语法 19__eol__2.2.1 C51程序的一般结构 19__eol__2.2.2 数据类型 20__eol__2.2.3 用typedef重新定义数据类型 22__eol__2.2.4 常量、变量及其存储模式 23__eol__2.2.5 运算符与表达式 26__eol__2.3 C51程序的基本语句 31__eol__2.3.1 表达式语句 31__eol__2.3.2 复合语句 31__eol__2.3.3 条件语句 32__eol__2.3.4 开关语句 32__eol__2.3.5 循环语句 33__eol__2.3.6 goto、break、continue语句 34__eol__2.3.7 返回语句 34__eol__2.4 函数 35__eol__2.4.1 函数的定义与调用 35__eol__2.4.2 中断服务函数与寄存器组定义 36__eol__2.5 数组 38__eol__2.5.1 数组的定义与引用 38__eol__2.5.2 数组名作为函数的参数 39__eol__2.5.3 数组与存储器空间 39__eol__2.6 指针 40__eol__2.6.1 指针与地址 40__eol__2.6.2 指针变量的定义 40__eol__2.6.3 指针变量的引用 41__eol__2.6.4 用指针引用数组元素 42__eol__2.6.5 函数型指针 43__eol__2.6.6 返回指针型数据的函数 44__eol__2.9 结构体、联合体与枚举 44__eol__2.9.1 结构体变量的定义与引用 44__eol__2.9.2 联合体变量的定义与引用 47__eol__2.9.3 枚举变量的定义与引用 48__eol__第3章 μVision4集成开发环境 50__eol__3.1 ?Vision4的项目管理 52__eol__3.2 ?Vision4中的调试器 64__eol__3.2.1 Debug状态下窗口分配与View下拉菜单 66__eol__3.2.2 通过Debug下拉菜单进行程序代码调试 72__eol__3.2.3 通过Peripherals下拉菜单观察仿真结果 79__eol__3.3 ?Vision4的调试命令 81__eol__3.3.1 显示和更新存储器内容命令 82__eol__3.3.2 程序执行控制命令 86__eol__3.3.3 断点管理命令 88__eol__3.3.4 其他通用命令 91__eol__3.4 ?Vision4的表达式 96__eol__3.4.1 表达式的组成 97__eol__3.4.2 ?Vision4表达式与C语言表达式之间的差别 101__eol__3.4.3 ?Vision4表达式应用举例 101__eol__3.5 ?Vision4的函数 103__eol__3.5.1 内部函数 103__eol__3.5.2 用户函数 104__eol__3.5.3 信号函数 106__eol__3.5.4 ?Vision4函数与C51函数的差别 108__eol____eol__第4章 C51编译器 109__eol__4.1 C51编译器简介 109__eol__4.2 C51编译器的控制命令 110__eol__4.3 Keil C51编译器对ANSI C的特殊扩展 113__eol__4.3.1 存储器类型与编译模式 113__eol__4.3.2 关于bit、sbit、sfr、sfr16数据类型 115__eol__4.3.3 一般指针与基于存储器的指针及其转换 117__eol__4.3.4 C51编译器对ANSI C函数定义的扩展 119__eol__4.4 C51编译器的数据调用协议 124__eol__4.4.1 数据在内存中的存储格式 124__eol__4.4.2 目标代码的段管理 126__eol__4.5 C51编译器的特殊支持 128__eol__4.6 用户配置文件 129__eol__4.6.1 启动代码文件 129__eol__4.6.2 变量初始化文件 131__eol__4.6.3 基本I/O函数文件 133__eol__4.6.4 分组配置文件 133__eol__4.7 与汇编语言程序的接口 135__eol__4.8 与PL/M51程序的接口 145__eol__4.9 绝对地址访问 146__eol__4.9.1 采用扩展关键字“_at_”或指针定义变量的绝对地址 146__eol__4.9.2 采用预定义宏指定变量的绝对地址 147__eol__4.9.3 采用链接定位控制命令指定变量的绝对地址 148__eol__4.10 C51的库函数 149__eol__4.10.1 本征库函数 150__eol__4.10.2 字符判断转换库函数 151__eol__4.10.3 输入/输出库函数 151__eol__4.10.4 字符串处理库函数 156__eol__4.10.5 类型转换及内存分配库函数 157__eol__4.10.6 数学计算库函数 158__eol__4.10.7 绝对地址访问 159__eol__4.10.8 函数变量参数表 160__eol__4.10.9 全程跳转 161__eol__4.10.10 计算结构体成员偏移量 161__eol__4.10.11 创建测试条件 161__eol__第5章 BL51/Lx51链接定位器与实用工具 162__eol__5.1 BL51/Lx51的链接定位方式 162__eol__5.1.1 链接定位中的数据段处理 162__eol__5.1.2 链接定位器的引用 164__eol__5.1.3 数据覆盖 165__eol__5.1.4 代码分组 166__eol__5.2 链接定位控制命令 167__eol__5.2.1 列表文件控制命令 167__eol__5.2.2 输出文件控制命令 168__eol__5.2.3 段与存储器定位控制命令 168__eol__5.2.4 高级语言控制命令 169__eol__5.3 Intel HEX文件格式符号转换工具 175__eol__5.4 库管理器——LIBx51 176__eol__第6章 8051单片机片内资源应用编程 178__eol__6.1 编写C51应用程序的基本原则 178__eol__6.2 C51应用中的一些常见问题与解决方法 179__eol__6.3 中断系统应用编程 182__eol__6.3.1 外部中断源扩展 183__eol__6.3.2 中断嵌套 185__eol__6.3.3 Keil与Proteus原理图联机仿真调试 187__eol__6.4 定时器/计数器应用编程 188__eol__6.4.1 定时器方式应用 189__eol__6.4.2 计数器方式应用 194__eol__6.5 利用定时器产生音乐 195__eol__6.6 串行口应用编程 199__eol__6.6.1 串行口实现串/并转换应用编程 200__eol__6.6.2 串行口的通信方式应用编程 202__eol__第7章 8051单片机片外扩展应用编程 219__eol__7.1 LED数码管显示器接口应用编程 219__eol__7.1.1 I/O端口驱动LED数码管应用编程 220__eol__7.1.2 单个74HC595驱动多位LED数码管应用编程 223__eol__7.1.3 8位共阴极LED数码管驱动器MAX7219应用编程 226__eol__7.2 非编码矩阵键盘接口应用编程 232__eol__7.2.1 采用I/O端口实现的键盘及显示接口应用编程 233__eol__7.2.2 采用8279实现的键盘及显示接口应用编程 235__eol__7.3 点阵字符型LCD显示模块接口应用编程 242__eol__7.3.1 点阵字符型LCD显示模块简介 242__eol__7.3.2 点阵字符型LCD显示模块与单片机直接接口应用编程 248__eol__7.3.3 点阵字符型LCD显示模块与单片机间接接口应用编程 251__eol__7.4 无字库12864点阵图型LCD显示模块接口应用编程 255__eol__7.5 带字库12864点阵图型LCD显示模块接口应用编程 263__eol__7.5.1 带字库12864点阵图型LCD显示模块并行接口应用编程 263__eol__7.5.2 带字库12864点阵图型LCD显示模块串行接口应用编程 274__eol__7.6 内置T6963C点阵图型LCD显示模块接口应用编程 278__eol__7.7 D/A与A/D转换接口应用编程 288__eol__7.7.1 DAC0832转换接口应用编程 289__eol__7.7.2 串行接口DAC芯片TLC5615应用编程 292__eol__7.7.3 ADC0809转换接口应用编程 295__eol__7.7.4 ICL7135转换接口应用编程 298__eol__7.7.5 串行接口ADC芯片TLC549应用编程 303__eol__7.8 单片机I2C总线扩展应用编程 306__eol__7.8.1 I2C总线简介 306__eol__7.8.2 I2C总线通用驱动程序 310__eol__7.8.3 I2C接口器件24C04的读写程序 312__eol__第8章 Keil C51综合应用编程实例 318__eol__8.1 有关C51编程的若干实际应用技巧 318__eol__8.2 C51和汇编语言混合编程与生成应用库文件 324__eol__8.2.1 C51和汇编语言混合编程 324__eol__8.2.2 在?Vision4中生成应用库文件 326__eol__8.3 在?Vision4中应用硬件目标板 327__eol__8.4 红外遥控系统设计 330__eol__8.4.1 功能要求 330__eol__8.4.2 硬件电路设计 330__eol__8.4.3 软件程序设计 331__eol__8.5 点阵图型LED显示屏设计 338__eol__8.5.1 功能要求 338__eol__8.5.2 硬件电路设计 338__eol__8.5.3 软件程序设计 339__eol__8.6 带农历的电子万年历设计 341__eol__8.6.1 功能要求 341__eol__8.6.2 硬件电路设计 342__eol__8.6.3 软件程序设计 345__eol__8.7 电子密码锁设计 357__eol__8.7.1 功能要求 357__eol__8.7.2 硬件电路设计 357__eol__8.7.3 软件程序设计 358__eol__8.8 DS18B20多点温度监测系统设计 375__eol__8.8.1 功能要求 375__eol__8.8.2 硬件电路设计 375__eol__8.8.3 软件程序设计 380__eol__8.9 SHT11数字温—湿度测量系统设计 389__eol__8.9.1 功能要求 389__eol__8.9.2 硬件电路设计 389__eol__8.9.3 软件程序设计 393__eol__8.10 单片机SD卡读写接口设计 399__eol__8.10.1 功能要求 399__eol__8.10.2 硬件电路设计 399__eol__8.10.3 软件程序设计 402__eol__8.11 DTMF发送/接收系统设计 406__eol__8.11.1 功能要求 406__eol__8.11.2 硬件电路设计 406__eol__8.11.3 软件程序设计 410__eol__附录A Keil C51与ANSI C的差别 422__eol__附录B C51编译器的限制 424__eol__参考文献 425__eol____eol__