本书从实际应用出发,以AT89C51为蓝本,以C语言为主要编程语言,讲解了单片机原理与应用。书中也兼顾讲解汇编语言,主要目的是帮助对单片机原理的理解。本书力图从以前单片机教材纠缠具体单片机原理的解析上解脱出来,着重讲解单片机各种功能的应用,以及如何用C程序实现要求的功能。本书适合作为普通高等学校的工学/电气信息类本科专业的教材,也可以作为相关专业工程技术人员的技术参考书。
适读人群 :本书适合作为普通高等学校的工学/电气信息类本科专业的教材,也可以作为相关专业工程技术人员的技术参考书。
以AT89C51为蓝本,以C语言为主要编程语言,讲解了单片机原理与应用。书中也兼顾讲解汇编语言。
前言
本书力图从之前的单片机教材纠缠于具体单片机原理的解析上解脱出来,着重讲解单片机各种功能的应用。本书的重点既不是AT89C51硬件原理的细节,也不是软件语法编程技巧,而是如何使用AT89C51的功能;如何针对应用需要,用C程序实现要求的功能。本书也介绍汇编指令,但仅仅是为了帮助读者加深对硬件及单片机工作原理的了解,因此对汇编语言仅作少量介绍,第6章以后所有例子都以C语言为主。
本书不再介绍8255、8279等芯片的应用,避免纠结于对芯片应用的具体细节。对于程序存储器的扩展也一带而过。书中的所有程序举例均调试通过,应用实例也在硬件和软件上调试无误。
本书以AT89C51为基础,如果书中出现MCS-51的字样,则表明对所有MCS-51内核的单片机均适用,具体的示例中一般使用AT89C51或AT89S51。
本书的第1版自2008年发行以来,许多读者对书中的错误和内容给出了指正,结合近几年使用该书作为教材进行的教学实践,对全书的内容、书后的习题进行了重新梳理,修订了错误,增添了部分内容。
本书由杭和平、邵明刚共同在第1版的基础上修订和编写,杭和平负责了第1、2、3、4、9、10章;邵明刚负责第5、6、7、8章。
本书在编写过程中参考了大量单片机方面的教材和技术书籍,力求编写出一本实用性强、重点突出、容易学习的教材。由于编者水平所限、时间仓促,其中难免有错误之处,恳请读者提出有益建议。
编者
目录
前言
第1章单片机的基础知识
1.1单片机概述
1.1.1单片机的结构与组成
1.1.2单片机的分类和指标
1.1.3MCS-51单片机及其兼容产品
1.2其他常用单片机系列
1.2.1Microchip的PIC系列单片机
1.2.2TI公司的超低功耗型MSP430系列单片机
1.2.3Atmel公司的AVR系列单片机
1.2.4ADI公司的ADuC8XX系列单片机
1.2.5飞思卡尔公司的HCS12X系列单片机
1.2.6ST公司的STM32FXXX系列单片机
1.3单片机的特点及应用领域
1.3.1单片机的特点
1.3.2单片机的应用领域
1.4一个单片机的简单应用系统
1.4.1单片机的I/O电平
1.4.2单片机电路中晶体管的应用
1.4.3单片机的一个简单应用系统
1.5单片机的数制与编码
1.5.1进位计数制
1.5.2进位计数制的相互转换
1.5.3二进制数和十六进制数的运算
1.5.4数码和字符的代码表示
习题1
第2章AT89C51单片机的结构
2.1AT89C51单片机的内部结构及引脚功能
2.1.1AT89C51单片机的内部结构
2.1.2AT89C51单片机的引脚功能
2.2AT89C51单片机的存储器配置
2.2.1AT89C51存储器配置的特点
2.2.2AT89C51的程序存储器
2.2.3AT89C51低128B的片内数据存储器
2.2.4AT89C51的特殊功能寄存器
2.2.5AT89C51的片外数据存储器
2.2.6AT89C52的存储器配置
2.3AT89C51的时钟电路与CPU时序
2.3.1AT89C51的时钟电路
2.3.2单片机时序
2.4AT89C51复位与复位电路
2.5AT89C51单片机的最小系统
习题2
第3章MCS-51单片机的指令系统
3.1指令系统基本概念
3.1.1指令系统概述
3.1.2指令格式
3.1.3寻址方式
3.2指令系统
3.2.1数据传送类指令
3.2.2算术运算类指令
3.2.3逻辑运算及位移指令
3.2.4位操作类指令
3.2.5控制转移类指令
习题3
第4章单片机的C51编程语言
4.1C51编程语言概述
4.1.1C51语言编程与汇编语言编程相比的优势
4.1.2单片机C51与PC上的标准ANSl C编译器的主要区别
4.1.3C51的开发过程
4.2C51的标识符和关键字
4.3C51的变量与数据类型
4.3.1常量与变量
4.3.2数据类型
4.3.3变量的存储器类型
4.3.4存储器模式
4.3.5C51语言中的特殊数据类型
4.4C51语言的数组、指针与结构
4.4.1数组与指针
4.4.2对绝对地址进行访问
4.5C51的运算符和表达式
4.6C51语言的程序结构
4.6.1顺序结构
4.6.2选择结构
4.6.3循环结构
4.7C51语言的函数
4.8中断服务程序
4.9C51的预处理
4.9.1宏定义
4.9.2包含文件
4.9.3条件编译命令
4.10C51的库函数
4.10.1本征库函数
4.10.2常用库函数介绍
4.11使用C51编译器时的注意事项
习题4
第5章MCS-51单片机的程序设计
5.1程序设计基本方法
5.1.1单片机程序设计语言
5.1.2程序设计步骤
5.1.3程序流程图
5.2汇编语言程序设计的基本概念
5.2.1MCS-51伪指令
5.2.2汇编语言程序的格式
5.2.3汇编语言程序的汇编
5.3单片机汇编语言与C51语言的程序设计
5.3.116位加减法程序
5.3.2顺序程序
5.3.3分支程序
5.3.4循环程序
5.3.5查表程序
5.3.6散转程序
5.3.7子程序
习题5
第6章MCS-51单片机的中断系统与定时/计数器
6.1中断系统
6.1.1概述
6.1.2AT89C51中断系统
6.1.3中断应用实例
6.2定时/计数器及应用
6.2.1定时/计数器0、1 的结构及工作原理
6.2.2定时/计数器0、1 的四种工作方式
6.2.3定时/计数器0、1的应用
6.2.4AT89C52定时/计数器2的结构
6.2.5AT89C52定时/计数器2的工作方式
习题6
第7章MCS-51单片机串行通信及其应用
7.1串行通信概述
7.1.1并行通信和串行通信
7.1.2异步通信和同步通信
7.1.3单片机串行通信传输方式
7.1.4串行数据通信的传输速率
7.2MCS-51串行口
7.2.1MCS-51串行口的结构
7.2.2MCS-51串行口控制寄存器
7.2.3MCS-51串行口的工作方式及波特率计算
7.3串行通信协议
7.3.1RS-232协议
7.3.2RS-485协议
7.3.3串行通信的数据校验
7.4串行通信的应用
习题7
第8章MCS-51单片机接口电路
8.1单片机接口电路概述
8.2人机接口
8.2.1LED接口
8.2.2键盘接口
8.2.3蜂鸣器接口
8.3数字I/O接口
8.3.1光电隔离接口
8.3.2功率输出(继电器)接口
8.4串行接口
8.4.1单片机和PC通信
8.4.2串行口通信应用及实例
8.4.3I2C接口存储芯片的应用
8.4.4SPI串行总线应用及实例
习题8
第9章MCS-51单片机总线系统与I/O口扩展
9.1单片机扩展总线概述
9.1.1片外总线扩展结构
9.1.2三总线扩展的方法
9.1.3AT89CX系列单片机的片内存储容量
9.2MCS-51单片机I/O口扩展及编址技术
9.2.1单片机I/O口扩展
9.2.2AT89C51单片机总线扩展的编址技术
9.3MCS-51存储器扩展技术
9.3.1AT89C51单片机的数据存储器扩展
9.3.2AT89C51单片机的程序存储器扩展
习题9
第10章AT89C51单片机应用实例
10.1单片机系统设计方法
10.2温度采集与显示系统的设计
10.2.1温度采集与显示系统原理
10.2.2一总线(1-Wire)数字温度传感器DS18B20
10.2.3AT89C51单片机与DS18B20的接口
10.2.4AT89C51单片机读取DS18B20温度值的编程
10.2.5显示驱动芯片MAX7219
10.2.6AT89C51单片机与MAX7219的接口与编程
10.2.7温度的采集处理与显示程序
习题10
附录
附录AMCS- 51指令简表