本书系统地介绍80C51系列单片机及其应用系统的构成和设计方法,包括单片机系统电路基础、单片机应用系统的研制与开发环境、单片机软件和硬件基础知识、单片机内部资源应用与外部资源的扩展方法等。书中的实例多采用C语言作为编程教学语言,实用性较强。本书中的C语言是针对80C51特有结构描述的,即使无编程基础,也可以通过对本书的学习掌握单片机应用系统的软件设计方法。
本书既可作为非计算机专业本、专科计算机应用系统设计类课程的教材,也可作为从事单片机项目开发与应用的工程技术人员的参考书。
第1章 单片机概论
1.1 微处理器、微型计算机与单片机
1.2 单片机的结构与组成
1.3 单片机的分类和指标
1.4 常用的单片机系列
1.5 单片机的特点
1.6 单片机应用系统
1.7 单片机的应用领域
本章小结
习题1
第2章 单片机系统电路基础
2.1 数制与编码
2.1.1 进位计数制
2.1.2 进位计数制的相互转换
2.1.3 数码和字符的代码表示
2.2 单片机系统常用数字集成电路
2.2.1 常用的逻辑门电路
2.2.2 集电极开路门输出电路
2.2.3 常用组合逻辑电路
2.2.4 常用时序逻辑电路
2.3 单片机系统中的常用存储器电路
2.3.1 RAM存储器
2.3.2 ROM存储器
本章小结
习题2
第3章 单片机应用系统的研制与开发环境
3.1 单片机应用系统的研制步骤和方法
3.1.1 总体设计
3.1.2 硬件电路设计
3.1.3 软件设计
3.2 单片机应用系统开发的软硬件环境
3.2.1 单片机应用系统开发的软硬件环境构成
3.2.2 单片机应用系统开发工具选择原则
3.2.3 使用JTAG界面单片机仿真开发环境
3.2.4 单片机的在线编程
3.3 单片机系统编程语言
3.4 80C51单片机集成开发环境
3.4.1 安装Keil C51和MedWin
3.4.2 MedWin的使用方法
3.4.3 多文件项目的建立、调试和输出
3.5 单片机应用系统软件在线编程方法
3.6 单片机应用系统电路设计环境
本章小结
习题3
第4章 80C51单片机硬件基础知识
4.1 MCS-51系列及80C51系列单片机简介)
4.1.1 MCS-51系列和80C51系列单片机
4.1.2 80C51系列单片机的命名规则
4.1.3 80C51系列单片机的选择特性
4.2 80C51系列单片机外引脚功能
4.3 80C51单片机内部结构
4.3.1 中央处理器CPU
4.3.2 存储器组织
4.3.3 并行输入/输出端口结构
4.3.4 时钟电路
4.3.5 复位电路
4.4 低功耗运行方式
4.4.1 电源控制寄存器PCON
4.4.2 待机方式
4.4.3 掉电方式
4.5 80C51单片机最小系统)
本章小结
习题4
第5章 80C51单片机软件基础知识
5.1 80C51单片机指令系统概述
5.1.1 指令的概念
5.1.2 指令系统说明
5.1.3 80C51指令系统助记符
5.1.4 指令系统中的特殊符号
5.2 80C51单片机寻址方式
5.2.1 寄存器寻址方式
5.2.2 直接寻址方式
5.2.3 寄存器间接寻址方式)
5.2.4 立即寻址方式
5.2.5 变址间接寻址方式
5.2.6 相对寻址方式
5.2.7 位寻址方式
5.3 80C51单片机指令系统
5.3.1 数据传送类指令
5.3.2 算术运算类指令
5.3.3 逻辑运算类指令
5.3.4 控制转移类指令
5.3.5 位操作指令
5.4 80C51汇编语言程序设计
5.4.1 伪指令
5.4.2 汇编语言程序设计举例
5.5 80C51单片机C51程序设计语言
5.5.1 C51的标识符和关键字
5.5.2 C51编译器能识别的数据类型
5.5.3 变量的存储种类和存储器类型
5.5.4 绝对地址的访问
5.5.5 中断服务程序
5.6 C51的运算符和表达式
5.6.1 赋值运算符
5.6.2 算术运算符
5.6.3 关系运算符
5.6.4 逻辑运算符
5.6.5 位运算符
5.6.6 复合运算符
5.6.7 指针和地址运算符)
5.7 C51的库函数
5.7.1 本征库函数和非本征库函数
5.7.2 几类重要的库函数
5.8 C51的应用技巧
本章小结
习题5
第6章 80C51单片机内部资源及应用
6.1 中断系统和外中断
6.1.1 中断技术概述
6.1.2 80C51单片机中断系统
6.1.3 C51中断服务函数
6.1.4 外部中断的应用实例
6.2 定时器/计数器
6.2.1 定时器/计数器0、1的结构及工作原理
6.2.2 定时器/计数器0、1的四种工作方式
6.2.3 定时器/计数器对输入信号的要求
6.2.4 定时器/计数器0、1的编程和应用实例
6.2.5 定时器/计数器2
6.3 串行通信
6.3.1 串行通信基础知识
6.3.2 80C51串行接口
6.3.3 应用实例
本章小结
习题6
第7章 单片机外部扩展资源及应用
7.1 单片机外部扩展资源和扩展编址技术概述
7.1.1 单片机外部扩展资源分类
7.1.2 单片机系统扩展结构与编址技术
7.1.3 单片机系统存储器扩展方法
7.2 并行I/O口扩展
7.2.1 8255可编程并行I/O接口芯片
7.2.2 用74HC系列芯片扩展I/O接口
7.3 大容量闪速存储器Flash的扩展
7.3.1 Super Flash 28SF040A简介
7.3.2 89C52单片机和28SF040A接口方法
7.4 单片机系统中的键盘接口技术
7.4.1 键盘工作原理及消抖
7.4.2 独立式键盘与工作原理
7.4.3 行列式键盘与工作原理
7.4.4 键盘扫描的控制程序
7.5 单片机系统中的显示技术
7.5.1 LED显示器的结构与原理
7.5.2 LED静态显示接口
7.5.3 LED动态扫描显示接口
7.6 可编程键盘/显示器接口芯片8279及应用
7.6.1 8279的内部结构和基本工作原理
7.6.2 8279的引脚、引线及功能说明
7.6.3 8279的命令和状态字)
7.6.4 82C79与89C52单片机接口与编程
7.7 日历时钟接口芯片及应用
7.7.1 并行接口日历时钟芯片DS12887
7.7.2 串行接口日历时钟芯片DS1302
7.8 单片机数据采集系统
7.8.1 串行A/D转换器TLC2543概述
7.8.2 TLC2543与89C52的接口电路
7.8.3 数据采集程序设计
7.9 I2C 总线接口电路EEPROM及应用
7.9.1 串行EEPROM 电路CAT24WCXX概述
7.9.2 串行EEPROM芯片的操作
7.9.3 串行EEPROM芯片与89C52的接口与编程
7.10 RS-232C和 RS-485/422通信接口
本章小结
习题7
第8章 单片机应用系统设计实例
8.1 可编程控制器的硬件组成
8.2 可编程控制器的软件系统
8.3 可编程控制器PC机集成开发环境
8.4 可编程控制器监控程序C51部分源程序清单
本章小结
附录A 单片机选型指南
附录B 单片机及部分常用外围器件
附录C 指令速查表
附录D ASCII码字符集
参考文献
单片机的问世和飞速发展掀起了计算机工程应用的一场新革命,使计算机技术冲破了实验室和机房的界限,广泛地应用于工业控制系统、数据采集系统、自动测试系统、智能仪表和接口以及各类功能模块等广阔的领域。单片机应用系统已经成为实现许多控制系统的常规性工具。我们说,单片机开辟了计算机应用的一个新时代是并不过分的。单片机的发展历史虽然只有短短20年,但由于计算机科学和微电子集成技术的飞速发展,单片机自身也在不断地向更高层次和更大规模发展。世界各大半导体厂商纷至沓来争先挤入这一市场,激烈的市场竞争也促进了单片机迅速更新换代,带来了它们更为广泛的应用。由于单片机应用系统的高可靠性,软、硬件的高利用系数,优异的性能价格比,使它的应用范围由开始传统的过程控制,逐步进入数值处理、数字信号处理以及图像处理等高技术领域。
本书作者长期从事单片机的教学工作,在许多工程与科学研究中大量地采用了单片机控制系统,近年来发表有关单片机应用的科研论文30余篇。本书根据编者多年来教学和开发实践工作的经验,依据目前可能得到的最新技术资料,以80C51系列单片机为背景加以介绍,为单片机应用设计人员提供了这方面的原理和功能描述,从应用设计的角度提供了一些实用的应用要点指导。
本书作为非计算机专业计算机应用系统设计类教材,读者只要具备数字电路和C语言基础知识,通过本书的学习,就可以循序渐进地掌握单片机知识以及单片机应用系统的设计和编程方法。
全书共分8章。第1章介绍单片机、单片机系统和单片机应用系统的组成,常见单片机系列和单片机的应用特点;第2章简要地阐述最主要的数学知识及单片机系统中最基本的单元电路;第3章从实用的角度对单片机应用系统的研制和开发环境做一概要的介绍,使读者对单片机化产品的研制步骤、开发环境和单片机编程语言有一个大概的了解;第4章以80C51系列单片机为背景介绍单片机内部的主要组成部件,包括:存储器结构、并行I/O端口、时钟电路、复位电路,并进一步介绍了80C51单片机最小系统构成方法;第5章以80C51单片机为背景,介绍单片机指令系统、汇编程序设计语言和单片机高级程序设计语言;第6章介绍80C51单片机内部资源中断、定时器/计数器、串行通信接口的使用方法;第7章介绍单片机系统常用的扩展资源的一般设计方法。第8章介绍以80C51系列单片机为核心设计可编程控制器PLC的一个应用实例。
为简化单片机系统编程,增加单片机应用系统程序的可读性和可移植性,单片机的编程也从传统的汇编语言转向C语言编程。为适应这一形势的需要,本教材的大部分程序都采用C语言编程,但了解单片机的寻址方法和指令系统,有助于读者设计更高效的单片机C程序。
单片机应用系统设计是一门实践性很强的课程,许多单片机专业公司提供了廉价的简易单片机学习板,为读者提供了很好的实验平台。本书第8章介绍的可编程控制器也可以作为单片机自学开发板。
本书第1~5、7~8章由张齐编写,第6章由杜群贵编写。
在本书编写过程中,华南理工大学许兴存副教授(审阅第1、2章)、黄钦胜副教授(审阅第3、4章)、周蔼如副教授(审阅第5章)、广东三九智慧电子有限公司陈德锋高级工程师(审阅第6、7章)在百忙之中对本书进行了仔细的审阅并提出许多宝贵的意见。华南理工大学齐德昱教授对本书的编写给予了大力的支持。在本书出版之际,谨向他们致以最诚挚的谢意。
由于编著者水平有限,书中误漏在所难免,敬请读者批评指正(请发邮件至zqcom@126.com)。
编著者
2004年8月