197

Click here to load reader

单片机原理与应用 (多学时)

  • Upload
    chinara

  • View
    112

  • Download
    10

Embed Size (px)

DESCRIPTION

单片机原理与应用 (多学时). 第 5 章 定时器和计数器. 第 3 章  指令系统. 第 2 章 MCS-51 单片机的基本结构. 第 6 章 MCS-51 单片机的中断系统. 第 10 章  单片机应用系统设计. 第 9 章  接口技术. 第 7 章 串行口. 第 4 章  汇编语言程序设计. 第 8 章  单片机系统的扩展. 第 1 章 计算机基础知识. 单片机原理与应用 (多学时). 1 . 3. 1 . 2. 1 . 1. 计算机中的数制和编码. 计算机的基本结构及工作原理. 单片机的基本概念. 第1章  计算机基础知识. 返回. - PowerPoint PPT Presentation

Citation preview

Page 1: 单片机原理与应用 (多学时)

单片机原理与应用(多学时)

Page 2: 单片机原理与应用 (多学时)

单片机原理与应用(多学时)

第1章 计算机基础知识

第5章 定时器和计数器

第4章 汇编语言程序设计

第3章 指令系统

第2章 MCS-51单片机的基本结构

第6章 MCS-51单片机的中断系统

第10章 单片机应用系统设计

第9章 接口技术

第8章 单片机系统的扩展

第7章 串行口

Page 3: 单片机原理与应用 (多学时)

返回返回

第 1 章 计算机基础知识

计算机中的数制和编码 1.1

计算机的基本结构及工作原理 1.2

单片机的基本概念 1.3

Page 4: 单片机原理与应用 (多学时)

1.1.1  计算机中数据存储的组织形式  在计算机内部所有的数据,无论是程序还是图像都是以二进制形式存放的。现在介绍计算机中数据的组织形式。1. 位( bit )2. 字节( Byte ) 3. 字( word )4. 字长

1.1  计算机中的数制和编码

第 1 章 计算机基础知识

Page 5: 单片机原理与应用 (多学时)

  1.1.2 字符的二进制编码

字符是计算机的主要处理对象,这里的字符包括西文字符(字母、数字、符号等)和中文字符。由于计算机中的数据都是采用二进制的方式进行存放和处理的,因此字符也只有按照这个规律进行二进制编码才能进入计算机。由于西文和中文字符的形式不同,所以使用的编码有很大的不同。

第 1 章 计算机基础知识

1.1  计算机中的数制和编码

Page 6: 单片机原理与应用 (多学时)

  1.1.3 进位计数制

按进位的原则进行计算的方法称为进位计数制。人们平时用得最多的是十进制,而计算机中存放的是二进制数,为了方便使用,同时还引入了八进制和十六进制。在一种数制中,只能使用一组固定的数字符号表示数目的大小,具体使用多少个数字或符号就称为该数制的基数。例如,十进制的基数是 10 ,二进制的基数是 2 。而数制中每一固定位置对应的单位值称为权。

第 1 章 计算机基础知识

1.1  计算机中的数制和编码

Page 7: 单片机原理与应用 (多学时)

1.1.4 编码 计算机处理的信息都是以二进制数码的形式存在的。但人们编制程序、识别处理结果时,输入输出的信息通常都采用英文字母、阿拉伯数字和各种常用的符号。 它们只有用特定的二进制形式来表示才能被计算机所识别,这种用二进制形式表示的数据就是二进制编码。

第 1 章 计算机基础知识

1.1  计算机中的数制和编码

Page 8: 单片机原理与应用 (多学时)

一个完整的计算机系统由硬件系统和软件系统两部分组成。 硬件系统是组成计算机的物理设备的总称,它由各种器件和电子线路组成,是计算机完成计算工作的物质基础。 软件系统是在计算机硬件设备上运行的各种程序及相关的数据总称。硬件系统是支撑软件运行的物质基础,没有足够的硬件支持,软件就无法正常工作。软件不仅提高了机器的效率、扩展了硬件功能,也方便了用户使用。没有软件的计算机称为裸机,裸机是无法工作的。 硬件系统和软件系统在计算机系统中相辅相承缺一不可,它们的有机结合才是一个完整的计算机系统。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 9: 单片机原理与应用 (多学时)

1.2.1 计算机系统的组成原理

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

冯 · 诺依曼的主要贡献包括:( 1 )计算机有 5 个基本组成

部分:运算器、控制器、存储器、输入设备和输出设备。( 2 )采用存储程序控制的方

式,( 3 )计算机内部数据组织采

用二进制编码方式。

Page 10: 单片机原理与应用 (多学时)

1.2.2 硬件系统

冯·诺依曼提出的计算机“存储程序控制”的工作原理决定了计算机由 5 部分组成:运算器、控制器、存储器、输入设备和输出设备。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 11: 单片机原理与应用 (多学时)

第 1 章 计算机基础知识

返回返回1.2  计算机的基本结构及工作原理

1. 运算器 运算器也称为算术逻辑单元( Arithmetic Logic

Unit, ALU ),它的作用就是进行算术运算和逻辑运算。算术运算是〖 JP2 〗指加、减、乘、除等四则运算,而逻辑运算就是指“与”、“或”、“非”、“比较”等运算。

2. 控制器 控制器的基本功能是从内存存取指令和执行指令,向其他

的部件发出控制信号,指挥计算机各部件协同工作。 运算器和控制器合在一起被称为中央处理单元( Central

Processing Unit, CPU )。在微型计算机中,运算器和控制器一般集成在一片芯片上,制成大规模集成电路,因此, CPU 常常又被称为微处理器。

Page 12: 单片机原理与应用 (多学时)

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

3. 存储器 存储器是计算机的记忆部件,用于存储计算机中的程序和数据。存储器分为两部分:内部存储器和外部存储器,简称为内存和外存。 1 )内部存储器 内部存储器简称内存,又称为主存,主要用于存放计算机中要执行的程序和数据,一般由半导体器件构成。 2 )外部存储器 外部存储器简称外存,又称辅存,主要用来存储用户所需的大量数据。其特点是存储容量大、可靠性高、价格低。常用的外存是磁盘、光盘、闪盘(优盘)等。

Page 13: 单片机原理与应用 (多学时)

4. 输入设备 输入设备用来接受用户输入的原始数据和程序,并将它们转变为计算机可以识别的形式(二进制)存放到内存中。5. 输出设备 输出设备是将存放在内存中由计算机处理的结果转换为人们所能接受的形式的设备。常用的输出设备有显示器、打印机等。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 14: 单片机原理与应用 (多学时)

1.2.3 软件系统 计算机的软件系统是程序和程序运行所需要的数据以及开发、使用和维护这些程序所需要的文档的集合。软件内容丰富、种类繁多,根据软件的用途可将其分为系统软件和应用软件两大类。 1. 系统软件 系统软件是指控制计算机的运行、管理计算机的各种资源并为应用软件提供支持和服务的一类软件,是保证计算机系统正常工作必须配备的基本软件。系统软件通常包括操作系统、计算机语言和各种服务性程序。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 15: 单片机原理与应用 (多学时)

1 )操作系统 操作系统是管理、监控和维护计算机系统的软、硬件资源,它使计算机充分高效地工作,并使用户合理有效地利用这些资源的程序。操作系统是系统软件的核心,是现在计算机的必备软件。2 )计算机语言 使计算机能识别并执行的信息符号代码的集合称为计算机语言。计算机语言可以分为三大类:机器语言、汇编语言和高级语言。3 )服务性程序 服务性程序是指协助用户进行软件开发和硬件维护的软件,如各种开发调试工具软件、编辑程序、诊断程序等。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 16: 单片机原理与应用 (多学时)

2. 应用软件应用软件是在系统软件基础上为解决用户的具体问题,面向某个领域而设计的软件。1)办公软件办公软件包括文字处理、桌面排版、电子表格、商务图表、演示软件等。为了方便用户维护数据,一般办公软件还提供了小型的数据库管理系统。常见的办公软件有 Microsoft Office 等。2) 图形和图像处理软件图形和图像处理软件主要用来处理计算机中的图形和图像,其中图像处理是人们生活中最常见的。3)Internet服务软件Internet服务软件主要包括 WWW浏览器、电子邮件、文件传输等,这些软件的出现使人们很轻松方便地使用 Internet 。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 17: 单片机原理与应用 (多学时)

1.2.4 微型计算机的工作原理

CPU 、存储器、 I/O 接口机外部设备构成了微型计算机的硬件,要是计算机有效地工作,还必须有软件(即程序)的配合。当使用微型计算机来完成某项任务时,首先要把结算方法按步骤编写成计算机能识别并能执行的相应操作命令序列,即程序,其中机器可以识别的每一条基本操作命令就是一条指令,可见程序是一串按一定顺序排列起来的指令集合。只要把程序由输入设备通过 I/O 接口存储到存储器中,一旦启动计算机,它便能按照程序安排的顺序执行指令,从而完成既定任务。下面以微型计算机执行第 N条指令的工作过程来说明计算机的工作原理。

第 1 章 计算机基础知识

1.2  计算机的基本结构及工作原理

Page 18: 单片机原理与应用 (多学时)

1.3.1 单片机的发展

自 1976年 9月 Intel公司推出 MCS-48 单片机以来,单片机就受到了广大用户的欢迎,因此,有关公司都争相推出各自的单片机。如 GI公司推出 PIC1650 系列单片机, Rockwell公司推出了与 6502微处理器兼容的 R6500 系列单片机。它们都是 8 位机,片内有 8 位中央处理器(CPU) 、并行 I/O端口、 8 位定时器 / 计数器和容量有限的存储器(RAM、 ROM) 以及简单的中断功能。

第 1 章 计算机基础知识

1.3  单片机的基本概念

Page 19: 单片机原理与应用 (多学时)

1978年下半年Motorola公司推出 M6800 系列单片机, Zilog公司随后推出 Z8 系列单片机。 1980年 Intel公司在 MCS 48 系列基础上又推出了高性能的 MCS-51 系列单片机,这类单片机均带有串行 I/O端口,定时器 /计数器为 16 位,片内存储容量 (RAM, ROM) 都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。 目前,国际市场上 8 位、 16 位单片机系列已有很多,但是,在国内使用较多的系列是 Intel公司的产品,其中 MCS-51 系列单片机应用尤为广泛,几十年经久不衰,而且还在进一步发展完善,价格越来越低,性能越来越好。单片机技术正以惊人的速度向前发展。

第 1 章 计算机基础知识

1.3  单片机的基本概念

Page 20: 单片机原理与应用 (多学时)

  

第 1 章 计算机基础知识

1.3  单片机的基本概念

1.3.2 单片机的特点单片机就相当于一台微型计算机。由于单片机的这种特

殊的结构以及它所采取的半导体工艺,使其具有许多显著的特点。在某些应用领域,它甚至承担了大、中型计算机和常用计算机无法完成的一些工作,在各个领域都得到了广泛的应用。单片机的特点可以概括为以下 4点:( 1 )优异的性价比。( 2 )集成度高、体积小、可靠性高。( 3 )运行速度快、控制功能强。( 4 )开发使用方便、易于产品化。

Page 21: 单片机原理与应用 (多学时)

1.3.3. 单片机的应用领域单片机的应用范围十分广泛,主要的应用领域有:(1) 工业控制

(2)仪器仪表

(3) 计算机外部设备与智能接口

(4)商用产品

(5)家用电器 

第 1 章 计算机基础知识

1.3  单片机的基本概念

Page 22: 单片机原理与应用 (多学时)

第 1 章 计算机基础知识

1.3  单片机的基本概念1.3.3. 单片机的应用领域

单片机的应用范围十分广泛,主要的应用领域有:(1) 工业控制

(2)仪器仪表

(3) 计算机外部设备与智能接口

(4)商用产品

(5)家用电器

Page 23: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

MCS-51单片机的基本组成 2.1

MCS-51单片机的中央处理器、时钟及时序 2.2

MCS-51单片机的中央处理器、时钟及时序 2.3

返回返回

MCS-51单片机的并行I/O口 2.4

MCS-51单片机的复位及复位电路 2.5

Page 24: 单片机原理与应用 (多学时)

2.1.1  单片机的硬件结构 8051 单片机的硬件结构如图 2-1 所示。      

2.1 MCS-51 单片机的基本组成

第 2 章  MCS-51 单片机的基本结构

返回返回

Page 25: 单片机原理与应用 (多学时)

1. 中央处理器 中央处理器( CPU )由运算器和控制器构成,是单片机的核心部分。它的主要功能是读入并分析每条指令,根据指令的功能,控制单片机的各功能部件执行指定的操作。2. 片内存储器 单片机内部存储器的主要功能是存放程序和数据。存储器按其存取方式可以分成两大类:一类是随机存取存储器( random access memory, RAM ),主要用于存放暂存数据及调试程序 , 所以又称为数据存储器;另一类是只读存储器( read only memory, ROM ),主要用于存放常数及固定程序,又称为程序存储器。  

第 2 章  MCS-51 单片机的基本结构

2.1 MCS-51 单片机的基本组成

Page 26: 单片机原理与应用 (多学时)

根据存储器编程结构也可将存储器分为两种。( 1 )普林斯顿结构: ROM和 RAM安排在同一空间的不同范围(统一编址)。( 2 )哈佛结构: ROM和 RAM 分别在两个独立的空间(分开编址)。MCS-51 单片机采用的是哈佛结构,而 MCS-96、 8086 等采用的是普林斯顿结构。

  

第 2 章  MCS-51 单片机的基本结构

2.1 MCS-51 单片机的基本组成

Page 27: 单片机原理与应用 (多学时)

3. 定时器 / 计数器8051 单片机有两个 16 位的可编程定时器 / 计数器 T0和 T1 ,用于精确定时或对外部事件进行计数。4.并行 I/O端口8051 单片机有 4个 8 位的并行端口( P0、 P1、 P2、 P3 ),每个并行端口各有 8根 I/O 口线,可单独操作每根口线。5. 串行口8051 单片机提供全双工串行 I/O 口,可与外设进行串行通信,也可用于扩展 I/O 口。6. 中断系统8051 单片机提供 5 个中断源,具有两个优先级,可形成中断嵌套。8051 单片机以上功能部件均通过内部三总线相连,构成一个整体。与8051稍有不同, 8751 单片机的内部有 4 KB的 EPROM ,作为程序存储器; 8031 单片机内部则没有程序存储器,使用时必须在外部扩展。  

第 2 章  MCS-51 单片机的基本结构

返回返回2.1 MCS-51 单片机的基本组成

Page 28: 单片机原理与应用 (多学时)

2.1.2 单片机的片外总线与引脚功能

1.MCS-51 单片机的引脚分布 MCS-51 系列单片机的引脚的封装有两种形式:双列直插式封装( DIP )和方形封装。 MCS-51 单片机采用两种半导体工艺生成:一种是 HMOS 工艺,另一种是 CHMOS 工艺。 HMOS 工艺的 MCS-51 系列单片机采用双列直插式封装,有 4 个并行 I/O端口,每个端口都有 8条端口线,可分别用做地址线、数据线和 I/O 线,另外还有 6根控制信号线和两根电源线,如下图所示。 大多数 CHMOS 工艺的单片机(在型号中间加 C 作为标识,如80C51 )采用方形封装形式。

第 2 章  MCS-51 单片机的基本结构

2.1 MCS-51 单片机的基本组成

Page 29: 单片机原理与应用 (多学时)

2.1 MCS-51 单片机的基本组成

Page 30: 单片机原理与应用 (多学时)

2.2 MCS-51 单片机的中央处理器、时钟及时序

第 2 章  MCS-51 单片机的基本结构

2.2.1 中央处理器

中央处理器主要由运算器和控制器构成,它决定了单片机的主要性能。 1. 运算器 运算器以算术 / 逻辑单元( ALU )为核心。 由累加器( ACC )、寄存器( B )、暂存器 1 、暂存器 2、程序状态字寄存器( PSW )等许多部件构成。 它的功能是完成算术和逻辑运算、位变量处理和数据传送等操作。

Page 31: 单片机原理与应用 (多学时)

2. 控制器 控制器是单片机的神经中枢,是由程序计数器( PC )、指令寄存器( IR )、指令译码器( ID )、堆栈指针( SP )、数据指针( DPTR )、定时及控制逻辑电路等组成。

它先以主振频率为基准发出 CPU 的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作。

第 2 章  MCS-51 单片机的基本结构

2.2 MCS-51 单片机的中央处理器、时钟及时序

Page 32: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

返回返回2.2 MCS-51 单片机的中央处理器、时钟及时序

2.2.2 时钟电路与时序1.8051 的时钟产生方式 8051 的时钟产生方式分为内部振荡方式和外部时钟方式两种

。如图 2-4( a )所示为内部振荡方式,利用单片机内部的反向放大器构成振荡电路,在振荡器输入端 XTAL1 和输出端 XTAL2 的引脚上外接定时元件,内部振荡器产生自激振荡。

如图 2-4( b )所示为外部时钟方式,是把外部已有的时钟信号引入到单片机内。此方式常用于多片 8051 单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时间大于 20 ns ,且为频率低于 12 MHz 的方波。

Page 33: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.2 MCS-51 单片机的中央处理器、时钟及时序

Page 34: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.2 MCS-51 单片机的中央处理器、时钟及时序

8051 单片机的内部振荡时钟产生电路如图 2-5 所示,晶振频率经分频器二分频后形成两相错开的时钟信号 P1和 P2 。时钟信号的周期称为时钟周期,也称为机器状态周期。在每个时钟周期的前半周期,相位 1( P1 )信号有效,在每个时钟周期的后半周期,相位 2( P2 )信号有效。

Page 35: 单片机原理与应用 (多学时)

2.3 MCS-51 单片机的存储组织

第 2 章  MCS-51 单片机的基本结构

2.3.1 存储器空间 对于 RAM, CPU 在运行过程中能随时进行数据的写入和读出,

但在关闭电源时,其所存储的信息将丢失。 ROM 是一种写入信息后不能改写、只能读出的存储器。断电

后, ROM 中的信息保留不变。 ROM 常被称为程序存储器。

MCS-51 系列单片机的存储器地址空间可分为 5块:( 1 )片内程序存储器地址空间。( 2 )片外程序存储器地址空间。( 3 )特殊功能寄存器地址空间。( 4 )片内数据存储器地址空间。( 5 )片外数据存储器地址空间。其中,( 1 )和( 2 )统一编址,( 3 )和( 4 )统一编址,( 5 )与

( 3 )、( 4 )分开编址。

Page 36: 单片机原理与应用 (多学时)

2.3 MCS-51 单片机的存储组织

第 2 章  MCS-51 单片机的基本结构

2.3.2 程序存储器

8051 单片机的程序存储器有片内和片外之分。片内有4 KB 的程序存储器,地址范围为 0000H~ 0FFFH 。

当不够使用时,可以扩展片外程序存储器,因为 MCS-51 单片机的程序计数器 PC是 16 位的计数器,所以片外程序存储器扩展的最大空间是 64 KB ,地址范围为0000H~ 0FFFFH 。

Page 37: 单片机原理与应用 (多学时)

2.3 MCS-51 单片机的存储组织

第 2 章  MCS-51 单片机的基本结构

2.3.3 数据存储器

MCS-51 的数据存储器分为片外 RAM 和片内 RAM 。片外 RAM 地址空间为 64 KB ,地址范围是 0000H~ 0FFFFH 。片内 RAM 地址空间为128 B ,地址范围是 00H~ 7FH (与片内特殊功能寄存器 SFR 统一编址,特殊功能寄存器 SFR 在后面单独介绍)。在 8051 单片机中,尽管片内 RAM 的容量不大,但它的功能多,使用

灵活。片内 RAM 共有 128 B ,分成工作寄存器区、位地址区和通用RAM 区。

1. 工作寄存器区 2. 位地址区3. 通用 RAM 区(数据缓冲器区)4. 片外数据存储器

Page 38: 单片机原理与应用 (多学时)

2.3 MCS-51 单片机的存储组织

第 2 章  MCS-51 单片机的基本结构

2.3.4 特殊功能寄存器MCS-51 内部设置了 21 个特殊功能寄存器( SFR ),离散地分布在

80H~ 0FFH 的地址空间中。下面对常用的特殊功能寄存器作简单介绍。

1 )累加器 ACC

2 )寄存器 B

3 )程序状态字寄存器 PSW4 )堆栈指针 SP

5 )数据指针 DPTR

6) I/O 口寄存器

Page 39: 单片机原理与应用 (多学时)

2.4 MCS-51 单片机的并行 I/O 口

第 2 章  MCS-51 单片机的基本结构

2.4.1 P0 口的结构和功能

P0 口是一个三态双向 I/O 口,它有两种不同的功能,用于不同的工作环境。在不需要进行外部 ROM、 RAM 等扩展时,作为通用的 I/O口使用。在需要进行外部 ROM、 RAM 等扩展时,采用分时复用的方式,通过地址锁存器后作为地址总线的低 8 位和 8 位数据总线。 P0 口的输出端具有驱动 8个 LSTTL 负载的能力。

Page 40: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.4.2 P1 口的结构和功能

P1 口也是一个准双向口,只作为通用的 I/O口使用,其功能与 P0 口的第一功能相同。作为输出口使用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作为输入口使用时,必须先向锁存器写入 1 ,使场效应管截止,然后才能读取数据。 P1 口能带 3~ 4个 TTL 负载。

2.4 MCS-51 单片机的并行 I/O 口

Page 41: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.4.3 P2 口的结构和功能

P2 口是一个准双向口, 它有两种功能: 一种是在不需要进行外部 ROM、 RAM 等扩展时,作为通用的

I/O 口使用,其功能和原理与 P0 口功能相同,只是作为输出口时不需外接上拉电阻;

另一种是当系统进行外部 ROM、 RAM 等扩展时, P2 口作为系统扩展的地址总线口使用,输出高 8 位的地址 A15~ A7 ,与 P0 口作为地址 / 数据总线使用时输出的低 8 位地址相配合,共同访问外部程序或数据存储器( 64 KB ),但它只确定地址,并不能像 P0 口那样还可以传送存储器的读写数据。 P2 口能带 3~ 4个 TTL 负载。

2.4 MCS-51 单片机的并行 I/O 口

Page 42: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.4.4 P3 口的结构和功能

P3 口是一个多功能的准双向口。第一功能是作为通用的 I/O 口使用,其功能和原理与 P1 口相同。第二功能是作为控制和特殊功能口使用,这时 8 条端口线所定义的功能各不相同。 P3 口能带 3~ 4个TTL 负载。

2.4 MCS-51 单片机的并行 I/O 口

Page 43: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.5.1复位状态 复位就是使中央处理器( CPU )以及其他功能部件都恢复

到一个确定的初始状态,并从这个状态开始工作。单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。

MCS-51 单片机的复位靠外部电路实现,信号由RESET( RST )引脚输入,高电平有效,在振荡器工作时,只要保持 RST 引脚高电平两个机器周期,单片机即复位。复位后, PC程序计数器的内容为 0000H ,即复位后将从程序存储器的 0000H 单元读取第一条指令码。

复位后,程序存储器内容不变。片内 RAM 和片外 RAM 的内容在上电复位后为随机数,而在手动复位后,原数据保持不变。

2.5 MCS-51 单片机的复位及复位电路

Page 44: 单片机原理与应用 (多学时)

第 2 章  MCS-51 单片机的基本结构

2.5 MCS-51 单片机的复位及复位电路

2.5.2复位电路

MCS-51 系列单片机的复位信号由 RST 引脚输入,高电平有效。当 RST 引脚输入高电平并保持两个机器周期以上时, 单片机内部就会执行复位操作。若 RST 引脚一直保持高电平,那么,单片机就处于循环复位状态。为了保证复位成功,一般复位引脚 RST上只要出现 10 ms 以上的高电平,单片机就实现了可靠复位。

Page 45: 单片机原理与应用 (多学时)

第 3章 指令系统

MCS-51系列单片机指令系统概述 3.1

MCS-51系列单片机的指令分类 3.2

返回

实例解析3.3

Page 46: 单片机原理与应用 (多学时)

MCS-51 系列单片机的指令系统中,共有 111条指令,按照功能可分为五大类。( 1 )数据传送类指令 29条,分别为片内 RAM ,片外 RAM ,程序存储器的传送指令,交换及堆栈操作指令等。( 2 )算术运算类指令 24条,分别为加、减、乘、除、带进位加、加 1、减 1 指令等。( 3 )逻辑运算类指令 24条,分别为逻辑与、或、异或、移位指令等。( 4 )控制转移类指令 17条,分别为无条件转移与调用、条件转移、空操作指令等。( 5 )布尔(位)操作指令 17条,分别为位数据传送、位与、位或、位转移指令等。  

3.1   MCS-51 系列单片机指令系统概述

第 3章 指令系统

返回返回

Page 47: 单片机原理与应用 (多学时)

第 3章 指令系统

3.2 MCS-51 系列单片机的指令分类

3.2.1 数据传送类指令 数据传送指令,能实现多种数据的传送操作。数据传送方向

及相互关系如图 3-7 所示。

Page 48: 单片机原理与应用 (多学时)

第 3章 指令系统

3.2.2 算术运算类指令

算术运算类指令都是通过算术逻辑运算单元 ALU 进行数据运算处理的指令。它包括各种算术操作,其中有加、减、乘、除四则运算。这些运算指令大大加强了单片机的运算能力。

但 ALU 仅执行无符号二进制整数的算术运算。对于带符号数则要使用ADD、 ADDC、 INC、 DA、 SUBB、 DEC、MUL、 DIV 等助记符。除了加 1 和减 1 指令之外,算术运算结果将使进位标志( CY )、半进位标志( AC )、溢出标志( OV )置位或复位。

MCS-51 系列单片机还有带借位减法、比较指令。加法类指令包括加法指令、带进位的加法指令、增量(加 1 )指令以及二—十进制调整指令。

3.2 MCS-51 系列单片机的指令分类

Page 49: 单片机原理与应用 (多学时)

第 3章 指令系统

3.2 MCS-51 系列单片机的指令分类

3.2.3 逻辑运算类指令

逻辑运算类指令主要包括:与、或、异或、清除、求反、移位等,主要用于对两个操作数进行逻辑运算。

操作结果保存到累加器 A 或直接寻址单元。该类指令执行时一般不影响程序状态字 PSW ,仅当操作数为累加器 A 时将影响奇偶标志位 P ,带进位的移位指令将影响 CY 位。该类指令的助记符主要有 ANL、 ORL、 XRL、 RL、 RLC、 RR、 RRC、 CPL、 CLR 等。

Page 50: 单片机原理与应用 (多学时)

第 3章 指令系统

3.2   MCS-51 系列单片机的指令分类

3.2.4 控制转移类指令

程序的顺序执行是由 PC自动加 1 来实现的,但在应用系统中,往往会遇到一些情况,需要强迫改变程序执行顺序。例如,调用子程序或者需要根据检测值与设定值的比较结果将程序转移到不同的分支入口等,控制转移类指令,可分为无条件转移指令、条件转移指令、循环转移指令、子程序调用、返回指令及空操作指令等,但不包括布尔变量控制程序转移指令。

控制转移类指令采用的助记符有:AJMP、 LJMP、 SJMP、 JZ、 JNZ、 CJNE、 DJNZ、 ACAL

L、 LCALL、 RET、 RETI、 NOP 等。 ·

Page 51: 单片机原理与应用 (多学时)

第 3章 指令系统

3.2   MCS-51 系列单片机的指令分类

3.2.5 位操作类指令

MCS-51 系列单片机内部有一个布尔(位)处理器,具有较强的布尔变量处理能力。布尔处理器实际上是一位的微处理机,它以进位标志 CY 作为位累加器,以内部 RAM的 20H至 2FH 单元及部分特殊功能寄存器为位存储器,以 P0、 P1、 P2、 P3 为位 I/O 。 对位地址空间具有丰富的位操作指令,包括布尔传送指令、布尔状态控制指令、位逻辑操作指令及位条件转移指令。助记符有MOV、 CLR、 CPL、 SETB、 ANL、 ORL、 JC、 JNC、 JB、 JNB、 JBC等 11 种。

Page 52: 单片机原理与应用 (多学时)

第 3章 指令系统

3.3 实 例 解 析

【实例】对从 P1 口输入的 100个 0~ 9 的数进行概率统计,统计的数值分别存入 20H~29H 单元中。

Page 53: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

程序设计基础 4.1

顺序结构程序设计 4.2

分支程序设计 4.3

返回返回

循环程序设计 4.4

子程序设计 4.5

单片机程序设计流程 4.6

实 例 解 析 4.7

Page 54: 单片机原理与应用 (多学时)

汇编语言具有以下几个特点: 1.助记符指令与机器指令是一一对应的,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映计算机的实际运行情况,所以用汇编语言能编写出最优化的程序。 2. 汇编语言是“面向机器”的语言,编程比使用高级语言困难。 3. 汇编语言能直接访问存储器、输入与输出接口及扩展的各种芯片 ( 例如, A/D、 D/A等 ) ,也可直接处理中断,因此汇编语言能直接管理和控制硬件设备。 4. 汇编语言通用性差,汇编语言和机器语言一样,都面向一台具体的机器,不同的单片机具有不同的指令系统,并且不能通用。

4.1  程序设计基础

第 4章 汇编语言程序设计

返回返回

Page 55: 单片机原理与应用 (多学时)

目前,可用于程序设计的语言基本上可分为 3 种:机器语言、汇编语言和高级语言。这里重点介绍汇编语言。这三者之间的关系如图 4-1 所示。

第 4章 汇编语言程序设计

4.1  程序设计基础

Page 56: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

返回返回4.1  程序设计基础

4.1.1 汇编语言源程序设计的步骤1. 程序结构设计例如,编写一个程序,该程序将两个 8 位整数相乘,得到 16

位的乘积。单片机的输入设备是 8 个旋钮开关和一个按钮。每输入一个数,是用户通过开关送入二进制数,然后按一下按钮。输出设备是 8 个指示灯。做完乘法后,该指示灯显示乘数和乘积。每一个数显示 10 s ,每个数字显示后,指示灯关闭 1 s。这个非常简单的程序可以分解为几个相互有联系的模块,如图 4-2 所示。主程序调用 3 个不同的子程序作为支援:( 1) INSW :从开关读入一个 8 位数;( 2) OUTDSP :用指示灯显示一个 8 位数;( 3) DELAYN :延迟事先规定好的秒数。

Page 57: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

返回返回4.1  程序设计基础

Page 58: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

返回返回4.1  程序设计基础

2.模块设计程序结构设计好后,就要进一步进行模块设计。 DELAY N 子程序往往由延迟 1 s的 DLIS 子程序来形成。由于按钮“接触抖动”,在从开关读入一个数据前, INSW 子程序等待 10 ms ,因此要用另一个子程序 DLAY 10M实现,这样得到最终程序结构。3.开发方法开发一个程序的明智方法是分小段编码,一般有以下两种方法:( 1 )自底向上开发:首先对最底层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。( 2 )自顶向下开发:与自底向上开发方法相反,是首先对最高层进行编码和调试。

Page 59: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

返回返回4.1  程序设计基础

4.1.2 汇编语言的语法结构

汇编语言语句有 3 种基本类型:指令语句、伪指令和宏指令。指令语句由 4 个字段组成,汇编语言能对各种格式进行识别,其格式如下: 标号(名字):操作码操作数(参数);注释 在书写汇编语言程序的时候,括号内的部分可以根据情况取舍。各个字段之间要用分隔符分开。常用的分隔符有空格、冒号、逗号、分号等。

Page 60: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

返回返回4.1  程序设计基础

【例 4-1】编写程序把片外存储器 2200H 单元中的数送入片内 70H 单元中。解: 编程如下:标号操作码操作数注释

BEGIN:MOV DPTR,#2200H; (DPTR)=2200HMOV R0,#70H; (R0)=70HMOVX A,@DPTR; (A)=((DPTR))MOV @R0,A; ((R0))=(A)

Page 61: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.1.3 汇编语言的伪指令

1. 汇编起始地址伪指令

汇编起始地址伪指令的一般格式如下: ORG 表达式

该指令的功能是向汇编程序说明,下述程序段的起始地址由表达式指明。表达式通常为十六进制的地址码。

4.1  程序设计基础

Page 62: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.1  程序设计基础

2. 汇编结束伪指令汇编结束伪指令的一般格式如下:格式 1:〈字符名称〉 END〈表达式〉格式 2:〈字符名称〉 END 或者 END该指令是汇编语言源程序的结束标志,在 END 以后所写的指令,汇编程序都不予处理。因此,在一个源程序中只允许出现一个END 语句,它必须放在整个程序的最后。3.赋值伪指令赋值伪指令的一般格式如下:〈字符名称〉 EQU〈表达式〉

Page 63: 单片机原理与应用 (多学时)

4. 数据地址定义指令数据地址定义指令的一般格式如下:〈字符名称〉 DATA〈表达式〉 DATA伪指令的功能与 EQU 有些相似,使用时要注意它们有以下区别:( 1) EQU伪指令必须先定义后使用,而 DATA伪指令可以后定义先使用;( 2 )用 EQU伪指令可以把一个汇编符号赋给一个字符名称,而 DATA 只能把数据赋给字符名称;( 3) DATA伪指令可将一个表达式的值赋给一个字符名称,所定义的字符名称也可以出现在表达式中,而 EQU 定义的字符则不能这样使用。 DATA伪指令在程序中常用来定义数据地址。

5. 定义标号值伪指令定义标号值伪指令的一般格式如下:〈字符名称〉 DL〈表达式〉

4.1  程序设计基础

Page 64: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计

单片机程序设计和其他程序设计一样,程序结构一般也采用以下 3 种基本控制结构,即顺序结构、分支结构和循环结构。再加上使用广泛的子程序及中断服务子程序,共有 5 种基本结构。

所谓顺序结构是指按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。下面以例题的形式介绍几种顺序结构程序设计。

Page 65: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计

4.2.1 数据传送程序设计

【例 4-10】编程:现有两个双字节无符号数,分别存放在 R3、 R4、 R5、 R6 中,高字节在前,低字节在后,通过编程使两数相加,和分别存放在20H、 21H、 22H 单元中。解: 这个程序比较简单,求和的方法与笔算类似,先加低位后加高位,其程序段如下:

ORG4000HCLRC;清 CMOVA,R4;把被加数的低位放到 AADDA,R6;将加数和被加数的低位相加MOV22H,A;把结果的低位存入 22H 单元MOVA,R3;把被加数的高位放到 AADDCA,R5;将加数和被加数的高位相加并加低位和进位MOV21H,A;把结果的高位存入 21H 单元MOVA,#00H;清 AADDCA,#00H;加进位MOV20H,A;存和的进位END

Page 66: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计

【例 4-11】编程:将 R2与 R3 内容互换, R4 与内存 70H 单元内容互换。

解: 这个程序只需要利用交换指令和传送指令就可以完成,其程序段如下:

XCHR:MOVA, R2XCHA, R3XCHA, R2; R2与 R3 内容互换MOVA, R4XCHA, 70HXCHA, R4; R4与 70H 单元内容互换

Page 67: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计 4.2.2 算术运算程

序设计

【例 4-12】若 a、 b、 c三个数分别存放在存储器40H、 41H、 42H三个单元中,试编写计算 Y= a+b-c 的程序。

根据流程图,编写 Y=a+b-c源程序如下:

ORG 1000HSTART:MOV A,40H;将 a送给 AADD A,41H;将 a+b送给 ACLR C;清 CSUBB A,42H;将 (a+b)-c送给 AMOV 43H,A;将 A送给 43HEND

Page 68: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计 4.2 顺序结构程序设计

【例 4-13】编程:

设被加数存放于片内 RAM的 20H (低位字节)和 21H (高位字节),加数存放于22H (低位字节)和23H (高位字节),运算结果的和存放于 20H(低位字节)和 21H(高位字节)中。

解: 实现 16 位相加,其程序段如下:START: PUSH ACC;将 A 中内容进栈保护MOV R0, 20H ;将 20H地址中的内容送 R0MOV R1, 22H ;将 22H地址的内容送 R1MOV A ,@ R0 ;被加数低字节内容送 AADD A ,@ R1 ;低字节数相加MOV @ R0, A ;低字节数和存 20H 中INC R0 ;指向被加数高位字节INC R1 ;指向加数高位字节MOV A ,@ R0 ;被加数高位字节送 AADDC A ,@ R1 ;高字节数带进位相加MOV @ R0, A ;高字节数和存 21H 中CLR AADDC A,#00HMOV 10H,A ;进位暂存于 10H 中POP ACC ;恢复 A 原内容

Page 69: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计

4.2.3 延时程序设计有些情况可以不采用单片机内的定时器 / 计数器作定时,而是采用软件延时的办法,执行一段循环程序,而循环程序执行的时间即为延时时间。【例 4-14】采用查询方式实现定时延时。解: 编程如下:ORG 0000HAJMP STARTORG 30HSTART :MOV P1,#0FFH MOV TMOD,#00000001B MOV TH0,#15HMOV TL0,#0A0H

SETB TR0 LOOP:JBC TF0,NEXT AJMP LOOP NEXT:CPL P1.0MOV TH0,#15HMOV TL0,#9FHAJMP LOOPEND AJMP LOOP

Page 70: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.2 顺序结构程序设计

【例 4-15】采用中断方式实现定时延时。解: 编程如下:ORG 000BH AJMP TIME0 ORG30HSTART:MOV P1,#0FFH MOV TMOD,#00000001B MOV TH0,#15HMOV TL0,#0A0H

SETB EA SETB ET0 SETB TR0 LOOP:AJMP LOOP TIME0:PUSH ACC PUSH PSW CPL P1.0MOV TH0,#15HMOV TL0,#0A0H POP PSWPOP ACCRETIEND

Page 71: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.3 分支结构程序设计

4.3 分支程序设计

在MCS51 系列单片机的应用系统中,不论是一个问题的求解,还是一个控制过程的实施,将会遇到多条路径需要判断、选择;当满足一定条件时,程序执行的方向将发生变化,在程序设计中称为分支程序。 由分支程序的定义可以看出,分支程序是有条件的,根据不同的条件,执行不同的指令,在汇编分支程序时,关键是如何判断分支的条件。分支程序设计的技巧,就在于如何正确地应用指令,实现对程序简便而有效的控制。 分支程序从结构上分为单分支程序和多分支程序两种情况。

Page 72: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.3 分支结构程序设计

1. 单分支程序 单分支程序结构如图 4-5 所示。如果给出的条件满足要求,则转向分支程序段 A ,执行完分支程序段 A后继续执行下一程序段;如果给出的条件不满足要求,则不转向,接着执行下一程序段。

Page 73: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.3 分支结构程序设计 2. 多分支程序 多分支程序又称散转程序,它是根据输入条件或者根据运算结果来确定转向位置的处理程序。判断一个分支条件无法解决的问题,需要判断两个或两个以上的条件。多分支选择结构通常有两种形式,如图 4-7所示。

Page 74: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.3 分支结构程序设计

8051 单片机设有两条多分支选择指令:

( 1 )散转指令。格式如下:JMP@ A+ DPTR说明: 散转指令由数据指针 DPTR决定多分支转移程序的首地址,由累加器 A 中内容动态地选择对应的分支程序。因此,可从多达 256个分支中选 1 。

( 2 )比较指令。格式如下:CJNEA, direct, rel (共有 4条)

Page 75: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.4 循环结构程序设计

循环程序通常由以下几个部分组成:(1) 设置循环初值。 (2)循环体。(3)修改循环控制变量。具体地说,就是每执行一次循环指令,对地址指针做一次修改,使指针指向下一数据所在位置,为进入下一轮循环体做准备。(4)循环控制部分。循环控制部分是根据循环次数或循环结束条件,判断是否继续循环。若循环次数未达到规定值,则继续循环;若循环次数达到规定值则退出循环。(5) 结束部分。

Page 76: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.4 循环结构程序设计

主机对循环程序的初始化和结束部分均只执行一次,而对循环体和循环控制部分则常需重复执行多次。

不管条件如何,它至少执行一次循环体。当循环计数回“ 0” 时,结束循环。循环体和循环控制这两部分是循环程序的主体,是循环程序设计的重点。

Page 77: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.4 循环结构程序设计

右图是条件循环结构形式。条件循环先检查控制条件是否成立,决定循环程序是否执行。当循环结束条件一开始就已成立,则循环体可能一次也不执行。这是两种不同结构的本质区别。

Page 78: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4. 5 子程序设计 子程序在结构上与主程序没有根本的区别,子程序也可以由简单结构、分支结构或循环结构构成。

不同之处在于子程序在操作的过程中需要由其他程序来调用,执行完以后又需要将执行流程返回到调用该子程序的程序中。子程序的执行过程如图所示。

Page 79: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4. 5 子程序设计

1. 子程序调用的规则和应该注意的地方 在汇编语言源程序中调用子程序时,应注意解决好以下问题: ( 1 ) 主程序与子程序之间的参数传递。 ( 2 )保护现场和恢复现场。当然对每个具体的子程序是不是需要现场保护,哪些参数应当保护,还应视实际情况确定。 在MCS51 系列单片机的指令系统中,向用户提供了两条调用子程序的指令: ACALL、 LCALL 以及一条返回主程序的指令 RET 。 此外,子程序在运行过程中,还可以再调用其他的子程序,这种操作称之为子程序嵌套。

Page 80: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4. 5 子程序设计

MCS51 系列单片机对于子程序嵌套的层数没有限制 (只要为堆栈容量所允许 )。在编制子程序时,需要注意以下几个方面的问题:

( 1 )子程序的首地址必须用符号地址,该符号是子程序的名称。子程序最后一定要有一条返回指令。( 2 )为了方便使用,每个子程序要有适当的使用说明,如子程序功能的说明、出口条件、所占用的存储单元和寄存器等。( 3 )子程序尽量编写成浮动地址程序,采用相对转移指令。( 4 )子程序入口条件。( 5 )保护现场与恢复现场。

Page 81: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.6 单片机程序设计流程 4.6.1 编程语言

单片机程序设计的编写可以采用汇编语言或高级语言。 汇编语言具有源代码小、效率高等优点,适合于对实时性要求较高的场合。 但是由于汇编语言调试比较麻烦,要求编程者对硬件的了解要很清楚。随着高级语言的发展,编译效率的不断提高,加之应用系统的规模和复杂性都在提高。 目前,在单片机的软件开发中,高级语言占据了重要的地位(例如 C 语言)。

Page 82: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.6 单片机程序设计流程

4.6.2 单片机汇编语言程序开发流程

用汇编语言编写程序,一般可分为以下几个步骤:( 1 )建立数学模型:根据要解决的实际问题抽象出数学模型。( 2 )确定算法:从诸多算法中确定一种较为简捷的方法。( 3 )制定程序流程图:算法是程序设计的依据。( 4 )确定数据结构:合理地选择和分配内存单元以及工作寄存器。( 5 )写出源程序:根据程序流程图选择合适的指令和寻址方式。( 6 )上机调试程序:将编好的源程序进行汇编,检查和修改程序中的错误,直到正确为止。

Page 83: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.6 单片机程序设计流程

4.6.3 C 语言程序开发流程1. 编写 C 源程序2. 编译源程序生成目标文件 将所编写的扩展名为 .C 的程序保存为扩展名为 .hex或 .bin 的目标文件。这个目标文件就是单片机所能识别的机器码。3.仿真调试目标文件 仿真分为软件仿真和硬件仿真。 软件仿真就是在计算机上运行仿真软件来对单片机的硬件模拟、指令模拟和运行状态模拟。 硬件仿真就是利用仿真器代替单片机,由仿真器向应用电路提供各种信号数据进行调试的方法。4. 目标文件的烧写

Page 84: 单片机原理与应用 (多学时)

第 4章 汇编语言程序设计

4.7 实 例 解 析

【实例】试编写由 ASCII 码转换为二进制数的程序。主程序:ORG 0400HASCB:MOV R0, #61H MOV R1, #70HACALL CVERTSWAP A MOV @R1,A DEC R0 ACALL CVERT XCHD A,@R1 LOOP:SJMPLOOP

子程序:ORG 0500HCVERT:MOV A,@R0CLRCSUBB A,#30HCJNE A,#0AH,NEQAJMP BIGNEQ:JCCENDBIG:SUBB A,#07HCEND:RETEND

Page 85: 单片机原理与应用 (多学时)

第 5章 定时器和计数器

汇编语言程序设计 5.1

定时器/计数器的工作方式 5.2

定时器/计数器的应用 5.3

返回返回

Page 86: 单片机原理与应用 (多学时)

5.1  定时器 /计数器的结构及工作原理

第 5章 定时器和计数器

返回返回

8051 单片机定时器 / 计数器内部逻辑结构如图所示,有两个 16 位的可编程定时器 / 计数器 T0和 T1 ,它们都有定时或计数的功能,可用于定时控制、延时、对外部事件检测和计数等。

Page 87: 单片机原理与应用 (多学时)

5.1  定时器 /计数器的结构及工作原理

第 5章 定时器和计数器

定时器 / 计数器 T0、 T1 主要由几个特殊功能寄存器TH1、 TL1和 TH0、 TL0 组成。 方式寄存器 TMOD 主要设置定时器 / 计数器的工作方式,控制寄存器 TCON 主要控制定时器 / 计数器的启动和停止,这两个寄存器用来完成定时器 / 计数器的初始化工作。 每个定时器 / 计数器的核心实质上是一个加法计数器,通过内部总线与 CPU 相连,当 CPU 设置好定时器 / 计数器的工作方式、初值并启动后,定时器 / 计数器即可独立工作,不再占用 CPU的时间。可见,定时器 / 计数器工作效率很高且使用灵活。

Page 88: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的结构及工作原理

第 5章 定时器和计数器

当定时器 / 计数器设置为定时方式时,加 1 计数器对内部机器周期进行计数,直至计数器计满溢出。 MCS-51 系列单片机的一个机器周期是时钟振荡器经 12 分频以后的脉冲信号,计数器计的是机器周期脉冲的个数。因此,选择定时器 / 计数器的初值,确定系统振荡器时钟频率,就可以获取各种定时时间。

当定时器 / 计数器设置为计数方式时,加 1 计数器对来自外部引脚 T0(P3.4)和 T1(P3.5) 的外部信号脉冲计数,在下降沿时触发计数。在每个周期的 S5P2期间采样引脚输入电平。若前一个机器周期采样值为 1 ,后一个机器周期采样值为 0 ,则计数器加 1。由于检测一个从 1到 0 的负跳变信号需要两个机器周期( 24 个时钟周期),所以最高的检测信号频率应为时钟频率的 1/24 。

Page 89: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

MCS-51 定时器 /计数器有 4 种工作方式,也就是说它们可以构成 4 种电路结构模式。

T0和 T1 的方式 1 、方式 2 和方式 0 的模式相同。

Page 90: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

5.2.1 方式 0 M1M0为 00 时,定时器 /计数器工作于方式 0 。 T0 在方式 0 的逻辑电路结构如图所示, T1 的结构和操作与 T0 的完全相同。 这是一个 13 位的定时器 /计数器,由 TL0低 5 位和 TH0的高 8 位组成。 TL0低 5 位计数溢出时向 TH0 进位,而TH0 计数溢出时则中断标志位 TF0 置位,并请求中断。

Page 91: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

定时器 / 计数器 T0 方式 0 的逻辑电路结构

Page 92: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

5.2.2 方式 1 M1M0为 01 时,定时器 /计数器工作于方式1 。 方式 1 与方式 0 的结构与操作几乎完全相同,差别仅在于计数器的位数,此时由 TH0 作为高 8位, TL0 作为低 8 位,构成的是一个 16 位的定时器 /计数器。 MCS-51之所以重复设置这两种方式,是为了兼容MCS-48 系列单片机。因为 MCS-48 的定时器 /计数器就是 13 位的计数结构。

Page 93: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

5.2.3 方式 2 M1M0为 10 时,定时器 /计数器工作于方式 2 。方式 2 是自动重装计数初值的 8 位定时器 /计数器,其逻辑结构如图 4-4 所示。图中, TL0是 8位计数器, TH0 是计数初值寄存器。在程序初始化时, TH0和 TL0 由软件赋予相同的初值,一旦 TH0 计数溢出, TF0将被置位,同时打开三态门,将 TH0 中的计数初值装入 TL0 ,使得 TL0 从初值开始重新计数。

小提示:方式 0 和方式 1 计数溢出时,计数器被清零,因此循环计数或定时时需要反复设置计数初值,既麻烦又影响定时精度。而方式 2 的出现则可以解决上述问题,多用于需要产生高精度定时时间的场合,常用做串行口波特率发生器。

Page 94: 单片机原理与应用 (多学时)

5.2  定时器 /计数器的工作方式

第 5章 定时器和计数器

5.2.4 方式 3 方式 3 对定时器 / 计数器 T0和 T1 是完全不同的。 M1M0为 11 时,定时器 / 计数器 T0 工作于方式 3 ,其逻辑结构如图所示。图中, TH0和 TL0 被分成为两个互相独立的 8 位计数器。

Page 95: 单片机原理与应用 (多学时)

5.3  定时器 /计数器的应用

第 5章 定时器和计数器

MCS-51 系列定时器 / 计数器的初始化编程步骤如下:

( 1 )确定方式控制字,即确定定时器 / 计数器的工作状态,写入方式寄存器 TMOD 。例如, T1 用于定时器、方式 0, T0 用于计数器、方式 1 ,均用软件控制。则 TMOD 的值应为: 0000 0101 ,即 0x05 。

( 2 )根据实际需要设置定时器初值或计数器初值,写入初值寄存器TH0、 TL0或 TH1、 TL1 。

( 3 )根据需要设定寄存器 IE ,开放定时器 / 计数器中断。

( 4 )设置寄存器 TCON 的值,令 TR1或 TR0为 1 ,定时器 / 计数器开始工作。

Page 96: 单片机原理与应用 (多学时)

第 6章  MCS-51 单片机的中断系统

中断的概念6.1

中断源 6.2

中断控制及中断优先级 6.3

中断响应及中断处理过程 6.4

中断的应用及编程 6.5

返回返回

Page 97: 单片机原理与应用 (多学时)

6.1  中断的概念

第 6章  MCS-51 单片机的中断系统

返回返回

1.什么是中断 当 CPU 正常处理某个事件时,由于内部事件或外设请求,引起 CPU暂时中止当前正在运行的程序,转去执行请求中断的外设或内部事件的中断服务子程序,中断服务程序执行完毕,再返回原来被中止的地方,继续原来的工作。这一过程称为中断,如图所示。实现中断功能的部件称为中断系统,请示 CPU 中断的请求源称为中断源。

Page 98: 单片机原理与应用 (多学时)

6.1  中断的概念

第 6章  MCS-51 单片机的中断系统

返回返回

2. CPU响应及处理中断机制 中断系统就是为使 CPU 能对外界紧急异步事件具有处理能力而设置的,中断系统功能越强,对外界事件处理能力也就越强。MCS-51 系列单片机有 5 个中断源,而单片机的中断系统又允许多个中断源同时请求中断,因此就存在 CPU优先响应哪一个中断源请求的问题。 一般来说,根据中断源的轻重缓急排序, CPU优先处理最紧急事件的中断请求源。也就是说,需要对各个中断源设定相应的优先级, CPU 总是最先响应级别最高的中断。中断源可以分为两个中断优先级:高优先级和低优先级。用户可以用关中断指令或复位指令来屏蔽所有中断请求,也可以用开中断指令使CPU 接收中断申请。

Page 99: 单片机原理与应用 (多学时)

6.1  中断的概念

第 6章  MCS-51 单片机的中断系统

返回返回

3.单片机采用中断系统的优点 使用中断系统可以极大地提高 CPU 的利用效率,充分发挥计算机的功能。1 )提高 CPU 的工作效率 CPU执行主程序中的相关指令可以令各外设和它并行工作,而且任何一个外设在工作完成后 ( 例如,打印机完成一个打印任务 ) 都可以通过中断得到满意服务 (给打印机发送第二个打印任务 ) 。因此, CPU 在和外设交换信息时通过中断就可以避免不必要的等待和查询,从而大大提高了它的工作效率。2 )提高实时数据的处理时效 CPU 有了中断功能,系统失常和故障都可以通过中断立刻通知 CPU,使它可以迅速采集实时数据和故障信息,并对系统作出应急处理。

Page 100: 单片机原理与应用 (多学时)

6.2  中断源

第 6章  MCS-51 单片机的中断系统

返回返回

MCS-51 系列中不同型号单片机的中断源数量是不同的。

每个中断源可以编程为高优先级或低优先级中断,允许或禁止向CPU请求中断。

8051 的中断系统由中断标志寄存器、中断源允许寄存器、中断优先级寄存器及中断查询电路组成,如图所示。

Page 101: 单片机原理与应用 (多学时)

6.2  中断源

第 6章  MCS-51 单片机的中断系统

返回返回

一般把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。通常中断源有以下几种:  ( 1 )外部设备请求中断。 ( 2 )故障强迫中断。 ( 3 )实时时钟请求中断。 ( 4 )数据通道中断。 ( 5 )程序自愿中断。

8051 单片机的 5 个中断源如下:( 1 )外部中断请求 0 :由 INT0( P3.2 引脚)输入,低电平或下降沿触发。( 2 )外部中断请求 1 :由 INT1( P3.3 引脚)输入,低电平或下降沿触发。( 3 )内部定时器 / 计数器 0 中断请求:由T0溢出引起。( 4 )内部定时器 / 计数器 1 中断请求:由T1溢出引起。( 5 )内部中断请求 TI/RI :串行口 I/O 中断,串行口完成一帧字符发送 / 接收后引起。

Page 102: 单片机原理与应用 (多学时)

6.3  中断控制及中断优先级

第 6章  MCS-51 单片机的中断系统

返回返回

6.3.1 中断允许控制寄存器 IE (字节地址 A8H )

MCS-51 指令系统中没有专门的开中断和关中断指令,只有通过中断允许控制寄存器 IE 来控制 CPU 对中断源的开放或屏蔽,即每个中断源是否被允许中断。

Page 103: 单片机原理与应用 (多学时)

6.3  中断控制及中断优先级

第 6章  MCS-51 单片机的中断系统

返回返回

6.3.1 中断允许控制寄存器 IE (字节地址 A8H )

MCS-51 指令系统中没有专门的开中断和关中断指令,只有通过中断允许控制寄存器 IE 来控制CPU 对中断源的开放或屏蔽,即每个中断源是否被允许中断。

Page 104: 单片机原理与应用 (多学时)

6.3  中断控制及中断优先级

第 6章  MCS-51 单片机的中断系统

返回返回

6.3.2 中断优先控制寄存器 IP (字节地址 B8H )

MCS-51 具有两个中断优先级,每个中断源可以通过编程定为高优先级中断或低优先级中断,从而实现二级中断嵌套,即一个正在执行的低优先级中断服务程序能被高优先级中断源中断,但不能被同级或低优先级中断源中断。二级中断的嵌套过程如图所示。

Page 105: 单片机原理与应用 (多学时)

6.3  中断控制及中断优先级

第 6章  MCS-51 单片机的中断系统

返回返回图 二级中断嵌套过程

Page 106: 单片机原理与应用 (多学时)

6.4  中断响应及中断处理过程

第 6章  MCS-51 单片机的中断系统

返回返回

6.4.1 中断响应的条件和过程1.条件 ( 1) CPU 无高级或同级的中断服务。( 2 )当前指令已执行到最后一个机器周期,以确保当前指令的完整执行。( 3 )如果正在执行的是 RETI (中断返回)、 IE或 IP 的指令,需要保证执行完该指令及其后的另一条指令。2.过程( 1 )完成当前指令后立即终止现行程序,置位相应的优先级状态触发器,以阻断同级和低级中断。( 2 )将断点地址压入堆栈,同时清除中断请求标志( TI和 RI 除外)。( 3 )把对应的中断源入口地址送入程序计数器 PC ,转至相应的中断服务程序。

Page 107: 单片机原理与应用 (多学时)

6.4  中断响应及中断处理过程

第 6章  MCS-51 单片机的中断系统

返回返回

6.4.2 中断处理和返回

中断处理即为执行中断服务程序。中断服务程序从中断入口地址开始,首先要保存有关的寄存器内容,即保护现场;完成中断源请求的服务后,还要恢复这些寄存器内容(恢复现场),并在中断服务程序的末尾,安排一条返回指令,把断点地址送回程序计数器 PC ,使程序返回原断点处,结束中断过程。

Page 108: 单片机原理与应用 (多学时)

6.4  中断响应及中断处理过程

第 6章  MCS-51 单片机的中断系统

返回返回

6.4.3 中断响应时间 中断响应时间是指从查询中断请求标志位到转至中断服务程序入口地址所需的时间。如果一个边沿触发的外部中断请求有效,则置位相应的中断请求标志,然后在下一个机器周期再对这些值进行查询,请求中断信号的低电平至少应持续一个机器周期。如果发生了一个中断请求且符合响应条件,则 CPU 在下一个机器周期执行一条长调用指令,进行中断处理。该调用指令需要两个机器周期。因此,一共需要 3 个机器周期。 如果中断请求受阻,中断响应时间将延长。对于一个单一中断源的系统,中断响应时间为 3~8 个机器周期。

Page 109: 单片机原理与应用 (多学时)

6.4  中断响应及中断处理过程

第 6章  MCS-51 单片机的中断系统

返回返回

6.4.4 中断请求的撤除

CPU响应中断后,在中断返回前,应把该中断的相应标志位清零,撤除中断请求;否则,会引起重复中断而发生错误。 ( 1 )对于定时器 / 计数器的溢出中断及边沿触发的外部中断, CPU 在响应中断后即由硬件自动清除相关的中断请求标志。 ( 2 )对于串行口中断, CPU 在响应中断后,必须在中断服务程序中用软件清除中断标志,硬件没有相关措施。 ( 3 )对于电平触发的外部中断,仅靠清除中断标志是不能彻底撤除中断请求的。因此,必须在中断响应后把外部输入端信号从低电平强制变为高电平,才能彻底解决中断请求的撤除问题。

Page 110: 单片机原理与应用 (多学时)

6.5  中断的应用及编程

第 6章  MCS-51 单片机的中断系统

返回返回

编写中断程序首先需要初始化,用于实现对中断的控制;然后执行中断服务程序来完成中断源请求的各种操作。很明显,中断初始化程序的位置是处于主程序之中的,中断服务程序则存放在主程序之外的其他存储区。 中断初始化程序实际上就是对几个特殊功能寄存器的相关控制位进行赋值,具体步骤如下:( 1 )开启相应中断源的中断允许。( 2 )设定所有中断源的中断优先级。( 3 )规定外部中断的触发方式(电平触发还是边沿触发)。

Page 111: 单片机原理与应用 (多学时)

第 7章 串 行 口

串行通信的基础知识 7.1

MCS-51单片机的串行口结构和控制 7.2

MCS-51单片机串行口的工作方式 7.3

串行口的应用及编程7.4

返回返回

Page 112: 单片机原理与应用 (多学时)

7.1  串行口的基础知识

第 7章 串 行 口

返回返回

7.1.1 串行通信的分类按照串行数据的同步方式,串行通信可以分为异步通信和同步通信。1 )异步通信异步串行通信规定了字符数据的传送格式,即每个数据以相同的帧格式传送,如图所示。

Page 113: 单片机原理与应用 (多学时)

7.1  串行口的基础知识

第 7章 串 行 口

返回返回

2 )同步通信 在同步通信中,每一数据块开始时发送一个或两个同步字符,以使发送端与接收端双方获得同步。数据块的各个字符间不存在起始位和停止位,所以通信速度比异步通信快。同步通信时,如果发送的数据块之间有时间间隔,则发送同步字符填充。

小提示:基于异步通信和同步通信的传输特点,异步通信常用于传输信息量不大、速度较低的场合,如 50 b/s~9.6 kb/s;而在信息量很大、传输速度要求高的场合,通常采用同步通信,速度可达800 kb/s,因此同步通信方式在单片机系统中使用较少。

Page 114: 单片机原理与应用 (多学时)

7.1  串行口的基础知识

第 7章 串 行 口

返回返回

7.1.2 串行通信的传送1. 串行通信的传送方式 根据数据流动方向,串行通信的传送方式可分为单工、半双工和全双工 3 种,分别如图中的 (a)、 (b)、 (c) 所示。

Page 115: 单片机原理与应用 (多学时)

7.1  串行口的基础知识

第 7章 串 行 口

返回返回

2. 串行通信的数据传输速率 波特率是衡量一个通信系统数据传送快慢的常用指标。在串行通信中,波特率指每秒传送二进制的位数,它是每一位的传送时间的倒数,也就是说波特率是每秒传送的字符个数和每个字符所含二进制位数的乘积。波特率的单位是“波特”( baud )或位 /秒( b/s ),它既反映了串行通信的速率,也反映了对传输通道的要求,波特率越高,要求传输通道的频带就越宽。

在异步串行通信中,格式位的发送和接收都必须由时钟信号对传送的数据进行定时控制。发送时钟和接收时钟就是用来控制通信设备发送、接收字符数据速度的,该时钟信号一般都是由外部时钟电路产生的。

Page 116: 单片机原理与应用 (多学时)

7.2 MCS-51 单片机的串行口结构和控制

第 7章 串 行 口

返回返回

MCS-51 系列单片机的串行口是一个可编程的全双工串行通信接口,异步接收 /发送器已经集成在芯片内部。该串行口波特率由 CPU 内部的定时器 / 计数器产生,可进行软件设置。接收或发送数据后均可触发中断系统,允许用户应用程序中采用中断方式实现串行通信,应用十分灵活。 MCS-51 系列的串行口内部包含发送缓冲器和接收缓冲器,两者在物理上是相互独立的,可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器则只能读出不能写入。两个缓冲器占用同一个地址( 99H ),并且用同一个符号 SBUF 表示。 与串行口设置有关的特殊功能寄存器除了定时器 / 计数器之外,还包括两个控制寄存器:串口控制寄存器 SCON 和电源控制寄存器 PCON 。

Page 117: 单片机原理与应用 (多学时)

第 7章 串 行 口

返回返回7.3 MCS-51 单片机串行口的工作方式

7.3.1 方式 0 方式 0是 8 位同步移位寄存器的工作方式,此时 SCON 中的 SM2必须为 0 。同步数据由接收数据引脚 RXD 串行地接收或传送,发送数据引脚 TXD 用于输出同步时钟脉冲。同步数据的发送和接收以 8位为一帧,低位在前,高位在后。 1 )方式 0发送

Page 118: 单片机原理与应用 (多学时)

第 7章 串 行 口

返回返回7.3 MCS-51 单片机串行口的工作方式

2 )方式 0 接收

7.3.2 方式 1 在方式 1下,串行口为 8 位异步通信接口。 10 位数据为一帧信息,主要包括 1 位起始位、 8 位数据位和 1 位停止位。 RXD 引脚为接收端, TXD 引脚为发送端;数据的接收和发送都是低位在前,高位在后。

Page 119: 单片机原理与应用 (多学时)

第 7章 串 行 口

返回返回7.3 MCS-51 单片机串行口的工作方式

1 )方式 1发送

2 )方式 1 接收

Page 120: 单片机原理与应用 (多学时)

第 7章 串 行 口

返回返回7.3 MCS-51 单片机串行口的工作方式

7.3.3 方式 2 在方式 2下,串行口为 9 位异步通信接口, 11 位数据为一帧,包括 1位起始位、 8 位数据位、 1 位可编程位(第 9 位数据位)和 1 位停止位。 RXD 引脚为接收端, TXD 引脚为发送端;数据的接收和发送都是低位在前,高位在后。其格式同方式 1 。其中,第 9 位数据位可以作为串行通信的奇偶校验位,也可作为多机通信时的地址、数据帧识别。

7.3.4 方式 3 方式 3下的串行口也是 9 位异步通信接口, 11 位数据为一帧,通信过程与方式 2 的完全相同,不同之处在于方式 2 的波特率是固定的两种,而方式 3 的波特率的设定则与方式 1 相同,即由定时器 / 计数器 T1 的溢出率决定。

Page 121: 单片机原理与应用 (多学时)

第 7章 串 行 口

返回返回7.4  串行口的应用及编程

串行口应用时首先必须进行初始化编程,主要任务包括设置串行口的工作方式,设定 SCON寄存器,设置波特率,选择查询方式或中断方式。 关于波特率,对于方式 0 ,无须相关设置;对于方式 2 ,仅需对PCON寄存器中的 SMOD 位进行编程;对于方式 1 和方式 3 ,不仅要对 PCON 中的 SMOD 位编程,还要开启定时器 / 计数器 T1 ,对 T1 编程。

Page 122: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

系统扩展概述 8.1

存储器的扩展 8.2

并行I/O接口的扩展 8.3

串行I/O接口的扩展 8.4

定时器/计数器的扩展 8.5

返回返回

Page 123: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

8.1.1 最小应用系统

单片机应用系统的扩展是以基本的最小系统为基础的。实际上,内部带有程序存储器的 8051或 8751 单片机本身就是一个最简单的最小应用系统,许多实际应用系统就是用这种成本低和体积小的单片结构实现了高性能的控制。 如果采用的内部无程序存储器芯片的 8031 单片机,则要用外接程序存储器的方法才能构成一个最小应用系统。实际应用中常常采用以下两种最小应用系统。

Page 124: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

1. 片内带程序存储器的最小应用系统

片内带程序存储器的 8051、 8751 单片机本身即可构成一个最小系统,只要将单片机接上时钟电路和复位电路即可,如图所示。

Page 125: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

2. 片内无程序存储器的最小应用系统

片内无程序存储器的芯片构成最小应用系统时,必须在片外扩展程序存储器。由于一般用做程序存储器的 EPROM芯片不能锁存地址,故扩展时还应加一个锁存器,构成一个3 片最小系统,如 74LS373 为地址锁存器,用于锁存低 8 位地址,如图 8-2 所示。

Page 126: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

8.1.2 系统扩展的内容及方法 系统的扩展一般有下列几方面的内容:外部程序存储器扩展;外部数据存储器扩展;并行输入 / 输出口( I/O 口)的扩展;串行I/O 口的扩展;定时器 / 计数器的扩展等。 MCS-51 单片机系统扩展示意图,如图所示。

Page 127: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回 为了使单片机能方便地与各种扩展芯片连接,常将单片机的外部总线连接为一般的微型计算机三总线结构形式。对于 MCS-51 系列单片机,三总线由下列通道口的引线组成: (1)地址总线。由 P2端口提供高 8 位地址线, P0端口提供低 8位地址线。由于 P0端口是地址和数据分时复用的口线,需外加地址锁存器锁存低 8 位地址信息,一般用单片机的 ALE 正脉冲信号下降沿控制地址锁存器工作。 (2) 数据总线。由 P0 口提供 8 位双向数据线。 (3) 控制总线。扩展系统时常用的控制信号如下所述: ALE :地址锁存信号,用以实现对低 8 位地址的锁存,高电平有效。 PSEN :片外程序存储器读选通信号。 RD :片外数据存储器读信号。 WR :片外数据存储器写信号。

Page 128: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

图为单片机扩展成三总线结构的示意图。

扩展芯片与单片机的连接方法与一般三总线结构的微机完全一样。

Page 129: 单片机原理与应用 (多学时)

8.1  系统扩展概述

第 8章 单片机系统的扩展

返回返回

MCS-51 单片机系统扩展低 8 位地址总线的电路中,常采用74LS373、 Intel8282、 74LS273芯片作为地址锁存器,如图所示。 74LS373与 Intel8282 是同类芯片,区别是具体引脚不同。

Page 130: 单片机原理与应用 (多学时)

8.2 存储器的扩展

第 8章 单片机系统的扩展

返回返回

8.2.1 单片机的地址译码方法 扩展地址译码的方法通常有 3 种方法:线选法、译码法和片外体选法。 1. 线选法 所谓线选法,就是直接利用系统的地址线作为存储器芯片的片选信号。 2.译码法 所谓译码法就是使用地址译码器对系统的片外地址进行译码,以译码输出作为存储器芯片的片选信号。 译码法又分为完全译码和部分译码两种。 (1) 完全译码。地址译码器使用了全部地址线,地址与存储单元一一对应,也就是一个存储单元只占用一个唯一的地址。 (2) 部分译码。地址译码器仅使用了部分地址线,地址与存储单元不是一一对应,一个存储单元占用了几个地址。

Page 131: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.2 存储器的扩展

3. 片外体选法 MCS-51 单片机的数据存储器的直接扩展范围为 64 KB 。如果需要扩展大于 64 KB 的存储空间,可将待扩展的存储体划分成可直接扩展的多个存储体。利用输出端口控制选择具体的每个存储体。采用这种方法可使MCS-51 单片机根据需要扩展大于 64 KB 的存储体。

Page 132: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.2 存储器的扩展

8.2.2 常用存储器

半导体存储器分为随机存取存储器 (RAM) 、只读存储器 (ROM)和串行存储器 3类,根据其功能特点随机存取存储器又被称为数据存储器,只读存储器称为程序存储器。1. 程序存储器 根据编程方式的不同, ROM 可分为以下 4 种:(1)掩膜 ROM 。 (2) 可编程 ROM(PROM) 。

Page 133: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.2 存储器的扩展

2. 数据存储器 数据存储器 RAM 可分为静态 RAM( static random access memory, SRAM )和动态 RAM( dynamic random access memory, DRAM )两种,对 RAM既可以进行写操作,又可以进行读操作。 MCS-51 系列单片机片内有 128 B的 RAM 数据存储器,它们可以作为工作寄存器、堆栈、软件标志和数据缓冲器使用,片外数据存储器主要用于存储控制现场采集的原始数据、运算结果等,所以外部数据存储器的内容需要能够随机读出或写入,通常采用 SRAM 电路。

3. 串行存储器 串行存储器是一种 CMOS 工艺制成的电可擦除可编程只读存储器。近年来,基于 I2C 总线的各种串行 EEPROM 的应用日渐增多。串行存储器具有一般并行存储器的特点,但以串行的方式访问,价格低廉。

Page 134: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.2 存储器的扩展

8.2.3 程序存储器的扩展

MCS-51 单片机的程序存储器寻址空间为 64 KB 。其中 8051/8751片内包含 4 KB的 ROM或 EPROM, 8031 片内不带 ROM 。当片内ROM 不够使用或采用 8031芯片时,需扩展程序存储器。 存储器扩展的核心问题是存储器的编址问题。 MCS-51 单片机应用系统中常用的 3 种程序存储器的扩展方法是:不采用片外译码的单片程序存储器的扩展、采用线选法的多片程序存储器的扩展、以及采用地址译码器的多片程序存储器的扩展。

Page 135: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.2 存储器的扩展

8.2.4 数据存储器的扩展

小提示:外部扩展 RAM的空间原则上最大可以为 64 KB,但还要考虑一部分地址要留给扩展 I/O口,因此扩展不能占用整个空间。

数据存储器的扩展方法大体上分为两种: ( 1 )扩展容量为 256 B的 RAM ,这时可采用“ MOVX A ,@Ri” 指令访问外部 RAM ,只用 P0 口传送 8 位地址; ( 2 )扩展容量大于 256 B 而小于 64 KB的 RAM ,访问外部RAM 时采用“ MOVX A ,@ DPTR” 指令,同时用 P0和 P2 口传送 16位地址。

Page 136: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.3并行 I/O 接口的扩展

8.3.1简单并行 I/O 接口的扩展

在实际应用中经常会遇到开关量、数字量的输入 / 输出,如开关、键盘、数码显示器等外设,主机可以随时与这些外设进行信息交换。 在这种情况下,只要按照“输入三态,输出锁存”与总线相连的原则,选择 74LS 系列的 TTL或MOS 电路即能组成简单的 I/O 扩展口。它具有电路简单、成本低、配置灵活的特点。

Page 137: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.3并行 I/O 接口的扩展

例如,采用 8 位三态缓冲器 74LS244组成输入口,采用8D锁存器74LS273 组成输出口。简单的并行I/O 口扩展电路的连接方法如图所示。

Page 138: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.3.2 可编程并行 I/O接口 8255A

8255A 是可编程输入 /输出接口芯片,有 3个 8 位并行 I/O 接口( A 口、 B 口和 C 口),具有 3 种工作方式,可通过程序改变其功能,使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。

8255A 的引脚及内部结构如图所示。

8.3并行 I/O 接口的扩展

Page 139: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回

4.实例编程 在实际的应用系统中,必须根据外围设备的类型选择 8255A 的操作方式,并在初始化程序中把相应控制字写入控制口。根据图举例说明 8255A 的编程方法。

8.3并行 I/O 接口的扩展

Page 140: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回

如要求 8255A 工作在方式 0 ,且 A 口作为输入, B 口、 C 口作为输出,程序为: MOVA,# 90H ; A 口方式 0 输入 ,B 口、 C 口输出的方式控制字→ A MOVDPTR,# OFF7FH;控制寄存器地址→ DPTR MOVX@DPTR,A;方式控制字→控制寄存器 MOVDPTR ,# OFF7CH; A 口地址→ DPTR MOVXA,@DPTR;从 A 口读数据 MOVDPTR ,# OFF7DH; B 口地址→ DPTR MOVA ,# DATA1;要输出的数据# DATA1→A MOVX@DPTR, A;将# DATA1送 B 口输出 MOVDPTR ,# OFF7EH ; C 口地址→ DPTR MOVA,# DATA2;# DATA2→A MOVX@DPTR,A;将# DATA2送 C 口输出 小提示: 8255A 的 C 口 8 位中的任一位,均可用指令来置位或复位。

8.3并行 I/O 接口的扩展

Page 141: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.4 串行 I/O 接口的扩展

8.4.1 串口的扩展目前扩展串口方法主要有以下几种: (1) 采用串口扩展芯片。

(2) 采用分时切换方法。

(3) 用软件模拟方法扩展串口。该方法扩展串口有两个缺点:由于使用了 INT外部中断,故只能使用两个 INT外部中断扩展两个串口;发送和接收数据效率比较低,占用了 CPU 大量时间,不能与其他任务同时进行,所以使用范围有限。

Page 142: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回

8.4.2 用串行口扩展并行 I/O 口

如果在应用系统中,串行口未被用于串行通信,可将片内串行口用于扩展并行 I/O 口。此时,串行口工作在方式 0 。在这种应用方式下,串行口作为同步移位寄存器,其波特率为固定的值fosc/12 。 数据由 RXD端 (P3.0) 输入 / 输出,同步移位时钟由 TXD端(P3.1) 输出。发送、接收的是 8 位数据,低位在前。这样既不占用片外的 RAM地址,又节省硬件开销,是一种经济实用的方法。

8.4 串行 I/O 接口的扩展

Page 143: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

MCS-51 的内部有两个 16 位定时器 /计数器,能满足绝大多数应用场合的需要。在特殊情况下,若需要更多的定时器 /计数器,则可采用 Intel公司生产的 8253可编程定时器 /计数器接口电路。 8253 可编程定时器 /计数器芯片内有 3 个独立的16 位计数器。每个计数器的最高计数频率可达 2.6 MHz。它所有的计数方式、操作方式都通过编程控制。由于它的功能强,且能很方便地与其他型号的微机系统相配,所以近年来得到了广泛的应用。

Page 144: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展1.8253 的组成结构8253 的引脚及内部结构框图,如图所

示。

Page 145: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

2. 内部结构及引脚说明

8253的 3 个计数器完全相同,都可以按二进制计数或BCD 码计数。 每个计数器都有 3根 I/O 线;控制字寄存器用来寄存CPU写入的控制字,每一个计数器都单独有一个控制寄存器,以控制该计数器的操作方式,且控制寄存器只能写入,不能读出。 8253与 CPU 的接口控制逻辑同 8255A 相似, 8253共有24 个引脚 。

Page 146: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

8253有 3 个独立的控制寄存器, SC1、 SC0 两位为计数器选择位,可确定该控制字写入哪一个计数器所对应的控制寄存器。 RL1、 RL0 这两位用来设定对计数器的读 /写顺序。一旦设定了计数器的读 /写顺序,则计数器就能够在 CPU 进行读 /写时提供正确的指向。 其中,计数器的闩锁操作作用于计数过程中的读出。

控制字的 BCD 位用来确定计数方式。 BCD= 0 时计数器按二进制计数; BCD= 1 时计数器按二进制—十进制 (BCD) 码计数。M2、M1、M0这 3 位用来设定计数器的操作方式。

Page 147: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

8253 的计数器共有 6 种操作方式,各种操作方式如下:1) 方式 0

Page 148: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

2) 方式 1

图 8-16 8253 方式 1 计数定时波形

Page 149: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展3) 方式 2

图 8-17 8253 方式 2 计数定时波形

Page 150: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

4) 方式 3 方式 3 计数时,计数器输出为方波。

5) 方式 4 方式 4 为软件触发选通方式。采用方式 4 计数时,方式控制字写入 8253后,计数器输出高电平,写入数值之后开始计数。当计数到 0时输出一个时钟周期的负脉冲。 6) 方式 5 方式 5 为硬件触发选通方式。写入方式控制字和计数值后,输出保持高电平,只有在门控信号 GATE 在上升沿之后才开始计数,计完最后一个数,输出

Page 151: 单片机原理与应用 (多学时)

第 8章 单片机系统的扩展

返回返回8.5 定时器 / 计数器的扩展

4.8253 的读写操作

1)写入操作 CPU写入 8253 的信息包括控制字和计数值。写入各个计数器的控制字,在顺序上没有任何限制。但写入计数值时,由于 16 位的计数值必须分两次写入,因此写入操作必须按照控制字中 RL1、 RL0 所设定的顺序进行。另外,由于计数器是递减计数器,故如果把 0000H写入计数器,则将得到最大的计数值。2)读出操作 CPU读取 8253 计数器当前计数值有两种方法。第一种方法为简单的读出方式,选中某一个计数器,按控制字设定顺序读出。为了读出稳定的值,必须由门控输入或由禁止时钟输入的方法停止计数器计数。

Page 152: 单片机原理与应用 (多学时)

第 9章 接口技术

键盘及显示器接口设计 9.1

A/D转换器及应用 9.2

D/A转换器及应用 9.3

USB接口 9.4

返回返回

Page 153: 单片机原理与应用 (多学时)

9.1.1键盘接口设计 键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。常用的键盘电路有两种:独立式键盘和矩阵式键盘。1.独立式键盘工作原理 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根 I/O 口线,每个按键的工作不会影响其他 I/O 口线的状态。独立式按键的电路如图 9-1 所示。

9.1  键盘及显示器接口设计

第 9章 接口技术

返回返回

Page 154: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

图中按键输入均采用低电平有效,每个键对应 P1.0~ P1.7 的一位,没有键闭合时,通过上拉电阻使 P1 口处于高电位,因此, CPU 只要检测到 P1.x为 0 ,便可判断出对应键已按下。

此外,上拉电阻保证了按键断开时, I/O 口线有确定的高电平。当 I/O 口线内部有上拉电阻时,外电路可不接上拉电阻。

Page 155: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

2.矩阵式键盘工作原理

单片机系统中,若按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图所示。

Page 156: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

3.抖动与重键问题键盘设计时,除了对键码的识别外,还有两个问题需要解决:抖动问题和重键问题。1 )抖动机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图 9-3 所示,抖动时间的长短与开关的机械特性有关,一般为 5~10 ms 。2 )重键重键就是指有两个或多个键同时闭合。对重键的处理方法一般采用连锁法和巡回法。

Page 157: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计 4.键盘的工作方式 键盘的工作方式有 3 种,即编程扫描、定时扫描和中断扫描。 下面仅简单介绍一下编程扫描方式的工作原理: 编程扫描方式是利用 CPU 完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时, CPU 不再响应键输入请求,直到 CPU重新扫描键盘为止。 键盘扫描程序一般应包括以下内容:( 1 )判别有无键按下。( 2 )延时去抖动。用软件延时 10 ms后,再判断键盘状态。( 3 )键盘扫描取得闭合键的行、列值。( 4 )用计算法或查表法得到键值。( 5 )判断闭合键是否释放,如没释放则继续等待。( 6 )将闭合键键号保存,同时转去执行该闭合键的功能。

Page 158: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

编程扫描方式的程序流程图如图所示。

Page 159: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

9.1.2显示器与单片机的接口

单片机应用系统最常用的显示器是 LED (发光二极管显示器)和 LCD (液晶显示器),这两种显示器可显示数字、字符及系统的状态,它们的驱动电路简单、易于实现且价格低廉,因此,得到了广泛应用。 1.LED 数码管显示器的结构 常用的 LED显示器有 LED状态显示器(俗称发光二极管)、 LED七段显示器(俗称数码管)和 LED 十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示; LED 十六段显示器用于字符显示。

Page 160: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

1.LED 数码管显示器的结构 LED七段显示器的外形结构如图 9-6( a )所示。它由 8 个发光二极管按“日”字形排列,其中 a~g 7 个发光二极管组成“日”字形的笔画段,另一个发光二极管 dp 为圆点形状,作为显示器的右下角的小数点使用。数码管又分为共阴极和共阳极两种结构,分别如图 9-6( b )和图 9-6( c )所示。

Page 161: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

2.LED 数码管工作原理

当某一个发光二极管导通时,相应的笔画段就被点亮。这样,若干个二极管导通,就构成 0~9 的阿拉伯数字符号以及其他能由这些笔画段构成的简单字符。 在共阳极数码管中,导通点亮的二极管用 0 表示,其余用 1表示;而在共阴极数码管中,导通点亮的二极管用 1 表示,其余用 0 表示。根据发光字段的不同组合可显示出各种数字或字符。

Page 162: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

3.LED七段数码管的静态显示和动态显示1 )静态显示 静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。 静态显示器可以采用 CPU 的并行 I/O 口,如 P1 口、 8155、 8255芯片的扩展口等实现;也可由单片机串行口扩展移位寄存器来实现,如74LS164、 74LS47 等。2 )动态显示 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个 8位的 I/O 口控制;各位的位选线(公共阴极或阳极)由另外的 I/O 口线控制。

Page 163: 单片机原理与应用 (多学时)

第 9章 接口技术

9.1  键盘及显示器接口设计

9.1.3典型的键盘 /显示接口电路

在单片机应用系统中,键盘和显示器往往需同时使用,为节省 I/O口线,可将键盘和显示电路做在一起,构成实用的键盘 /显示电路。 LED显示器采用共阴极数码管。 8155的 B 口用做数码管段码输出口; A 口用做数码管位码输出口,同时,它还用做键盘列选口; C 口用做键盘行扫描信号输入口。 当其选用 4根口线时,可构成 4×8键盘,选用 6根口线时,可构成 6×8键盘。 LED 采用动态显示软件译码,键盘采用逐列扫描查询工作方式, LED 的驱动采用 74LS244 总线驱动器。

Page 164: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用  

9.2.1A/D转换器

A/D转换器是一种能把输入模拟电压或电流变成与其成正比的数字量的电路芯片,从而实现模拟量到数字量的转换。 A/D转换器的种类很多,目前常用的有计数式 A/D转换器、双积分式 A/D转换器、逐次逼近式 A/D转换器、并行式 A/D转换器和∑ -⊿式 A/D转换器。 计数式 A/D转换器转换速度较慢;双积分式 A/D转换器抗干扰能力强,转换精度很高,但速度较慢,主要用于对速度要求不高的场合;逐次逼近式 A/D转换器是一种转换速度较快、转换精度较高的 A/D转换器,使用范围较广;并行式 A/D转换器的转换速度最快,但因结构复杂而造价较高,只用于对转换速度要求极高的场合;∑ -⊿式 A/D转换器是一种新型的A/D转换器,具有积分式和逐次逼近式 A/D转换器的双重优点,具有较高的信噪比和串模干扰抑制能力,分辨率较高,线性度好,被应用到各种测控仪器和系统中。

Page 165: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用  

A/D转换器的主要技术指标有:

( 1 )分辨率。( 2 )量化误差。( 3 )偏移误差。( 4 )满刻度误差。( 5 )线性。( 6 )绝对精度。( 7 )转换速率。

Page 166: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用  

1.ADC0809 的内部结构和引脚 ADC0809 是一种8位 8 通道的 A/D转换器,可实现 8 路模拟信号的分时转换,每个通道均能转换出8 位数字量。 ADC0809 内部逻辑结构如图所示。

9.2.2 8位 A/D转换器 ADC0809 及其应用 ADC0809 是一个逐次比较型的转换器。

Page 167: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用  

ADC0809芯片为 28 引脚芯片,双列直插封装,引脚排列如图所示。

Page 168: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用  

ADC0809与 8031 单片机的一种连接如图 9-10 所示。

Page 169: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 2 A/D转换器及应用   电路连接主要涉及两个问题,一是 8 路模拟信号通道选择,二是 A/D转换完成后转换数据的传送。 1) 8 路模拟通道选择 对系统来说,地址锁存器是一个输出口,为了把 3 位地址写入,还要提供口地址。 ADC0809 没有设置单独的片选端,因此采用综合方法使ST/ALE和 OE 包含单片机控制和片选信息,用 P2.0=0 作为 ADC0809 的片选。另外, A/D转换所需的时钟信号是单片机 ALE 的二分频后的信号。 EOC经反相器与 P3.3(INT1) 相连。 2 )转换数据的传送 A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认 A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此,可采用下述 3 种方式。( 1 )定时传送方式。( 2 )查询方式。 ( 3 )中断方式。

Page 170: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  9.3.1 D/A转换器 D/A转换器的功能是把一个用二进制表示的数字量转换成相应的模拟量。在控制系统中, D/A转换器可以实现对被控对象的控制, CPU 按照预先设置的控制算法计算出控制量,由 D/A转换器输出,再通过执行结构就可以完成控制任务。另外, D/A转换器也可以作为波形发生器,用软件产生所需要的波形。 从 D/A转换器输出信号的形式来看, D/A转换器有电流和电压两种信号输出形式。电流输出形式的 D/A转换器可以在其输出端增加电流 / 电压转换电路,把电流转换成电压输出。 从芯片内部是否带输入数据锁存器来分, D/A转换器可分为带锁存器的 D/A转换器和不带锁存器的 D/A转换器。由于 D/A转换过程中,要求输入的数字量在这段时间内保持不变,所以,转换数据必须锁存,直到新的数据到来。对于不带锁存器的 D/A转换器,在使用时必须设计独立的输出接口电路与 D/A转换器连接。

Page 171: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  

9.3.2 8位 D/A转换器 DAC0832 及其应用 DAC0832 是一种双列直插式的 8位 D/A转换器,单电源供电,电流形式输出;当需要电压输出时,应外接运算放大器,把输出电流转换成电压。。 1. DAC0832 内部结构框和引脚

Page 172: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  

DAC0832为 20脚双列直插式封装结构,引脚信号如图 9-12 所示。

Page 173: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  

2. 单片机与 DAC0832 的接口

通常, CPU与 DAC0832 接口时,可以有 3 种工作方式:直通方式、单缓冲方式和双缓冲方式。1 )直通方式 直通方式是将 CS、WR1、WR2、 XFER 引脚都直接接数字地。 ILE 引脚为高电平时,芯片内两个寄存器均处于直通状态。此时, 8 位数字量一旦到达 DI7~ DI0 输入端,就立即执行 D/A转换而输出。2 )单缓冲方式 所谓单缓冲方式就是使 DAC0832 的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者说两个输入寄存器同时受控的方式。

Page 174: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  

3 )双缓冲方式 所谓双缓冲方式,就是把 DAC0832 的两个锁存器都连接成受控锁存方式。双缓冲方式用于多路数模转换系统,以实现多路模拟信号同步输出的目的。在多路 D/A转换的情况下,若要求同步转换输出,必须采用双缓冲方式。 DAC0832 采用双缓冲方式时,数字量的输入锁存和 D/A转换输出是分两步进行的。( 1) CPU 分时向各路 D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中。( 2) CPU 对所有的 D/A转换器发出控制信号,使各路输入寄存器中的数据进入 DAC寄存器,实现同步转换输出。

Page 175: 单片机原理与应用 (多学时)

第 9章 接口技术

9. 3 D/A转换器及应用  

图 9-16 为两片DAC0832与 8031 的双缓冲方式连接电路,能实现两路同步输出。

Page 176: 单片机原理与应用 (多学时)

第 9章 接口技术

9.4 USB 接口 

9.4.1 USB 接口技术 USB 是用于将适用 USB 的外围设备连接到主机的外部总线结构,其主要用在中速和低速的外设上。 USB 通过 PCI 总线和 PC 的内部系统数据线连接实现数据的传输, USB 同时又是一种通信协议,用来支持主系统 (host)和 USB 的外围设备 (device)之间的数据传输。 USB有 4 种传输方式:控制 (control) 方式、同步 (isochronous) 方式、中断 (interrupt) 方式和大量 (bulk) 方式。如果是从硬件开始来设计整个系统,就要正确选择传输方式。而作为一个驱动程序的书写者就只需要弄清楚它采用的是什么工作方式,通常所有的传输方式下的主动权都在PC边,也就是 host边。

Page 177: 单片机原理与应用 (多学时)

第 9章 接口技术

9.4 USB 接口 

9.4.2 USB 接口芯片 FT245AM FT245AM集成了 USB1.1 通信协议和外设接口,可以方便地实现USB 主机与外设 MCU、 CPLD 的接口,其数据传输速率可达 1 Mb/s 。 FT245AM 内部 128 字节的接收 FIFO和 384 字节的发送 FIFO ,大大提高了 USB 主机与外设的通信质量。另外, FT245AM 还具备 3.3 V的 LDO调整器、八倍频器、 USB 数据时钟恢复 PLL、 USB收发器,且 EEPROM 接口逻辑单元可外接串行存储器 93C46 ,以实现 USB VID、 PID 、序列号和设备说明字符串的存储。 使用 FT245AM 可大大简化其外围电路,使用户设备更趋于小型化。

Page 178: 单片机原理与应用 (多学时)

第 9章 接口技术

9.4 USB 接口 

FT245AM 的内部结构如图9-27 所示。

Page 179: 单片机原理与应用 (多学时)

第 10章 单片机应用系统设计

单片机应用系统及设计 10.1

单片机应用系统设计的方法 10.2

综合设计举例—— 数码管显示 10.3

返回返回

Page 180: 单片机原理与应用 (多学时)

10.1  单片机应用系统及设计

第 10章 单片机应用系统设计

10.1.1 单片机应用系统的组成单片机应用系统由硬件系统和软件系统组成。典型的单片机应用系统组成框图如图 10-1 所示。

Page 181: 单片机原理与应用 (多学时)

10.1  单片机应用系统及设计

第 10章 单片机应用系统设计

10.1.2 单片机应用系统的设计过程 单片机应用系统设计主要包括以下几个步骤:( 1 )可行性分析。( 2 )总体方案设计。总体方案设计包括系统的要求,应用方案的选择,硬件结构和应用程序结构的确定等。( 3 )系统硬件设计。系统硬件设计包括接口电路、逻辑电路及操作面板等。( 4 )系统软件设计。系统软件设计包括管理、监控程序以及应用程序的设计。( 5 )系统的调试与实验。将软硬件相结合,分模块调试,修正和完善设计,最后进行整个系统的调试。( 6 )系统的产品化。

Page 182: 单片机原理与应用 (多学时)

10.1  单片机应用系统及设计

第 10章 单片机应用系统设计

图 10-2给出了单片机系统设计的一般过程。

Page 183: 单片机原理与应用 (多学时)

10.1  单片机应用系统及设计

第 10章 单片机应用系统设计

10.1.3 单片机应用系统的设计原则

单片机应用系统不同于通用计算机系统。通用计算机系统主要用于数据处理,要求存储容量大、运行速度快、通用性强。 单片机应用系统主要实现各种检测或过程控制,功能比较单一,不要求较强的通用性,在设计单片机应用系统时,既要实现测控功能、降低成本,又要满足以下技术要求:( 1 )可靠性高。( 2 )适应现场工作环境。( 3 )具有完善的输入 / 输出通道和实时控制能力。( 4 )易于操作和维护。( 5 )具有一定的可扩展性。

Page 184: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

10.2.1 系统总体方案的确定

确定单片机应用系统总体方案,是整个设计最重要、最关键的一步。它的好坏直接影响整个单片机系统的投资、调节品质及实施细则。 总体方案的设计主要是根据被控对象的工艺要求而确定的,所以确定控制系统的总体方案必须根据实际的工艺要求,结合具体对象而定。在总体设计方案中还是存在一定的共性,有以下几个方面:1. 可行性分析 可行性分析是指分析完成该项目的可能性。进行可行性分析的基本原则如下:( 1 )技术效果好,经济效益(或社会效益)高。( 2 )技术先进,造价低。 ( 3 )可靠性高,易维修。( 4 )开发研制周期短。 ( 5 )操作简便,容易掌握。

Page 185: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

2.确定控制系统方案

调研工作完毕以后,就要确定系统需求、系统目标任务了。首先需要确定系统采用开环系统还是闭环系统,或者是数据处理系统。如果采用闭环控制系统,则还要确定是采用直接数字控制( DDC )系统,还是采用计算机监督控制( SCC )系统,或者采用分布式控制( DCS )系统。 工作的重点应放在该项目的技术难度上,此时必须根据系统应用场合、工作环境、具体用途,参考国内外同类产品的有关性能,提出合理的、详尽的、符合国际标准的功能技术指标,并编写出设计任务书。应该指出,技术指标在开发过程中还应作适当的调整。

Page 186: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

3.选择单片机

单片机种类繁多,选择合适的单片机是应用系统设计的关键。一般可以从以下几个方面考虑:( 1 )所选的单片机型号必须有稳定、充足的货源,最好选择该领域应用最广的单片机系列产品。( 2 )根据系统的功能要求和各种单片机的性能,选择最容易实现系统指标的型号,而且能达到较高的性价比。( 3 )在研制任务重、时间紧的情况下,尽可能选择技术成熟、有较多软件支持、具有相应单片机的开发工具,比较熟悉的机型,以便能马上着手进行系统的设计;同时可以借鉴一些现有的技术,利用性能优良的开发工具缩短开发周期,降低开发成本。

Page 187: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

4.选择检测元件 选择好被测参数的测量元件是影响控制系统精度的重要因素之一。

5.选择执行机构 执行机构的选择一方面要与控制算法匹配,另一方面要根据被控对象的实际情况决定。

6. 软件和硬件的功能划分 软件和硬件功能的划分如同人的思想和躯干功能的划分一样。在实际应用中,一旦一个系统功能确定,其软件和硬件的功能就基本确定。但从另一方面说,具有相同功能的单片机应用系统,其软硬件功能可以在很宽的范围内变化,一些硬件电路的功能可以由软件来实现,反之亦然。软件替代硬件,可以降低成本,但可能降低系统速度;硬件替代软件,会增加成本,但也提高工作速度。

Page 188: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

10.2.2 系统的硬件设计 硬件的功能由系统总体方案所确定,接下来就应进行系统的硬件设计。硬件设计的任务是根据总体设计要求,在所选机型的基础上,具体确定系统中所要使用的元器件,绘制出系统的电路原理图,以确保电路的正确性,1. 硬件设计原则 在设计单片机应用系统硬件电路时要遵循以下几个原则:( 1 )尽量选择标准化、模块化的典型电路,并符合单片机的常规用法,这样可以提高设计的成功率和结构的灵活性。( 2 )系统的扩展及各功能模块的设计在满足应用系统功能要求的基础上,应考虑留有充分余量,为后续产品升级留有余地。如果在最初设计时没有留有任何余地,后期很可能会因为一点小小的改动或扩展而被迫全面返工。( 3 )硬件设计同时要结合软件方案一起考虑。( 4 )相关的器件要和系统整体要求的性能指标相匹配。( 5 )在电路设计时,要充分考虑应用系统各部分的驱动能力。

Page 189: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

( 6 )系统的可靠性及抗干扰设计在硬件设计中也是十分重要的。( 7 )设计时尽可能多作些调研,采用最新器件与最新技术。( 8 )应充分重视电源电路的设计,电源的功率要足够大。

2. 硬件设计的步骤 硬件设计的具体步骤如下:( 1 )根据各输入 / 输出数据的传送方式确定是中断方式、查询方式还是无条件方式等。( 2 )根据系统需要确定使用哪种结构,确定系统中主要电路是最小应用系统还是扩展系统。除单片机外,系统中还需要哪些扩展芯片、模拟电路等。( 3 )进行资源分配,各输入 / 输出信号应分别使用哪个并行口、串行口、中断、定时器 / 计数器等。( 4 )进行电路连接,绘制出完整的电路连接图。

Page 190: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

10.2.3 系统的软件设计 一般来说,单片机中的软件可分为两大类:一类是应用程序,用来完成各种实质性的功能,如测量、计算、显示、打印、输出控制等;另一类是监控软件,它是控制单片机系统按预定操作方式运行的程序,负责协调各执行模块和操作者的关系,充当组织调度角色,也称为 Debug程序,是最基本的调试工具。

1. 软件设计原则( 1 )根据软件各功能模块之间的联系以及在时间上的关系,设计出合理的软件结构,使其清晰、简洁、流程合理。( 2 )培养结构化程序设计风格,各功能模块实现模块化、系统化,既便于调试、连接,又便于移植、修改。

Page 191: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

( 3 )根据系统输入 / 输出变量建立正确的数学模型,它是关系到系统性能好坏的重要因素。( 4 )在编写应用程序之前,应绘制出程序流程图。( 5 )合理分配系统资源,包括 ROM、 RAM 、定时器 / 计数器、中断源等,既能节约存储容量,又能给程序设计与操作带来方便。( 6 )运行状态实现标志化管理。( 7 )加强软件抗干扰设计,它是提高单片机应用系统可靠性的有力措施。( 8 )为了提高系统运行的可靠性,还应设置自诊断程序,在系统运行前先运行自诊断程序,用来检查系统各特征参数是否正常。 总之,软件设计的宗旨是在满足对象算法及系统控制要求的前提下,简化程序结构,提高程序的使用效率。

Page 192: 单片机原理与应用 (多学时)

10.2 单片机应用系统设计的方法

第 10章 单片机应用系统设计

2. 系统定义 系统定义是在软件设计之前,进一步明确软件所要完成的功能,然后结合硬件结构,确定软件承担的任务细节。系统定义的内容包括以下几个方面:( 1 )定义各输入 / 输出的功能、信号类别、电平范围、与系统接口方式、占用口地址、读取的输出方式等。( 2 )定义分配存储空间,包括主程序、常数表格、功能子程序块划分、入口地址表等。( 3 )若有断电保护措施,应定义数据暂存区标志单元等。( 4 )面板开关、按键等控制输入量的定义与软件编制密切相关,系统运行过程中的显示、运算结果的显示、正常运行和出错显示等由软件完成。

Page 193: 单片机原理与应用 (多学时)

第 10章 单片机应用系统设计

单片机软件的研制流程如图 10-3 所示。

10.2 单片机应用系统设计的方法

Page 194: 单片机原理与应用 (多学时)

第 10章 单片机应用系统设计

10.2.4 系统的可靠性设计和评估

单片机系统一般都是实时系统,且功能比较单一,因此对系统的可靠性要求比较高。提高系统可靠性的关键还是在硬件系统上,如采用抗干扰措施、提高元器件质量等。当然,对软件采用一些相应的设计,往往成本低、见效快,能起到事半功倍的效果。在单片机系统中,主要从以下几个方面考虑:( 1 )抗干扰措施。( 2 )提高所用元器件的可靠性。( 3 )采用多种容错技术。( 4 )采取加密保护技术。

10.2 单片机应用系统设计的方法

Page 195: 单片机原理与应用 (多学时)

10.3 综合设计举例——数码管显示

第 10章 单片机应用系统设计

1. 设计目的 掌握数码管显示数据的方法;熟悉有关元器件的使用方法。2. 原理及线路 74LS47 是七段译码器。它是将 BCD 码翻译成七段驱动码,驱动数码管显示数字。数码管为共阴普亮数码管,型号为 LTS547R, BCD 码由 P1 口的低 4 位输出, P3 口作为位选口, P3.0 对应左 (右 )边那块是首显示块, P3.5对应右 (左 )边的那块是末显示块。工作时,先送 BCD 码,再选位,使选中的数码管点亮,往复循环。3. 设计内容( 1 )左循环显示 1, 2, 3, 4 。( 2 )右循环显示 1, 2, 3, 4 。( 3 )先由 4 个显示块显示 1, 2, 3, 4, 1s后 4 个显示块同时显示5, 6, 7, 8 。4. 设计器材 组合实训板最小系统、 16脚插座、 4块数码管、+ 5 V 电源 1台、仿真器 1台或固化器 1台。

Page 196: 单片机原理与应用 (多学时)

第 10章 单片机应用系统设计

5. 程序流程图本实训的程序流程图如图 10-8 所示。6.实训步骤1 )实训板连接。2 )硬件诊断。( 1 )用仿真器诊断硬件。( 2 )用固化器固化程序诊断硬件好坏。用前面所述方法固化程序诊断硬件好坏。3 )软件调试。( 1 )仿真器调试。( 2 )仿真软件调试。

10.3 综合设计举例——数码管显示

Page 197: 单片机原理与应用 (多学时)

结 束 语