单片机原理及应用(第3版)
作者:张迎新 等编著
出版时间:2017
丛编项: 电子设计系列规划教材
内容简介
本书以80C51系列中的89系列单片机为例介绍单片机的硬件结构、工作原理、指令系统、汇编语言及C语言程序设计、接口技术、中断系统及单片机应用等内容。主要内容包括:概况、单片机结构及原理、指令系统、汇编语言程序设计、C51语言程序及开发环境、定时/计数器、80C51的串行接口、中断系统、单片机的系统扩展、接口技术、单片机应用系统的设计与开发等。本书在各章中对关键性内容都结合实例予以说明,并附大量思考题和习题,配套电子课件、程序代码、参考答案等。
目录
目 录
第1章 概述\t(1)
1.1 单片机发展概况\t(1)
1.1.1 单片机的发展历史\t(1)
1.1.2 单片机的组成及特点\t(3)
1.1.3 单片机与嵌入式系统\t(4)
1.2 80C51系列单片机简介\t(5)
1.2.1 80C51系列单片机的发展\t(5)
1.2.2 AT89系列单片机的特点及分类\t(6)
1.3 其它常用单片机系列简介\t(7)
1.3.1 低端产品概述\t(7)
1.3.2 高端产品概述\t(8)
1.3 单片机基础知识\t(9)
1.3.1 数制与编码\t(9)
1.3.2 计算机的基本组成电路\t(12)
1.3.3 存储器简介\t(15)
思考与练习\t(19)
第2章 单片机结构及原理\t(20)
2.1 单片机结构\t(20)
2.1.1 单片机组成及结构\t(20)
2.1.2 引脚定义及功能\t(23)
2.2 80C51的存储器\t(26)
2.2.1 存储器结构和地址空间\t(26)
2.2.2 程序存储器\t(27)
2.2.3 数据存储器\t(28)
2.3 特殊功能寄存器SFR\t(30)
2.3.1 80C51系列的SFR\t(30)
2.3.2 SFR地址分布及寻址\t(31)
2.3.3 SFR的功能与作用\t(33)
2.4 单片机的工作原理\t(36)
2.4.1 指令与程序概述\t(36)
2.4.2 CPU的工作原理\t(36)
2.4.3 单片机执行程序过程\t(38)
2.5 输入/输出端口结构\t(40)
2.5.1 4个I/O端口的主要异同点\t(40)
2.5.2 P0口\t(41)
2.5.3 P1口\t(42)
2.5.4 P2口\t(43)
2.5.5 P3口\t(44)
2.6 时序及时钟电路\t(45)
2.6.1 CPU时序及有关概念\t(45)
2.6.2 振荡器和时钟电路\t(46)
2.6.3 80C51的指令时序\t(47)
2.7 复位和复位电路\t(48)
2.7.1 内部复位信号的产生\t(48)
2.7.2 复位状态\t(48)
2.7.3 外部复位电路设计\t(49)
2.8 80C51系列单片机的低功耗方式\t(50)
2.8.1 电源控制寄存器PCON\t(50)
2.8.2 待机方式\t(50)
2.8.3 掉电方式\t(51)
思考与练习\t(52)
第3章 指令系统\t(53)
3.1 指令系统简介\t(53)
3.2 寻 址 方 式\t(54)
3.2.1 符号约定\t(54)
3.2.2 寻址方式说明\t(55)
3.3 指令系统分类介绍\t(60)
3.3.1 数据传送类指令\t(60)
3.3.2 算术运算类指令\t(65)
3.3.3 逻辑操作类指令\t(69)
3.3.4 控制转移类指令\t(71)
3.3.5 位操作类指令\t(75)
思考与练习\t(77)
第4章 汇编语言程序设计\t(81)
4.1 概述\t(81)
4.1.1 程序设计语言\t(81)
4.1.2 汇编语言规范\t(82)
4.1.3 汇编语言程序设计步骤\t(85)
4.2 汇编语言程序设计举例\t(86)
4.2.1 顺序程序设计\t(86)
4.2.2 循环程序设计\t(87)
4.2.3 分支程序设计\t(88)
4.2.4 查表程序设计\t(92)
4.2.5 子程序设计\t(94)
思考与练习\t(98)
第5章 C51语言程序及开发环境\t(101)
5.1 C51语言基础知识\t(101)
5.1.1 C51语言简介\t(101)
5.1.2 C51语言的运算符及表达式\t(101)
5.1.3 C51语言的程序结构\t(103)
5.1.4 C51语言的流程控制语句\t(104)
5.2 C51语言对通用C语言的扩展\t(106)
5.2.1 数据类型\t(106)
5.2.2 数据的存储类型\t(108)
5.2.3 指针\t(110)
5.2.4 函数\t(111)
5.2.5 C51语言对单片机硬件的访问\t(113)
5.3 C51语言编程举例\t(115)
5.4 KEIL C51软件开发环境\t(119)
5.4.1 Keil软件简介\t(119)
5.4.2 项目的建立与设置\t(121)
5.4.3 运行调试\t(124)
5.5 PROTEUS 硬件仿真环境\t(126)
5.5.1 Proteus软件简介\t(126)
5.5.2 Proteus ISIS窗口功能\t(126)
5.5.3 Proteus ISIS的基本操作\t(128)
思考题与练习题\t(134)
第6章 定时/计数器\t(135)
6.1 定时/计数器T0、T1概述\t(135)
6.1.1 定时器/计数器T0、T1的结构\t(135)
6.1.2 定时/计数器的原理\t(136)
6.2 定时/计数器的控制方法\t(136)
6.2.1 定时/计数器寄存器\t(136)
6.2.2 定时/计数器的初始化\t(138)
6.2.3 定时/计数器初值的确定方法\t(138)
6.3 定时/计数器T0、T1的工作方式\t(139)
6.3.1 方式0\t(139)
6.3.2 方式1\t(139)
6.3.3 方式2\t(140)
6.3.4 方式3\t(140)
6.4 定时器T0、T1应用举例\t(142)
6.4.1 定时器应用举例\t(142)
6.4.2 计数器应用举例\t(143)
6.4.3 门控位应用举例\t(145)
6.5 定时/计数器T2\t(147)
6.5.1 T2的寄存器\t(147)
6.5.2 定时器T2的工作方式\t(149)
6.5.3 应用例题\t(153)
6.6 定时器T3― WDT监视定时器\t(155)
6.6.1 WDT的功能及应用特点\t(155)
6.6.2 辅助寄存器AUXR\t(155)
思考与练习\t(156)
第7章 80C51的串行接口\t(157)
7.1 串行通信概述\t(157)
7.1.1 同步通信和异步通信方式\t(157)
7.1.2 串行通信的数据传送速率\t(158)
7.1.3 串行通信的方式\t(158)
7.1.4 通信协议\t(159)
7.2 80C51串行口简介\t(159)
7.2.1 串行口结构与工作原理\t(159)
7.2.2 串行口控制寄存器SCON\t(160)
7.2.3 80C51的帧格式\t(161)
7.2.4 波特率的设置\t(162)
7.3 串行通信工作方式\t(163)
7.3.1 方式0\t(164)
7.3.2 方式1\t(164)
7.3.3 方式2和方式3\t(165)
7.3.4 多机通信\t(165)
7.4 串行口应用举例\t(166)
7.4.1 用串行口扩展I/O口\t(167)
7.4.2 用串行口进行异步通信\t(170)
思考与练习\t(177)
第8章 中断系统\t(178)
8.1 概述\t(178)
8.1.1 中断的概念\t(178)
8.1.2 引进中断技术的优点\t(178)
8.1.3 中断源\t(179)
8.1.4 中断系统的功能\t(179)
8.2 AT89S51单片机的中断系统\t(181)
8.2.1 中断系统的结构\t(181)
8.2.2 中断源及中断入口\t(181)
8.2.3 与中断控制有关的寄存器\t(183)
8.3 中断处理过程\t(186)
8.3.1 中断响应\t(186)
8.3.2 中断处理\t(187)
8.3.3 中断返回\t(188)
8.3.4 中断请求的撤除\t(188)
8.3.5 中断响应时间\t(189)
8.3.6 扩充外中断源\t(189)
8.4 中断程序的设计与应用\t(191)
8.4.1 中断程序的一般设计方法\t(191)
8.4.2 中断程序应用举例\t(193)
思考与练习\t(201)
第9章 单片机的系统扩展\t(202)
9.1 并行扩展概述\t(202)
9.1.1 系统扩展常用接口芯片\t(202)
9.1.2 外部并行扩展总线\t(204)
9.1.3 并行扩展的寻址方法\t(205)
9.2 存储器的并行扩展\t(206)
9.2.1 数据存储器扩展概述\t(206)
9.2.2 访问片外数据存储器的操作时序\t(206)
9.2.3 数据存储器扩展举例\t(207)
9.3 并行I/O接口的扩展\t(208)
9.3.1 扩展并行I/O口简述\t(208)
9.3.2 简单并行I /O口的扩展\t(209)
9.4 串行扩展概述\t(210)
9.4.1 常用串行总线与串行接口简介\t(211)
9.4.2 单片机串行扩展的模拟技术\t(214)
9.4.3 串行扩展的主要特点\t(214)
9.5 I2C总线\t(215)
9.5.1 I2C总线的组成及基本工作原理\t(215)
9.5.2 I2C总线的传输时序\t(215)
9.5.3 I2C总线的通用模拟软件包\t(217)
9.5.4 I2C总线应用举例\t(223)
9.6 扩展数/模转换器\t(227)
9.6.1 数/模转换器简介\t(228)
9.6.2 数/模转换电路原理\t(228)
9.6.3 D/A转换器的主要技术指标\t(229)
9.6.4 并行D/A转换器\t(230)
9.7 扩展模/数转换器\t(233)
9.7.1 模/数转换器简介\t(233)
9.7.2 模/数转换器的主要技术指标\t(234)
9.7.3 逐次逼近式A/D转换器\t(235)
9.7.4 双积分A/D转换器\t(238)
9.7.5 串行A/D转换器\t(242)
思考与练习\t(245)
第10章 接口技术\t(247)
10.1 键盘接口\t(247)
10.1.1 键盘工作原理\t(247)
10.1.2 独立式按键\t(248)
10.1.3 行列式键盘\t(251)
10.2 显示器接口\t(258)
10.2.1 LED显示器的结构与原理\t(258)
10.2.2 LED静态显示方式\t(259)
10.2.3 LED动态显示方式\t(260)
10.2.4 液晶显示器概述\t(263)
10.2.5 字符型液晶显示模块LCM的组成及原理\t(264)
10.2.6 字符型液晶显示模块LCM的引脚及说明\t(265)
10.2.7 LCM的指令\t(266)
10.2.8 LCM的复位及初始化\t(268)
10.2.9 LCM的接口及应用举例\t(269)
10.3 功率驱动器件及接口电路\t(277)
10.3.1 输出接口的隔离技术\t(277)
10.3.2 直流负载驱动电路\t(278)
10.3.3 晶闸管负载驱动电路\t(279)
10.3.4 继电器接口电路\t(280)
10.3.5 固态继电器接口电路\t(281)
10.4 打印机接口\t(281)
10.4.1 微型打印机简介\t(282)
10.4.2 字符代码及打印命令\t(283)
10.4.3 打印机与单片机接口举例\t(284)
思考与练习\t(286)
第11章 单片机应用系统的设计与开发\t(287)
11.1 应用系统研制过程\t(287)
11.1.1 总体方案设计\t(287)
11.1.2 硬件设计\t(288)
11.1.3 软件设计\t(290)
11.2 开发工具和开发方法\t(292)
11.2.1 开发工具\t(292)
11.2.2 开发方法\t(294)
11.3 恒温箱温度控制监测系统\t(295)
11.3.1 题目分析\t(296)
11.3.2 硬件设计\t(296)
11.4.3 软件设计\t(297)
11.4 PC机与单片机间的串行通信设计\t(301)
11.4.1 RS-232C标准接口\t(301)
11.4.2 单片机与PC机之间的电平转换芯片\t(302)
11.4.3 PC机与单片机串行通信应用实例\t(302)
11.5 步进电机控制设计\t(309)
11.5.1 步进电机的工作原理\t(309)
11.5.2 步进电机的控制方法\t(309)
11.5.3 步进电机控制应用举例\t(310)
思考与练习\t(316)
附录A 80C51指令表\t(316)
附录B 各数制对照表\t(321)
附录C ASCII(美国标准信息交换码)表\t(322)
附录D 二进制逻辑单元图形符号对照表\t(316)
附录E 常用芯片引脚图\t(324)
参考文献\t(326)