《51单片机开发与应用技术详解》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:赵建领,薛园园等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121079207
  • 页数:702 页
图书介绍:本书全面详细地讲述了单片机的原理、编程指南及应用案例,其中51系列单片机的编程部分是本书的重点。全书分为5篇38章。首先介绍了51系列单片机的开发概述及单片机的基本结构,接着介绍了单片机的汇编程序设计语言,然后介绍了单片机C51语言的程序设计,随后结合单片机的指令系统及各个功能部件详细讲解了单片机的编程操作,以及单片机硬件资源的仿真和程序调试。本书最后还给出了在各个领域中常用到的一些典型案例,供读者在学习和工作中参考。本书知识点覆盖全面、结构安排紧凑、讲解详细、实例丰富。对于51系列单片机的初学者,通过本书可以快速掌握单片机的程序设计。本书对具有一定开发经验的设计人员,也有很好的参考价值。

第一篇 51系列单片机基础 35

第1章 51系列单片机概述 35

1.1 单片机的产生与发展 35

1.2 51系列单片机介绍 36

1.2.1 51系列单片机简介 36

1.2.2 51系列单片机的应用领域 36

1.3 最新51内核单片机介绍 37

1.3.1 Atmel单片机介绍 37

1.3.2 Cypress单片机介绍 37

1.3.3 Infineon单片机介绍 38

1.3.4 Silicon单片机介绍 38

1.3.5 Maxim单片机介绍 38

1.3.6 NXP单片机介绍 39

1.3.7 Winbond单片机介绍 39

1.3.8 Analog Devices单片机介绍 39

1.3.9 TI单片机介绍 40

1.3.10 其他单片机介绍 40

1.4 51系列单片机开发概述 40

1.4.1 分析测控系统 41

1.4.2 单片机选型 41

1.4.3 硬件资源分配 41

1.4.4 程序设计 42

1.4.5 仿真测试 42

1.4.6 实际硬件测试 42

1.5 小结 42

第2章 51系列单片机基本结构 43

2.1 51系列单片机的内部结构 43

2.1.1 内部结构的主要组成部分 43

2.1.2 单片机结构的类型 44

2.2 51系列单片机的引脚功能 45

2.2.1 51系列单片机的引脚封装 45

2.2.2 51系列单片机引脚功能 45

2.3 中央处理器(CPU) 47

2.3.1 算术逻辑部件(ALU) 47

2.3.2 控制器 47

2.3.3 通用寄存器 48

2.3.4 专用寄存器 48

2.4 存储器结构 50

2.4.1 程序存储器及其扩展 50

2.4.2 数据存储器及其扩展 51

2.5 51系列单片机的复位 55

2.5.1 单片机的复位状态 55

2.5.2 单片机的复位电路 55

2.6 51系列单片机的时钟和时序 56

2.6.1 振荡器和时钟电路 57

2.6.2 CPU的时序 58

2.6.3 指令执行的时序 58

2.6.4 访问外部ROM/RAM的操作时序 60

2.7 51系列单片机的并行I/O口 61

2.7.1 并行I/O口 61

2.7.2 并行I/O口的应用 64

2.7.3 并行I/O口的扩展 64

2.8 系统掉电保护和低功耗设计 66

2.8.1 掉电保护 66

2.8.2 低功耗设计 67

2.9 51系列单片机的最小系统 68

2.10 小结 69

第3章 Keil C51开发工具简介 70

3.1 Keil μVision3简介 70

3.2 μVision3安装 70

3.3 μVision3集成开发环境 71

3.3.1 μVision3项目管理窗口 72

3.3.2 μVision3的菜单栏 72

3.3.3 μVision3的工具栏 77

3.3.4 μVision3的管理配置 79

3.3.5 μVision3的各种常用窗口 81

3.4 小结 84

第二篇 编程篇——汇编语言 85

第4章 汇编语言程序设计 85

4.1 汇编语言程序概述 85

4.1.1 汇编语言简介 85

4.1.2 汇编语言程序设计步骤 86

4.1.3 汇编语言程序实例 86

4.2 伪指令 87

4.2.1 汇编程序起始伪指令ORG 87

4.2.2 汇编程序结束伪指令END 87

4.2.3 等值伪指令EQU(或=) 87

4.2.4 数据地址赋值伪指令DATA 88

4.2.5 定义字节伪指令DB 88

4.2.6 定义字伪指令DW 88

4.2.7 定义空间伪指令DS 89

4.2.8 位地址符号伪指令BIT 89

4.3 汇编语言程序的格式 89

4.4 源程序的汇编 90

4.5 Keil μVision3中运行汇编语言实例 90

4.5.1 创建项目 90

4.5.2 创建源文件 91

4.5.3 编译项目 92

4.5.4 仿真调试 92

4.6 小结 93

第5章 汇编语言程序结构 94

5.1 顺序结构程序 94

5.2 分支结构程序 95

5.2.1 双分支结构 95

5.2.2 多分支结构 96

5.3 循环结构程序 97

5.3.1 循环程序的结构和组成 97

5.3.2 循环程序示例 98

5.3.3 多重循环程序结构 99

5.4 子程序结构 100

5.4.1 子程序的结构 100

5.4.2 子程序的调用与返回 100

5.4.3 子程序设计实例 101

5.5 查表结构程序 102

5.6 运算类程序 103

5.6.1 8位带符号整数的乘法子程序 103

5.6.2 8位带符号整数的除法子程序 104

5.7 小结 106

第三篇 编程篇——C 51

第6章 单片机C语言程序设计基础 107

6.1 单片机C语言概述 107

6.1.1 单片机C语言和汇编语言对比 107

6.1.2 C51语言的主要特点 107

6.2 单片机C语言在Keil μVision3中应用实例 108

6.2.1 创建项目 108

6.2.2 创建源文件 109

6.2.3 编译项目 109

6.2.4 仿真调试 110

6.3 C51的标识符与关键字 111

6.3.1 标识符 111

6.3.2 关键字 111

6.4 C51的数据类型 113

6.4.1 常量与变量 114

6.4.2 整型数据 114

6.4.3 浮点型数据 115

6.4.4 字符型数据 116

6.4.5 指针型数据 119

6.4.6 无值型数据 120

6.5 C51的变量作用域 120

6.5.1 基本规则 120

6.5.2 自动变量 121

6.5.3 外部变量 122

6.5.4 静态变量 123

6.5.5 寄存器变量 123

6.6 分隔符与const修饰符 123

6.6.1 C51分隔符 123

6.6.2 const修饰符 124

6.7 运算符 125

6.7.1 算术运算符 125

6.7.2 逻辑运算符和关系运算符 126

6.7.3 位运算符 128

6.7.4 特殊运算符 130

6.7.5 运算符优先级和结合性 133

6.8 表达式 134

6.8.1 算术表达式 134

6.8.2 赋值表达式 135

6.8.3 逗号表达式 136

6.8.4 关系和逻辑表达式 137

6.9 小结 138

第7章 数组 139

7.1 数组类型说明 139

7.2 数组元素的表示 140

7.3 数组元素的初始化赋值 140

7.4 一维数组 141

7.4.1 一维数组声明 142

7.4.2 向函数传递一维数组 142

7.4.3 一维字符串数组 142

7.5 二维数组 143

7.5.1 二维数组声明 144

7.5.2 二维数组初始化 145

7.5.3 二维字符串数组 146

7.6 多维数组 147

7.7 小结 147

第8章 指针 148

8.1 地址、指针和指针变量的概念 148

8.2 指针变量的声明 148

8.3 指针变量的赋值 149

8.3.1 初始化赋值 149

8.3.2 取地址赋值 149

8.3.3 指针之间赋值 149

8.3.4 数组赋值 150

8.3.5 字符串赋值 150

8.3.6 函数入口赋值 150

8.4 指针变量的引用 150

8.4.1 取地址运算符“&” 150

8.4.2 取内容运算符“*” 151

8.5 指针变量的运算 152

8.5.1 关系运算 152

8.5.2 算术运算 152

8.6 数组指针 153

8.6.1 指向一维数组的指针 153

8.6.2 指向二维数组的指针 154

8.6.3 指向一个由n个元素所组成的数组指针 156

8.6.4 指针和数组的关系 156

8.7 字符指针 157

8.8 指针数组 158

8.9 小结 159

第9章 结构 160

9.1 结构的定义 160

9.2 结构变量的定义 161

9.2.1 先定义结构,再定义结构变量 161

9.2.2 在定义结构的同时,定义结构变量 161

9.2.3 直接说明结构变量 161

9.3 结构变量的使用 162

9.4 多重结构变量的赋值 163

9.5 结构变量的初始化 163

9.6 结构数组 164

9.6.1 结构数组的定义 164

9.6.2 结构数组的初始化赋值 165

9.7 结构指针 166

9.8 特殊结构 168

9.8.1 嵌套结构 168

9.8.2 位结构 169

9.9 小结 170

第10章 联合、枚举、类型说明和位域 171

10.1 联合类型 171

10.1.1 联合和联合变量的定义 171

10.1.2 联合变量成员的引用 172

10.2 结构和联合的区别 174

10.3 枚举类型 175

10.3.1 枚举的定义 175

10.3.2 枚举变量的声明 175

10.3.3 枚举类型变量的赋值 176

10.4 类型说明 178

10.5 位域 179

10.5.1 位域的定义和位域变量的声明 179

10.5.2 位域变量的使用 180

10.6 小结 181

第11章 C51语言的函数 182

11.1 函数的概念和分类 182

11.1.1 从函数定义角度 182

11.1.2 从有无返回值角度 183

11.1.3 从数据传送角度 183

11.2 函数的定义 183

11.3 函数的参数 185

11.3.1 形参和实参 185

11.3.2 数组作为函数参数 186

11.3.3 多维数组作为函数参数 188

11.3.4 指针作为函数参数 188

11.4 函数的返回值 189

11.5 函数调用 189

11.5.1 赋值调用与引用调用 190

11.5.2 递归调用 190

11.5.3 嵌套调用 192

11.6 函数及其变量的作用域 193

11.6.1 函数的作用域 193

11.6.2 函数的变量作用域 193

11.7 main函数 194

11.8 小结 194

第12章 C51语言的常用库函数详解 195

12.1 字符函数 195

12.1.1 检查英文字母函数 195

12.1.2 检查字母数字函数 196

12.1.3 检查控制字符函数 196

12.1.4 十进制数字检查函数 197

12.1.5 可打印字符检查函数 197

12.1.6 包含空格的可打印字符检查函数 198

12.1.7 格式字符检查函数 199

12.1.8 小写英文字母检查函数 199

12.1.9 大写英文字母检查函数 200

12.1.10 控制字符检查函数 200

12.1.11 十六进制数字检查函数 201

12.1.12 十六进制数字转换函数 202

12.1.13 大写字符转换函数 202

12.1.14 小写字符转换函数 203

12.1.15 ASCII字符转换函数 204

12.1.16 大写字符宏转换函数 204

12.1.17 小写字符宏转换函数 205

12.2 字符串函数 206

12.2.1 字符查找函数 206

12.2.2 指定长度的字符串比较函数 206

12.2.3 字符串复制函数 207

12.2.4 带终止字符的字符串复制函数 208

12.2.5 字符串移动函数 209

12.2.6 字符串填充函数 209

12.2.7 字符串追加函数 210

12.2.8 指定长度的字符串追加函数 210

12.2.9 字符串比较函数 211

12.2.10 包含结束符的字符串比较函数 212

12.2.11 字符串覆盖函数 213

12.2.12 指定长度的字符串覆盖函数 213

12.2.13 获取字符串个数函数 214

12.2.14 搜索字符串函数 214

12.2.15 搜索字符函数 215

12.2.16 返回位置值的字符搜索函数 216

12.2.17 字符包含函数 216

12.2.18 返回位置值的字符包含函数 217

12.2.19 在指定字符集中查找不包含字符函数 218

12.2.20 在指定字符集中查找包含字符函数 218

12.2.21 查找第一个包含字符函数 219

12.2.22 查找最后一个包含字符函数 219

12.3 I/O函数 220

12.3.1 字符读入函数 220

12.3.2 字符读入输出函数 221

12.3.3 字符串读入函数 222

12.3.4 字符回送函数 222

12.3.5 字符输出函数 223

12.3.6 格式化输出函数 223

12.3.7 格式化内存缓冲区输出函数 225

12.3.8 字符串输出函数 226

12.3.9 格式化输入函数 227

12.3.10 格式化内存缓冲区输入函数 228

12.3.11 字符串内存输出函数 229

12.3.12 指向缓冲区的输出函数 230

12.4 数学函数 231

12.4.1 绝对值函数 231

12.4.2 指数及对数函数 232

12.4.3 三角函数 232

12.4.4 取整函数 234

12.4.5 浮点型分离函数 234

12.4.6 幂函数 235

12.5 标准函数 235

12.5.1 字符串转换函数 236

12.5.2 带返回指针的字符串转换函数 237

12.5.3 随机函数 238

12.5.4 数组内存分配函数 238

12.5.5 释放内存函数 239

12.5.6 初始化内存函数 240

12.5.7 内存分配函数 240

12.5.8 调整内存大小函数 241

12.6 内部函数 242

12.6.1 循环左移函数 242

12.6.2 循环右移函数 243

12.6.3 延时函数 244

12.6.4 位测试函数 244

12.7 绝对地址访问函数 245

12.7.1 BYTE型存储空间访问函数 245

12.7.2 WORD型存储空间访问函数 245

12.7.3 far存储区访问函数 246

12.7.4 far存储区数组访问函数 247

12.8 变量参数表函数 247

12.9 全程跳转函数 248

12.10 计算结构体成员的偏移量函数 249

12.11 小结 250

第13章 C51语句和流程 251

13.1 说明语句 251

13.2 表达式语句 251

13.3 复合语句 252

13.4 循环语句 253

13.4.1 while语句 253

13.4.2 do-while语句 254

13.4.3 for语句 254

13.5 条件语句 255

13.5.1 单分支结构 255

13.5.2 双分支结构 255

13.5.3 阶梯式if-else-if结构 256

13.6 开关语句 258

13.7 跳转语句 259

13.7.1 goto语句 259

13.7.2 break语句 260

13.7.3 continue语句 260

13.8 函数调用语句 261

13.9 空语句 261