第1章 C语言概述 1
1.1 C语言简介 1
1.2 数据类型 2
1.3 数据运算 6
1.4 基础语句 14
1.4.1 顺序结构 15
1.4.2 选择结构 16
1.4.3 循环结构 19
1.5 函数 23
1.6 数组 26
1.6.1 一维数组 26
1.6.2 多维数组 28
1.6.3 字符数组和字符串 29
1.7 指针 34
1.8 预处理 40
思考与习题 43
第2章 汇编语言概述 45
2.1 常用的伪指令 45
2.2 基本程序设计方法 48
2.2.1 程序的基本结构 48
2.2.2 顺序结构程序设计 49
2.2.3 分支(选择)结构程序设计 49
2.2.4 循环结构程序设计 50
2.2.5 查表程序设计 52
2.2.6 散转(多分支)程序设计 53
2.2.7 子程序设计 54
2.3 广告灯实验 55
2.4 演奏音乐的实验 57
2.4.1 音乐基本知识 57
2.4.2 实现方法 58
思考与习题 62
第3章 单片机指令系统 63
3.1 STC89系列单片机指令系统 63
3.1.1 概述 63
3.1.2 单片机指令的格式 64
3.1.3 指令中常用符号 66
3.1.4 数据传送指令 66
3.1.5 算术运算指令 68
3.1.6 逻辑运算及移位指令 71
3.1.7 转移指令 73
3.1.8 位操作指令 77
3.2 80C51指令纵览 79
3.3 Keil CX51简介 82
思考与习题 90
实验 91
第4章 数字电子技术基础 94
4.1 概述 94
4.2 数字电子技术入门 95
思考与习题 111
第5章 电子信号数字化基础 112
5.1 进位记数制及各记数制间的转换 112
5.1.1 进位记数制 112
5.1.2 二进制数 112
5.1.3 十六进制数 113
5.1.4 各种进制数的转换 114
5.2 二进制数的算术运算 115
5.3 二进制数的逻辑运算 117
5.4 二进制数的存储 118
5.4.1 单字节存储芯片 119
5.4.2 多字节存储芯片(存储器) 120
5.5 二进制数的传送 122
5.6 数字集成电路简介 123
5.6.1 二进制和十进制转换电路 123
5.6.2 二进制算术运算电路 124
5.6.3 二进制逻辑运算电路 125
5.6.4 简易1位数乘法计算器 125
5.7 二进制数编码信息交换标准 128
5.7.1 十进制编码 131
5.7.2 ASCII编码 131
5.7.3 BCD编码 131
思考与习题 132
第6章 常用电子元器件简介 133
6.1 电阻的基础知识 133
6.1.1 电阻的基本概念 133
6.1.2 电阻器的分类 133
6.1.3 电阻器的主要参数 134
6.2 电容器 135
6.2.1 电容器的基本概念 135
6.2.2 电容器的分类 136
6.2.3 电容器的主要参数 137
6.2.4 选用常识 138
6.3 电感 138
6.4 开关、接插件和保险元件 139
6.5 二极管 141
6.6 三极管 142
6.7 继电器 143
6.8 晶体振荡器 143
6.9 蜂鸣器 144
6.10 半导体集成电路 144
思考与习题 145
第7章单片机实践板入门 146
7.1 基本结构框图 146
7.2 原理图和元器件清单 147
7.3 元件布局和印制电路板 151
思考与习题 152
第8章 单片机操作工艺简介 153
8.1 焊接基本知识和焊接技术 153
8.2 单片机实践板的焊接工艺 158
8.3 单片机实践板的调试 159
思考与习题 160
第9章 单片机硬件基础 161
9.1 单片机总体介绍 161
9.2 常用单片机系列介绍 163
9.3 80C51单片机的硬件结构 168
思考与习题 186
实验 187
第10章 CX51语言扩展 189
10.1 存储区类型 189
10.2 基本数据类型 189
10.3 变量的定义方式 190
10.3.1 明确的变量声明 190
10.3.2 隐含的变量声明 191
10.4 BIT数据类型、可位寻址变量 191
10.5 特殊功能寄存器 192
10.5.1 sfr 192
10.5.2 sfr16 192
10.6 绝对变量定位 192
10.6.1 _at_方式 193
10.6.2 宏方式 193
10.7 指针 193
10.7.1 通用指针 194
10.7.2 指定存储区的指针 194
10.7.3 指针转化 194
10.8 函数声明 195
10.8.1 函数参数传递、工作寄存器组 195
10.8.2 中断函数 196
10.8.3 可重入函数 196
10.9 实时任务函数 197
10.10 定制文件 197
10.10.1 STARTUP.A51 197
10.10.2 INIT.A51 197
10.10.3 XBANKING.A51 198
10.10.4 基本的I/O函数 198
10.10.5 存储区分配函数 198
10.11 数据存储格式 198
10.12 模块化程序设计 200
10.12.1 程序的组成及文件 201
10.12.2 模块化程序设计的过程 202
10.12.3 多模块集中、递进学习程序模板 202
思考与习题 208
第11章 交互设备应用简介 209
11.1 键盘的工作原理和接口方法 209
11.1.1 独立式接法键盘 209
11.1.2 矩阵式接法键盘 210
11.2 数码管、点阵屏的工作原理和接口方法 211
11.2.1 数码管、点阵屏的工作原理和接口方法 211
11.2.2 LED的静态显示方法 212
11.2.3 LED数码显示器的动态显示方法 212
11.2.4 LED数码管的选择和驱动 212
11.3 键盘/数码管、点阵屏集中控制——BC7281B 214
思考与习题 219
实验 219
第12章 中断及其应用 229
12.1 中断的基本原理 229
12.2 单片机中断系统的结构 230
12.2.1 中断特殊功能寄存器 230
12.2.2 中断控制系统框图 231
12.3 中断的响应条件和过程 232
12.3.1 中断响应的条件 232
12.3.2 中断响应的过程 233
思考与习题 233
实验 233
第13章 定时器/计数器及其应用 236
13.1 定时器/计数的基本概念 236
13.2 定时器/计数器控制寄存器 237
13.3 定时器/计数器0、1的工作模式 238
13.3.1 定时器/计数器0、1的工作模式0和1 238
13.3.2 定时器/计数器0、1的工作模式2 238
13.3.3 定时器/计数器0、1的工作模式3 239
13.3.4 定时器/计数器0、1的应用 239
13.3.5 定时器/计数器0、1的计数误差补偿 240
13.4 定时器/计数器2 240
13.4.1 定时器/计数器2的控制寄存器 240
13.4.2 捕获模式 241
13.4.3 单向递增自动重装模式 241
13.4.4 双向增减自动重装模式 242
13.4.5 波特率发生器模式 242
思考与习题 243
实验 244
第14章 串行口及其应用 246
14.1 串行通信基本知识 246
14.1.1 并行通信与串行通信 246
14.1.2 异步串行通信与同步串行通信 246
14.1.3 串行通信的数据传送方向 248
14.1.4 信号的调制和解调 248
14.1.5 通信中的误码问题 249
14.2 串行通信RS-232总线标准 250
14.2.1 RS-232的引脚定义 250
14.2.2 RS-232电气特性 250
14.2.3 RS-422/RS-485串行数据接口标准 252
14.3 单片机的串口结构 252
14.3.1 串口控制寄存器 252
14.3.2 串口的工作方式 254
14.3.3 串口通信的波特率 255
14.3.4 多机通信 255
思考与习题 256
实验 256
第15章 温度测量及控制综合应用 259
15.1 概述 259
15.2 单总线数据通信(DS18B20) 262
15.2.1 命令序列 262
15.2.2 信号方式 263
15.2.3 ROM搜索实例 265
思考与习题 266
实验 266
第16章 字符型液晶屏模块应用 270
16.1 液晶屏显示器概述 270
16.1.1 字符型液晶屏显示器基本特性和引脚 270
16.1.2 液晶屏显示器内部结构 271
16.1.3 数据传输 272
16.2 LCD指令表 273
16.3 HD44780的内部字符集 274
思考与习题 275
实验 275
附录A CX51库函数 280
1.库文件 280
2.函数分类一览表 280
附录B CX51编译控制、错误、警告 284
1.编译控制 284
2.致命错误 286
3.语法和语义错误 288
4.警告 294
附录C 术语表 297
附录D CX51编译器限制 300
参考文献 301