第一章 单片机系统设计基础知识 1
1.1单片机概述 1
1.1.1何为单片机 1
1.1.2单片机有何应用 2
1.1.3单片机的发展简史 3
1.1.4单片机的优势 3
1.1.5 PIC单片机的特点和主要优势 4
1.1.6如何学习和掌握单片机技术 5
1.2常见电子元器件的识别和使用方法 5
1.2.1电阻器 5
1.2.2电容器 8
1.2.3集成电路 11
1.2.4其他常见电子元器件的识别和使用方法 13
1.2.5元器件焊接基础知识 15
1.3电子电路图的读图方法 17
1.3.1电路图的绘制过程 17
1.3.2电路原理图的解读方法 18
1.3.3本书实验套件电路图的解读 19
1.3.4印制电路板图的解读方法 27
1.4本书配套实验套件基本部分的焊接 30
思考题 31
第二章PIC中档单片机的结构及开发工具 33
2.1 PIC中档单片机的结构 33
2.1.1 PIC中档单片机的总线结构 33
2.1.2 PIC中档单片机指令的执行 35
2.1.3 PIC中档单片机的文档寄存器 38
2.1.4 PIC中档单片机的程序存储器和硬件堆栈 42
2.1.5 PIC中档单片机的ALU和工作寄存器 43
2.1.6 PIC中档单片机外设的特点 43
2.1.7典型PIC中档单片机PIC16F87X系列的结构 46
2.1.8 PIC中档单片机的典型封装形式 49
2.1.9 PIC单片机的开发工具和技术支持 50
2.2集成开发环境MPLAB 50
2.2.1 MPLAB综述 51
2.2.2 MPLAB的安装 51
2.2.3 MPLAB的基本使用方法 52
2.3仿真、编程工具ICD2 61
2.3.1 ICD2功能概述 61
2.3.2 ICD2驱动程序的安装 62
2.3.3用ICD2“小试牛刀” 64
2.3.4 PIC中档单片机的其他开发工具 66
2.4本章小结 66
思考题 67
第三章PIC中档单片机指令系统和程序设计基础 68
3.1 PIC中档单片机指令系统和寻址方式 68
3.1.1指令系统综述 69
3.1.2指令系统 71
3.1.3文档寄存器(数据空间)的寻址 85
3.1.4程序空间的寻址 88
3.2汇编语言程序开发的基本方法和结构 91
3.2.1 MPASM汇编语言程序设计基础 92
3.2.2汇编语言程序的基本流程 96
3.3单片机延时程序实验 102
3.3.1实验要求 102
3.3.2软件设计 102
3.3.3实验步骤及结果 105
3.4双字节加法实验 106
3.4.1实验要求 106
3.4.2软件设计 106
3.4.3实验步骤及结果 108
3.5本章方法及技巧总结 109
思考题 110
实验题 111
第四章PIC中档单片机的中断系统 112
4.1 PIC中档单片机中断系统综述 112
4.1.1中断的基本概念 113
4.1.2 PIC中档单片机的中断控制逻辑 113
4.1.3 PIC中档单片机的中断过程 114
4.1.4与中断相关的寄存器 115
4.2 PIC中档单片机中断系统的特点 119
4.2.1中断入口地址和中断源的识别 119
4.2.2中断优先级控制 120
4.2.3中断嵌套 120
4.2.4中断响应时序分析 121
4.2.5中断现场保护和恢复 122
4.3外部中断实验 124
4.3.1实验要求 124
4.3.2硬件设计 124
4.3.3软件设计思路 125
4.3.4实验步骤及结果 125
4.4按键中断实验 128
4.4.1实验要求 128
4.4.2软件设计思路 128
4.4.3实验步骤及结果 128
4.5本章方法及技巧总结 130
思考题 131
实验题 132
第五章PIC中档单片机基本输入/输出端口 133
5.1 I/O端口的基本使用方法 133
5.1.1与I/O端口相关的寄存器 133
5.1.2 I/O端口的设置 133
5.2 IO端口的工作原理 135
5.2.1设置端口的输入/输出方向 136
5.2.2经端口引脚输出数据 136
5.2.3经端口引脚输入数据 136
5.2.4读取端口引脚方向锁存器的状态 137
5.2.5端口引脚的输入保护电路 137
5.3 I/O端口在应用中的问题 137
5.3.1 PORTA应用中的问题 137
5.3.2 PORTB应用中的问题 138
5.3.3 PORTC应用中的问题 142
5.3.4 PORTD和PORTE应用中的问题 143
5.3.5 I/O端口的驱动能力 143
5.3.6 I/O端口的“读—修改—写”问题 144
5.4基本输入/输出实验 146
5.4.1实验要求 146
5.4.2硬件电路设计 146
5.4.3软件设计思路 146
5.4.4实验步骤及结果 147
5.5数码管显示实验 148
5.5.1实验要求 148
5.5.2数码管显示原理 148
5.5.3软件设计思路 150
5.5.4实验步骤及结果 151
5.6字符液晶显示实验 153
5.6.1实验要求 153
5.6.2字符液晶显示原理 153
5.6.3硬件和软件的设计 156
5.6.4实验步骤及结果 156
5.7本章方法及技巧总结 158
思考题 159
实验题 160
第六章PIC中档单片机的定时/计数器 161
6.1 PIC中档单片机定时/计数器综述 161
6.1.1异步二进制加法计数器 161
6.1.2定时/计数原理 163
6.1.3分频器原理和电路 164
6.1.4 PIC中档单片机中常见的三个定时/计数器的异同点 164
6.2定时/计数器TMR0 165
6.2.1 TMR0的基本特性 165
6.2.2 TMR0的工作原理 165
6.2.3 TMR0的相关寄存器 167
6.2.4 TMR0使用中的注意事项 168
6.3定时/计数器TMR1 170
6.3.1 TMR1的基本特性 170
6.3.2 TMR1的工作原理 171
6.3.3 TMR1的相关寄存器 172
6.3.4 TMR1的工作方式 174
6.3.5 TMR1使用中的注意事项 175
6.4定时/计数器TMR2 176
6.4.1 TMR2的基本特性 176
6.4.2 TMR2的工作原理 177
6.4.3 TMR2的相关寄存器 178
6.4.4 TMR2的工作方式 179
6.4.5 TMR2使用中的注意事项 180
6.5闪烁式跑马灯实验(TMR0定时器实验) 181
6.5.1实验要求 181
6.5.2硬件电路设计 181
6.5.3软件设计思路 181
6.5.4实验步骤及结果 182
6.6航标灯实验(TMR1外接低频晶体实验) 184
6.6.1实验要求 184
6.6.2硬件电路设计 184
6.6.3软件设计思路 185
6.6.4实验步骤及结果 185
6.7按键持续时间测量实验(TMR2定时自动重装实验) 187
6.7.1实验要求 188
6.7.2硬件电路设计 188
6.7.3软件设计思路 188
6.7.4实验步骤及结果 189
6.8本章方法及技巧总结 191
思考题 192
实验题 193
第七章 输入捕捉/输出比较/脉宽调制模块 194
7.1 CCP模块综述 194
7.2输入捕捉工作模式 195
7.2.1相关寄存器 195
7.2.2输入捕捉模式的电路 结构 197
7.2.3输入捕捉模式的工作机制 197
7.2.4使用输入捕捉模式的注意事项 197
7.3输出比较工作模式 198
7.3.1相关寄存器 198
7.3.2输出比较模式的电路结构 198
7.3.3输出比较模式的工作机制 199
7.3.4使用输出比较模式的注意事项 199
7.4脉宽调制(PWM)工作模式 199
7.4.1相关寄存器 199
7.4.2脉宽调制模式的电路结构 200
7.4.3脉宽调制模式的工作机制 201
7.4.4使用脉宽调制模式的注意事项 203
7.5 PWM产生低频正弦信号实验 203
7.5.1实验要求 203
7.5.2理论基础 203
7.5.3硬件电路设计 205
7.5.4软件设计思路 206
7.5.5实验步骤及结果 208
7.6用捕捉功能测量信号周期实验 209
7.6.1实验要求 209
7.6.2软件设计思路 209
7.6.3实验步骤及结果 211
7.7单片机演奏乐曲实验 213
7.7.1实验要求 213
7.7.2理论基础 213
7.7.3硬件电路设计 214
7.7.4软件设计思路 215
7.7.5实验步骤及结果 217
7.8本章方法及技巧总结 218
思考题 219
实验题 219
第八章 模拟/数字转换模块 221
8.1模拟/数字转换器综述 221
8.1.1 A/D转换器的基本概念 221
8.1.2常见的A/D转换器的种类及其特点 223
8.1.4多路数据采集系统的结构 224
8.2 PIC单片机内嵌ADC模块的使用方法和编程技术 225
8.2.1 PIC16F877A的ADC模块的工作原理 225
8.2.2 ADC模块的相关寄存器 226
8.2.3 ADC模块的工作过程 229
8.2.4参考电压的选择 233
8.2.5 A/D转换过程和编程方法 234
8.3 ADC模块基本功能实验 235
8.3.1实验要求 235
8.3.2硬件电路设计 236
8.3.3软件设计思路 237
8.3.4实验步骤及结果 239
8.4简易数字显示温度计实验 241
8.4.1实验要求 241
8.4.2硬件电路设计 241
8.4.3软件设计思路 243
8.4.4实验步骤及结果 245
8.5本章方法及技巧总结 248
思考题 249
实验题 250
第九章PIC中档单片机片内非易失性存储器 251
9.1 PIC中档单片机片内非易失性存储器综述 251
9.1.1常见非易失性存储器的种类及特点 251
9.1.2 PIC中档单片机片内两种非易失性存储器的用途及其异同点 252
9.2 PIC中档单片机片内非易失性存储器的使用方法和编程技术 255
9.2.1与EEPROM、 Flash存储器相关的寄存器 255
9.2.2片内EEPROM的结构和操作原理 256
9.2.3从EEPROM中读取数据 258
9.2.4向EEPROM中写入数据 259
9.2.5片内Flash的结构和操作原理 261
9.2.6从Flash中读取数据 262
9.2.7向Flash中写入数据 263
9.3片内EEPROM的读写实验 266
9.3.1实验要求 266
9.3.2硬件和软件设计 266
9.3.3实验步骤及结果 266
9.4片内Flash的读写实验 269
9.4.1实验要求 270
9.4.2硬件和软件设计 270
9.4.3实验步骤及结果 270
9.5本章方法及技巧总结 273
思考题 273
实验题 274
第十章 通用同步/异步收发器 275
10.1串行通信的基本概念 275
10.1.1串行通信的基本类型 275
10.1.2串行通信的方式 276
10.1.3串行通信的标准 277
10.1.4串行通信的帧结构 284
10.1.5串行通信的校验与纠错方式 284
10.1.6串行通信的组网方式 285
10.2 PIC中档单片机的USART模块 285
10.2.1与USART模块相关的寄存器 285
10.2.2 USART模块的波特率发生器BRG 288
10.2.3 USART模块的异步工作方式 291
10.2.4 USART模块的同步主控工作方式 299
10.2.5 USART模块的同步被控工作方式 303
10.3 USART模块的使用方法和编程技术 305
10.3.1 USART模块异步工作方式编程 305
10.3.2 USART模块同步工作方式编程 306
10.4单片机和PC机构成温度数据采集系统实验 308
10.4.1实验要求 308
10.4.2硬件电路设计 308
10.4.3软件设计思路 309
10.4.4实验步骤及结果 310
10.5单片机之间异步串口通信实验 312
10.5.1实验要求 312
10.5.2硬件电路设计 312
10.5.3软件设计思路 312
10.5.4实验步骤及结果 313
10.6本章方法及技巧总结 315
思考题 315
实验题 316
第十一章 通用同步串行端口 317
11.1同步串行端口的SPI模式 318
11.1.1 SPI接口的基础知识 318
11.1.2 PIC中档单片机的SPI接口引脚 321
11.1.3 PIC中档单片机SPI接口相关寄存器 322
11.1.4 SPI主模式 325
11.1.5 SPI从模式 326
11.2同步串行端口的I2C模式 329
11.2.1 I2C接口的基础知识 329
11.2.2 PIC中档单片机的I2C接口引脚 334
11.2.3 PIC中档单片机I2C接口相关的寄存器 334
11.2.4 I2C从模式 339
11.2.5 I2C主模式 342
11.3单片机之间SPI总线通信实验 346
11.3.1实验要求 346
11.3.2硬件电路设计 346
11.3.3软件设计思路 347
11.3.4实验步骤及结果 349
11.4单片机之间12C总线通信实验 351
11.4.1实验要求 351
11.4.2硬件电路设计 352
11.4.3软件设计思路 352
11.4.4实验步骤及结果 357
11.5本章方法及技巧总结 359
思考题 361
实验题 361
第十二章PIC单片机系统综合设计 362
12.1 PIC中档单片机片上集成的系统功能 362
12.1.1系统时钟 362
12.1.2复位系统 369
12.1.3休眠与唤醒 374
12.1.4 PIC中档单片机的系统配置字 376
12.2 PIC中档单片机系统设计实例 378
12.2.1第六届全国大学生电子设计竞赛F题参考设计 378
12.2.2聚合物锂离子电池测试平台的设计 383
附录A配套实验套件的电路原理图和印制电路板图 394
附录B PIC中档单片机典型封装引脚图 395
B.1 PIC16F87X系列的封装和引脚信息 395
B.2 PIC16F88X系列的封装和引脚信息 400
附录C PIC中档单片机C语言基础 405
C.1 PIC中档单片机高级语言编译器 405
C.2 Hitech-PICC的配置和使用 406
C.3 PICC中的变量 407
C.4 PICC中的函数 409
C.5 PICC中的头文件和配置字 410
C.6使用PICC和MPLAB开发的简单例子 410
附录D ICD2的制作 414
D.1硬件电路的制作 414
D.2固件的下载和使用时MPLAB的配置 416
参考文献 418