第1章 单片机概述 1
1.1单片机的概念及主要特点 1
1.2单片机的分类及发展趋势 1
1.2.1单片机发展现状 1
1.2.2单片机的发展趋势 2
1.3常见的主流单片机 3
1.3.1目前流行的51内核单片机 3
1.3.2目前流行的非51内核的单片机 8
1.4单片机的应用领域 9
习题1 10
第2章 AT89系列单片机的硬件体系结构 11
2.1 AT89系列单片机概述 11
2.1.1 AT89系列单片机简介 11
2.1.2 AT89系列单片机的主要性能 11
2.1.3 AT89系列单片机的主要品种 11
2.1.4 AT89系列单片机的型号编码 13
2.2 AT89系列单片机的结构原理 13
2.2.1 AT89系列单片机的基本组成 13
2.2.2 AT89系列单片机的内部框图 14
2.2.3 AT89系列单片机的CPU 14
2.3 AT89系列单片机的存储器结构 17
2.3.1 AT89系列单片机的程序存储器 17
2.3.2 AT89系列单片机的数据存储器 19
2.4 AT89系列单片机的引脚功能 26
2.4.1外部引脚 26
2.4.2片外总线结构 28
2.5 AT89系列单片机的I/O接口 28
2.5.1 P0口 28
2.5.2 P1口 29
2.5.3 P2口 30
2.5.4 P3口 30
2.6 AT89S系列单片机内部看门狗定时器 31
2.6.1看门狗定时器简介 31
2.6.2看门狗定时器的使用 31
2.7 AT89系列单片机的复位工作方式 32
2.8 AT89系列单片机的低功耗方式 33
2.8.1空闲工作方式 33
2.8.2掉电工作方式 34
2.9 AT89系列单片机的时序 34
2.9.1几个基本时序单位 34
2.9.2 CPU取指令和执行指令时序 35
习题2 36
第3章 单片机的指令系统及汇编语言程序设计 38
3.1 51系列单片机指令系统概述 38
3.2 51系列单片机的寻址方式 38
3.2.1立即寻址 39
3.2.2寄存器寻址 39
3.2.3直接寻址 39
3.2.4寄存器间接寻址 39
3.2.5相对寻址 40
3.2.6变址寻址 40
3.2.7位寻址 41
3.3 51系列单片机指令系统 41
3.3.1数据传送指令 41
3.3.2算术运算指令 44
3.3.3逻辑操作指令 47
3.3.4控制转移指令 49
3.3.5位操作指令 55
3.4 51系列单片机汇编语言的语句格式 56
3.5 51系列单片机汇编程序常用伪指令 57
3.5.1定义起始地址伪指令 57
3.5.2定义汇编结束伪指令 57
3.5.3标号赋值伪指令 58
3.5.4字节定义伪指令 58
3.5.5字定义伪指令 58
3.5.6存储区定义伪指令 59
3.5.7位定义伪指令 59
3.5.8内部RAM地址赋值伪指令 59
3.5.9外部RAM地址赋值伪指令 59
3.6 51系列单片机汇编程序设计方法 60
3.6.1顺序结构程序设计 60
3.6.2分支结构程序设计 61
3.6.3循环结构程序设计 61
3.6.4查表程序设计 62
3.6.5子程序设计 64
习题3 66
第4章 C51程序设计 67
4.1 C51程序设计基础 67
4.1.1 C51语言特点和程序结构 67
4.1.2 C51的字符集、标识符与关键字 68
4.2 C51数据类型 69
4.2.1字符型 70
4.2.2整型 70
4.2.3长整型 70
4.2.4浮点型 70
4.2.5位型 71
4.2.6寄存器型 71
4.3 C51运算量 71
4.3.1常量 71
4.3.2变量 73
4.3.3 C51扩展数据类型的变量定义 75
4.3.4 C51绝对地址访问 77
4.3.5储存模式 78
4.4 C51运算符和表达式 79
4.4.1算术运算符与算术表达式 79
4.4.2逻辑运算符与逻辑表达式 79
4.4.3关系运算符与关系表达式 80
4.4.4位操作运算符与位表达式 80
4.4.5赋值运算符与赋值表达式 81
4.4.6逗号运算符与逗号表达式 82
4.5 C51语句 82
4.5.1 if语句 82
4.5.2 switch语句 83
4.5.3 while语句 84
4.5.4 do-while语句 84
4.5.5 for语句 85
4.5.6 goto语句、break语句和continue语句 85
4.5.7 return语句 87
4.6 C51语言中的数组、指针、结构和联合 87
4.6.1数组 87
4.6.2指针 88
4.6.3结构 89
4.6.4联合 90
4.6.5枚举 91
4.7函数、库函数和预处理命令 91
4.7.1函数的定义 92
4.7.2函数的调用和声明 93
4.7.3中断函数 93
4.7.4库函数 95
4.7.5预处理命令 97
4.8 C51程序设计 98
4.8.1数值运算程序设计 98
4.8.2硬件接口程序设计 100
4.9 C51语言和汇编语言混合编程 101
4.9.1在C51语言中嵌入汇编语言 101
4.9.2 C51语言和汇编语言程序参数的传递 103
4.9.3带参数传递的汇编语言调用程序实例 104
习题4 105
第5章 单片机应用系统的开发环境及仿真软件简介 106
5.1 Keil C51 μVision2集成开发环境 106
5.1.1 Keil C51 μVision2的工作环境 106
5.1.2工程的创建 108
5.1.3工程的设置 109
5.1.4工程的调试运行 110
5.1.5存储空间资源的查看和修改 112
5.1.6变量的查看和修改 113
5.2单片机硬件仿真开发工具Proteus 114
5.2.1 Proteus ISIS的功能简介 114
5.2.2 Proteus ISIS的用户界面 114
5.2.3 Proteus ISIS的单片机系统仿真 116
5.2.4 Proteus ISIS与Keil C51的联合使用 119
习题5 121
第6章 AT89系列单片机的内部资源及应用 122
6.1 AT89系列单片机的并行口及其应用 122
6.2 AT89系列单片机的中断系统 124
6.2.1中断的基本概念 124
6.2.2 AT89系列单片机的中断系统 125
6.2.3外部事件中断及应用 130
6.3 AT89系列单片机定时/计数器 136
6.3.1定时/计数器的一般结构和工作原理 137
6.3.2定时/计数器T0、T1的功能和使用方法 137
6.3.3定时/计数器的初始化编程及应用 145
6.3.4 AT89S系列单片机看门狗定时器的编程方法 150
6.4 AT89系列单片机的串行接口及串行通信 151
6.4.1串行口的基本通信方式 151
6.4.2单片机串行口及控制寄存器 152
6.4.3单片机串行通信工作方式 153
6.4.4单片机串行口的初始化编程及波特率设置 155
6.4.5 RS-232C串行口标准 157
6.4.6 RS-422、RS-485标准串行总线接口 160
6.4.7串行通信应用举例 161
习题 173
第7章 AT89系列单片机的存储器扩展技术 174
7.1总线扩展及地址分配 174
7.1.1系统总线 174
7.1.2总线扩展 175
7.1.3地址分配 175
7.2 AT89系列单片机外部存储器的扩展 178
7.2.1外部存储器扩展的方法 178
7.2.2程序存储器的扩展 178
7.2.3数据存储器的扩展 180
7.2.4程序存储器和数据存储器的综合扩展 182
习题7 184
第8章 AT89系列单片机的接口扩展技术 186
8.1 I/O接口的扩展技术 186
8.1.1 I/O接口的功能 186
8.1.2 I/O端口的编址 186
8.1.3 I/O接口数据的传送方式 187
8.1.4简单I/O接口的扩展 188
8.1.5可编程序8255A的并行I/O扩展 189
8.2 LED显示器及其与单片机的接口技术 196
8.2.1 LED显示器的结构与原理 196
8.2.2 LED显示器的译码方式 197
8.2.3 LED显示器的显示方式 197
8.2.4 LED显示器与单片机的接口 198
8.3键盘及其与单片机的接口技术 201
8.3.1键盘的工作原理 201
8.3.2独立式按键与单片机的接口 202
8.3.3矩阵式键盘与单片机的接口 204
8.4 LCD显示器及其与单片机的接口技术 210
8.4.1 LCD显示器的分类 210
8.4.2 LCD模块的引脚 210
8.4.3寄存器选择、显示器地址及字符发生器 211
8.4.4 LCM控制指令 213
8.4.5 AT89单片机与LCD模块的接口 213
8.5 A/D、D/A转换器及其与单片机的接口技术 215
8.5.1模/数(A/D)转换接口 215
8.5.2数/模(D/A)转换接口 220
习题8 225
第9章 串行总线接口技术 226
9.1 SPI串行总线接口技术 226
9.1.1 SPI串行总线简介 226
9.1.2 SPI串行接口A/D转换器TLC549及其软硬件设计 226
9.1.3 SPI串行接口D/A转换器TLC5615及其软硬件设计 231
9.2 12C总线接口技术 236
9.2.1 12C总线简介 236
9.2.2用I/O口模拟12C总线操作子程序 238
9.2.3 24Cxx系列E2PROM芯片及其与单片机的接口 245
9.2.4数码管动态显示驱动、键盘扫描管理芯片ZLG7290B及与单片机接口 248
9.3单总线(1-Wire)接口技术 260
9.3.1 1-Wire简介 260
9.3.2 DS18B20简介 260
9.3.3 DS18B20的读写时序 262
9.3.4 DS18B20的操作流程及指令说明 266
9.3.5电子温度计的设计 267
习题9 272
第10章 单片机应用系统设计方法 274
10.1单片机典型应用系统组成 274
10.2单片机典型应用系统开发过程 274
10.2.1确定任务 274
10.2.2总体设计 275
10.2.3系统硬件设计 276
10.2.4系统软件设计 278
10.2.5软硬件系统联机调试 280
10.2.6性能测定 281
10.2.7生成正式产品 281
习题10 282
第11章 单片机应用系统设计实例 283
11.1简易数字频率计的设计 283
11.1.1设计要求 283
11.1.2总体方案 283
11.1.3系统硬件设计 283
11.1.4系统软件设计 284
11.2压力测量系统的设计 289
11.2.1设计要求 289
11.2.2总体方案 289
11.2.3系统硬件设计 290
11.2.4系统软件设计 292
习题11 297
附录A 51系列单片机指令表 298
附录B C51常见的库函数 303
参考文献 310