第1章 80C51单片机片内结构和工作原理 1
1.1 单片机概述 1
1.1.1 单片机发展概况 1
1.1.2 80C51系列单片机 3
1.2 80C51单片机片内结构和引脚功能 6
1.2.1 片内结构 6
1.2.2 引脚功能 7
【复习思考题】 9
1.3 存储空间配置和功能 9
1.3.1 程序存储器(ROM) 10
1.3.2 外部数据存储器(外RAM) 11
1.3.3 内部数据存储器(内RAM) 11
1.3.4 特殊功能寄存器(SFR) 13
1.3.5 程序计数器PC 17
【复习思考题】 17
1.4 I/O端口结构及工作原理 17
【复习思考题】 20
1.5 时钟和时序 20
1.5.1 时钟电路和机器周期 21
1.5.2 时序 22
【复习思考题】 23
1.6 复位和低功耗工作方式 23
1.6.1 复位 23
1.6.2 低功耗工作方式 25
【复习思考题】 26
第2章 编译和仿真软件操作基础 27
2.1 Keil C51编译软件 27
2.1.1 项目建立和设置工程属性 27
2.1.2 程序编译运行 34
2.1.3 常用窗口介绍 37
2.2 Proteus ISIS虚拟仿真软件 43
2.2.1 用户编辑界面 43
2.2.2 电路原理图设计和编辑 47
2.2.3 虚拟仿真运行 56
2.3 实验操作 61
实验1 流水循环灯程序输入和仿真运行 61
第3章 80C51指令系统和汇编语言程序设计 65
3.1 指令系统基本概念 65
3.1.1 指令基本格式 65
3.1.2 指令系统中的常用字符 66
3.1.3 寻址方式 67
【复习思考题】 69
3.2 80C51指令系统 69
3.2.1 数据传送类指令 70
3.2.2 算术运算类指令 76
3.2.3 逻辑运算及移位类指令 80
3.2.4 位操作类指令 83
3.2.5 控制转移类指令 85
【复习思考题】 88
3.3 汇编语言程序设计 88
3.3.1 汇编语言程序设计基本概念 88
3.3.2 顺序程序 91
3.3.3 分支程序 92
3.3.4 循环程序 92
3.3.5 查表程序 95
【复习思考题】 97
3.4 实验操作 97
实验2双键控4灯 97
实验3查看延时程序延时时间 100
实验4花样循环灯 100
习题 101
第4章 C51语言及程序设计 105
4.1 C51概述 105
【复习思考题】 107
4.2 C51数据与运算 107
4.2.1 数据与数据类型 107
4.2.2 变量及其定义方法 114
4.2.3 运算符和表达式 119
4.2.4 数据类型转换和运算顺序的优先级、结合性 123
【复习思考题】 126
4.3 C51基本语句 126
4.3.1 语句基本概念 126
4.3.2 选择语句 127
4.3.3 循环语句 131
【复习思考题】 137
4.4 C51构造类型数据 137
4.4.1 数组 137
4.4.2 指针 141
【复习思考题】 147
4.5 C51函数 148
4.5.1 函数概述 148
4.5.2 函数的参数和返回值 150
4.5.3 函数的调用 154
4.5.4 常用库函数 156
【复习思考题】 161
4.6 实验操作 161
实验5双键控4灯 161
实验6流水循环灯 162
实验7模拟交通灯 163
习题 164
第5章 中断系统和定时/计数器 169
5.1 80C51中断系统 169
5.1.1 中断概述 169
5.1.2 中断源和中断控制寄存器 170
5.1.3 中断处理过程 173
5.1. 4中断系统的应用 178
【复习思考题】 182
5.2 80C51定时/计数器 183
5.2.1 定时/计数器概述 183
5.2.2 定时/计数器的控制寄存器 183
5.2.3 定时/计数器工作方式 185
5.2.4 定时/计数器的应用 187
【复习思考题】 198
5.3 实验操作 198
实验8输出周期脉冲波 198
实验9统计展览会4个入口参展总人数 200
实验10播放生日快乐歌 201
习题 202
第6章 80C51并行扩展 208
6.1 并行扩展概述 208
6.1.1 并行扩展连接方式 208
6.1.2 并行扩展寻址方式 210
6.2 并行扩展外ROM 213
6.3 并行扩展外RAM 215
6.4 并行扩展I/O口 218
6.4.1 用74系列芯片并行扩展输入口 218
6.4.2 用74系列芯片并行扩展输出口 220
6.4.3 并行扩展I/O口可编程芯片介绍 223
【复习思考题】 224
6.5 实验操作 224
实验11并行扩展RAM 6264 224
实验12并行扩展8位输入输出口 226
习题 228
第7章 80C51串行口及串行扩展 230
7.1 80C51串行口 230
7.1.1 串行通信概述 230
7.1.2 串行口特殊功能寄存器 232
7.1.3 串行工作方式 234
7.1.4 单片机与PC机串行通信 244
【复习思考题】 249
7.2 串行扩展概述 249
7.2.1 串行扩展特点 250
7.2.2 串行扩展方式分类 250
7.2.3 虚拟串行扩展概念 252
【复习思考题】 252
7.3 80C51同步移位寄存器串行扩展 253
【复习思考题】 256
7.4 I2C总线串行扩展 256
7.4.1 I2C总线概述 256
7.4.2 虚拟I2C总线基本信号和数据传送时序 258
7.4.3 虚拟I2C总线扩展AT24C02 263
【复习思考题】 269
7.5 实验操作 270
实验13 74HC164串行输出控制8循环灯 270
实验1474HC165串行输入8位数据信号 271
实验15双机串行通信方式1 272
实验16单片机与PC机虚拟串行通信 273
实验17 74HC164+165虚拟串行输入输出 279
实验18读写AT24C02 281
习题 282
第8章 显示与键盘 289
8.1 LED数码管显示 289
8.1.1 LED数码管和编码方式 289
8.1.2 静态显示方式及其典型应用电路 292
8.1.3 动态显示方式及其典型应用电路 298
【复习思考题】 302
8.2 LCD显示屏显示 303
8.2.1 LCD1602显示屏显示字符 303
8.2.2 LCD12864显示屏显示汉字 309
【复习思考题】 321
8.3 键盘 321
8.3.1 键盘接口概述 322
8.3.2 独立式按键及其接口电路 324
8.3.3 矩阵式键盘及其接口电路 328
【复习思考题】 340
8.4 实验操作 341
实验19 74LS377并行扩展输出3位LED数码管静态显示 341
实验20 74LS164串行扩展输出3位LED数码管静态显示 342
实验21 CC4511 BCD码驱动3位LED数码管静态显示 343
实验22 74LS138译码选通8位LED数码管动态显示 345
实验23 74LS595串行选通8位LED数码管动态显示 346
实验24 LCD1602显示屏显示字符 347
实验25 LCD12864显示屏显示汉字 348
实验26 74HC148编码输入8位按键状态 350
实验27 4×4矩阵式键盘 352
实验28 电子密码锁 353
习题 354
第9章 A-D转换和D-A转换 361
9.1 A-D转换接口电路 361
9.1.1 A-D转换的基本概念 361
9.1.2 并行ADC0809及其接口电路 362
9.1.3 串行ADC0832及其接口电路 370
【复习思考题】 376
9.2 D-A转换接口电路 376
9.2.1 D-A转换的基本概念 376
9.2.2 DAC0832及其接口电路 377
【复习思考题】 381
9.3 实验操作 381
实验29 ADC0808中断方式A-D(ALE输出CLK) 381
实验30 ADC0832串行A-D(TXD输出CLK) 383
实验31 DAC0832输出连续锯齿波 384
习题 386
第10章 时钟、测温和驱动电动机 388
10.1 时钟 388
10.1.1 模拟电子钟 388
10.1.2 DS1302实时时钟 395
10.2 DS18B20测温 406
10.3 驱动电动机 415
10.3.1 驱动步进电动机 415
10.3.2 直流电动机正反转及PWM调速 420
10.4 实验操作 427
实验32 模拟电子钟(80C51定时器产生秒时基) 427
实验33 开机显示PC机时间的1302时钟(LCD1602显示) 428
实验34 DS18B20测温 429
实验35 驱动四相步进电动机 431
实验36 直流电动机正反转及PWM调速 433
习题 436
附录 439
附录A ASCII码表 439
附录B 仿真练习60例目录 440
参考文献 442