本书以Intel 8051单片机为例,介绍了单片机的硬件结构和工作原理(定时/计数器、中断系统、串行通信)、指令系统以及单片机和外围器件的硬件扩展和接口程序设计。随着EDA技术和C语言在单片机系统设计中的广泛应用,为了增强本书的应用性和实用性,还特别介绍了Keil C51程序设计方法和基于Proteus软件的单片机虚拟仿真技术,并给出了大量的应用实例。《单片机原理、应用与Proteus仿真 第2版》内容精练、实例丰富,所有的应用实例都配有详细的硬件电路原理图和软件源程序。
本书可作为各类工科院校自动化、计算机、机电一体化等专业的单片机课程教材,也可作为从事电子技术、计算机应用与开发的工程技术人员学习和参考用书。
适读人群 :工科院校自动化、计算机、机电一体化等专业学生
内容精练、实例丰富,所有的应用实例都配有详细的硬件电路原理图和软件源程序。
每章设置了“知识与拓展”小节,方便读者了解相关基础知识,并进行简单的拓展学习。
所有源程序都在Proteus和实际硬件电路中仿真和运行通过,读者可以直接参考和借鉴。
单片机作为微型计算机的一个重要发展分支,被广泛应用于各种工业过程的自动检测和控制。单片机的发展速度非常迅速,在短短几十年中,已经发展到上百系列近千个机种。MCS-51系列单片机作为单片机的典型代表,以其功能强大,结构简单等优点,在单片机市场中占有很大的份额。《单片机原理、应用与Proteus仿真 第2版》以简单的单片机来说明复杂的单片机系统设计,以Intel 8051单片机为例,从单片机实际应用的角度来说明单片机的原理及应用。
《单片机原理、应用与Proteus仿真 第2版》共分为11章。第1章介绍单片机基础知识,包括单片机发展概述,单片机内部结构和功能引脚,并行口工作原理和单片机开发与调试等基本知识。第2章介绍单片机指令系统和汇编语言,包括寻址方式,指令介绍,指令执行过程和汇编语言程序结构等。第3章介绍Keil C51程序设计,包括单片机C语言程序设计概述,C51程序设计基础,以及单片机资源C51访问。第4章介绍 Proteus 虚拟仿真技术,包括 Proteus 中的原理图设计、电子设计与仿真以及单片机系统的设计与仿真。第5章介绍中断系统,包括中断的处理和中断程序设计,Proteus 中的外部中断设计与仿真。第6章介绍定时/计数器,包括定时/计数器的基本工作原理,定时/计数器的工作方式及其设置,最后在 Proteus 中进行了实例设计与仿真。第7章介绍串行通信技术,包括串行通信的基本概念,串行口的结构、控制和工作方式,并给出了双机通信应用实例。第8章介绍单片机的存储器扩展,包括存储器扩展和I/O端口的基本应用与扩展。第9章介绍单片机系统接口扩展及应用,包括人机接口的键盘和显示接口扩展,以及模拟量输入/输出接口扩展。第10章介绍单片机串行扩展和功率接口技术,主要包括单总线、SPI总线接口技术以及常用的功率接口技术等,给出了具体的应用实例。第11章介绍在Proteus 中进行综合应用实例的设计和仿真。
为了适应不同层次读者的需求,《单片机原理、应用与Proteus仿真 第2版》第1~7章介绍单片机内部基本组成,设置了“知识与拓展”小节,方便读者了解相关基础知识,并进行简单的拓展学习。第5~7章中介绍的单片机内部主要功能部件的应用实例,分别给出了汇编语言和C语言源程序,可满足不同的教学需求。同时为了兼顾篇幅和实际应用需求,第8~11章的应用实例只给出了C语言源程序。《单片机原理、应用与Proteus仿真 第2版》中给出的所有源程序都在Proteus和实际硬件电路中仿真和运行通过,读者可以直接参考和借鉴。
《单片机原理、应用与Proteus仿真 第2版》部分图中的元器件符号为 Proteus 自带符号,表示方法可能与国家标准有所不同。读者可自行查阅相关资料。
《单片机原理、应用与Proteus仿真 第2版》第1章、第4章、第8章由潘凤红编写,第2章、第3章和第11章由伦向敏编写,第5章、第6章和第7章由关硕编写,第9章、第10章由兰建军编写,全书由兰建军统稿。
《单片机原理、应用与Proteus仿真 第2版》在编写过程中,参考了兄弟院校部分教材的内容,得到了相关院校老师的支持和帮助,在此谨向有关单位和个人表示衷心的感谢!
由于编者水平有限,加之时间仓促,书中难免存在不妥和疏漏之处,敬请广大读者提出批评和指正。
前言
第1章单片机技术基础
1.1单片机概述
1.1.1单片机定义
1.1.2单片机特点和应用
1.1.3单片机技术的发展
1.1.4 MCS-51单片机系列
1.1.5单片机选型
1.2单片机内部结构
1.2.1 CPU
1.2.2存储器结构
1.2.3 I/O接口
1.3 8051引脚及其功能
1.3.1电源与时钟引脚
1.3.2控制引脚
1.3.3 I/O接口引脚
1.4并行口内部结构和工作原理
1.4.1 P0口
1.4.2 P1口
1.4.3 P2口
1.4.4 P3口
1.4.5并行端口负载能力
1.5时钟电路与时序
1.5.1时钟电路
1.5.2周期与指令时序
1.6单片机工作方式
1.6.1单片机复位方式
1.6.2程序运行方式
1.6.3掉电保护方式
1.6.4低功耗方式
1.7单片机应用系统开发简介
1.7.1单片机应用系统设计步骤
1.7.2单片机开发工具简介
1.8知识与拓展
1.8.1计算机数制及其转换
1.8.2有符号数的表示方法
1.8.3 BCD码与ASCII码
1.9思考题
第2章指令系统和汇编语言
2.1概述
2.1.1指令格式
2.1.2指令描述符号说明
2.2寻址方式
2.2.1寄存器寻址
2.2.2直接寻址
2.2.3立即寻址
2.2.4寄存器间接寻址
2.2.5基址加变址寻址
2.2.6相对寻址
2.2.7位寻址
2.3指令分类介绍
2.3.1数据传送指令
2.3.2算术运算指令
2.3.3逻辑操作指令
2.3.4控制转移指令
2.3.5位操作指令
2.4指令执行过程
2.5常用伪指令
2.6汇编语言程序基本结构
2.7知识与拓展
2.7.1单片机的简单控制应用
2.7.2汇编语言实用子程序
2.8思考题
第3章单片机C51程序设计
3.1单片机C语言程序设计概述
3.1.1C51程序设计语言简介
3.1.2 Keil C51开发环境简介
3.2 C51程序设计基础
3.2.1 C51中的数据类型
3.2.2 C51中的常量和变量
3.2.3 C51中的运算符
3.2.4 C51程序基本结构
3.3单片机硬件资源的C51访问
3.4 C51和汇编语言混合编程
3.4.1 C51和汇编语言编程比较和说明
3.4.2 C51和汇编语言混合编程方法
3.5知识与拓展
3.5.1 C51延时时间计算方法
3.5.2 C51访问连续外部RAM区域的方法
3.6思考题
第4章单片机与Proteus虚拟仿真
4.1 Proteus概述与工程创建
4.1.1 Proteus介绍
4.1.2创建新工程
4.2 ISIS编辑环境
4.2.1 ISIS集成环境
4.2.2 ISIS元器件库
4.2.3 ISIS中的原理图绘制
4.2.4虚拟仿真工具
4.3代码编辑环境
4.3.1代码编辑环境应用简介
4.3.2代码工程创建与删除
4.3.3代码工程构建与设置
4.3.4代码调试与观察
4.4 Proteus中的电子设计与仿真
4.4.1直流稳压电源设计
4.4.2光控LED小夜灯设计
4.4.3数字钟设计
4.5 Proteus中的单片机系统设计与仿真
4.5.1硬件设计及说明
4.5.2程序设计及仿真
4.6知识与拓展
4.6.1 ISIS中元器件的创建
4.6.2 ARES中元器件封装的创建
4.7思考题
第5章单片机中断系统
5.1中断技术概述
5.2 8051中断系统结构及其控制
5.2.1中断系统结构
5.2.2中断源及中断标志
5.2.3中断控制和中断处理
5.3外部中断的实现
5.3.1外部中断触发方式
5.3.2多中断源系统硬件扩展
5.4中断系统程序设计
5.4.1中断程序基本结构
5.4.2中断初始化程序设计
5.4.3中断服务子程序设计
5.5单片机LED显示模式控制设计实例
5.6知识与拓展
5.6.1利用外部中断实现脉冲计数
5.6.2多中断源时中断优先级配置
5.7思考题
第6章定时/计数器
6.1定时/计数器工作原理及其控制
6.1.1内部结构和工作原理
6.1.2功能及其控制
6.2定时/计数器工作方式及其设置
6.2.1工作方式及其特点
6.2.2定时/计数器配置及初始化
6.2.3扩大定时时间方法
6.3单片机LED亮度控制系统设计实例
6.4知识与拓展
6.4.1简易方波频率测量原理
6.4.2定时/计数器实现软件“看门狗”原理
6.5思考题
第7章单片机串行口
7.1串行通信概述
7.2 8051单片机串行口结构
7.2.1串行口通信接口结构
7.2.2串行通信控制寄存器
7.3串行口的工作方式及波特率设定
7.3.1工作方式0
7.3.2工作方式1
7.3.3工作方式2
7.3.4工作方式3
7.3.5波特率计算
7.4多机通信原理
7.5单片机的双机通信应用实例
7.5.1串行通信接口电路
7.5.2双机通信系统软件设计
7.6知识与拓展
7.6.1串、并转换扩展与实现
7.6.2基于串口蓝牙模块的无线通信实例
7.7思考题
第8章单片机存储器扩展
8.1存储器概述
8.1.1半导体存储器简介
8.1.2典型存储器芯片介绍
8.2并行存储器扩展
8.2.1存储器的扩展和地址译码
8.2.2并行存储器扩展实例
8.3串行存储器扩展
8.3.1 I2C接口存储器扩展
8.3.2 SPI接口存储器扩展
8.4思考题
第9章单片机系统接口扩展及应用
9.1键盘接口扩展
9.1.1按键识别与处理
9.1.2独立式键盘原理与接口
9.1.3行列式键盘原理与接口
9.1.4利用独立式按键实现4路抢答器
9.2显示接口扩展
9.2.1 LED数码管工作原理
9.2.2 LED数码管显示接口
9.2.3利用74LS164实现2位静态显示电路
9.2.4利用MAX7219实现4位动态显示电路
9.2.5 LCD模块概述
9.2.6利用LCD1602实现字符显示
9.2.7利用LCM1264ZK实现汉字显示
9.3模拟量输入/输出接口扩展
9.3.1模拟量输入/输出接口概述
9.3.2 D-A转换器概述
9.3.3利用DAC0832实现锯齿波信号发生器
9.3.4 A-D转换器概述
9.3.5利用ADC0808实现模拟量采集
9.4思考题
第10章串行扩展和功率接口技术
10.1单片机串行扩展技术
10.1.1单总线技术概述
10.1.2 DS18B20单总线测温应用实例
10.1.3三线SPI总线概述
10.1.4 DS1302实时时钟应用实例
10.2单片机功率接口技术
10.2.1开关型功率接口概述
10.2.2单片机功率晶体管接口应用实例
10.2.3单片机继电器接口应用实例
10.2.4单片机晶闸管接口应用实例
10.3思考题
第11章虚拟仿真综合设计实例
11.1单片机多功能秒表设计与仿真
11.1.1多功能秒表电路设计
11.1.2多功能秒表程序设计
11.1.3多功能秒表调试与仿真
11.2单片机直流电动机调速系统设计与仿真
11.2.1直流电动机调速系统电路设计
11.2.2直流电动机调速系统程序设计
11.2.3直流电动机调速系统调试与仿真
11.3单片机多功能电子日历设计与仿真
11.3.1多功能电子日历电路设计
11.3.2多功能电子日历程序设计
11.3.3多功能电子日历调试与仿真
11.4单片机自动抽油烟机设计与仿真
11.4.1自动抽油烟机电路设计
11.4.2自动抽油烟机程序设计
11.4.3自动抽油烟机调试与仿真
附录
附录A常用字符与ASCII码对照表
附录BMCS-51系列单片机指令表