第1章 单片机概述 (1)
1.1 什么叫单片机 (1)
1.2 单片机的特点 (2)
1.3 单片机的发展概况 (2)
1.4 单片机主要制造厂家和机型 (3)
1.5 8位单片机系列介绍 (4)
1.5.1 8051内核的单片机 (4)
1.5.2 Motorola内核的单片机 (8)
1.5.3 PIC内核的单片机 (8)
1.5.4 其他公司8位单片机 (8)
1.6 16位和32位单片机系列介绍 (9)
1.6.1 16位单片机 (9)
1.6.2 32位单片机 (10)
1.7 单片机的发展趋势 (11)
1.8 单片机的应用领域 (13)
1.9 单片机技术主要网站介绍 (14)
本章小结 (14)
练习与思考题 (15)
第2章 8051单片机体系结构 (16)
2.1 8051单片机内部结构 (16)
2.2 8051单片机芯片引脚功能 (18)
2.3 8051中央处理器 (20)
2.3.1 运算器 (20)
2.3.2 控制器 (22)
2.3.3 程序执行过程 (23)
2.4 8051单片机的存储结构 (24)
2.4.1 8051单片机的存储器结构 (24)
2.4.2 程序存储器 (25)
2.4.3 内部数据存储器 (25)
2.4.4 特殊功能寄存器 (28)
2.4.5 外部数据存储器 (30)
2.5 并行输入/输出端口 (31)
2.5.1 P0口结构 (31)
2.5.2 P1口结构 (33)
2.5.3 P2口结构 (33)
2.5.4 P3口结构 (34)
2.6 单片机的时序与复位操作 (35)
2.6.1 时钟电路 (35)
2.6.2 CPU的时序 (36)
2.6.3 复位电路 (38)
2.6.4 复位和复位状态 (40)
2.7 单片机的省电工作模式 (41)
本章小结 (42)
练习与思考题 (42)
第3章 8051单片机指令系统 (44)
3.1 指令系统概述 (44)
3.2 指令格式 (44)
3.2.1 指令的构成 (44)
3.2.2 指令格式 (45)
3.2.3 指令中常用的符号 (45)
3.3 指令系统的寻址方式 (46)
3.4 8051单片机指令系统 (50)
3.4.1 数据传送类指令 (50)
3.4.2 算术操作类指令 (55)
3.4.3 逻辑运算与移位指令 (61)
3.4.4 控制转移类指令 (64)
3.4.5 位操作指令 (69)
本章小结 (71)
练习与思考题 (71)
第4章 单片机汇编语言程序设计 (74)
4.1 汇编语言程序设计概述 (74)
4.1.1 计算机编程语言 (74)
4.1.2 单片机源程序的汇编 (75)
4.1.3 伪指令 (75)
4.1.4 汇编程序分段格式 (78)
4.2 汇编语言程序设计 (79)
4.2.1 基本结构 (79)
4.2.2 汇编语言程序设计步骤 (82)
4.2.3 程序流程图 (82)
4.3 汇编语言程序设计实例 (83)
4.3.1 分支转移程序 (83)
4.3.2 循环程序 (85)
4.3.3 子程序 (86)
4.3.4 算术运算程序 (87)
4.3.5 逻辑运算程序 (89)
4.3.6 数制转换程序 (90)
4.3.7 查表程序 (93)
4.3.8 关键字查找程序 (95)
4.3.9 数据极值查找程序 (96)
4.3.10 数据排序程序 (97)
本章小结 (99)
练习与思考题 (99)
第5章 8051单片机的中断系统 (102)
5.1 中断的概念 (102)
5.2 8051单片机中断系统结构 (103)
5.2.1 中断系统结构 (103)
5.2.2 中断源 (103)
5.2.3 中断的控制(IE、IP) (105)
5.3 中断响应处理过程 (108)
5.3.1 中断响应条件 (108)
5.3.2 外部中断响应时间 (108)
5.3.3 中断请求的撤销 (109)
5.3.4 中断返回 (109)
5.3.5 中断服务程序编程方法 (110)
5.4 外部中断扩充方法 (111)
5.4.1 中断和查询结合法 (111)
5.4.2 矢量中断扩充法 (112)
5.5 中断系统软件设计 (113)
5.6 中断系统应用实例 (114)
本章小结 (117)
练习与思考题 (117)
第6章 8051单片机定时器/计数器
及其应用 (119)
6.1 8051单片机定时器/计数器的
结构 (119)
6.1.1 工作方式控制寄存器
TMOD (119)
6.1.2 定时器/计数器控制
寄存器TCON (120)
6.2 定时器/计数器的工作方式 (120)
6.2.1 方式0 (120)
6.2.2 方式1 (121)
6.2.3 方式2 (121)
6.2.4 方式3 (122)
6.3 定时器/计数器的编程 (123)
6.3.1 定时器/计数器的初始化 (123)
6.3.2 定时器/计数器的编程
实例 (124)
6.4 定时器/计数器的应用实例 (127)
6.4.1 门控位GATE的应用 (127)
6.4.2 简易实时时钟设计 (128)
6.4.3 读定时器/计数器 (130)
6.4.4 用定时器/计数器作
外部中断 (130)
本章小结 (131)
练习与思考题 (131)
第7章 8051单片机串行口及其应用 (133)
7.1 单片机串行口结构 (133)
7.1.1 串行口的结构 (133)
7.1.2 串行口控制寄存器SCON (134)
7.1.3 特殊功能寄存器PCON (134)
7.2 串行口的工作方式 (135)
7.2.1 方式0 (135)
7.2.2 方式1 (136)
7.2.3 方式2和方式3 (136)
7.3 单片机串行通信波特率 (137)
7.3.1 波特率的定义 (137)
7.3.2 波特率的计算 (137)
7.4 串行口的编程应用 (138)
7.4.1 串行口做串/并转换 (139)
7.4.2 串行口双机通信接口 (139)
7.4.3 串行口多机通信接口 (141)
本章小结 (142)
练习与思考题 (142)
第8章 STC15系列单片机技术应用 (144)
8.1 STC15系列单片机性能特点 (144)
8.2 STC15系列单片机体系结构 (145)
8.3 STC15系列单片机内部存储器 (147)
8.3.1 STC15系列单片机内部
存储器的使用 (147)
8.3.2 单片机ISP/IAP技术 (150)
8.4 STC15系列单片机输入/
输出口 (153)
8.5 STC15系列单片机中断系统 (154)
8.5.1 中断系统结构 (155)
8.5.2 中断控制寄存器 (156)
8.5.3 中断系统应用程序设计 (158)
8.6 STC15系列单片机定时器/
计数器 (159)
8.6.1 定时器/计数器的控制
寄存器 (159)
8.6.2 定时器/计数器的
工作方式 (160)
8.6.3 定时器/计数器的
编程应用 (160)
8.7 STC15系列单片机串行通信 (161)
8.7.1 STC15系列单片机串行
通信口 (162)
8.7.2 SPI同步串行外围接口 (164)
8.8 STC15系列单片机片上A/D
转换器 (169)
8.8.1 片上A/D转换器原理 (169)
8.8.2 片上A/D转换器的使用 (171)
8.9 STC15系列单片机片上
PCA/PWM模块 (172)
8.9.1 PCA/PWM模块
工作原理 (172)
8.9.2 CCP/PCA模块的
工作模式 (176)
8.9.3 CCP/PCA模块编程使用 (179)
8.10 STC15系列单片机的时钟
系统与节电模式 (182)
8.10.1 主时钟和系统时钟 (183)
8.10.2 看门狗工作原理及应用 (183)
8.10.3 STC15系列单片机
节电模式 (185)
8.11 STC系列单片机ISP编程 (187)
8.11.1 ISP编程典型电路 (187)
8.11.2 ISP编程下载软件 (188)
本章小结 (190)
练习与思考题 (190)
第9章 单片机系统的扩展 (191)
9.1 单片机系统扩展概述 (191)
9.2 单片机系统总线的构造 (192)
9.2.1 单片机系统总线 (192)
9.2.2 单片机系统三总线的
构造 (193)
9.3 单片机系统的三总线
接口应用 (193)
9.3.1 外部并行器件的扩展 (193)
9.3.2 地址空间分配与编址 (194)
9.3.3 单片机扩展存储器的
接口设计 (195)
9.4 I/O端口扩展与设计 (198)
9.4.1 I/O接口概述 (198)
9.4.2 TTL电路扩展并行I/O口 (199)
9.5 串行总线的扩展应用 (202)
9.5.1 I2C总线结构与
工作原理 (202)
9.5.2 I2C总线的时序 (204)
9.5.3 I2C总线上的数据
传输格式 (205)
9.5.4 I2C总线的信号模拟与
编程技术 (207)
9.6 I2C总线器件的接口应用 (209)
9.6.1 串行E2PROM存储器
接口应用 (209)
9.6.2 串行日历时钟芯片的
接口应用 (215)
9.7 1/2/3Wire总线器件的
接口应用 (220)
9.7.1 单线制串行总线器件 (220)
9.7.2 双线制、三线制串行
总线器件 (226)
9.8 SPI总线器件的接口应用 (229)
9.8.1 ISD4004语音录/放电路 (229)
9.8.2 ISD4004的工作时序 (230)
9.8.3 ISD4004接口电路与
编程应用 (231)
本章小结 (233)
练习与思考题 (234)
第10章 单片机与键盘、显示器、
打印机的接口设计 (236)
10.1 单片机与键盘的接口 (236)
10.1.1 键盘的工作原理 (236)
10.1.2 键盘的接口方式 (237)
10.1.3 键盘扫描工作方式 (243)
10.1.4 键盘接口及应用 (244)
10.2 单片机与显示器接口设计 (245)
10.2.1 显示器结构与
工作原理 (246)
10.2.2 LED数码显示方式与
接口电路设计 (248)
10.2.3 专用显示驱动芯片
接口设计 (250)
10.3 单片机与键盘/显示器
接口设计 (255)
10.3.1 用串行接口设计键盘/
显示电路 (255)
10.3.2 ZLG7290键盘/显示器
接口设计 (257)
10.4 单片机与液晶显示器的
接口设计 (263)
10.4.1 液晶显示器类型与
工作原理 (263)
10.4.2 字符型液晶显示器
接口设计 (264)
10.4.3 点阵图形液晶显示器
接口设计 (268)
10.5 单片机与微型打印机的
接口设计 (271)
10.5.1 MP-D16微型打印机的
接口电路设计 (271)
10.5.2 MP-D16微型打印机的
使用 (272)
本章小结 (274)
练习与思考题 (274)
第11章 单片机与A/D、D/A转换器的
接口设计 (276)
11.1 A/D转换器的接口设计 (276)
11.1.1 A/D转换器概述 (276)
11.1.2 单片机与AD574的并行
接口设计 (279)
11.1.3 单片机与串行A/D转换器
MCP3202接口设计 (283)
11.1.4 单片机与MC14433
接口设计 (287)
11.2 D/A转换器接口设计 (290)
11.2.1 D/A转换器概述 (290)
11.2.2 DAC0832的功能特性 (292)
11.2.3 DAC0832与单片机并行
接口设计 (295)
11.2.4 单片机与串行D/A转换器
AD7543接口设计 (298)
11.3 单片机与V/F转换器
接口设计 (301)
11.3.1 V/F转换器实现A/D
转换的原理 (301)
11.3.2 V/F转换器的接口方法 (302)
11.3.3 V/F转换器与单片机的
接口设计及应用 (303)
本章小结 (306)
练习与思考题 (306)
第12章 单片机C51程序设计 (307)
12.1 C51概述 (307)
12.2 C51数据结构和语法 (307)
12.2.1 常量与变量 (307)
12.2.2 整型变量与字符型变量 (308)
12.2.3 关系运算符和关系
表达式 (310)
12.2.4 逻辑运算符和逻辑
表达式 (310)
12.3 C51流程控制语句 (310)
12.3.1 if语句 (311)
12.3.2 switch语句 (311)
12.3.3 for语句 (312)
12.3.4 while语句 (313)
12.3.5 do-while语句 (313)
12.3.6 其他语句 (313)
12.4 C51构造数据类型 (314)
12.4.1 结构体 (314)
12.4.2 共用体 (315)
12.4.3 指针 (316)
12.4.4 typedef类型定义 (316)
12.5 C51和标准C语言的异同 (317)
12.5.1 Keil C51数据类型 (317)
12.5.2 8051的特殊功能
寄存器 (317)
12.5.3 8051的存储类型 (317)
12.5.4 Keil C51的指针 (319)
12.5.5 Keil C51的使用 (320)
12.5.6 C51关键字 (321)
12.6 C51硬件编程 (322)
12.6.1 8051的I/O接口编程 (322)
12.6.2 8051的定时器编程 (323)
12.6.3 8051的中断服务 (324)
12.6.4 8051的串行口编程 (325)
12.7 C51与汇编语言的混合编程 (326)
12.8 C51程序设计实例 (330)
本章小结 (333)
练习与思考题 (333)
第13章 单片机应用系统设计 (334)
13.1 单片机应用系统设计的
基本原则 (334)
13.2 单片机应用系统设计及
开发过程 (334)
13.3 单片机应用系统设计的
基本结构 (336)
13.4 单片机应用系统
设计实例 (337)
13.4.1 系统任务设计 (337)
13.4.2 系统设计方案 (338)
13.4.3 系统整体电路设计 (339)
13.4.4 系统软件设计 (339)
本章小结 (345)
练习与思考题 (345)
第14章 Proteus电路设计与
仿真技术 (346)
14.1 Proteus快速入门 (346)
14.1.1 Proteus工作界面 (346)
14.1.2 Proteus ISIS软件
基本操作 (349)
14.2 Proteus电路原理图设计 (351)
14.2.1 元器件选取与放置 (351)
14.2.2 电路连线设计 (351)
14.3 Proteus电路仿真 (352)
14.3.1 单片机源代码生成
与编译 (352)
14.3.2 目标文件装载与仿真 (353)
14.4 Keil与Proteus的协同仿真 (353)
本章小结 (354)
练习与思考题 (354)
第15章 单片机实验与指导 (355)
15.1 单片机实验系统设计 (355)
15.1.1 单片机应用开发板结构 (355)
15.1.2 单片机应用开发板
电路设计 (355)
15.2 实验1 选择排序法编程 (358)
15.3 实验2 多字节数的
除法编程 (359)
15.4 实验3 定时器/计数器的
使用 (362)
15.5 实验4 外部中断的使用 (365)
15.6 实验5 可控交通灯实现 (367)
15.7 实验6 键盘与数码显示 (371)
15.8 实验7 A/D转换 (373)
15.9 实验8 D/A转换 (376)
15.10 实验9 XL12864图形液晶
显示器的使用 (378)
附录A 8051单片机指令表 (381)
附录B ASCII码与控制字符功能 (384)
参考文献 (386)