第1章 绪论 1
1.1概述 1
1.2单片微型计算机 1
1.2.1单片机的发展简史及最新发展状况 2
1.2.2单片机的特点、分类及应用 4
1.3STC89系列单片机简介 6
1.3.1STC89系列单片机性能 7
1.3.2STC89系列单片机应用系统结构 7
1.4单片机的学习方法及系统开发启示 9
1.4.1学习单片机应具备的知识与能力 9
1.4.2单片机学习的方法引导 9
1.4.3单片机的学习要点 9
1.4.4单片机系统的开发步骤 10
小结 11
习题 11
第2章 STC89系列单片机内部结构 13
2.1STC89系列单片机的组成 13
2.1.1单片机的引脚及功能 13
2.1.2STC89系列单片机内部结构 15
2.2STC89系列单片机存储器结构 19
2.2.1程序存储器 20
2.2.2数据存储器 20
2.2.3特殊功能寄存器 22
2.3STC89系列单片机I/O端口 26
2.3.1准双向I/O端口输出原理 26
2.3.2I/O端口的应用特性 27
2.4单片机工作方式及时序 28
2.4.1复位方式 28
2.4.2程序执行方式 30
2.4.3低功耗方式 31
2.4.4振荡器与时钟电路 33
2.4.5可编程时钟输出 34
2.4.6机器周期和指令周期 34
小结 35
习题 35
第3章 单片机指令系统及汇编语言程序设计 37
3.1概述 37
3.2寻址方式 37
3.2.1立即寻址方式 38
3.2.2直接寻址方式 38
3.2.3寄存器寻址方式 39
3.2.4寄存器间接寻址方式 39
3.2.5基址加变址间接寻址方式 40
3.2.6相对寻址 40
3.2.7位寻址方式 41
3.3指令系统 41
3.3.1指令分类 41
3.3.2数据传送类指令 41
3.3.3算术运算类指令 47
3.3.4逻辑运算类指令 52
3.3.5控制转移类指令 56
3.3.6位操作类指令 60
3.3.7伪指令 62
3.4汇编语言程序设计 64
3.4.1顺序程序设计 65
3.4.2分支程序设计 66
3.4.3循环程序设计 70
3.4.4子程序设计和参数传递 72
3.4.5查表类程序设计 74
3.4.6软件延时程序设计 75
3.4.7输入输出类程序设计 76
小结 80
习题 80
第4章 C51程序设计语言 83
4.1数据运算 83
4.1.1C语言程序结构 83
4.1.2标识符与关键字 85
4.1.3数据类型 87
4.1.4C51数据存储类型及SFR的定义 88
4.1.5常量与变量 90
4.1.6C51的运算符及表达式 92
4.2流程控制 98
4.2.1条件语句与控制结构 99
4.2.2循环语句与控制结构 104
4.3数组 110
4.3.1一维数组 110
4.3.2二维数组 112
4.3.3字符数组 114
4.4指针 115
4.4.1变量的指针和指向变量的指针变量 115
4.4.2数组指针和指向数组的指针变量 116
4.4.3字符串指针和指向字符串的指针变量 117
4.5结构体 118
4.5.1结构体的定义和引用 118
4.5.2结构体的初始化 122
4.5.3结构体数组 122
4.5.4指向结构体类型数据的指针 123
4.6共用体 124
4.6.1共用体类型变量的定义 125
4.6.2共用体变量的引用 126
4.7函数 126
4.7.1函数定义的一般形式 127
4.7.2函数的参数和函数返回值 128
4.7.3函数的调用 129
4.7.4数组、指针作为函数的参数 131
4.8编译预处理 132
4.8.1宏定义 132
4.8.2文件包含 133
4.8.3条件编译 134
小结 135
习题 135
第5章 STC89系列单片机的定时器/计数器 137
5.1定时器/计数器的内部结构及工作原理 137
5.1.1定时器/计数器的内部结构 137
5.1.2定时器/计数器的工作原理 137
5.1.3定时器/计数器的控制寄存器 138
5.2To和T1的工作方式与应用 141
5.2.1方式0及其应用 142
5.2.2方式1及其应用 144
5.2.3方式2及其应用 147
5.2.4方式3及其应用 149
5.3T2定时器/计数器的工作方式与应用 151
5.3.1捕获方式及其应用 152
5.3.2自动重装方式及其应用 154
5.3.3波特率发生器方式及其应用 156
5.4定时器/计数器的综合应用 158
小结 160
习题 160
第6章 中断系统 161
6.1中断技术概述 161
6.1.1中断技术的优点 161
6.1.2中断处理流程 162
6.2中断系统 165
6.2.1中断系统的结构 165
6.2.2中断源及矢量地址 166
6.2.3中断控制 167
6.3外部中断源的扩展 171
6.3.1利用定时器作外部中断输入使用 171
6.3.2中断和软件查询相结合扩充外部中断源 172
6.3.3矢量中断扩充外部中断源 173
6.4中断系统的应用 175
小结 181
习题 181
第7章 串行数据通信 183
7.1串行数据通信基础 183
7.1.1串行通信的分类 183
7.1.2RS-232C总线标准 185
7.2STC89系列单片机的串行端口及控制寄存器 187
7.2.1串行端口的内部结构 188
7.2.2通信过程 188
7.2.3串行通信控制寄存器 189
7.3串行通信工作方式及波特率 191
7.3.1串行通信的工作方式 191
7.3.2串行端口的通信波特率 191
7.4串行端口工作方式的应用 193
7.4.1方式0的应用 193
7.4.2方式1的应用 196
7.4.3方式2和方式3的应用 202
小结 212
习题 212
第8章 外部系统的扩展 214
8.1并行扩展总线 214
8.1.1并行扩展总线方法 214
8.1.2地址译码方法 214
8.1.3总线驱动 215
8.2串行总线扩展 215
8.2.1SPI总线 216
8.2.2MicroWire总线 219
8.2.3I2C总线 220
8.2.4SMBus总线 225
8.2.5单总线 228
8.3并行存储器的扩展 232
8.3.1程序存储器的扩展 232
8.3.2数据存储器的扩展 234
8.4串行E2PROM的扩展 238
8.4.1二线制I2CE2PROMAT24CXX系列的扩展 238
8.4.2三线制SPIE2PROMAT25010/020/040系列的扩展 244
小结 246
习题 246
第9章 输入输出及接口技术 247
9.1键盘 247
9.1.1键盘的工作原理 247
9.1.2独立式键盘和矩阵式键盘 247
9.1.3串行I/O端口扩充键盘 248
9.2LED显示器 250
9.2.1LED显示器的结构及分类 251
9.2.2LED显示器的显示方式 252
9.2.3MAX7219串行输入输出共阴极显示驱动器 253
9.2.4LED点阵显示器 258
9.3LCD显示器 259
9.3.1LCD液晶显示器的基本知识 259
9.3.2字段式LCD显示器 261
9.3.3点阵字符式LCD显示器 263
9.4数模转换器接口及应用 266
9.4.1数模转换器的原理及分类 266
9.4.2 10位串行D/A转换器TLC5615 267
9.4.3TLC5615的应用 268
9.5模数转换器接口及应用 270
9.5.1模数转换器的分类 270
9.5.2 11路12位串行A/D转换器TLC 2543270
9.5.3 TLC2543与单片机的连接及应用 273
9.6DS1302实时时钟 274
9.6.1DS1302外部封装及引脚功能 275
9.6.2DS1302命令字节格式 275
9.6.3DS1302内部寄存器 276
9.6.4DS1302与单片机的连接 277
9.7语音接口 277
9.7.1ISD4004的外部封装及引脚功能 278
9.7.2ISD4004的内部结构 279
9.7.3ISD4004串行SPI传输接口 279
9.7.4操作指令及工作过程 280
9.7.5ISD4004的应用 280
9.8温度测量 285
9.8.1DS18B20封装形式及引脚功能 285
9.8.2DS18B20内部结构 285
9.8.3DS18B20测温原理 287
9.8.4DS18B20的ROM命令 288
9.8.5DS18B20与单片机的连接及其应用 288
小结 291
习题 292
第10章 单片机系统开发和应用实例 293
10.1Vision3使用简介 293
10.1.1启动uVision 3293
10.1.2创建应用 294
10.1.3调试程序 296
10.2单片机演奏音乐的设计 297
10.2.1单片机产生音调的基础知识 297
10.2.2音乐软件的设计 300
10.2.3歌曲的设计 300
10.3交通信号灯模拟控制 303
10.3.1交通信号灯模拟控制原理 304
10.3.2单片机模拟控制交通灯程序设计 304
10.4步进电机控制 307
10.4.1步进电机的工作原理及分配形式 307
10.4.2步进电机的单片机控制 308
10.4.3键盘控制步进电机正反转及转数的设计 309
10.5红外线遥控彩灯的设计 313
10.5.1红外线遥控原理 313
10.5.2红外线遥控彩灯硬件电路设计 315
10.5.3红外线遥控彩灯软件设计 315
附录A 单片机指令表 317
附录B C51库函数 322
附录C ASCII码表 329
附录D 常用集成电路引脚图 330
参考文献 334