绪论 1
0.1 单片机的发展历史 1
0.2 单片机的发展趋势 2
0.3 单片机的应用领域 3
第1章 单片机原理及结构 5
1.1 51系列单片机的主要性能特点 5
1.2 51系列单片机的内部结构和引脚描述 7
1.3 51系列单片机的CPU 10
1.4 51系列单片机的片内资源 18
第2章 51系列单片机指令系统 21
2.1 指令的格式 21
2.2 指令分类 26
2.3 单片机的指令 26
2.4 伪指令 45
第3章 单片机的片内资源 48
3.1 计数器与定时器 48
3.2 MCS—51的中断系统 62
3.3 串行通信接口 68
第4章 8051存储器扩展 84
4.1 外部总线的扩展 84
4.2 程序存储器的扩展 85
4.3 数据存储器的扩展 86
4.4 Flash存储器的ST29f040扩展电路 88
4.5 双数据指针寄存器 90
4.6 内置EEPROM的51系列单片机AT89S8252 90
4.7 STC等单片机的片内EEPROM数据存储器 92
4.8 非易失SRAM 92
4.9 铁电存储器 94
第5章 单片机C语言 98
5.1 单片机C语言特点 98
5.2 字符 标志符 关键字 100
5.3 数据类型 103
5.4 变量的初值和类型转换 112
5.5 变量的存储种类和存储器类型 113
5.6 运算符和表达式 117
5.7 C51设计的基本语句 123
第6章 数组 132
6.1 一维数组 132
6.2 二维数组 134
6.3 字符数组 136
第7章 函数 139
7.1 函数的定义 139
7.2 函数的组成 140
7.3 函数的调用 141
7.4 函数的递归调用与再入函数 146
7.5 中断服务函数 147
7.6 常用C51库函数 148
7.7 C51语言与汇编语言的接口 157
第8章 指针 160
8.1 指针的基本概念 160
8.2 指针的操作 161
8.3 数组指针 164
8.4 字符串指针 167
8.5 函数指针 170
8.6 指针数组 172
8.7 指向指针的指针变量 175
8.8 结构与联合 176
8.9 动态存储分配 184
第9章 预处理、绝对地址访问和编译控制及配置文件 186
9.1 预处理 186
9.2 绝对地址访问 191
9.3 C51编译控制指令 193
9.4 配置文件 196
第10章 单片机的并行口线扩展及应用 199
10.1 并行口线扩展 199
10.2 输出口线的驱动与隔离 203
第11章 单片机的串行通信及接口技术 210
11.1 串行通信 210
11.2 FC总线及其接口芯片 216
11.3 SPI接口及其接口芯片 243
第12章 单片机的输入输出设备接口 267
12.1 键盘类接口 267
12.2 单片机与显示器件的接口 275
12.3 液晶模块及接口 279
第13章 模拟量的输入输出接口 297
13.1 A/D转换器及其接口 297
13.2 D/A转换器及其接口 311
13.3 A/D转换、D/A转换电路中参考电源的设计 323
13.4 常用A/D、D/A芯片的简介 325
第14章 Keil C51软件使用 328
14.1 Keil C51转件使用方法简介 328
14.2 Keil C51的View菜单的使用 333
14.3 Keil的Debug仿真调试菜单 335
14.4 硬件仿真的设置 339
14.5 Keil C51的Project菜单 341
14.6 Keil C51的Peripherals菜单 341
14.7 Keil C51的dscope命令语句 343
14.8 STC单片机下载软件的使用 344
第15章 单片机实验教学板 347
15.1 单片机实验教学板简介 347
15.2 开发板各功能模块 347
第16章 单片机实验 355
16.1 流水灯 355
16.2 按键消抖 356
16.3 动态数码显示技术 358
16.4 4×4矩阵式键盘 359
16.5 数字钟 361
16.6 电子琴 361
16.7 8×8 LED点阵显示 363
16.8 4×4键盘及8位数码管显示构成的电子密码锁 365
16.9 DS18B20数字温度计使用 365
参考文献 368