内容提要
前言
第1章 单片机概述
1.1 单片机简介
1.2 单片机的发展历史
1.3 单片机的特点
1.4 单片机的应用
1.5 单片机的发展趋势
1.6 MCS-51系列与AT89S5x系列单片机
1.6.1 MCS-51系列单片机
1.6.2 AT89S5x系列单片机简介
1.7 各种衍生品种的8051单片机
1.7.1 STC系列单片机
1.7.2 C8051Fxxx单片机
1.7.3 ADμC812单片机
1.7.4 华邦W77系列、W78系列单片机
1.8 PIC系列单片机与AVR系列单片机
1.8.1 PIC系列单片机
1.8.2 AVR系列单片机
1.9 其他的嵌入式处理器简介
1.9.1 嵌入式DSP处理器
1.9.2 嵌入式微处理器
思考题及习题
第2章 AT89S51单片机的片内硬件结构
2.1 AT89S51单片机的硬件组成
2.2 AT89S51的引脚功能
2.2.1 电源及时钟引脚
2.2.2 控制引脚
2.2.3 并行I/O口引脚
2.3 AT89S51的CPU
2.3.1 运算器
2.3.2 控制器
2.4 AT89S51单片机存储器的结构
2.4.1 程序存储器空间
2.4.2 数据存储器空间
2.4.3 特殊功能寄存器
2.4.4 位地址空间
2.5 AT89S51单片机的并行I/O端口
2.5.1 P0口
2.5.2 P1口
2.5.3 P2口
2.5.4 P3口
2.6 时钟电路与时序
2.6.1 时钟电路设计
2.6.2 时钟周期、机器周期、指令周期与指令时序
2.7 复位操作和复位电路
2.7.1 复位操作
2.7.2 复位电路设计
2.8 AT89S51单片机的最小应用系统
2.9 看门狗定时器(WDT)的使用
2.10 低功耗节电模式
2.10.1 空闲模式
2.10.2 掉电运行模式
思考题及习题
第3章 8051指令系统与编程基础
3.1 指令系统概述
3.2 指令格式
3.3 指令系统的寻址方式
3.4 8051指令系统分类介绍
3.4.1 数据传送类指令
3.4.2 算术运算类指令
3.4.3 逻辑操作类指令
3.4.4 控制转移类指令
3.4.5 位操作类指令
3.5 8051指令汇总
3.6 某些指令的说明
3.7 8051汇编语言程序设计基础
3.7.1 编程语言概述
3.7.2 汇编语言语句和格式
3.7.3 伪指令
3.7.4 汇编语言源程序的汇编
3.8 8051汇编语言程序设计举例
3.8.1 子程序的设计
3.8.2 查表程序设计
3.8.3 分支转移程序设计
3.8.4 循环程序设计
思考题及习题
第4章 AT89S51单片机的中断系统
4.1 AT89S51中断技术概述
4.2 AT89S51中断系统结构
4.2.1 中断请求源
4.2.2 中断请求标志寄存器
4.3 中断允许与中断优先级的控制
4.3.1 中断允许寄存器IE
4.3.2 中断优先级寄存器IP
4.4 响应中断请求的条件
4.5 外部中断的响应时间
4.6 外部中断的触发方式选择
4.6.1 电平触发方式
4.6.2 跳沿触发方式
4.7 中断请求的撤销
4.8 中断服务子程序的设计
4.9 多外部中断源系统设计
4.9.1 中断和查询结合的方法
4.9.2 用优先权编码器扩展外部中断源
思考题及习题
第5章 I/O口应用——显示与开关/键盘输入
5.1 单片机控制发光二极管的显示
5.1.1 单片机与发光二极管的连接
5.1.2 单片机I/O端口控制发光二极管的编程
5.2 开关状态检测
5.3 单片机控制LED数码管的显示
5.3.1 LED数码管显示原理
5.3.2 LED数码管的显示方式
5.3.3 LED数码管静态显示设计
5.3.4 LED数码管动态显示设计
5.4 单片机控制LED点阵显示器显示
5.4.1 LED点阵显示器结构与显示原理
5.4.2 控制16×16 LED点阵显示屏的设计
5.5 单片机控制LCD 1602液晶显示器的显示
5.5.1 LCD 1602液晶显示模块简介
5.5.2 单片机控制字符型LCD 1602的显示案例
5.6 键盘接口设计
5.6.1 键盘接口设计应解决的问题
5.6.2 独立式键盘的设计
5.6.3 矩阵式键盘的设计
5.6.4 单片机与专用键盘/显示器芯片HD7279的接口设计
5.7 AT89S51单片机与BCD码拨盘的接口设计
思考题及习题
第6章 AT89S51单片机的定时器/计数器
6.1 定时器/计数器的结构
6.1.1 工作方式控制寄存器TMOD
6.1.2 定时器/计数器控制寄存器TCON
6.2 定时器/计数器的4种工作方式
6.2.1 方式0
6.2.2 方式1
6.2.3 方式2
6.2.4 方式3
6.3 对外部输入的计数信号的要求
6.4 定时器/计数器的编程和应用
6.4.1 方式1的应用
6.4.2 方式2的应用
6.4.3 方式3的应用
6.4.4 门控制位GATEx的应用——测量脉冲宽度
6.4.5 实时时钟的设计
思考题及习题
第7章 AT89S51单片机的串行口
7.1 串行口的结构
7.1.1 串行口控制寄存器SCON
7.1.2 特殊功能寄存器PCON
7.2 串行口的4种工作方式
7.2.1 方式0
7.2.2 方式1
7.2.3 方式2
7.2.4 方式3
7.3 多机通信
7.4 波特率的制定方法
7.4.1 波特率的定义
7.4.2 定时器T1产生波特率的计算
7.5 串行口的应用
7.5.1 串行通信接口标准
7.5.2 串行通信设计需要考虑的问题
7.5.3 双机串行通信软件编程
7.5.4 PC与单片机的点对点串行通信接口设计
7.5.5 PC与单片机或多个单片机的串行通信接口设计
思考题及习题
第8章 AT89S51单片机外部存储器的并行扩展
8.1 系统并行扩展结构
8.2 地址空间分配和外部地址锁存器
8.2.1 存储器地址空间分配
8.2.2 外部地址锁存器
8.3 静态数据存储器RAM的并行扩展
8.3.1 常用的静态RAM(SRAM)芯片
8.3.2 外扩数据存储器的读写操作时序
8.3.3 AT89S51单片机与RAM的接口设计与软件编程
8.4 片内Flash存储器的编程
8.4.1 使用通用编程器的程序写入
8.4.2 使用下载线的ISP编程
8.5 E2PROM的并行扩展
8.5.1 并行E2PROM芯片简介
8.5.2 E2PROM的工作方式
8.5.3 AT89S51单片机扩展E2PROM AT2864的设计
思考题及习题
第9章 AT89S51单片机的I/O扩展
9.1 I/O接口扩展概述
9.1.1 扩展的I/O接口功能
9.1.2 I/O端口的编址
9.1.3 I/O数据的传送方式
9.1.4 I/O接口电路
9.2 AT89S51扩展I/O接口芯片82C55的设计
9.2.1 82C55芯片简介
9.2.2 工作方式选择控制字及端口PC置位/复位控制字
9.2.3 82C55的3种工作方式
9.2.4 AT89S51单片机与82C55的接口设计
9.3 利用74LSTTL电路扩展并行I/O口
9.4 用AT89S51单片机的串行口扩展并行口
9.4.1 用74LS165扩展并行输入口
9.4.2 用74LS164扩展并行输出口
9.5 用I/O口控制的声音报警接口
9.5.1 蜂鸣音报警接口
9.5.2 音乐报警接口
思考题及习题
第10章 单片机系统的串行扩展技术
10.1 单总线串行扩展
10.1.1 单总线系统的典型应用——DS18B20的温度测量系统
10.1.2 单总线DS18B20温度测量系统的设计
10.2 SPI总线串行扩展
10.3 I2C总线的串行扩展
10.3.1 I2C串行总线系统的基本结构
10.3.2 I2C总线的数据传送规定
10.3.3 AT89S51的I2C总线系统扩展
10.3.4 I2C总线数据传送的模拟
10.3.5 利用I2C总线扩展E2PROM AT24C02的IC卡设计
思考题及习题
第11章 AT89S51单片机与DAC、ADC的接口
11.1 单片机扩展D/A转换器概述
11.2 单片机扩展并行8位DAC0832的设计
11.2.1 DAC0832简介
11.2.2 AT89S51单片机与8位D/A转换器0832的接口设计
11.3 AT89S51单片机与12位D/A转换器AD667的接口设计
11.3.1 12位D/A转换器AD667简介
11.3.2 AD667与AT89S51单片机的接口设计
11.3.3 AD667使用中的技术细节
11.4 AT89S51与串行输入的12位D/A转换器AD7543的接口设计
11.4.1 AD7543简介
11.4.2 AT89S51扩展AD7543的接口设计
11.5 单片机扩展A/D转换器概述
11.6 单片机扩展并行8位A/D转换器ADC0809
11.6.1 ADC0809简介
11.6.2 AT89S51单片机与ADC0809的接口设计
11.7 单片机扩展12位串行ADC-TLC2543的设计
11.7.1 TLC2543的特性及工作原理
11.7.2 AT89S51单片机扩展TLC2543的设计
11.8 AT89S51与双积分型A/D转换器MC14433的接口
11.8.1 MC14433 A/D转换器简介
11.8.2 MC14433与AT89S51单片机的接口
11.9 AT89S51单片机与V/F转换器的接口
11.9.1 用V/F转换器实现A/D转换的原理
11.9.2 常用V/F转换器LMX31简介
11.9.3 V/F转换器与AT89S51单片机的接口设计
11.9.4 V/F转换的应用设计
思考题及习题
第12章 其他常用的接口设计
12.1 步进电机的控制
12.1.1 控制步进电机的工作原理
12.1.2 控制步进电机的设计案例
12.2 直流电机的控制
12.2.1 控制直流电机的工作原理
12.2.2 控制直流电机的设计案例
12.3 基于时钟/日历芯片DS1302的电子钟设计
12.3.1 DS1302的工作原理
12.3.2 DS1302的应用设计案例
12.4 AT89S51单片机与微型打印机TPμP-40A/16A的接口
12.4.1 TPμP-40A/16A微型打印机简介
12.4.2 字符代码及打印命令
12.4.3 TPμP-40A/16A与AT89S51单片机接口设计
12.5 单片机与I/O功率驱动的接口设计
12.5.1 AT89S51与外围集成数字驱动电路的接口
12.5.2 AT89S51与光电耦合器的接口
12.5.3 AT89S51与集成功率电子开关输出接口
思考题及习题
第13章 AT89S51单片机的应用设计与调试
13.1 单片机应用系统的设计步骤
13.2 单片机应用系统设计
13.2.1 硬件设计应考虑的问题
13.2.2 典型的单片机应用系统
13.2.3 系统设计中的总线驱动
13.2.4 软件设计考虑的问题
13.2.5 软件的总体框架设计
13.3 单片机应用系统的仿真开发与调试
13.4 单片机应用系统的抗干扰与可靠性设计
13.4.1 AT89S51片内看门狗定时器的使用
13.4.2 指令冗余和软件陷阱
13.4.3 软件滤波
13.4.4 开关量输入/输出软件抗干扰设计
13.4.5 过程通道干扰的抑制措施——隔离
13.4.6 印制电路板抗干扰布线的基本原则
思考题及习题
附录A 基础实验题目
实验1 单片机I/O口应用——控制LED流水灯
实验2 单个外部中断实验
实验3 中断嵌套实验
实验4 定时器/计数器的定时实验
实验5 定时器/计数器的计数器实验
实验6 串口方式0扩展并行输出口实验
实验7 串行口方式0扩展并行输入口实验
实验8 双单片机串行通信
实验9 扩展82C55并行I/O实验
实验10 独立式键盘实验
实验11 矩阵式键盘扫描实验
实验12 单片机控制1602液晶显示器显示字符
实验13 DAC0832的D/A转换实验
实验14 ADC0809的A/D转换实验
实验15 I2C总线串行扩展——AT24C02存储器读写
附录B 课程设计题目
题目1 节日彩灯控制器的设计
题目2 单一外中断的应用
题目3 LED数码管秒表的制作
题目4 音乐音符发生器的制作
题目5 用定时器设计的门铃
题目6 控制数码管循环显示单个数字
题目7 基于DS18B20的数字温度计设计
题目8 利用定时器在P1.0上产生周期为2ms的方波
题目9 电话键盘及拨号的模拟
题目10 双机串行口方式1单工通信
题目11 数码管显示4×4矩阵键盘的键号
题目12 波形发生器的制作
题目13 频率计的制作
题目14 数字电压表设计
题目15 单片机控制串行DAC:AD7543的调压器
题目16 单片机控制16×16阵列LED的显示
题目17 直流电机控制实验
题目18 步进电机控制实验
参考文献