本书以80C51单片机为典型机,详细介绍了MCS-51系列单片机的构成、工作原理、指令系统、汇编语言程序设计、中断技术、定时/计数器、串行口通信等内容,并结合应用实际,系统地介绍了MCS-51系列单片机的扩展技术,包括存储器扩展、I/O口扩展、显示器与键盘接口、A/D及D/A接口技术等。为顺应单片机技术的发展趋势,跟踪单片机技术的最新发展,满足不同层次的研究开发人员的需求,本书还详细介绍了AT89系列单片机及C8051F系列单片机的特点和应用。本书共11章,内容丰富,力求反映当前单片机的最新技术,在对单片机原理全面、准确叙述的基础上,加强了实践教学环节。为了便于初学者理解和掌握,本书在内容安排上采用循序渐进的论述方法,从基础理论到实践应用,并充分考虑所使用实例的典型性和实用性,期望读者在学习后,既能掌握单片机的一般原理和接口技术,又能掌握单片机应用系统的设计方法。为加强思政建设,本书融入了思政元素,并在每章之后提供了思政大纲,以供参考。
桑胜举,男,泰山学院副教授,曾或泰山学院优秀科研成果1、2、3等奖各一次,任中国图学学会高级会员,山东省科协国家级科技思想库决策专家,山东省计算机学会理事,泰安市科技咨询协会常务理事。
目 录
第1章 绪论 (1)
1.1 单片机技术的发展背景 (1)
1.2 单片机的组成 (2)
1.3 单片机的特点及应用 (3)
1.3.1 单片机的特点 (3)
1.3.2 单片机的应用 (4)
1.4 单片机的发展历史 (4)
1.5 单片机分类 (5)
1.5.1 按单片机功能分类 (5)
1.5.2 MCS-51系列单片机 (6)
1.6 单片机发展趋势 (7)
1.7 单片机领域人才需求简析 (10)
本章小结 (11)
【知识拓展与思政元素】家国情怀、社会
责任、爱岗敬业、人生担当 (12)
习题1 (12)
第2章 单片机的结构及原理 (13)
2.1 80C51单片机的基本结构 (13)
2.1.1 80C51单片机的组成 (13)
2.1.2 80C51单片机的存储器 (15)
2.2 并行I/O口 (20)
2.2.1 P0口 (21)
2.2.2 P1口 (22)
2.2.3 P2口 (22)
2.2.4 P3口 (23)
2.3 时钟电路与复位电路 (23)
2.3.1 时钟电路与时序 (23)
2.3.2 复位电路 (25)
2.4 单片机的工作方式 (26)
2.4.1 复位方式 (27)
2.4.2 程序执行方式 (27)
2.4.3 节电工作方式 (27)
2.4.4 EPROM编程和校验方式 (28)
2.5 单片机的工作过程 (28)
2.6 AT89系列单片机简介 (29)
2.7 单片机最小应用系统 (30)
本章小结 (32)
【知识拓展与思政元素】科技强国、历史
使命、团队协作、脚踏实地 (32)
习题2 (33)
第3章 单片机的指令系统 (34)
3.1 指令系统简介 (34)
3.2 寻址方式 (35)
3.3 数据传送类指令 (39)
3.3.1 内部RAM传送指令 (39)
3.3.2 外部RAM传送指令 (41)
3.3.3 数据交换类指令 (42)
3.3.4 查表指令 (42)
3.3.5 堆栈操作指令 (43)
3.4 算术运算类指令 (44)
3.4.1 加法指令 (44)
3.4.2 减法指令 (47)
3.4.3 乘法指令 (47)
3.4.4 除法指令 (48)
3.5 逻辑运算类指令 (48)
3.5.1 基本逻辑操作 (48)
3.5.2 其他逻辑操作 (50)
3.6 控制转移类指令 (51)
3.6.1 无条件转移指令 (51)
3.6.2 条件转移指令 (54)
3.6.3 调用及返回指令 (55)
3.6.4 空操作指令 (56)
3.7 位操作指令 (56)
3.7.1 位传送指令 (57)
3.7.2 位修改指令 (57)
3.7.3 位逻辑操作指令 (57)
3.7.4 位判断转移类指令 (58)
3.8 基本命令应用举例 (58)
本章小结 (62)
【知识拓展与思政元素】尊重规则、严谨
科学、拼搏进取、辩证思维 (63)
习题3 (63)
第4章 80C51汇编语言程序设计 (66)
4.1 概述 (66)
4.1.1 程序设计语言 (66)
4.1.2 汇编语言伪指令 (66)
4.1.3 程序汇编方法 (69)
4.2 顺序程序设计 (71)
4.3 分支程序设计 (73)
4.3.1 一般分支程序设计 (74)
4.3.2 散转程序设计 (77)
4.3.3 分支程序设计实例 (79)
4.4 循环程序设计 (82)
4.4.1 循环程序结构 (82)
4.4.2 循环程序实例 (83)
4.5 查表程序设计 (88)
4.6 子程序设计与堆栈技术 (90)
4.6.1 子程序实例 (90)
4.6.2 堆栈结构 (93)
4.6.3 子程序结构 (94)
4.6.4 代码转换程序 (95)
4.6.5 算术运算子程序 (98)
4.6.6 查找、排序程序 (101)
4.6.7 多位BCD码减法程序 (104)
本章小结 (105)
【知识拓展与思政元素】由简到繁、循序
渐进、全力以赴、善于积累 (106)
习题4 (106)
第5章 中断系统 (111)
5.1 中断系统概述 (111)
5.1.1 中断的概念 (111)
5.1.2 中断的特点 (111)
5.1.3 中断系统的功能 (112)
5.2 中断源与中断寄存器 (113)
5.2.1 中断源 (113)
5.2.2 中断寄存器 (114)
5.3 中断处理过程 (116)
5.3.1 中断响应 (116)
5.3.2 中断处理 (118)
5.3.3 中断返回 (119)
5.3.4 中断响应时间 (119)
5.4 中断触发方式 (119)
5.5 中断源的扩展 (120)
5.5.1 定时器扩展中断源 (120)
5.5.2 中断查询扩展 (120)
5.6 中断请求的撤除 (121)
5.6.1 撤除定时器溢出中断 (122)
5.6.2 撤除串行口中断 (122)
5.6.3 撤除外部中断 (122)
5.7 中断初始化 (123)
5.8 应用举例 (124)
本章小结 (127)
【知识拓展与思政元素】锲而不舍、因地
制宜、程序可返、人生无“悔” (127)
习题5 (128)
第6章 定时/计数器 (130)
6.1 定时/计数器的结构与工作原理 (130)
6.1.1 定时/计数器的结构 (130)
6.1.2 定时/计数器的工作原理 (131)
6.2 定时/计数器相关寄存器 (131)
6.2.1 方式寄存器TMOD (131)
6.2.2 控制寄存器TCON (132)
6.3 定时/计数器的工作方式 (132)
6.3.1 方式0 (132)
6.3.2 方式1 (133)
6.3.3 方式2 (134)
6.3.4 方式3 (134)
6.4 定时/计数器的初始化 (135)
6.4.1 初始化步骤 (135)
6.4.2 计数器初值的计算 (135)
6.4.3 定时器初值的计算 (136)
6.4.4 初始化实例 (136)
6.5 定时/计数器的编程和应用 (137)
本章小结 (149)
【知识拓展与思政元素】诚信守时、分秒
必争、工匠精神、精益求精 (149)
习题6 (149)
第7章 串行接口 (151)
7.1 串行通信基础 (151)
7.1.1 串行通信的分类 (151)
7.1.2 串行通信的制式 (153)
7.1.3 串行通信的接口电路 (153)
7.2 通信总线标准及其接口 (154)
7.2.1 RS-232C接口 (154)
7.2.2 RS-449、RS-422A、RS-423A
标准接口 (155)
7.2.3 20mA电流环接口 (156)
7.3 80C51的串行接口 (157)
7.3.1 80C51串行接口结构 (157)
7.3.2 80C51串行的工作方式 (158)
7.3.3 80C51串行接口的波特率 (160)
7.4 80C51单片机之间的通信 (161)
7.4.1 双机通信硬件电路 (162)
7.4.2 双机通信软件编程 (162)
7.4.3 多机通信 (166)
7.5 PC和单片机之间的通信 (167)
7.5.1 通信接口设计 (167)
7.5.2 软件编程 (167)
7.6 串行通信的差错控制编码技术 (170)
7.6.1 差错控制编码的分类 (170)
7.6.2 几种常用的差错控制编码 (170)
7.6.3 CRC检错码查表法的软件
实现 (175)
7.6.4 CRC检错码计算法的软件
实现 (177)
7.7 串行接口应用举例 (178)
本章小结 (187)
【知识拓展与思政元素】协同创新、道路
自信、理论自信、制度自信 (187)
习题7 (187)
第8章 单片机系统扩展 (189)
8.1 程序存储器扩展 (189)
8.1.1 单片机程序存储器概述 (189)
8.1.2 EPROM扩展 (190)
8.1.3 EEPROM扩展 (192)
8.1.4 常用程序存储器芯片 (194)
8.2 数据存储器扩展 (198)
8.2.1 SRAM扩展实例 (198)
8.2.2 外部RAM与I/O口同时
扩展 (200)
8.3 并行I/O口扩展 (201)
8.3.1 简单的I/O口扩展 (202)
8.3.2 可编程并行I/O口芯片扩展 (203)
8.4 扩展实例 (208)
本章小结 (210)
【知识拓展与思政元素】资源调配、善于
借鉴、读书赋能、丰富人生 (211)
习题8 (211)
第9章 单片机接口技术 (213)
9.1 单片机与键盘接口 (213)
9.1.1 键盘工作原理 (213)
9.1.2 独立式键盘 (215)
9.1.3 矩阵式键盘 (215)
9.2 单片机与显示器接口 (218)
9.2.1 LED显示器和接口 (219)
9.2.2 可编程接口芯片INTEL
8279 (228)
9.2.3 LED大屏幕显示 (229)
9.2.4 液晶显示器和接口 (232)
9.3 D/A转换接口 (240)
9.3.1 D/A转换概述 (240)
9.3.2 D/A转换芯片DAC0832 (241)
9.3.3 单缓冲方式的接口与应用 (242)
9.3.4 双缓冲方式的接口与应用 (243)
9.4 A/D转换器接口 (245)
9.4.1 A/D转换器概述 (245)
9.4.2 A/D转换芯片ADC0809 (246)
9.4.3 单片机与ADC0809接口 (247)
9.4.4 应用举例 (248)
9.5 接口技术应用实例 (249)
本章小结 (257)
【知识拓展与思政元素】风险意识、弘扬
传统、不忘初心、牢记使命 (258)
习题9 (258)
第10章 单片机产品设计与开发 (261)
10.1 单片机产品设计步骤 (261)
10.1.1 设计任务及技术指标 (261)
10.1.2 总体方案设计 (261)
10.1.3 产品的硬件设计 (262)
10.1.4 产品的软件设计 (263)
10.1.5 产品调试 (264)
10.2 单片机产品的抗干扰技术 (265)
10.2.1 干扰源及其传播途径 (265)
10.2.2 抗干扰措施的电源设计 (266)
10.2.3 产品的地线设计 (268)
10.2.4 A/D和D/A转换器的抗干扰
措施 (269)
10.2.5 传输干扰 (270)
10.2.6 抗干扰措施的元器件 (271)
10.3 单片机应用系统设计实例 (273)
10.3.1 应用设计实例一—计算机时钟
的设计 (273)
10.3.2 应用设计实例二—交流工
频频率测量 (284)
本章小结 (291)
【知识拓展与思政元素】技术应用、创新
驱动、扬长避短、良性竞争 (291)
习题10 (292)
第11章 基于51核的片上系统简介 (293)
11.1 近年来51系列单片机的最新
发展 (293)
11.2 C8051F简介 (294)
11.2.1 C8051F系列单片机片上
资源 (294)
11.2.2 C8051F系列 CPU (295)
11.2.3 C8051F存储器 (296)
11.2.4 可编程数字I/O口和交叉
开关 (297)
11.2.5 可编程计数器阵列 (299)
11.2.6 多类型串行总线端口 (301)
11.2.7 模/数、数/模转换器 (304)
11.2.8 全速的在线调试接口
(JTAG) (307)
11.3 Cygnal C8051典型应用 (309)
11.3.1 精密混合型 (309)
11.3.2 汽车电子应用 (310)
11.3.3 手持设备、传感器应用 (310)
11.3.4 USB应用 (311)
11.3.5 CAN应用 (311)
11.3.6 低成本应用 (312)
11.3.7 低电压、低功耗系列 (312)
11.3.8 电容触摸传感系列 (313)
本章小结 (313)
【知识拓展与思政元素】问题导向、项目
驱动、职业规划、志存高远 (314)
习题11 (314)
附录A:部分ASCII码表 (315)
附录B:MCS51单片机指令速查表 (316)
附录C:C8051系列单片机SFR表 (321)
参考文献 (323)