第一章 单片机基础知识 1
1.1 8051单片机的特点 1
1.2 8051的内部结构 2
1.2.1 中央处理器 3
1.2.2 存贮器组织 5
1.2.3 片内并行接口 7
1.2.4 8051的内部资源 9
1.2.6 单片机的工作方式 10
1.2.5 8051的芯片引脚 10
1.3 8051的系统扩展 13
1.3.1 外部总线的扩展 13
1.3.2 外部程序存贮器的扩展 14
1.3.3 外部数据存贮器的扩展 17
1.4 8051指令系统 19
1.4.1 寻址方式 19
1.4.2 指令说明 20
1.4.3 伪指令 26
1.4.4 指令系统表 27
1.5 实用程序设计 31
习题一 34
第二章 C与8051 37
2.1 8051的编程语言 37
2.2 C51编译器 38
2.3 Keil/Franklin C51编程实例 39
2.4 C51程序结构 44
习题二 45
3.1 数据与数据类型 46
第三章 C51数据与运算 46
3.2 常量与变量 47
3.3 C51数据的存贮类型与8051存贮器结构 49
3.4 8051特殊功能寄存器(SFR)及其C51定义 53
3.5 8051并行接口及其C51定义 56
3.6 位变量(BIT)及其C51定义 57
3.7 C51运算符、表达式及其规则 58
3.7.1 C51算术运算符及其表达式 58
3.7.2 C51关系运算符、表达式及优先级 59
3.7.3 C51逻辑运算符、表达式及优先级 60
3.7.4 C51位操作及其表达式 61
3.7.5 自增减运算符、复合运算符及其表达式 66
习题三 67
第四章 C51流程控制语句 68
4.1 C语言程序的基本结构及流程图 68
4.1.1 顺序结构及其流程图 68
4.1.2 选择结构及其流程图 68
4.1.3 循环结构及其流程图 69
4.2.1 选择语句if 71
4.2 选择语句 71
4.2.2 switch/case语句 73
4.3 循环语句 74
4.3.1 while语句 74
4.3.2 do—while语句 76
4.3.3 for循环语句 76
习题四 79
第五章 C51构造数据类型 80
5.1 数组 80
5.1.1 一维数组 80
5.1.2 二维数组 83
5.1.4 查表 84
5.1.3 字符数组 84
5.1.5 数组与存贮空间 85
5.2 指针 86
5.2.1 指针的基本概念 86
5.2.2 数组指针和指向数组的指针变量 89
5.2.3 指向多维数组的指针和指针变量 92
5.2.4 关于Franklin C51的指针类型 93
5.3.1 结构的定义和引用 95
5.3 结构 95
5.3.2 结构数组 98
5.3.3 指向结构类型数据的指针 99
5.4 共用体(union) 101
5.5 枚举(enum) 103
习题五 105
第六章 函数 106
6.1 函数的分类 106
6.2 函数的定义 107
6.3 函数的参数和函数值 109
6.4 函数的调用 111
6.4.1 函数调用的一般形式 111
6.4.2 函数调用的方式 111
6.4.3 对被调用函数的说明 111
6.4.4 函数的嵌套和递归调用 113
6.4.5 函数的递归调用 113
6.4.6 用函数指针变量调用函数 115
6.5 数组、指针作为函数的参数 116
6.5.1 用数组作为函数的参数 116
6.5.2 用指向函数的指针变量作为函数的参数 118
6.5.3 用指向结构的指针变量作函数的参数 120
6.5.4 返回指针的函数 121
习题六 122
第七章 模块化程序设计 123
7.1 基本概念 123
7.2 模块化程序开发过程 125
7.3 汇编和编译 127
7.4 覆盖和共享 131
7.5.1 库 132
7.5 库和连接/定位器 132
7.5.2 连接/定位器 133
7.6 混合编程 137
7.7 程序优化 141
习题七 142
第八章 8051内部资源的C编程 143
8.1 中断 143
8.2 定时器/计数器(T/C) 149
8.3 串行口 158
习题八 165
第九章 8051扩展资源的C编程 166
9.1 可编程外围定时器8253 166
9.2 可编程外围并行接口8255 171
9.3 实时时钟/日历芯片146818 176
9.4 可编程接口芯片8155 180
习题九 185
第十章 8051输出控制的C编程 186
10.1 8位D/A芯片DAC0832 186
10.2 12位D/A芯片AD7521 189
10.3 步进电机控制 192
习题十 197
第十一章 8051数据采集的C编程 198
11.1 8位A/D芯片ADC0809 198
11.2 12位A/D芯片AD574 201
11.3 V/F变换芯片AD650 204
11.4 频率量的测量 207
习题十一 211
12.1 点对点的串行异步通信 212
第十二章 8051机间通信的C编程 212
12.2 多机通信 215
习题十二 222
第十三章 8051人机交互的C编程 223
13.1 键盘和数码显示 223
13.2 可编程键盘/显示接口芯片8279 228
13.3 语音芯片TSP5220 235
13.4 磁卡 239
13.5 TPμp打印机 244
13.6 字符型LCD显示模块 249
13.7 点阵型LCD显示模块 255
习题十三 265
附录A 具有51内核的单片机 266
表A-1 Atmel公司的8位闪速存贮器单片机 266
表A-2 80C51微控制器系列 267
附录B Franklin C51上机指南 268
B.1 安装 268
B.2 编译器 268
B.3 连接器 279
B.4 汇编器 280
B.5 实用程序 282
附录C 用Easy Pack/E调试源程序 285
C.1 Easy Pack/E及Easy Pack/SLD简介 285
C.2 Easy Pack/SLD的Windows界面 286
C.3 基本调试技巧 289
附录D 单片机/16位微机教学实验开发系统 300
D.1 主要功能 300
D.2 系统特点 300