单片机原理与应用
Download
1 / 197

单片机原理与应用 (多学时) - PowerPoint PPT Presentation


  • 190 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 单片机原理与应用 (多学时)' - chinara


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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


5章定时器和计数器

第3章 指令系统

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

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

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

第9章 接口技术

第7章 串行口

第4章 汇编语言程序设计

第8章 单片机系统的扩展

第1章 计算机基础知识

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


1.3

1.2

1.1

计算机中的数制和编码

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

单片机的基本概念

第1章 计算机基础知识

返回


第1章 计算机基础知识

1.1 计算机中的数制和编码

1.1.1 计算机中数据存储的组织形式

在计算机内部所有的数据,无论是程序还是图像都是以二进制形式存放的。现在介绍计算机中数据的组织形式。

1.位(bit)

2.字节(Byte) 

3.字(word)

4.字长


第1章 计算机基础知识

1.1 计算机中的数制和编码

1.1.2 字符的二进制编码

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


第1章 计算机基础知识

1.1 计算机中的数制和编码

1.1.3 进位计数制

按进位的原则进行计算的方法称为进位计数制。人们平时用得最多的是十进制,而计算机中存放的是二进制数,为了方便使用,同时还引入了八进制和十六进制。

在一种数制中,只能使用一组固定的数字符号表示数目的大小,具体使用多少个数字或符号就称为该数制的基数。例如,十进制的基数是10,二进制的基数是2。而数制中每一固定位置对应的单位值称为权。


第1章 计算机基础知识

1.1 计算机中的数制和编码

1.1.4 编码

计算机处理的信息都是以二进制数码的形式存在的。但人们编制程序、识别处理结果时,输入输出的信息通常都采用英文字母、阿拉伯数字和各种常用的符号。

它们只有用特定的二进制形式来表示才能被计算机所识别,这种用二进制形式表示的数据就是二进制编码。


第1章 计算机基础知识

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

一个完整的计算机系统由硬件系统和软件系统两部分组成。

硬件系统是组成计算机的物理设备的总称,它由各种器件和电子线路组成,是计算机完成计算工作的物质基础。

软件系统是在计算机硬件设备上运行的各种程序及相关的数据总称。

硬件系统是支撑软件运行的物质基础,没有足够的硬件支持,软件就无法正常工作。软件不仅提高了机器的效率、扩展了硬件功能,也方便了用户使用。没有软件的计算机称为裸机,裸机是无法工作的。

硬件系统和软件系统在计算机系统中相辅相承缺一不可,它们的有机结合才是一个完整的计算机系统。


第1章 计算机基础知识

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

1.2.1计算机系统的组成原理

冯·诺依曼的主要贡献包括:

(1)计算机有5个基本组成部分:运算器、控制器、存储器、输入设备和输出设备。

(2)采用存储程序控制的方式,

(3)计算机内部数据组织采用二进制编码方式。


第1章 计算机基础知识

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

1.2.2 硬件系统

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


第1章 计算机基础知识

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

返回

1.运算器

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

2.控制器

控制器的基本功能是从内存存取指令和执行指令,向其他的部件发出控制信号,指挥计算机各部件协同工作。

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


第1章 计算机基础知识

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

3.存储器

存储器是计算机的记忆部件,用于存储计算机中的程序和数据。存储器分为两部分:内部存储器和外部存储器,简称为内存和外存。

1)内部存储器

内部存储器简称内存,又称为主存,主要用于存放计算机中要执行的程序和数据,一般由半导体器件构成。

2)外部存储器

外部存储器简称外存,又称辅存,主要用来存储用户所需的大量数据。其特点是存储容量大、可靠性高、价格低。常用的外存是磁盘、光盘、闪盘(优盘)等。


第1章 计算机基础知识

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

4.输入设备

输入设备用来接受用户输入的原始数据和程序,并将它们转变为计算机可以识别的形式(二进制)存放到内存中。

5.输出设备

输出设备是将存放在内存中由计算机处理的结果转换为人们所能接受的形式的设备。常用的输出设备有显示器、打印机等。 


第1章 计算机基础知识

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

1.2.3 软件系统

计算机的软件系统是程序和程序运行所需要的数据以及开发、使用和维护这些程序所需要的文档的集合。软件内容丰富、种类繁多,根据软件的用途可将其分为系统软件和应用软件两大类。

1.系统软件

系统软件是指控制计算机的运行、管理计算机的各种资源并为应用软件提供支持和服务的一类软件,是保证计算机系统正常工作必须配备的基本软件。系统软件通常包括操作系统、计算机语言和各种服务性程序。


第1章 计算机基础知识

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

1)操作系统

操作系统是管理、监控和维护计算机系统的软、硬件资源,它使计算机充分高效地工作,并使用户合理有效地利用这些资源的程序。操作系统是系统软件的核心,是现在计算机的必备软件。

2)计算机语言

使计算机能识别并执行的信息符号代码的集合称为计算机语言。计算机语言可以分为三大类:机器语言、汇编语言和高级语言。

3)服务性程序

服务性程序是指协助用户进行软件开发和硬件维护的软件,如各种开发调试工具软件、编辑程序、诊断程序等。


第1章 计算机基础知识

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

2.应用软件

应用软件是在系统软件基础上为解决用户的具体问题,面向某个领域而设计的软件。

1)办公软件

办公软件包括文字处理、桌面排版、电子表格、商务图表、演示软件等。为了方便用户维护数据,一般办公软件还提供了小型的数据库管理系统。常见的办公软件有Microsoft Office等。

2)图形和图像处理软件

图形和图像处理软件主要用来处理计算机中的图形和图像,其中图像处理是人们生活中最常见的。

3)Internet服务软件

Internet服务软件主要包括WWW浏览器、电子邮件、文件传输等,这些软件的出现使人们很轻松方便地使用Internet。


第1章 计算机基础知识

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

1.2.4 微型计算机的工作原理

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


第1章 计算机基础知识

1.3 单片机的基本概念

1.3.1 单片机的发展

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


第1章 计算机基础知识

1.3 单片机的基本概念

1978年下半年Motorola公司推出M6800系列单片机,Zilog公司随后推出Z8系列单片机。1980年Intel公司在MCS48系列基础上又推出了高性能的MCS-51系列单片机,这类单片机均带有串行I/O端口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。

目前,国际市场上8位、16位单片机系列已有很多,但是,在国内使用较多的系列是Intel公司的产品,其中MCS-51系列单片机应用尤为广泛,几十年经久不衰,而且还在进一步发展完善,价格越来越低,性能越来越好。单片机技术正以惊人的速度向前发展。


第1章 计算机基础知识

1.3 单片机的基本概念

1.3.2 单片机的特点

单片机就相当于一台微型计算机。由于单片机的这种特殊的结构以及它所采取的半导体工艺,使其具有许多显著的特点。在某些应用领域,它甚至承担了大、中型计算机和常用计算机无法完成的一些工作,在各个领域都得到了广泛的应用。单片机的特点可以概括为以下4点:

(1)优异的性价比。

(2)集成度高、体积小、可靠性高。

(3)运行速度快、控制功能强。

(4)开发使用方便、易于产品化。


第1章 计算机基础知识

1.3 单片机的基本概念

1.3.3.单片机的应用领域

单片机的应用范围十分广泛,主要的应用领域有:

(1)工业控制

(2)仪器仪表

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

(4)商用产品

(5)家用电器


第1章 计算机基础知识

1.3 单片机的基本概念

1.3.3.单片机的应用领域

单片机的应用范围十分广泛,主要的应用领域有:

(1)工业控制

(2)仪器仪表

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

(4)商用产品

(5)家用电器


2 mcs 51

2.2

2.3

2.4

2.1

2.5

MCS-51单片机的基本组成

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

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

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

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

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

返回


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

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

返回

2.1.1 单片机的硬件结构

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


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

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

1.中央处理器

中央处理器(CPU)由运算器和控制器构成,是单片机的核心部分。它的主要功能是读入并分析每条指令,根据指令的功能,控制单片机的各功能部件执行指定的操作。

2.片内存储器

单片机内部存储器的主要功能是存放程序和数据。存储器按其存取方式可以分成两大类:一类是随机存取存储器(random access memory,RAM),主要用于存放暂存数据及调试程序,所以又称为数据存储器;另一类是只读存储器(read only memory,ROM),主要用于存放常数及固定程序,又称为程序存储器。


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

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

根据存储器编程结构也可将存储器分为两种。

(1)普林斯顿结构:ROM和RAM安排在同一空间的不同范围(统一编址)。

(2)哈佛结构:ROM和RAM分别在两个独立的空间(分开编址)。

MCS-51单片机采用的是哈佛结构,而MCS-96、8086等采用的是普林斯顿结构。


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

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

返回

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 515
第2章 MCS-51单片机的基本结构

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

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.1 MCS-51单片机的基本组成


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

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

2.2.1中央处理器

中央处理器主要由运算器和控制器构成,它决定了单片机的主要性能。

1.运算器

运算器以算术/逻辑单元(ALU)为核心。

由累加器(ACC)、寄存器(B)、暂存器1、暂存器2、程序状态字寄存器(PSW)等许多部件构成。

它的功能是完成算术和逻辑运算、位变量处理和数据传送等操作。


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

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

2.控制器

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

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


2 mcs 518
第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的方波。


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

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


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

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

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

在每个时钟周期的前半周期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2)信号有效。


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

2.3 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)分开编址。


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

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

2.3.2 程序存储器

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

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


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

2.3 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.片外数据存储器


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

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

2.3.4特殊功能寄存器

MCS-51内部设置了21个特殊功能寄存器(SFR),离散地分布在80H~0FFH的地址空间中。下面对常用的特殊功能寄存器作简单介绍。

1)累加器ACC

2)寄存器B

3)程序状态字寄存器PSW

4)堆栈指针SP

5)数据指针DPTR

6)I/O口寄存器


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

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

2.4.1 P0口的结构和功能

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


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

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

2.4.2 P1口的结构和功能

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


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

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

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 mcs 5118
第2章 MCS-51单片机的基本结构

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

2.4.4 P3口的结构和功能

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


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

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

2.5.1复位状态

复位就是使中央处理器(CPU)以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。单片机在开机时或在工作中因干扰而使程序失控或工作中程序处于某种死循环状态等情况下都需要复位。

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

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


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

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

2.5.2复位电路

MCS-51系列单片机的复位信号由RST引脚输入,高电平有效。当RST引脚输入高电平并保持两个机器周期以上时,

单片机内部就会执行复位操作。若RST引脚一直保持高电平,那么,单片机就处于循环复位状态。为了保证复位成功,一般复位引脚RST上只要出现10 ms以上的高电平,单片机就实现了可靠复位。


3.2

3.1

3.3

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

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

实例解析

第3章 指令系统

返回


第3章 指令系统

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

返回

MCS-51系列单片机的指令系统中,共有111条指令,按照功能可分为五大类。

(1)数据传送类指令29条,分别为片内RAM,片外RAM,程序存储器的传送指令,交换及堆栈操作指令等。

(2)算术运算类指令24条,分别为加、减、乘、除、带进位加、加1、减1指令等。

(3)逻辑运算类指令24条,分别为逻辑与、或、异或、移位指令等。

(4)控制转移类指令17条,分别为无条件转移与调用、条件转移、空操作指令等。

(5)布尔(位)操作指令17条,分别为位数据传送、位与、位或、位转移指令等。


第3章 指令系统

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

3.2.1数据传送类指令

数据传送指令,能实现多种数据的传送操作。数据传送方向及相互关系如图3-7所示。


第3章 指令系统

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

3.2.2算术运算类指令

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

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

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


第3章 指令系统

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

3.2.3逻辑运算类指令

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

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


第3章 指令系统

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

3.2.4控制转移类指令

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

控制转移类指令采用的助记符有:AJMP、LJMP、SJMP、JZ、JNZ、CJNE、DJNZ、ACALL、LCALL、RET、RETI、NOP等。·


第3章 指令系统

3.2MCS-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种。


第3章 指令系统

3.3 实 例 解 析

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


4.2

4.5

4.3

4.6

4.1

4.4

4.7

程序设计基础

顺序结构程序设计

分支程序设计

循环程序设计

子程序设计

单片机程序设计流程

实 例 解 析

第4章 汇编语言程序设计

返回


第4章 汇编语言程序设计

4.1 程序设计基础

返回

汇编语言具有以下几个特点:

1.助记符指令与机器指令是一一对应的,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映计算机的实际运行情况,所以用汇编语言能编写出最优化的程序。

2.汇编语言是“面向机器”的语言,编程比使用高级语言困难。

3.汇编语言能直接访问存储器、输入与输出接口及扩展的各种芯片(例如,A/D、D/A等),也可直接处理中断,因此汇编语言能直接管理和控制硬件设备。

4.汇编语言通用性差,汇编语言和机器语言一样,都面向一台具体的机器,不同的单片机具有不同的指令系统,并且不能通用。


第4章 汇编语言程序设计

4.1 程序设计基础

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


第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:延迟事先规定好的秒数。


第4章 汇编语言程序设计

4.1 程序设计基础

返回


第4章 汇编语言程序设计

4.1 程序设计基础

返回

2.模块设计

程序结构设计好后,就要进一步进行模块设计。DELAY N子程序往往由延迟1 s的DLIS子程序来形成。由于按钮“接触抖动”,在从开关读入一个数据前,INSW子程序等待10 ms,因此要用另一个子程序DLAY 10M实现,这样得到最终程序结构。

3.开发方法

开发一个程序的明智方法是分小段编码,一般有以下两种方法:

(1)自底向上开发:首先对最底层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。

(2)自顶向下开发:与自底向上开发方法相反,是首先对最高层进行编码和调试。


第4章 汇编语言程序设计

4.1 程序设计基础

返回

4.1.2汇编语言的语法结构

汇编语言语句有3种基本类型:指令语句、伪指令和宏指令。指令语句由4个字段组成,汇编语言能对各种格式进行识别,其格式如下:

标号(名字):操作码操作数(参数);注释

在书写汇编语言程序的时候,括号内的部分可以根据情况取舍。各个字段之间要用分隔符分开。常用的分隔符有空格、冒号、逗号、分号等。


第4章 汇编语言程序设计

4.1 程序设计基础

返回

【例4-1】编写程序把片外存储器2200H单元中的数送入片内70H单元中。

解: 编程如下:

标号操作码操作数注释

BEGIN:MOV DPTR,#2200H;(DPTR)=2200H

MOV R0,#70H;(R0)=70H

MOVX A,@DPTR;(A)=((DPTR))

MOV @R0,A;((R0))=(A)


第4章 汇编语言程序设计

4.1 程序设计基础

4.1.3汇编语言的伪指令

1.汇编起始地址伪指令

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

ORG表达式

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


第4章 汇编语言程序设计

4.1 程序设计基础

2.汇编结束伪指令

汇编结束伪指令的一般格式如下:

格式1:〈字符名称〉END〈表达式〉

格式2:〈字符名称〉END或者END

该指令是汇编语言源程序的结束标志,在END以后所写的指令,汇编程序都不予处理。因此,在一个源程序中只允许出现一个END语句,它必须放在整个程序的最后。

3.赋值伪指令

赋值伪指令的一般格式如下:

〈字符名称〉EQU〈表达式〉


4.1 程序设计基础

4.数据地址定义指令

数据地址定义指令的一般格式如下:

〈字符名称〉DATA〈表达式〉

DATA伪指令的功能与EQU有些相似,使用时要注意它们有以下区别:

(1)EQU伪指令必须先定义后使用,而DATA伪指令可以后定义先使用;

(2)用EQU伪指令可以把一个汇编符号赋给一个字符名称,而DATA只能把数据赋给字符名称;

(3)DATA伪指令可将一个表达式的值赋给一个字符名称,所定义的字符名称也可以出现在表达式中,而EQU定义的字符则不能这样使用。DATA伪指令在程序中常用来定义数据地址。

5.定义标号值伪指令

定义标号值伪指令的一般格式如下:

〈字符名称〉DL〈表达式〉


第4章 汇编语言程序设计

4.2 顺序结构程序设计

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

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


第4章 汇编语言程序设计

4.2 顺序结构程序设计

4.2.1数据传送程序设计

【例4-10】编程:现有两个双字节无符号数,分别存放在R3、R4、R5、R6中,高字节在前,低字节在后,通过编程使两数相加,和分别存放在20H、21H、22H单元中。

解: 这个程序比较简单,求和的方法与笔算类似,先加低位后加高位,其程序段如下:

ORG4000H

CLRC;清C

MOVA,R4;把被加数的低位放到A

ADDA,R6;将加数和被加数的低位相加

MOV22H,A;把结果的低位存入22H单元

MOVA,R3;把被加数的高位放到A

ADDCA,R5;将加数和被加数的高位相加并加低位和进位

MOV21H,A;把结果的高位存入21H单元

MOVA,#00H;清A

ADDCA,#00H;加进位

MOV20H,A;存和的进位

END


第4章 汇编语言程序设计

4.2 顺序结构程序设计

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

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

XCHR:MOVA,R2

XCHA,R3

XCHA,R2;R2与R3内容互换

MOVA,R4

XCHA,70H

XCHA,R4;R4与70H单元内容互换


第4章 汇编语言程序设计

4.2 顺序结构程序设计

4.2.2 算术运算程序设计

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

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

ORG 1000H

START:MOV A,40H;将a送给A

ADD A,41H;将a+b送给A

CLR C;清C

SUBB A,42H;将(a+b)-c送给A

MOV 43H,A;将A送给43H

END


第4章 汇编语言程序设计

4.2 顺序结构程序设计

解: 实现16位相加,其程序段如下:

START:PUSH ACC;将A中内容进栈保护

MOV R0,20H ;将20H地址中的内容送R0

MOV R1,22H ;将22H地址的内容送R1

MOV A,@R0 ;被加数低字节内容送A

ADD A,@R1 ;低字节数相加

MOV @R0,A ;低字节数和存20H中

INC R0 ;指向被加数高位字节

INC R1 ;指向加数高位字节

MOV A,@R0 ;被加数高位字节送A

ADDC A,@R1 ;高字节数带进位相加

MOV @R0,A ;高字节数和存21H中

CLR A

ADDC A,#00H

MOV 10H,A ;进位暂存于10H中

POP ACC ;恢复A原内容

【例4-13】编程:

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


第4章 汇编语言程序设计

4.2 顺序结构程序设计

4.2.3 延时程序设计

有些情况可以不采用单片机内的定时器/计数器作定时,而是采用软件延时的办法,执行一段循环程序,而循环程序执行的时间即为延时时间。

【例4-14】采用查询方式实现定时延时。

解: 编程如下:

ORG 0000H

AJMP START

ORG 30H

START :MOV P1,#0FFH

MOV TMOD,#00000001B

MOV TH0,#15H

MOV TL0,#0A0H

SETB TR0

LOOP:JBC TF0,NEXT

AJMP LOOP

NEXT:CPL P1.0

MOV TH0,#15H

MOV TL0,#9FH

AJMP LOOP

END AJMP LOOP


第4章 汇编语言程序设计

4.2 顺序结构程序设计

【例4-15】采用中断方式实现定时延时。

解: 编程如下:

ORG 000BH

AJMP TIME0

ORG30H

START:MOV P1,#0FFH

MOV TMOD,#00000001B

MOV TH0,#15H

MOV TL0,#0A0H

SETB EA

SETB ET0

SETB TR0

LOOP:AJMP LOOP

TIME0:PUSH ACC

PUSH PSW

CPL P1.0

MOV TH0,#15H

MOV TL0,#0A0H

POP PSW

POP ACC

RETI

END


第4章 汇编语言程序设计

4.3 分支结构程序设计

4.3分支程序设计

在MCS51系列单片机的应用系统中,不论是一个问题的求解,还是一个控制过程的实施,将会遇到多条路径需要判断、选择;当满足一定条件时,程序执行的方向将发生变化,在程序设计中称为分支程序。

由分支程序的定义可以看出,分支程序是有条件的,根据不同的条件,执行不同的指令,在汇编分支程序时,关键是如何判断分支的条件。分支程序设计的技巧,就在于如何正确地应用指令,实现对程序简便而有效的控制。

分支程序从结构上分为单分支程序和多分支程序两种情况。


第4章 汇编语言程序设计

4.3 分支结构程序设计

1.单分支程序

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


第4章 汇编语言程序设计

4.3 分支结构程序设计

2.多分支程序

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


第4章 汇编语言程序设计

4.3 分支结构程序设计

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

(1)散转指令。格式如下:

JMP@A+DPTR

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

(2)比较指令。格式如下:

CJNEA,direct,rel(共有4条)


第4章 汇编语言程序设计

4.4循环结构程序设计

循环程序通常由以下几个部分组成:

(1)设置循环初值。

(2)循环体。

(3)修改循环控制变量。具体地说,就是每执行一次循环指令,对地址指针做一次修改,使指针指向下一数据所在位置,为进入下一轮循环体做准备。

(4)循环控制部分。循环控制部分是根据循环次数或循环结束条件,判断是否继续循环。若循环次数未达到规定值,则继续循环;若循环次数达到规定值则退出循环。

(5)结束部分。


第4章 汇编语言程序设计

4.4 循环结构程序设计

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

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


第4章 汇编语言程序设计

4.4 循环结构程序设计

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


第4章 汇编语言程序设计

4. 5 子程序设计

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

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


第4章 汇编语言程序设计

4. 5 子程序设计

1.子程序调用的规则和应该注意的地方

在汇编语言源程序中调用子程序时,应注意解决好以下问题:

(1) 主程序与子程序之间的参数传递。

(2)保护现场和恢复现场。当然对每个具体的子程序是不是需要现场保护,哪些参数应当保护,还应视实际情况确定。

在MCS51系列单片机的指令系统中,向用户提供了两条调用子程序的指令:ACALL、LCALL以及一条返回主程序的指令RET。

此外,子程序在运行过程中,还可以再调用其他的子程序,这种操作称之为子程序嵌套。


第4章 汇编语言程序设计

4. 5 子程序设计

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

(1)子程序的首地址必须用符号地址,该符号是子程序的名称。子程序最后一定要有一条返回指令。

(2)为了方便使用,每个子程序要有适当的使用说明,如子程序功能的说明、出口条件、所占用的存储单元和寄存器等。

(3)子程序尽量编写成浮动地址程序,采用相对转移指令。

(4)子程序入口条件。

(5)保护现场与恢复现场。


第4章 汇编语言程序设计

4.6 单片机程序设计流程

4.6.1编程语言

单片机程序设计的编写可以采用汇编语言或高级语言。

汇编语言具有源代码小、效率高等优点,适合于对实时性要求较高的场合。

但是由于汇编语言调试比较麻烦,要求编程者对硬件的了解要很清楚。随着高级语言的发展,编译效率的不断提高,加之应用系统的规模和复杂性都在提高。

目前,在单片机的软件开发中,高级语言占据了重要的地位(例如C语言)。


第4章 汇编语言程序设计

4.6 单片机程序设计流程

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

用汇编语言编写程序,一般可分为以下几个步骤:

(1)建立数学模型:根据要解决的实际问题抽象出数学模型。

(2)确定算法:从诸多算法中确定一种较为简捷的方法。

(3)制定程序流程图:算法是程序设计的依据。

(4)确定数据结构:合理地选择和分配内存单元以及工作寄存器。

(5)写出源程序:根据程序流程图选择合适的指令和寻址方式。

(6)上机调试程序:将编好的源程序进行汇编,检查和修改程序中的错误,直到正确为止。


第4章 汇编语言程序设计

4.6 单片机程序设计流程

4.6.3 C语言程序开发流程

1.编写C源程序

2.编译源程序生成目标文件

将所编写的扩展名为.C的程序保存为扩展名为.hex或.bin的目标文件。这个目标文件就是单片机所能识别的机器码。

3.仿真调试目标文件

仿真分为软件仿真和硬件仿真。

软件仿真就是在计算机上运行仿真软件来对单片机的硬件模拟、指令模拟和运行状态模拟。

硬件仿真就是利用仿真器代替单片机,由仿真器向应用电路提供各种信号数据进行调试的方法。

4.目标文件的烧写


第4章 汇编语言程序设计

4.7 实 例 解 析

【实例】试编写由ASCII码转换为二进制数的程序。

主程序:

ORG 0400H

ASCB:MOV R0,#61H

MOV R1,#70H

ACALL CVERT

SWAP A

MOV @R1,A

DEC R0

ACALL CVERT

XCHD A,@R1

LOOP:SJMPLOOP

子程序:

ORG 0500H

CVERT:MOV A,@R0

CLRC

SUBB A,#30H

CJNE A,#0AH,NEQ

AJMP BIG

NEQ:JCCEND

BIG:SUBB A,#07H

CEND:RET

END


5.2

5.3

5.1

汇编语言程序设计

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

定时器/计数器的应用

第5章 定时器和计数器

返回


第5章 定时器和计数器

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

返回

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


第5章 定时器和计数器

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

定时器/计数器T0、T1主要由几个特殊功能寄存器TH1、TL1和TH0、TL0组成。

方式寄存器TMOD主要设置定时器/计数器的工作方式,控制寄存器TCON主要控制定时器/计数器的启动和停止,这两个寄存器用来完成定时器/计数器的初始化工作。

每个定时器/计数器的核心实质上是一个加法计数器,通过内部总线与CPU相连,当CPU设置好定时器/计数器的工作方式、初值并启动后,定时器/计数器即可独立工作,不再占用CPU的时间。可见,定时器/计数器工作效率很高且使用灵活。


第5章 定时器和计数器

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

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

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


第5章 定时器和计数器

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

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

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


第5章 定时器和计数器

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

5.2.1方式0

M1M0为00时,定时器/计数器工作于方式0。

T0在方式0的逻辑电路结构如图所示,T1的结构和操作与T0的完全相同。

这是一个13位的定时器/计数器,由TL0低5位和TH0的高8位组成。TL0低5位计数溢出时向TH0进位,而TH0计数溢出时则中断标志位TF0置位,并请求中断。


第5章 定时器和计数器

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

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


第5章 定时器和计数器

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

5.2.2方式1

M1M0为01时,定时器/计数器工作于方式1。

方式1与方式0的结构与操作几乎完全相同,差别仅在于计数器的位数,此时由TH0作为高8位,TL0作为低8位,构成的是一个16位的定时器/计数器。

MCS-51之所以重复设置这两种方式,是为了兼容MCS-48系列单片机。因为MCS-48的定时器/计数器就是13位的计数结构。


第5章 定时器和计数器

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

5.2.3方式2

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

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


第5章 定时器和计数器

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

5.2.4 方式3

方式3对定时器/计数器T0和T1是完全不同的。

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


第5章 定时器和计数器

5.3 定时器/计数器的应用

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

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

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

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

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


6 mcs 51

6.2

6.3

6.1

6.5

6.4

中断的概念

中断的应用及编程

中断源

中断控制及中断优先级

中断响应及中断处理过程

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

返回


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

6.1 中断的概念

1.什么是中断

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

返回


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

6.1 中断的概念

2.CPU响应及处理中断机制

中断系统就是为使CPU能对外界紧急异步事件具有处理能力而设置的,中断系统功能越强,对外界事件处理能力也就越强。MCS-51系列单片机有5个中断源,而单片机的中断系统又允许多个中断源同时请求中断,因此就存在CPU优先响应哪一个中断源请求的问题。

一般来说,根据中断源的轻重缓急排序,CPU优先处理最紧急事件的中断请求源。也就是说,需要对各个中断源设定相应的优先级,CPU总是最先响应级别最高的中断。中断源可以分为两个中断优先级:高优先级和低优先级。用户可以用关中断指令或复位指令来屏蔽所有中断请求,也可以用开中断指令使CPU接收中断申请。

返回


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

6.1 中断的概念

返回

3.单片机采用中断系统的优点

使用中断系统可以极大地提高CPU的利用效率,充分发挥计算机的功能。

1)提高CPU的工作效率

CPU执行主程序中的相关指令可以令各外设和它并行工作,而且任何一个外设在工作完成后(例如,打印机完成一个打印任务)都可以通过中断得到满意服务(给打印机发送第二个打印任务)。因此,CPU在和外设交换信息时通过中断就可以避免不必要的等待和查询,从而大大提高了它的工作效率。

2)提高实时数据的处理时效

CPU有了中断功能,系统失常和故障都可以通过中断立刻通知CPU,使它可以迅速采集实时数据和故障信息,并对系统作出应急处理。


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

6.2 中断源

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

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

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

返回


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

6.2 中断源

返回

一般把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

通常中断源有以下几种:

 (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中断,串行口完成一帧字符发送/接收后引起。


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

6.3 中断控制及中断优先级

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

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

返回


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

6.3 中断控制及中断优先级

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

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

返回


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

6.3 中断控制及中断优先级

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

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

返回


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

6.3 中断控制及中断优先级

返回

图 二级中断嵌套过程


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

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

返回

6.4.1 中断响应的条件和过程

1.条件

(1)CPU无高级或同级的中断服务。

(2)当前指令已执行到最后一个机器周期,以确保当前指令的完整执行。

(3)如果正在执行的是RETI(中断返回)、IE或IP的指令,需要保证执行完该指令及其后的另一条指令。

2.过程

(1)完成当前指令后立即终止现行程序,置位相应的优先级状态触发器,以阻断同级和低级中断。

(2)将断点地址压入堆栈,同时清除中断请求标志(TI和RI除外)。

(3)把对应的中断源入口地址送入程序计数器PC,转至相应的中断服务程序。


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

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

返回

6.4.2中断处理和返回

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


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

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

返回

6.4.3中断响应时间

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

如果中断请求受阻,中断响应时间将延长。对于一个单一中断源的系统,中断响应时间为3~8个机器周期。


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

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

6.4.4中断请求的撤除

CPU响应中断后,在中断返回前,应把该中断的相应标志位清零,撤除中断请求;否则,会引起重复中断而发生错误。

(1)对于定时器/计数器的溢出中断及边沿触发的外部中断,CPU在响应中断后即由硬件自动清除相关的中断请求标志。

(2)对于串行口中断,CPU在响应中断后,必须在中断服务程序中用软件清除中断标志,硬件没有相关措施。

(3)对于电平触发的外部中断,仅靠清除中断标志是不能彻底撤除中断请求的。因此,必须在中断响应后把外部输入端信号从低电平强制变为高电平,才能彻底解决中断请求的撤除问题。

返回


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

6.5中断的应用及编程

返回

编写中断程序首先需要初始化,用于实现对中断的控制;然后执行中断服务程序来完成中断源请求的各种操作。很明显,中断初始化程序的位置是处于主程序之中的,中断服务程序则存放在主程序之外的其他存储区。

中断初始化程序实际上就是对几个特殊功能寄存器的相关控制位进行赋值,具体步骤如下:

(1)开启相应中断源的中断允许。

(2)设定所有中断源的中断优先级。

(3)规定外部中断的触发方式(电平触发还是边沿触发)。


7.1

7.4

7.2

7.3

串行口的应用及编程

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

串行通信的基础知识

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

第7章 串 行 口

返回


第7章 串 行 口

7.1串行口的基础知识

返回

7.1.1串行通信的分类

按照串行数据的同步方式,串行通信可以分为异步通信和同步通信。

1)异步通信

异步串行通信规定了字符数据的传送格式,即每个数据以相同的帧格式传送,如图所示。


第7章 串 行 口

7.1串行口的基础知识

返回

2)同步通信

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

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


第7章 串 行 口

7.1串行口的基础知识

返回

7.1.2 串行通信的传送

1.串行通信的传送方式

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


第7章 串 行 口

7.1串行口的基础知识

返回

2.串行通信的数据传输速率

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

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


第7章 串 行 口

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

返回

MCS-51系列单片机的串行口是一个可编程的全双工串行通信接口,异步接收/发送器已经集成在芯片内部。该串行口波特率由CPU内部的定时器/计数器产生,可进行软件设置。接收或发送数据后均可触发中断系统,允许用户应用程序中采用中断方式实现串行通信,应用十分灵活。

MCS-51系列的串行口内部包含发送缓冲器和接收缓冲器,两者在物理上是相互独立的,可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器则只能读出不能写入。两个缓冲器占用同一个地址(99H),并且用同一个符号SBUF表示。

与串行口设置有关的特殊功能寄存器除了定时器/计数器之外,还包括两个控制寄存器:串口控制寄存器SCON和电源控制寄存器PCON。


第7章 串 行 口

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

返回

7.3.1方式0

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

1)方式0发送


第7章 串 行 口

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

返回

2)方式0接收

7.3.2方式1

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


第7章 串 行 口

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

返回

1)方式1发送

2)方式1接收


第7章 串 行 口

7.3MCS-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的溢出率决定。


第7章 串 行 口

7.4串行口的应用及编程

返回

串行口应用时首先必须进行初始化编程,主要任务包括设置串行口的工作方式,设定SCON寄存器,设置波特率,选择查询方式或中断方式。

关于波特率,对于方式0,无须相关设置;对于方式2,仅需对PCON寄存器中的SMOD位进行编程;对于方式1和方式3,不仅要对PCON中的SMOD位编程,还要开启定时器/计数器T1,对T1编程。


8.1

8.5

8.2

8.4

8.3

串行I/O接口的扩展

定时器/计数器的扩展

存储器的扩展

并行I/O接口的扩展

系统扩展概述

第8章 单片机系统的扩展

返回


第8章 单片机系统的扩展

8.1系统扩展概述

返回

8.1.1最小应用系统

单片机应用系统的扩展是以基本的最小系统为基础的。实际上,内部带有程序存储器的8051或8751单片机本身就是一个最简单的最小应用系统,许多实际应用系统就是用这种成本低和体积小的单片结构实现了高性能的控制。

如果采用的内部无程序存储器芯片的8031单片机,则要用外接程序存储器的方法才能构成一个最小应用系统。实际应用中常常采用以下两种最小应用系统。


第8章 单片机系统的扩展

返回

8.1系统扩展概述

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

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


第8章 单片机系统的扩展

8.1系统扩展概述

返回

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

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


第8章 单片机系统的扩展

8.1系统扩展概述

返回

8.1.2系统扩展的内容及方法

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


第8章 单片机系统的扩展

8.1系统扩展概述

返回

为了使单片机能方便地与各种扩展芯片连接,常将单片机的外部总线连接为一般的微型计算机三总线结构形式。对于MCS-51系列单片机,三总线由下列通道口的引线组成:

(1)地址总线。由P2端口提供高8位地址线,P0端口提供低8位地址线。由于P0端口是地址和数据分时复用的口线,需外加地址锁存器锁存低8位地址信息,一般用单片机的ALE正脉冲信号下降沿控制地址锁存器工作。

(2)数据总线。由P0口提供8位双向数据线。

(3)控制总线。扩展系统时常用的控制信号如下所述:

ALE:地址锁存信号,用以实现对低8位地址的锁存,高电平有效。

PSEN:片外程序存储器读选通信号。

RD:片外数据存储器读信号。

WR:片外数据存储器写信号。


第8章 单片机系统的扩展

返回

8.1系统扩展概述

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

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


第8章 单片机系统的扩展

8.1系统扩展概述

返回

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


第8章 单片机系统的扩展

8.2存储器的扩展

返回

8.2.1单片机的地址译码方法

扩展地址译码的方法通常有3种方法:线选法、译码法和片外体选法。

1.线选法

所谓线选法,就是直接利用系统的地址线作为存储器芯片的片选信号。

2.译码法

所谓译码法就是使用地址译码器对系统的片外地址进行译码,以译码输出作为存储器芯片的片选信号。

译码法又分为完全译码和部分译码两种。

(1)完全译码。地址译码器使用了全部地址线,地址与存储单元一一对应,也就是一个存储单元只占用一个唯一的地址。

(2)部分译码。地址译码器仅使用了部分地址线,地址与存储单元不是一一对应,一个存储单元占用了几个地址。


第8章 单片机系统的扩展

8.2存储器的扩展

返回

3.片外体选法

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


第8章 单片机系统的扩展

8.2存储器的扩展

返回

8.2.2常用存储器

半导体存储器分为随机存取存储器(RAM)、只读存储器(ROM)和串行存储器3类,根据其功能特点随机存取存储器又被称为数据存储器,只读存储器称为程序存储器。

1.程序存储器

根据编程方式的不同,ROM可分为以下4种:

(1)掩膜ROM。

(2)可编程ROM(PROM)。


第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的应用日渐增多。串行存储器具有一般并行存储器的特点,但以串行的方式访问,价格低廉。


第8章 单片机系统的扩展

8.2存储器的扩展

返回

8.2.3程序存储器的扩展

MCS-51单片机的程序存储器寻址空间为64 KB。其中8051/8751片内包含4 KB的ROM或EPROM,8031片内不带ROM。当片内ROM不够使用或采用8031芯片时,需扩展程序存储器。

存储器扩展的核心问题是存储器的编址问题。

MCS-51单片机应用系统中常用的3种程序存储器的扩展方法是:不采用片外译码的单片程序存储器的扩展、采用线选法的多片程序存储器的扩展、以及采用地址译码器的多片程序存储器的扩展。


第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位地址。


第8章 单片机系统的扩展

8.3并行I/O接口的扩展

返回

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

在实际应用中经常会遇到开关量、数字量的输入/输出,如开关、键盘、数码显示器等外设,主机可以随时与这些外设进行信息交换。

在这种情况下,只要按照“输入三态,输出锁存”与总线相连的原则,选择74LS系列的TTL或MOS电路即能组成简单的I/O扩展口。它具有电路简单、成本低、配置灵活的特点。


第8章 单片机系统的扩展

8.3并行I/O接口的扩展

返回

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


第8章 单片机系统的扩展

8.3并行I/O接口的扩展

返回

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

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

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


第8章 单片机系统的扩展

8.3并行I/O接口的扩展

返回

4.实例编程

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


第8章 单片机系统的扩展

8.3并行I/O接口的扩展

返回

如要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,程序为:

MOVA,#90H ;A口方式0输入,B口、C口输出的方式控制字→A

MOVDPTR,#OFF7FH;控制寄存器地址→DPTR

[email protected],A;方式控制字→控制寄存器

MOVDPTR,#OFF7CH;A口地址→DPTR

MOVXA,@DPTR;从A口读数据

MOVDPTR,#OFF7DH;B口地址→DPTR

MOVA,#DATA1;要输出的数据#DATA1→A

[email protected],A;将#DATA1送B口输出

MOVDPTR,#OFF7EH ;C口地址→DPTR

MOVA,#DATA2;#DATA2→A

[email protected],A;将#DATA2送C口输出

小提示:8255A的C口8位中的任一位,均可用指令来置位或复位。


第8章 单片机系统的扩展

8.4 串行I/O接口的扩展

返回

8.4.1串口的扩展

目前扩展串口方法主要有以下几种:

(1)采用串口扩展芯片。

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

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


第8章 单片机系统的扩展

8.4 串行I/O接口的扩展

返回

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

如果在应用系统中,串行口未被用于串行通信,可将片内串行口用于扩展并行I/O口。此时,串行口工作在方式0。在这种应用方式下,串行口作为同步移位寄存器,其波特率为固定的值fosc/12。

数据由RXD端(P3.0)输入/输出,同步移位时钟由TXD端(P3.1)输出。发送、接收的是8位数据,低位在前。这样既不占用片外的RAM地址,又节省硬件开销,是一种经济实用的方法。


第8章 单片机系统的扩展

8.5 定时器/计数器的扩展

返回

MCS-51的内部有两个16位定时器/计数器,能满足绝大多数应用场合的需要。在特殊情况下,若需要更多的定时器/计数器,则可采用Intel公司生产的8253可编程定时器/计数器接口电路。

8253可编程定时器/计数器芯片内有3个独立的16位计数器。每个计数器的最高计数频率可达2.6 MHz。它所有的计数方式、操作方式都通过编程控制。由于它的功能强,且能很方便地与其他型号的微机系统相配,所以近年来得到了广泛的应用。


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

1.8253的组成结构

8253的引脚及内部结构框图,如图所示。


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

2.内部结构及引脚说明

8253的3个计数器完全相同,都可以按二进制计数或BCD码计数。

每个计数器都有3根I/O线;控制字寄存器用来寄存CPU写入的控制字,每一个计数器都单独有一个控制寄存器,以控制该计数器的操作方式,且控制寄存器只能写入,不能读出。

8253与CPU的接口控制逻辑同8255A相似,8253共有24个引脚 。


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

8253有3个独立的控制寄存器,SC1、SC0两位为计数器选择位,可确定该控制字写入哪一个计数器所对应的控制寄存器。

RL1、RL0这两位用来设定对计数器的读/写顺序。一旦设定了计数器的读/写顺序,则计数器就能够在CPU进行读/写时提供正确的指向。

其中,计数器的闩锁操作作用于计数过程中的读出。

控制字的BCD位用来确定计数方式。BCD=0时计数器按二进制计数;BCD=1时计数器按二进制—十进制(BCD)码计数。

M2、M1、M0这3位用来设定计数器的操作方式。


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

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

1)方式0


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

2)方式1

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


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

3)方式2

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


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

4)方式3

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

5)方式4

方式4为软件触发选通方式。采用方式4计数时,方式控制字写入8253后,计数器输出高电平,写入数值之后开始计数。当计数到0时输出一个时钟周期的负脉冲。

6)方式5

方式5为硬件触发选通方式。写入方式控制字和计数值后,输出保持高电平,只有在门控信号GATE在上升沿之后才开始计数,计完最后一个数,输出


第8章 单片机系统的扩展

8.5定时器/计数器的扩展

返回

4.8253的读写操作

1)写入操作

CPU写入8253的信息包括控制字和计数值。写入各个计数器的控制字,在顺序上没有任何限制。但写入计数值时,由于16位的计数值必须分两次写入,因此写入操作必须按照控制字中RL1、RL0所设定的顺序进行。另外,由于计数器是递减计数器,故如果把0000H写入计数器,则将得到最大的计数值。

2)读出操作

CPU读取8253计数器当前计数值有两种方法。第一种方法为简单的读出方式,选中某一个计数器,按控制字设定顺序读出。为了读出稳定的值,必须由门控输入或由禁止时钟输入的方法停止计数器计数。


9.1

9.4

9.2

9.3

USB接口

A/D转换器及应用

D/A转换器及应用

键盘及显示器接口设计

第9章 接口技术

返回


第9章 接口技术

9.1键盘及显示器接口设计

返回

9.1.1键盘接口设计

键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。

常用的键盘电路有两种:独立式键盘和矩阵式键盘。

1.独立式键盘工作原理

单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其他I/O口线的状态。独立式按键的电路如图9-1所示。


第9章 接口技术

9.1键盘及显示器接口设计

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

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


第9章 接口技术

9.1键盘及显示器接口设计

2.矩阵式键盘工作原理

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


第9章 接口技术

9.1键盘及显示器接口设计

3.抖动与重键问题

键盘设计时,除了对键码的识别外,还有两个问题需要解决:抖动问题和重键问题。

1)抖动

机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-3所示,抖动时间的长短与开关的机械特性有关,一般为5~10 ms。

2)重键

重键就是指有两个或多个键同时闭合。对重键的处理方法一般采用连锁法和巡回法。


第9章 接口技术

9.1键盘及显示器接口设计

4.键盘的工作方式

键盘的工作方式有3种,即编程扫描、定时扫描和中断扫描。

下面仅简单介绍一下编程扫描方式的工作原理:

编程扫描方式是利用CPU完成其他工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入请求,直到CPU重新扫描键盘为止。

键盘扫描程序一般应包括以下内容:

(1)判别有无键按下。

(2)延时去抖动。用软件延时10 ms后,再判断键盘状态。

(3)键盘扫描取得闭合键的行、列值。

(4)用计算法或查表法得到键值。

(5)判断闭合键是否释放,如没释放则继续等待。

(6)将闭合键键号保存,同时转去执行该闭合键的功能。


第9章 接口技术

9.1键盘及显示器接口设计

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


第9章 接口技术

9.1键盘及显示器接口设计

9.1.2显示器与单片机的接口

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

1.LED数码管显示器的结构

常用的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示;LED十六段显示器用于字符显示。


第9章 接口技术

9.1键盘及显示器接口设计

1.LED数码管显示器的结构

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


第9章 接口技术

9.1键盘及显示器接口设计

2.LED数码管工作原理

当某一个发光二极管导通时,相应的笔画段就被点亮。这样,若干个二极管导通,就构成0~9的阿拉伯数字符号以及其他能由这些笔画段构成的简单字符。

在共阳极数码管中,导通点亮的二极管用0表示,其余用1表示;而在共阴极数码管中,导通点亮的二极管用1表示,其余用0表示。根据发光字段的不同组合可显示出各种数字或字符。


第9章 接口技术

9.1键盘及显示器接口设计

3.LED七段数码管的静态显示和动态显示

1)静态显示

静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。

静态显示器可以采用CPU的并行I/O口,如P1口、8155、8255芯片的扩展口等实现;也可由单片机串行口扩展移位寄存器来实现,如74LS164、74LS47等。

2)动态显示

动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。


第9章 接口技术

9.1键盘及显示器接口设计

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

在单片机应用系统中,键盘和显示器往往需同时使用,为节省I/O口线,可将键盘和显示电路做在一起,构成实用的键盘/显示电路。LED显示器采用共阴极数码管。

8155的B口用做数码管段码输出口;A口用做数码管位码输出口,同时,它还用做键盘列选口;C口用做键盘行扫描信号输入口。

当其选用4根口线时,可构成4×8键盘,选用6根口线时,可构成6×8键盘。LED采用动态显示软件译码,键盘采用逐列扫描查询工作方式,LED的驱动采用74LS244总线驱动器。


第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转换器的双重优点,具有较高的信噪比和串模干扰抑制能力,分辨率较高,线性度好,被应用到各种测控仪器和系统中。


第9章 接口技术

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

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

(1)分辨率。

(2)量化误差。

(3)偏移误差。

(4)满刻度误差。

(5)线性。

(6)绝对精度。

(7)转换速率。


第9章 接口技术

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

9.2.2 8位A/D转换器ADC0809及其应用

ADC0809是一个逐次比较型的转换器。

1.ADC0809的内部结构和引脚

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


第9章 接口技术

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

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


第9章 接口技术

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

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


第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)中断方式。


第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转换器连接。


第9章 接口技术

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

9.3.2 8位D/A转换器DAC0832及其应用

DAC0832是一种双列直插式的8位D/A转换器,单电源供电,电流形式输出;当需要电压输出时,应外接运算放大器,把输出电流转换成电压。。

1. DAC0832内部结构框和引脚


第9章 接口技术

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

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


第9章 接口技术

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

2.单片机与DAC0832的接口

通常,CPU与DAC0832接口时,可以有3种工作方式:直通方式、单缓冲方式和双缓冲方式。

1)直通方式

直通方式是将CS、WR1、WR2、XFER引脚都直接接数字地。ILE引脚为高电平时,芯片内两个寄存器均处于直通状态。此时,8位数字量一旦到达DI7~DI0输入端,就立即执行D/A转换而输出。

2)单缓冲方式

所谓单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者说两个输入寄存器同时受控的方式。


第9章 接口技术

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

3)双缓冲方式

所谓双缓冲方式,就是把DAC0832的两个锁存器都连接成受控锁存方式。双缓冲方式用于多路数模转换系统,以实现多路模拟信号同步输出的目的。在多路D/A转换的情况下,若要求同步转换输出,必须采用双缓冲方式。

DAC0832采用双缓冲方式时,数字量的输入锁存和D/A转换输出是分两步进行的。

(1)CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中。

(2)CPU对所有的D/A转换器发出控制信号,使各路输入寄存器中的数据进入DAC寄存器,实现同步转换输出。


第9章 接口技术

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

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


第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边。


第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可大大简化其外围电路,使用户设备更趋于小型化。


第9章 接口技术

9.4 USB接口 

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


10.1

10.2

10.3

单片机应用系统及设计

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

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

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

返回


10章 单片机应用系统设计

10.1单片机应用系统及设计

10.1.1单片机应用系统的组成

单片机应用系统由硬件系统和软件系统组成。

典型的单片机应用系统组成框图如图10-1所示。


10章 单片机应用系统设计

10.1单片机应用系统及设计

10.1.2单片机应用系统的设计过程

单片机应用系统设计主要包括以下几个步骤:

(1)可行性分析。

(2)总体方案设计。总体方案设计包括系统的要求,应用方案的选择,硬件结构和应用程序结构的确定等。

(3)系统硬件设计。系统硬件设计包括接口电路、逻辑电路及操作面板等。

(4)系统软件设计。系统软件设计包括管理、监控程序以及应用程序的设计。

(5)系统的调试与实验。将软硬件相结合,分模块调试,修正和完善设计,最后进行整个系统的调试。

(6)系统的产品化。


10章 单片机应用系统设计

10.1单片机应用系统及设计

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


10章 单片机应用系统设计

10.1单片机应用系统及设计

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

单片机应用系统不同于通用计算机系统。通用计算机系统主要用于数据处理,要求存储容量大、运行速度快、通用性强。

单片机应用系统主要实现各种检测或过程控制,功能比较单一,不要求较强的通用性,在设计单片机应用系统时,既要实现测控功能、降低成本,又要满足以下技术要求:

(1)可靠性高。

(2)适应现场工作环境。

(3)具有完善的输入/输出通道和实时控制能力。

(4)易于操作和维护。

(5)具有一定的可扩展性。


10章 单片机应用系统设计

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

10.2.1系统总体方案的确定

确定单片机应用系统总体方案,是整个设计最重要、最关键的一步。它的好坏直接影响整个单片机系统的投资、调节品质及实施细则。

总体方案的设计主要是根据被控对象的工艺要求而确定的,所以确定控制系统的总体方案必须根据实际的工艺要求,结合具体对象而定。在总体设计方案中还是存在一定的共性,有以下几个方面:

1.可行性分析

可行性分析是指分析完成该项目的可能性。进行可行性分析的基本原则如下:

(1)技术效果好,经济效益(或社会效益)高。

(2)技术先进,造价低。 (3)可靠性高,易维修。

(4)开发研制周期短。 (5)操作简便,容易掌握。


10章 单片机应用系统设计

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

2.确定控制系统方案

调研工作完毕以后,就要确定系统需求、系统目标任务了。首先需要确定系统采用开环系统还是闭环系统,或者是数据处理系统。如果采用闭环控制系统,则还要确定是采用直接数字控制(DDC)系统,还是采用计算机监督控制(SCC)系统,或者采用分布式控制(DCS)系统。

工作的重点应放在该项目的技术难度上,此时必须根据系统应用场合、工作环境、具体用途,参考国内外同类产品的有关性能,提出合理的、详尽的、符合国际标准的功能技术指标,并编写出设计任务书。应该指出,技术指标在开发过程中还应作适当的调整。


10章 单片机应用系统设计

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

3.选择单片机

单片机种类繁多,选择合适的单片机是应用系统设计的关键。一般可以从以下几个方面考虑:

(1)所选的单片机型号必须有稳定、充足的货源,最好选择该领域应用最广的单片机系列产品。

(2)根据系统的功能要求和各种单片机的性能,选择最容易实现系统指标的型号,而且能达到较高的性价比。

(3)在研制任务重、时间紧的情况下,尽可能选择技术成熟、有较多软件支持、具有相应单片机的开发工具,比较熟悉的机型,以便能马上着手进行系统的设计;同时可以借鉴一些现有的技术,利用性能优良的开发工具缩短开发周期,降低开发成本。


10章 单片机应用系统设计

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

4.选择检测元件

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

5.选择执行机构

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

6.软件和硬件的功能划分

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


10章 单片机应用系统设计

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

10.2.2系统的硬件设计

硬件的功能由系统总体方案所确定,接下来就应进行系统的硬件设计。硬件设计的任务是根据总体设计要求,在所选机型的基础上,具体确定系统中所要使用的元器件,绘制出系统的电路原理图,以确保电路的正确性,

1.硬件设计原则

在设计单片机应用系统硬件电路时要遵循以下几个原则:

(1)尽量选择标准化、模块化的典型电路,并符合单片机的常规用法,这样可以提高设计的成功率和结构的灵活性。

(2)系统的扩展及各功能模块的设计在满足应用系统功能要求的基础上,应考虑留有充分余量,为后续产品升级留有余地。如果在最初设计时没有留有任何余地,后期很可能会因为一点小小的改动或扩展而被迫全面返工。

(3)硬件设计同时要结合软件方案一起考虑。

(4)相关的器件要和系统整体要求的性能指标相匹配。

(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。


10章 单片机应用系统设计

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

(6)系统的可靠性及抗干扰设计在硬件设计中也是十分重要的。

(7)设计时尽可能多作些调研,采用最新器件与最新技术。

(8)应充分重视电源电路的设计,电源的功率要足够大。

2.硬件设计的步骤

硬件设计的具体步骤如下:

(1)根据各输入/输出数据的传送方式确定是中断方式、查询方式还是无条件方式等。

(2)根据系统需要确定使用哪种结构,确定系统中主要电路是最小应用系统还是扩展系统。除单片机外,系统中还需要哪些扩展芯片、模拟电路等。

(3)进行资源分配,各输入/输出信号应分别使用哪个并行口、串行口、中断、定时器/计数器等。

(4)进行电路连接,绘制出完整的电路连接图。


10章 单片机应用系统设计

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

10.2.3系统的软件设计

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

1.软件设计原则

(1)根据软件各功能模块之间的联系以及在时间上的关系,设计出合理的软件结构,使其清晰、简洁、流程合理。

(2)培养结构化程序设计风格,各功能模块实现模块化、系统化,既便于调试、连接,又便于移植、修改。


10章 单片机应用系统设计

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

(3)根据系统输入/输出变量建立正确的数学模型,它是关系到系统性能好坏的重要因素。

(4)在编写应用程序之前,应绘制出程序流程图。

(5)合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等,既能节约存储容量,又能给程序设计与操作带来方便。

(6)运行状态实现标志化管理。

(7)加强软件抗干扰设计,它是提高单片机应用系统可靠性的有力措施。

(8)为了提高系统运行的可靠性,还应设置自诊断程序,在系统运行前先运行自诊断程序,用来检查系统各特征参数是否正常。

总之,软件设计的宗旨是在满足对象算法及系统控制要求的前提下,简化程序结构,提高程序的使用效率。


10章 单片机应用系统设计

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

2.系统定义

系统定义是在软件设计之前,进一步明确软件所要完成的功能,然后结合硬件结构,确定软件承担的任务细节。系统定义的内容包括以下几个方面:

(1)定义各输入/输出的功能、信号类别、电平范围、与系统接口方式、占用口地址、读取的输出方式等。

(2)定义分配存储空间,包括主程序、常数表格、功能子程序块划分、入口地址表等。

(3)若有断电保护措施,应定义数据暂存区标志单元等。

(4)面板开关、按键等控制输入量的定义与软件编制密切相关,系统运行过程中的显示、运算结果的显示、正常运行和出错显示等由软件完成。


10章 单片机应用系统设计

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

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


10章 单片机应用系统设计

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

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

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

(1)抗干扰措施。

(2)提高所用元器件的可靠性。

(3)采用多种容错技术。

(4)采取加密保护技术。


10章 单片机应用系统设计

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

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台。


10章 单片机应用系统设计

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

5.程序流程图

本实训的程序流程图如图10-8所示。

6.实训步骤

1)实训板连接。

2)硬件诊断。

(1)用仿真器诊断硬件。

(2)用固化器固化程序诊断硬件好坏。用前面所述方法固化程序诊断硬件好坏。

3)软件调试。

(1)仿真器调试。

(2)仿真软件调试。


结 束 语

感谢您的关注!

www.huatengedu.com


ad