第1章 概述 1
1.1 高效率的C语言编程 1
1.2 C语言具有突出的优点 2
第2章 单片机简史及实验器材简介 4
2.1 单片机的发展简史及特点 4
2.2 单片机C语言入门的有效途径 5
2.3 实验器材介绍 6
第3章 Keil C51集成开发环境及并口下载软件介绍3.1 Keil C51集成开发平台安装 12
3.2 并口下载软件使用 13
第4章 单片机基本知识及第一个C51程序 16
4.1 MCS-51单片机的基本结构 16
4.2 80C51的基本特征及引脚定义 17
4.3 80C51的内部结构 19
4.4 80C51的存储器配置和寄存器 21
4.5 第一个C51演示程序及效果 24
第5章 C语言程序的基本结构 30
5.1 函数调用实验 30
5.2 C语言程序的组成结构 32
5.3 主函数实验 33
5.4 文件包含处理 34
5.5 通用的C语言程序组成结构 36
5.6 函数连接实验一 38
5.7 函数连接实验二 40
第6章 C语言的标识符、关键字和数据类型6.1 标识符和关键字 43
6.2 4个LED数码管从左至右显示“1234” 45
6.3 数据类型 48
6.4 8个LED数码管从左至右扫描显示“00000000”(一) 50
6.5 8个LED数码管从左至右扫描显示“00000000”(二) 52
6.6 变量的数据类型选择 53
6.7 数据类型之间的转换 53
6.8 无符号字符型变量值与无符号整型变量值相乘实验 54
6.9 无符号整型变量值与无符号整型变量值相乘实验 55
第7章 常量、变量及存储器类型 58
7.1 常量 58
7.2 乘法运算:两个乘数分别为常量与变量 58
7.3 变量 60
7.4 存储器类型 60
7.5 两个局部变量val1、val2的显示实验 63
7.6 全局变量globe_x的显示实验 65
第8章 编译预处理及重新定义数据类型 68
8.1 宏定义 68
8.2 两数相加并输出结果实验 69
8.3 使用带参数的宏定义进行运算 71
8.4 文件包含 72
8.5 条件编译 73
8.6 重新定义数据类型 74
8.7 8个LED模拟彩灯闪烁实验 75
第9章 运算符与表达式 77
9.1 算术运算符与表达式 77
9.2 数学运算与显示实验 77
9.3 关系运算符与表达式 79
9.4 输入数的大小比较及判断实验 80
9.5 逻辑运算符与表达式 83
9.6 赋值运算符与表达式 83
9.7 逻辑判断实验 84
9.8 自增和自减运算符与表达式 87
9.9 自增运算a++和++b实验 87
9.10 逗号运算符与表达式 89
9.11 条件运算符与表达式 89
9.12 位运算符与表达式 89
9.13 两个变量x、y的位运算实验 90
9.14 强制类型转换运算符与表达式 91
9.15 sizeof运算符与表达式 92
第10章 表达式语句与复合语句 93
10.1 表达式语句 93
10.2 复合语句实验 94
10.3 程序的结构化设计 97
10.4 条件语句与控制结构 97
10.5 条件语句实验一 98
10.6 条件语句实验二 99
第11章 switch/case开关语句 102
11.1 switch/case开关语句的组成形式 102
11.2 switch/case开关语句实验 103
11.3 循环语句 108
11.4 while语句实验 109
11.5 for语句实验 111
11.6 goto语句 112
11.7 break语句和continue语句 112
11.8 break语句实验 113
11.9 continue语句实验 114
第12章 函数的定义 117
12.1 函数定义的一般形式 117
12.2 函数的参数和函数返回值 118
12.3 无参数函数、有参数函数及空函数 118
12.4 函数调用的三种方式 119
12.5 对被调用函数的说明 119
12.6 参数传递的函数调用实验 120
12.7 三个数大小自动排列实验 122
12.8 华氏-摄氏温度转换的仪器实验 124
第13章 数组 130
13.1 一维数组的定义 130
13.2 二维及多维数组的定义 131
13.3 字符数组 131
13.4 数组元素赋初值 132
13.5 数组作为函数的参数 132
13.6 数组显示实验 133
13.7 输入10个整数(0~999之间),输出其中的最大数实验 138
13.8 选择法数组排序显示实验 143
13.9 模拟花样广告灯显示实验 147
第14章 指针 149
14.1 指针与地址 149
14.2 指针变量的定义 149
14.3 指针变量的引用 150
14.4 数组指针与指向数组的指针变量 151
14.5 指针变量的运算 151
14.6 指向多维数组的指针和指针变量 152
14.7 直接引用变量和间接引用变量实验 152
14.8 下标法和指针法引用数组元素实验 154
14.9 地址传递的函数调用实验 156
14.10 用数组名作为函数的参数进行传递实验 158
第15章 结构体、共用体及枚举 161
15.1 结构体的概念 161
15.2 结构体类型变量的定义 161
15.3 关于结构体类型有几点需要注意的地方 163
15.4 结构体变量的引用 163
15.5 结构体变量的初始化 163
15.6 结构体数组 164
15.7 指向结构体类型数据的指针 164
15.8 用指向结构体变量的指针引用结构体成员 165
15.9 指向结构体数组的指针 165
15.10 将结构体变量和指向结构体的指针作函数参数 165
15.11 共用体的概念 165
15.12 共用体类型变量的定义 166
15.13 共用体变量的引用 167
15.14 枚举类型 167
15.15 计时器设计(待显时间存放于结构体变量中)实验 168
15.16 跑表设计(计时时间存放于结构体变量中)实验 172
15.17 计时器设计(计时时间存放于共用体变量中)实验 180
15.18 枚举类型实验 184
第16章 定时器/计数器控制及C51编程 187
16.1 定时器/计数器的结构及工作原理 187
16.2 定时器/计数器方式寄存器TMOD和控制寄存器TCON 188
16.3 定时器/计数器的工作方式 189
16.4 定时器/计数器的初始化 192
16.5 蜂鸣器发音实验 193
16.6 定时器T1以方式1计数实验 194
16.7 定时器T0以方式2定时实验 196
第17章 串行接口及C51编程 199
17.1 串行口的控制与状态寄存器SCON 199
17.2 特殊功能寄存器PCON 200
17.3 串行口的工作方式 201
17.4 波特率选择 202
17.5 单片机与PC机的通信实验1 203
17.6 单片机与PC机的通信实验2 207
第18章 中断控制及C51编程 213
18.1 中断的种类 213
18.2 MCS-51单片机的中断系统 214
18.3 编写80C51单片机中断函数时应严格遵循的规则 218
18.4 外中断实验 218
18.5 定时中断实验 221
18.6 简易万年历实例 223
第19章 键盘接口技术及C51编程 227
19.1 独立式键盘 227
19.2 行列式键盘 228
19.3 独立式键盘接口的编程模式 228
19.4 行列式键盘接口的编程模式 228
19.5 键盘工作方式 229
19.6 独立式键盘输入实验 229
19.7 行列式键盘输入实验 231
19.8 扫描方式的键盘输入实验 234
19.9 定时中断方式的键盘输入实验 237
第20章 LED显示器接口技术及C51编程 241
20.1 LED数码显示器构造及特点 241
20.2 LED数码显示器显示方法 242
20.3 静态显示实验 244
20.4 慢速扫描动态显示实验 245
20.5 快速扫描动态显示实验 247
20.6 实时时钟实验 248
第21章 I2C串行接口器件24C01及C51编程21.1 EEPROM AT24CXX的性能特点 253
21.2 AT24CXX系列EEPROM芯片的寻址 255
21.3 写操作方式 256
21.4 读操作方式 257
21.5 读写AT24C01的相关功能子函数 259
21.6 读写AT24C01实验 261
21.7 具有断电后记忆定时时间的实时时钟实验 266
第22章 16×2点阵字符液晶模块及C51驱动22.1 16×2点阵字符液晶显示器概述 281
22.2 液晶显示器的突出优点 282
22.3 16×2字符型液晶显示模块的特性 282
22.4 16×2字符型液晶显示模块的引脚及功能 282
22.5 16×2字符型液晶显示模块的内部结构 283
22.6 液晶显示控制驱动集成电路HD44780的特点 283
22.7 HD44780的工作原理 285
22.8 LCD控制器的指令 288
22.9 LCM工作时序 290
22.10 16×2点阵字符液晶模块与单片机的连接方式 292
22.11 16×2点阵字符液晶模块及C51驱动子函数 292
22.12 在51 MCU DEMO试验板上实现16×2LCM演示程序1 294
22.13 在51 MCU DEMO试验板上实现16×2LCM演示程序2 299
第23章 点阵图形液晶模块及C51编程 304
23.1 128×64点阵图形液晶模块的特性 304
23.2 128×64点阵图形液晶模块的引脚及功能 305
23.3 128×64点阵图形液晶模块的内部结构 306
23.4 HD61203的特点 307
23.5 HD61202的特点 308
23.6 HD61202的工作原理 309
23.7 HD61202的工作过程 312
23.8 点阵图形液晶模块的控制器指令 313
23.9 HD61202的操作时序图 314
23.10 128×64点阵图形液晶模块与单片机的连接方式 316
23.11 128×64点阵图形液晶模块及C51驱动子函数 316
23.12 128×64LCM演示程序1 318
23.13 128×64LCM演示程序2 326
第24章 AT89S51看门狗定时器原理及应用24.1 看门狗定时器原理 340
24.2 看门狗实验:“流水灯”实验1 340
24.3 看门狗实验:“流水灯”实验2 343
参考文献 346