单片机原理及应用-03MCS-51单片机的组成原理_第1页
单片机原理及应用-03MCS-51单片机的组成原理_第2页
单片机原理及应用-03MCS-51单片机的组成原理_第3页
单片机原理及应用-03MCS-51单片机的组成原理_第4页
单片机原理及应用-03MCS-51单片机的组成原理_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章MCS-51单片机的组成原理3.1概述

3.6定时器/计数器3.2中央处理器

3.7串行I/O接口3.3存储器

3.8中断控制系统3.4布尔处理机

3.9MCS-51单片机外部特性3.5并行I/O接口

3.10EPROM的编程、检查与擦除

3.1189C51单片机的组成与特点3.1概述MCS-51系列单片机是把构成计算机的CPU、存储器、寄存器组、I/O接口制作在一块集成电路芯片中。另外,还集成有定时器/计数器、串行通信接口等部件,因此可方便地用于定时控制和远程数据传送。在MCS-51系列单片机中,主要有8031、8051、8751及80C51等型号。随着超大规模集成电路的发展,单片机的内部结构仍在不断地扩大,功能在不断提高,其型号与类型也在不断地变换。例如8052AH、8032Ah、8752BH采用HMOS工艺制成,内部ROM/RAM的容量增大了一倍。80C51BH系列采用CHMOS工艺制成,功耗低,其中87C51具有两级存储器保密系统,可防止非法拷贝。8052AH-BASIC芯片内部固化有MCSBASIC52解释程序,可使BASIC52语言与汇编语言混合使用。

又如可编程计数阵列型单片机80C51FA具有5个比较/捕捉模块,每个模块可执行16位的正跳变捕捉、负跳变捕捉和正负跳变捕捉,可执行16位软件定时、16位高速输出及位脉冲宽度调制输出等,另外还有一个增强的多机串行通信接口。

A/D型单片机80C51GA具有8路8位A/D转换器、半双工同步串行通信接口、16位程序监视跟踪定时器,扩展了A/D中断和串行口中断,使中断源达7个之多。多并行接口型单片机80C451增加了两个8位并行I/O接口P4口和P5口,从而提高了数据的吞吐能力。

DMA(直接存储器存取方式)型单片机80C52JA具有用于DMA传送的目的地址寄存器、源地址寄存器和字节计数器,支持DMA传送,且在80C452中设有128字节的双向先进先出(FIFO)RAM阵列,支持从一个RAM到另一个RAM的高速数据传送。

目前,使用较多的还有89C51型单片机,其内部有4KB/8KB/16KB/32KB/64KB的Flash程序存储器、128/256/512/1024字节的随机存取数据存储器、3个定时器/计数器,采用双DPTR结构,有6个中断源,分4个优先级控制,可低电压运行,且有较强的抗电磁干扰能力。本章仍以8051为例,讲述单片机的基本组成与工作原理,然后介绍89C51单片机的组成与特点。

8051单片机的内部结构如图3.1所示,包含1个8位中央处理器CPU、4KB程序存储器EPROM、128B随机存取存储器RAM、4个8位并行I/O接口、1个全双工串行通信接口、2个16位定时器/计数器及21个特殊功能寄存器。外部具有64KB程序存储器寻址能力和64KB数据存储器寻址能力。指令系统中增加了乘除法指令,提高了运算及数据处理能力,且具有位操作能力。图3.18051单片机内部组成P1P1口锁存器P1口驱动器8PCONSCONTMODTCONSBUF(TX)SBUF(RX)IEIPTH0TL0TH1TL1中断、串行口和定时器部件P3P3口锁存器P3口驱动器8PSENEARSTALE指令寄存器IR定时控制逻辑寄存器BSPRAM128×8+5VVCC地址寄存器RAMP0口锁存器P0P0口驱动器8ROM4K×8P2口锁存器P2P2口驱动器8PSW暂存寄存器1暂存寄存器2累加器A算术逻辑部件ALU程序地址寄存器缓冲寄存器PC增量PCDPTR图3.1(2)3.2中央处理器

中央处理器是进行算术/逻辑运算,控制程序执行的部件。它包括运算器和控制器,主要组成已经反映在图3.1(2)中。3.2.1运算器3.2.2控制器3.2.3时钟与定时3.2.1运算器

运算器主要包括算术/逻辑部件ALU、累加器、暂存寄存器TMP1和TMP2、程序状态标志寄存器PSW、BCD码修正电路等。为了提高数据处理和位操作能力,片内设有一个通用寄存器B和一些专用寄存器。运算器的功能主要是对数据进行加、减、乘、除等算术运算及“与”、“或”、“非”、“异或”等逻辑运算。对于位操作数,可进行置位、清零、求反、移位、条件判断及按位“与”、按位“或”等操作。3.2.2控制器

控制器包括程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等。由于可以外接64K字节的数据存储器和I/O接口电路,因此在控制器中设有一个16位的地址指示器DPTR,用来对外部数据存储器和I/O接口寻址。为了便于数据保护,设有8位堆栈指示器SP。

PSW寄存器共有8位,全部用作程序运行时的状态标志,其格式如下:

字节地址D0HPSW

位地址D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVPP:奇偶标志位。当累加器中1的个数为偶数时,P置1,否则清0。OV:溢出标志位。当执行算术运算时,最高位和次高位的进位(或借位)相同时,有溢出,OV置1;否则,没有溢出,OV清0。RS0RS1:寄存器工作区选择。F0:用户标志位。AC:辅助进位标志位。算术运算时,若低半字节向高半字节有进位(或借位)时,AC置1,否则清0。Cy:最高进位标志位。算术运算时,若最高位有进位(或借位)时,Cy置1,否则清0。D1:保留。3.2.3时钟与定时

MCS-51单片机的定时时序如图3.2所示。一个机器周期为6个时钟周期,表示为S1~S6。在一个机器周期中,包含有两个机器周期信号ALE。时钟信号S为振荡器频率的2分频,一般情况下,算术/逻辑运算在S的前半周期P1进行,内部寄存器传送在S的后半周期P2进行。MCS-51单片机的大部分指令执行时间为一个机器周期,少数为2个机器周期,乘法和除法指令需要4个机器周期。

P1P2P1P2P1P2P1P2P1P2P1P2S6S5S4S3S2S1图3.2MCS-51时序图读操作码读操作数一个机器周期3.3存储器

在MCS-51系列单片机中,程序存储器和数据存储器互相独立,物理结构也不相同。程序存储器为只读存储器,数据存储器为随机存取存储器。从物理地址空间看,共有4个存储地址空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,I/O接口与外部数据存储器统一编址,其示意如图3.3所示。图3.3MCS-51存储器空间(b)数据存储器00HFFH内部外部FFFFH0000H(a)程序存储器0FFFH0000HFFFFH0000H外部EA=0内部EA=13.3.1程序存储器

程序存储器包括内部程序存储器和外部程序存储器。8051内设4KBROM,8751内设4KBEPROM,地址范围为0000H~0FFFH,外部可扩展64KB,地址范围为0000H~FFFFH。在其引脚中设有一个控制端。若该端接高电平,程序执行时先执行内部程序存储器中的程序,当地址大于等于1000H后,执行外部程序存储器中的程序。若该端接低电平,则全部执行外部程序存储器中的程序。程序存储器中存放的数据只能用查表指令访问,其格式如下:

MOVCA,@A+PCMOVCA,@A+DPTR

3.3.2数据存储器

数据存储器包括内部数据存储器和外部数据存储器。内部数据存储器分为128字节的RAM区和128字节的特殊功能寄存器区,总的地址范围为00H~FFH。在特殊功能寄存器地址空间中离散地分布着21个特殊功能寄存器。如累加器A、寄存器B、程序状态标志寄存器PSW等。外部可扩充64KB的数据存储器,地址范围为0000H~FFFFH。内部数据存储器和外部数据存储器在00H~FFH地址区重叠。对于内部数据存储器可以直接寻址,也可以间接寻址,间接寻址时,间接地址寄存器为R0和R1,指令格式如下:MOVA,@R0MOVA,@R1MOV@R0,AMOV@R1,A外部数据存储器只能间接寻址,间接地址寄存器为R0、R1和DPTR。用R0和R1只能访问低256个字节单元,用DPTR可访问64KB单元。指令格式如下:MOVXA,@R0MOVXA,@R1MOVXA,@DPTRMOVX@R0,AMOVX@R1,AMOVX@DPTR,A1.内部RAM

内部RAM共128个字节单元,其分布如图3.4所示。00H~1FH单元为4个寄存器工作区,每区8个寄存器,表示为R0~R7。寄存器工作区的选择是通过程序状态标志寄存器PSW的第3~4位进行,如表3.1所示。设置4个寄存器工作区可以提高现场保护能力和CPU实时响应的速度。图3.4内部RAM结构数据缓冲区

2FH30H1FH20H00H7FH只能字节寻址字节、位寻址4个寄存器区(R0~R7)1区2区3区0区表3.1寄存器工作区选择与地址分配

PSW.4(RS1)PSW.3(RS0)寄存器区

R0~R7占用地址

000区

00H~07H011区

08H~0FH102区

10H~17H113区

18H~1FH20H~2FH的16个单元既可按字节寻址,作为一般的工作单元,又可以按位由CPU直接寻址,进行位操作。30H~7FH区只能按字节寻址,一般用作数据缓冲区或堆栈区。

2.特殊功能寄存器特殊功能寄存器有21个,离散地分布在80H~FFH地址区域中,其名称、地址分配和复位后的初始状态如表3.2所示,这些寄存器的功能将在以后各章中介绍。特殊功能寄存器名

称地

址复位后状态B通用寄存器F0H00HA累加器E0H00HPSW程序状态字D0H00HIP中断优先级寄存器B8H×××00000BP3P3口B0HFFHIE中断允许寄存器A8H0××00000BP2P2口A0HFFHSBUF串行口发送/接收缓冲器99H不定SCON串行口控制寄存器98H00HP1P1口90HFFHTH1定时器/计数器1高8位8DH00HTH0定时器/计数器0高8位8CH00HTL1定时器/计数器1低8位8BH00HTL0定时器/计数器0低8位8AH00HTMOD定时器/计数器方式字89H00HTCON定时器控制寄存器88H00HPCON波特率选择寄存器87H00HDPH地址寄存器高8位83H00HDPL地址寄存器低8位82H00HSP堆栈指针81H07HP0P0口80HFFH表3.2特殊功能寄存器表3.2(2)3.堆栈工作区在MCS-51单片机中堆栈是向上生成,空栈底,实栈顶,由堆栈指示器SP指示。SP是一个8位寄存器,属特殊功能寄存器,字节地址为81H。堆栈工作区可设在内部RAM的任意区域中,但在使用时注意不要与所选寄存器工作区、位地址区重叠。系统复位后,堆栈指针SP的初值为07H,指向寄存器工作区0。因此,用户在初始化程序中应对SP设置初值,一般设在30H~7FH为宜。

4.外部数据存储器在MCS-51系列单片机的外部可扩展64KB的数据存储器,用来存放随机数据,因此一般由RAM构成。程序运行时,只能通过地址寄存器DPTR和通用寄存器R0、R1间接寻址。3.4布尔处理机1.布尔处理机布尔处理机实际上是一位字长的计算机,它有中央处理器、位累加器、位地址空间和位操作指令。通过编程可实现位处理或位控制功能。由于在MCS-51单片机中内含有一个布尔处理机,因此具有很强的位处理功能。2.MCS-51单片机中布尔处理机的组成在MCS-51单片机的内部RAM中,20H~2FH即可以按字节寻址,也可以按位寻址。这16个单元共有128位,每位有一个位地址,寻址范围为00H~7FH,如表3.3所示。另外,有11个特殊功能寄存器,如累加器A、寄存器B、程序状态字PSW等,既有字节地址,也有位地址,其详细地址如表3.4所示。表中给出了能按位寻址的寄存器的位地址。在程序状态标志寄存器PSW中,进位标志位C作为位累加器使用。字节地址位

址D7D6D5D4D3D2D1D02FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F077E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800表3.3RAM寻址区位地址分配特殊功能寄存器字节地址位

址D7D0BF0H

F7F6F5F4F3F2F1F0AE0H

E7E6E5E4E3E2E1E0PSWD0HCYACF0RS1RS0OV

PD7D6D5D4D3D2D1D0IPB8H

PSPT1PX1PT0PX0---BCBBBAB9B8P3B0HP3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0B7B6B5B4B3B2B1B0IEA8HEA

ESET1EX1ET0EX0AF--ACABAAA9A8P2A0HP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0A7A6A5A4A3A2A1A0SBUF99H

SCON98HSM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998P190HP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.09796959493929190TH18DH

TH08CHTL18BHTL08AHTMOD89HTCON88HTF1TR1TF0TR0IE1IT1IE0IT08F8E8D8C8B8A8988PCON87H

DPH83HDPL82HSP81HP080HP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08786858483828180

在指令系统中设有位操作指令,与位累加器C和位地址空间结合起来,构成一个完整的布尔处理机。位操作指令有位传送、位清0、位置1、位取“反”、按位“与”、按位“或”及位测试转移等。MCS-51单片机的4个8位并行I/O接口均具有位地址,即实现位输入输出及位控制功能。3.5并行I/O接口MCS-51单片机内部设置有4个8位并行I/O接口,其中P0口为双向三态输入输入接口,P1、P2、P3口为准双向输入输出接口。3.5.1P0口与P2口3.5.2P1口与P3口3.5.1P0口与P2口P0口是一个8位双向三态输入输出接口,P2口是一个准双向输入输出接口,而且每一位都有自已的位地址。中央处理器可接字节进行数据传送,也可按位进行位操作。在联接外部存储器时,P0口作为8位数据输入输出口和外部存储器低8位地址口,地址/数据分时传送。P2口输出外部存储器的高8位地址,其连接如图3.5所示。数据总线(D7~D0)地址锁存器ROM程序存储器

64KOERAM或I/O口

64KWRRDP2口8051ALEEAP0口WRPSENRD地址总线(A15~A0)图3.5外部存储器连接3.5.2P1口与P3口

P1口与P3口是8位准双向输入输出接口,每一位也有自己的位地址。中央处理器可按字节进行数据传送,也可按位进行位操作。另外,P3口具有第二功能,如表3.5所示,表3.5P3口功能控制信号线引脚符号功能P3.0RXD串行口输入P3.1TXD串行口输出P3.2外部中断0输入P3.3外部中断1输入P3.4T0定时器0外部输入P3.5T1定时器1外部输入P3.6外部数据存储器写信号P3.7外部数据存储器读信号3.6定时器/计数器3.6.1定时器/计数器的组成3.6.2定时器/计数器的工作方式3.6.3定时器/计数器的使用3.6.1定时器/计数器的组成MCS-51单片机中设置有2个16位的可编程定时器/计数器,具有4种工作方式,其逻辑结构如图3.6所示。定时器/计数器T0由计数器TH0和TL0组成,定时器/计数器T1由计数器TH1和TL1组成。TH、TL分别为两个8位计数器,连接起来可组成16位计数器。定时器/计数器的工作方式由方式控制字TMOD选择,定时器/计数器的启停由控制寄存器TCON控制,这两个寄存器均属特殊功能寄存器。T0

T1图3.6定时器/计数器逻辑结构

CPUTCONTMODTL1TH1TH0TL0内部总线定时器/计数器工作方式控制字TMOD:字节地址89HTMODD7D6D5D4D3D2D1D0GATEC/M1M0GATEC/M1M0其中M1、M0为方式选择,C/T为定时/计数选择,GATE为定时器/计数器工作方式选择。定时器/计数器启停控制寄存器TCON:用于中断控制

字节地址88HTCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

其中低4位用于中断控制,高4位用于定时器/计数器的启/停控制,TF为溢出标志,TR为启/停控制标志。3.6.2定时器/计数器的工作方式

1.工作方式0

当M1M0=00时选择工作方式0,其逻辑图如图3.7所示。在工作方式0状态下,TL低5位与TH并成13位计数器。计数工作时,TL低5位计满后向TH计数器进位。当C/=0时为定时工作状态,振荡器输出脉冲(12MHz)经12分频,产生定时脉肿(1MHz)送计数器计器。当C/=1时,为计数工作状态,由T0引脚输入计数脉冲,对计数器进行计数。计数器溢出时将TF置1,表示定时时间到,向CPU发中断请求。当GATE=0时,A点为高电平,定时器/计数器的启/停由启/停标志位TR0决定。TR0=1时,定时器/计数器启动;TR0=0时,定时器/计数器停止工作。当GATE=1时A点位由决定,这样B点的电位就由TR0和联合决定,即定时器/计数器的运行由TR0和两个条件控制。TL0TH05(8)位8位TF0中断请求&≥1C/T=1C/T=0TR0振荡器÷12T0GATE图3.7定时器/计数器工作方式0与工作方式1T1的工作情况与T0相同。TR可由程序置1或者清0,当计数溢出时TF置1;CPU中断响应后,TF清0。CPU也可读出TCON、TH及TL中的内容来了解T0或T1的工作状态。2.工作方式1

当M1M0=01时,定时器/计数器选择工作方式1,这时TH与TL并成16位计数器,按照16位计数器方式工作。其它过程与工作方式0相同。3.工作方式2

当M1M0=10时,定时器/计数器选择工作方式2。在工作方式2状态下TL为8位计数器,TH作为预置常数寄存器,其逻辑图如图3.8所示。当TL计数溢出后,一方面将TF置1,发中断请求,另一方面再把预置常数寄存器TH中的数送入TL,使定时器/计数器重复工作。重新装入TF中断请求TL(8位)计数器TH(8位)预置常数寄存器图3.8

重复定时/计数控制4.工作方式3

当M1M0=11时,定时器/计数器选择工作方式3。工作方式3是T0分为一个8位定时器/计数器和一个8位定时器,TH0用于定时器/计数器,TL0用于定时器。这样MCS-51就具有一个16位、一个8位定时器/计数器和一个8位定时器。定时器/计数器的工作原理与工作方式0相同,只是计数器仅用8位的TH0。定时器如图3.9所示,使用了定时器/计数器T1的状态控制位TR1和TF1,占用了定时器/计数器T1的中断源。图3.9由TH0组成8位定时器TR1中断请求TF1TH08位振荡器÷12

一般情况下,当T1作为串行口的波特率发生器时,T0才选择为工作方式3。当T0选择为工作方式3时,T1可选择为工作方式0或工作方式1或工作方式2,作为串行口的波特率发生器或者用于不需要中断请求的场合。工作方式3只适合于定时器/计数器T0;当T1的方式控制字M1M0=11时,停止工作。

定时器/计数器,其内部一样,都是计数。定时器对内部时钟信号计数,计数器是对外部信号计数。MCS-51单片机的定时器/计数器是加1计数,因此工作时涉及到计数初值。由计数初值开始加1,直到计满溢出,向CPU发中断请求。因此,要使定时器/计数器工作,须确定以下几方面的工作。(1)确定定时器/计数器的工作方式,即定时还是计数?(2)确定计数初值。(3)确定定时器/计数器是否可以中断请求?(4)如何启动定时器/计数器工作?(5)选择工作方式2使定时器/计数器连续工作还是由中断服务程序使其连续工作?3.6.3定时器/计数器的使用

工作方式的确度是向TMOD寄存器写入方式控制字。例如用T0定时,选择工作方式1,内启动,传送指令为:MOVTMOD,#01H计数初值的确定,如下:设计数值为X,则须装入的计数初值为2n-X。方式0,n=13;方式1,n=16;方式2和方式3,n=8。在定时方式下,按机器周期计数,每个机器周期包括12个振荡周期。当晶振频率为6MHz时,1个机器周期==2μS,定时时间为2XμS。若要求定时1mS,则:X==500由此得计数初值为:216-500=65036=FE0CH设置初值的指令为:MOVTL0,#0CHMOVTH0,#0FEH启动T0定时的指令为:MOVTCON,#10H或

SETBTR03.7串行I/O接口3.7.1串行通信基本方式3.7.2串行通信接口的组成与特点3.7.3串行通信接口的工作方式3.7.4数据发送与接收3.7.1串行通信基本方式

串行通信是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以通信,但速度慢。在实际应用中,串行通信又分为同步传送和异步传送两种方式。1.同步传送同步传送是指在一个数据块的开头使用同步字符。数据传送时使用同一频率的时钟脉冲来实现发送端与接收端的同步。这种时钟脉冲称为同步脉冲,数据同步传送的格式如图3.10所示。图3.10

同步传送SYN字符1SYN字符2数据

数据传送时,数据与同步脉冲同时发出。在数据块中首先发同步字符,一般为1~2个。接收端首先接收同步字符,确认同步后开始接收数据。采用同步方式传送,硬件设备较为复杂,但与异步传送相比,同步传送速率高。

2.异步传送异步传送是以字符或一定位数的数据为单位,有起始位和停止位,作为字符的开头和结束标志,这样的单位称为帧。一帧中,起始标志占一位,数据占5、6、7或者8位,停止标志占1、1或者2位。一般规定,起始位用低电平(0)表示,停止位用高电平(1)表示。数据传送时,一帧一帧地传送。若传送ASCII码字符,数据中的第8位可作为奇偶校验位。异步传送数据格式如图3.11所示。图3.11异步传送一帧信息停止位起始位奇偶校验7位数据停止位

串行通信按照数据传送的方向,可分为三种:单工、半双工和全双工通信方式。数据传送速率用波特率表示,即每秒钟传送二进制数的位数,单位为“波特”。异步传送常用波特率为50~19200波特,同步传送速率较高,一般在20000波特以上。3.7.2串行通信接口的组成与特点

在MCS-51单片机中,串行I/O接口是一个全双工串行通信接口,有一个数据接收缓种器和一个数据发送缓冲器,两个缓冲器共用一个地址99H,表示为SBUF。中央处理器对接收缓冲器只能读出不能写入,对发送缓冲器只能写入不能读出。系统中有两个特殊功能寄存器SCON和PCON,控制串行通信工作方式。

1.串行口控制寄存器SCON

串行口控制寄存器共有8位,字节地址为98H,格式如下:SCON位地址

字节地址98H9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRISM0SM1:工作方式选择位,可选择4种工作方式,如表3.6所示。表3.6SM0SM1方式选择SM0SM1方式功能说明波特率000移位寄存器方式fosc/120118位UART可变1029位UARTFosc/64或Fosc/321139位UART可变SM2:工作方式2或方式3串行多机通信允许位。在方式2或方式3时,若SM2=1,接收到的数据第9位(RB8)为1,RI置1,向中央处理器CPU发中断请求;接收到的数据第9位(RB8)为0,RI不置1,不向CPU发中断请求。若SM2=0,接收到的数据送SBUF,接收到的数据第9位送RB8,RI置1。在工作方式1时,若SM2=1,只有接收到有效停止位时RI置1,否则RI不置1。在工作方式0时,SM2应为0。

REN:允许串行接收。

TB8:在方式2和方式3时是发送数据的第9位。

RB8:在方式2和方式3时是接收数据的第9位。在方式1时,若SM2=0,RB8为接收到数据的停止位。在工作方式0时,不使用RB8。TI:发送中断标志。由硬件在方式0串行发送第8位结束或在其它方式中发送停止位的开始时置1,由软件清0。RI:接收中断标志。由硬件在方式0串行接收第8位结束或在其它方式中接收停止位的中间时置1(除了与SM2有关),由软件清0。以上标志设有位地址,可进行位操作,复位时全部清0。

2.波特率选择寄存器PCON字节地址87HPCOND7D6D5D4D3D2D1D0SMODPCON用来确定串行数据传送时的波特率,没有位地址。有关SMOD位的使用,将在下面结合串行通信接口的工作方式一起介绍。3.7.3串行通信接口的工作方式

1.工作方式0

当SM0SM1=00时,选择工作方式0,为移位寄存器输入/输出方式,可外接移位寄存器或同步输入/输出设备。按工作方式0发送时,RXD引脚用于串行数据输出,TXD输出移位同步脉冲。当数据写入发送缓冲器后,串行口将8位数据从低位开始以Fosc/12的波特率从RXD端输出,输出完后将中断标志TI置1,发中断请求。

REN为串行口允许接收控制位,在按工作方式0接收时,受到REN位的控制。REN=0,禁止接收;REN=1允许接收,数据由RXD端输入,TXD端输出移位同步信号。当接收到8位数据时,将中断标志RI置1,发中断请求。转入中断服务后,由中断服务程序将TI、RI清0。在方式0中没有使用TB8和RB8位。2.工作方式1

当SM0SM1=01时,串行接口选择工作方式1,为可变波特率的8位异步通信方式。发送数据由TXD端输出,每一帧信息为10位,一位起始标志位0,8位数据位和一位停止位1。发送时,数据送入发送缓冲器SBUF,然后启动发送。数据发送完后,将中断标志位TI置1。接收时(REN=1)以所选波特率的16倍速率采样RXD引脚,当采样到从1到0的下跳沿时启动接收器,确认起始位后,接收一帧信息。当RI=0,停止位为1或SM2=0时,停止位进入RB8,中断标志位RI置1。若这两个条件都不满足,则信息丢失。在通常情况下,串行口方式1工作时,SM2清0,波特率为:

方式1波特率=×定时器T1的溢出率为了可靠传送,接收采样时,每位采样3次,按多数表决。中断标志RI由中断服务程序清0。3.工作方式2

当SM0SM1=10时,串行接口选择工作方式2,为9位异步通信方式。在这种方式下,每一帧有11位。1位起始位,8位数据位,1位可以置1或者清0的第9位,1位停止位。第9位实际上是SCON中的TB8,作为多机通信中址址/数据标志位或数据的奇偶校验位。接收时,当RI=0,SM2=0或接收到的第9位数据为1时,接收数据送入SBUF,第9位送入RB8,中断标志位RI置1;若二条件都不满足,接收到的信息丢失。若第9位表示奇偶校验位,则在中断处理程序中应进行校验处理。方式2波特率=×振荡器频率4.工作方式3当SM0SM1=11时,串行接口选择工作方式3,为波特率可变的9位异步通信方式。除了波特率可变外,工作方式3与工作方式2相同。方式3波特率=×定时器T1的溢出率波特率是串行口每秒钟发送或接收的数码位数,与振荡器的频率或定时器的溢出率成正比。当定时器/计数器处于工作方式0、工作方式1和工作方式3时溢出率=/(2n-n位定时器初值+重置定时器的中断处理程序机器周期数)当定时器处于工作方式2时溢出率=/(28-TH1)3.7.4数据发送与接收

1.数据发送对于串行口来说,只要中央处理器CPU把数据写入发送缓冲器SBUF,数据将被一位一位地输出,低位在先,高位在后。对于工作方式2和工作方式3,最高位的后面还有第9位(TB8)。若要进行串行通信,首先要确定串行口的工作方式,然后根据工作方式确定是否有第9位(TB8),以及第9位用作奇偶标志位还是用作地址标志位(对于多机通信)。另外,还要设置定时器T1的工作方式和计数初值,以选择波特率。数据成批发送时还要确定一个发送数据区指针,以指示所要发送的数据。若TI为0,在CPU和串行口开中断的情况下,即可发送数据。【例3.1】设串行口选择工作方式2,有奇偶校验,数据区指针为R0,发送一次数据的程序如下:

CLRTI;TI清0MOVA,@R0;取数

MOVC,P;奇偶标志送CMOVTB8,C;置奇偶标志MOVSBUF,A;数据发送WAIT:JBCTI,LOOP2;判断数据是否发送完成

SJMPWAIT;数据位发送完,继续循环LOOP2:INCR0;数据发送完,指针加12.数据接收只要串行口控制寄存器中的REN=1,串行口接收数据,并送入接收缓冲器SBUF,若有第9位,送RB8。要进行串行通信时,首先要确定串行口的工作方式,然后根据工作方式确定是否有第9位(RB8),以及第9位的作用。另外,还要设置定时器T1的工作方式和计数初值,以确定波特率。数据成批接收时还要确定一个数据区指针,以指示数据存放的地址。在CPU和串行口开中断的情况下,每接收一帧数据,RI置1,向CPU发中断请求。请求CUP读出数据。【例3.2】设串行口选择工作方式1,存放数据的区域指针为R0,接收程序如下:

CLRRI;RI清0 MOVA,SUBF;读取数据

MOVR0,A;存数

INCR0;指针加13.8中断控制系统3.8.1中断源与中断请求标志3.8.2中断控制3.8.1中断源与中断请求标志MCS-51单片机有5个中断源,2级中断优先级,可实现2级中断嵌套。每个中断源可由程序开中断或者关中断,每个中断源的优先级别可由程序设置。5个中断源包括2个外部中断、、2个内部定时器/计数器溢出中断TF0、TF1和1个内部串行口中断TI或RI。这些中断请求分别由特殊功能寄存器TCON和SCON的相应位锁存。

1.TCON用于中断请求标志定时器/计数器启停控制寄存器除用于启停控制和溢出标志外,还用作中断请求标志及外部中断请求的触发方式控制。其中溢出标志,也就是中断请求标志。TCON用于中断请求标志,格式如下:位地址TCON

字节地址88HD7D6D5D4D3D2D1D08FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT0IT0:中断请求触发方式。当IT0=0时,电平触发;当IT0=1时,下降沿触发。为低电平有效。IT1:中断请求触发方式。作用同IT0。IE0:中断请求标志位。当有请求时,IE0置1,向CPU请求中断,否则为0。IE1:中断请求标志位。作用同IE0。TF0:片内T0溢出中断请求标志位,T0溢出时,TF0置1,向CPU请求中断,否则为0。TF1:片内T1溢出中断请求标志位,作用同TF0。位地址99H98H

字节地址98HSCOND7D6D5D4D3D2D1D0TIRI2.SCON用于中断请求标志串行口控制寄存器的低2位(TI和RI)是串行口的发送中断请求标志和接收中断请求标志,其格式如下:TI:串行口发送中断请求标志位,当发送完一个字节或发送停止位时TI置1,向CPU请求中断处理,TI由中断服务程序清0。

RI:串行口接收中断请求标志位,当接收完一个字节或停止位时RI置1,向CPU请求中断处理,RI也要由中断服务程序清0。3.8.2中断控制1.中断允许寄存器IE

由控制字来实现,中断控制寄存器有两个,一个是中断允许寄存器,另一个是中断优先级寄存器,其格式如下:AFHACHABHAAHA9HA8H位地址

字节地址A8HIED7D6D5D4D3D2D1D0EAESET1EX1ET0EX0EA:开中断标志位。EA=1,CPU开中断;EA=0,CPU关中断。ES:串行口中断允许位。ES=1,串行口允许中断;ES=0,则不允许中断。ET0:定时器/计数器T0中断允许位。ET0=1,T0允许中断;ET0=0,则不允许中断。EX0:中断允许位。EX0=1,INT0允许中断;EX0=0,INT0则不允许中断。ET1:定时器/计数器T1中断允许位。功能同ET0。EX1:中断允许位。功能同EX0。复位后IE清0。2.中断优先级寄存器IP位地址BCHBBHBAHB9HB8H

字节地址B8HIED7D6D5D4D3D2D1D0PSPT1PX1PT0PX0PS:串行口优先级控制位。PS=1时,串行口为高优先级中断源;PS=0时,为低优先级中断源。PT0:定时器/计数器T0优先级控制位。PT0=1时,T0为高优先级中断源,PT0=0时,T0为低优先级中断源。PX0:优先级控制位。PX1=1时,高优先级中断源,PX0=0时,为低优先级中断源。PT1:定时器/计数器T1优先级控制位。功能同PT0。PX1:优先级控制位。功能同PX0。

在MCS-51单片机中,中断优先级分为两级,即高优先级和低优先级。为此设置有两个不可寻址的中断优先级触发器,分别指示两级中断服务。当CPU为高级中断请求服务时,高优先级触发器置1,否则清0。当几个相同优先级别的中断源同时请求时,CPU通过内部查询来确定先为哪一个中断请求服务,查询优先级顺序如表3.7所示。

在单片机工作时,中断控制由程序来实现。例如CPU开中断可由以下两条指令来实现:SETB0AFH;EA置1或ORLIE,#80H;按位“或”,EA置1CPU关中断可由以下两条指令来实现:CLR0AFH;EA清0或ANLIE,#7FH;按位“与”,EA清0又如设置外部中断源为高优先级,外部中断源为低优先级,可由下面指令来实现:SETB0B8H;PX0置1CLR0BAH;PX1清0或MOVIP,#000××0×1B;PX0置1,PX1清0中断源

同一级中断源优先顺序

外部

定时器/计数器T0

外部

定时器/计数器T1串行接口

表3.7同一级中断源优先顺序3.中断响应处理

MCS-51单片机规定CPU在执行RETI或访问IE、IP寄存器的指令时不响应中断请求,只有上述指令执行完后的下一条指令周期的末尾才去响应新的中断请求。响应后由硬件清除中断请求标志(TI和RI除外),保护断点,转向中断服务程序的入口,执行中断服务程序。各中断源服务程序的入口地址如表3.8所示。在保护断点时,没有保护PSW的状态,若需要保护,可由中断服务程序完成。在实际应用中,保护现场由压栈指令(PUSH)来实现,恢复现场由弹栈指令(POP)来实现。对于工作寄存器R0~R7还可以使用寄存器工作区切换的方式来进行。下面举例说明。表3.8中断服务程序入口中断源入口地址外部

0003H定时器/计数器T0000BH外部0013H定时器/计数器T1001BH串行接口0023H【例3.3】设串行口工作方式2,有奇偶校验,数据发送中断服务程序如下:RTI:PUSHPSW;压栈保护现场

PUSHASETBPSW.4;寄存器工作区切换

CLRPSW.3CLRTIMOVA,@R0MOVC,PMOVSBUF,A;数据发送

INCR0POPA;恢复现场

POPPSWRETI

;中断返回对于外部中断源,若采用电平触发方式,中断返回之前外部中断请求信号必须撤销。否则,中断返回后CPU会再次响应这一中断请求。3.9MCS-51单片机外部特性3.9.1引脚功能3.9.2复位与掉电保护3.9.1引脚功能MCS-51单片机有40个引脚,双列直插式结构,其引脚分布与逻辑符号如图3.12所示,包括4个8位并行I/O接口、6条控制信号线和2条电源线。另外,P3口具有第2功能。图3.12

89C51引脚图与符号图(a)引脚图14023933843753663573483393210311130122913281427152616251724182319222021P10P11P12P13P14P15P16P17RST/VPDRXDP30TXDP31INT0P32INT1P33T0P34T1P35WRP36RDP37XTAL1XTAL2VSSVCCP00P01P02P03P04P05P06P07EA/VDDALE/PROGPSENP27P26P25P24P23P22P21P208051(b)符号图XATL1XATL2EA/VDDPSENALE/PROGRXDTXDINT0INT1T0T1WRRDP0口地址/数据总线P1口P2口地址总线VSSVCCRST/VPD8051并行口P0:8位双向I/O接口,连接外部存储器低8位地址线和8位数据线。并行口P1:8位准双向I/O接口,在编程和校验时接收低8位地址,每一位可以独立地输入/输出。并行口P2:8位准双向I/O接口,连接外部存储器高8位地址线,在编程和校验时接收高位地址和控制信号。并行口P3:8位准双向I/O接口,另第二功能。RXD/P3.0:串行通道接收器的数据输入(异步)或数据输入/输出(同步)端。TXD/P3.1:串行通道发送器的数据输出(异步)或时钟输出(同步)端。

/P3.2:中断0输入或定时器/计数器T0的门控输入。

/P3.3:中断1输入或定时器/计数器T1的门控输入。T0/P3.4:定时器/计数器T0外部计数脉冲输入。T1/P3.5:定时器/计数器T1外部计数脉冲输入。/P3.6:外部数据存储器写命令,低电平有效。

/P3.7:外部数据存储器读命令,低电平有效。RST/VPD:复位及提供后备电源。.ALE/:ALE地址输出锁存信号,EPROM编程时输入编程脉冲。:外部程序存储器读出选通信号,读出内容送并行口P0。

/VDD:是内部/外部程序存储器选择信号,高电平,选择内部程序存储器,低电平,选择外部程序存储器。对于内部没有程序存储器的单片机,必须接地;EPROM编程时VDD接21V电源。XTAL1XTAL2:外接晶体振荡器或外部时钟。VCC:+5V电源。VSS:接地端。3.9.2复位与掉电保护

1.RST/VPDRST/VPD引脚的内部电路如图3.13所示,一方面经施密特触发器与内部复位电路连接,另一方面经二极管与内部RAM连接。其作用是为内部电路提供复位信号和在掉电时为RAM存储器提供备用电源。图3.13RST/VPDD电路内部RAM施密特触发器复位电路VCCRST/VPDVSS2.复位为了复位可靠,在复位电路的输入端使用了一个施密特触发器。每个机器周期的S5P2时刻采样施密特触发器的输出,若连续两次采样到高电平才确认为是复位信号。因此要求复位信号(高电平)应在RST端至少保持2个机器周期。CPU在RST端变为高电平的第二个机器周期响应复位信号,使ALE和端变为输入状态,并将内部寄存器置为初始状态。以后每个机器周期复位一次,直到RST端变为低电平(复位信号消失)为止。复位不影响内部存储器RAM,复位后各特殊功能寄存器的状态如表3.2(2)所示。上电复位电路如图3.14所示,在RST端与VCC端之间接一个10μF的电容器,只要电源电压VCC的上升时间不超过1mS,即可在接通电源时对单片机进行一次复位,即上电复位。PSEN3.掉电保护

MCS-51单片机的VPD引脚除作为复位信号输入端外还作为备用电源输入端。一旦主电源VCC出现故障后可由VPD接通备用电源。备用电源输入电路有多种,图3.15所示仅是其中一种。电源故障时,可通过向CPU发中断请求。CPU中断响应后,执行中断服务程序,将有关数据送入内部RAM保存,然后由P1.0输出0信号(低电平),触发单稳电路555。若单稳电路定时输出后,VCC仍然存在,则是假报警,复位后重新工作。若VCC已掉电,则由单稳电路接通备用电源,直到VCC恢复正常。也可由CPU输出控制信号,启动系统备用电源。图3.14上电复位电路-10μF+

VCC8051RST/VPPVCC图3.15掉电保护备用电源P1.0RST/VPD1234555

在8751单片机内部设置有4K的EPROM只读存储器,因此也就存在着编程、检查和擦除的问题。3.10EPROM的编程、检查与擦除3.10.1EPROM编程3.10.2程序检查与擦除3.10.1EPROM编程EPROM编程时一般采用4~6MHz的振荡频率。EPROM单元地址由P0口和P2口的P2.0~P2.3输入,写入数据由P0口输入,P2.4~P2.6和接低电平,P2.7接高电平,RST接2.5V高电平,/VDD端平时为TTL高电平,EPROM编程时加+21V电压,ALE/加50ms的低电平编程脉冲。芯片连接与时序如图3.16所示。PROG地址0000H…0FFFHA7~A0A11~A8TTL高电平4~6MHz+5V

编程数据g

ALE/PROGEA/VDDV1H1(+2.5V)P1口P23~P20P24P25P26P27XTAL2

XTAL1VSSP0口VCCALEEARSTPSEN8751(a)电路连接21±0.5VTTL低电平TTL高电平EA/VDD△t≥3个机器周期±10μS50±1mS△t△tTTL高电平数据P0口ALE/PROGP1口P23~P20地址TTL低电平(b)时序图3.168751EPROM编程电路与时序3.10.2程序检查与擦除

1.程序检查程序检查主要是将8751/8051单片机中EPROM/ROM的内容读出检查。程序检查时的振荡频率也是4~6MHz。EPROM/ROM读出时,单元地址由P0口和P2口的P2.0~P2.3输入,P2.4~P2.6和接低电平,ALE和接高电平,RST接2.5V。数据由P0口输出,P2.7作为读出选通信号。当P2.7为高电平时P0口浮空;P2.7为低电平时,数据由P0口输出。

2.EPROM擦除8751单片机内部E2PROM的擦除和其它E2PROM芯片的擦除方法一样,通过紫外线照射来擦除。擦除后,可以重新写入。一般日光灯和太阳光中都包含有紫外线。如果8751芯片上的窗口长期暴露在日光灯或太阳光下,其中的数据就会丢失。因此,8751单片机在写入后,其上方的窗口须用黑纸或金属膜覆盖。3.1189C51单片机的组成与特点1.内部组成与特点

89C51单片机是在MCS-51的基础上增添了一些新的功能部件而制造成功的。但是,由于生产厂商不同,因此所推出同一类型的产品在结构上往往略有差异。下面取其共有的部分,称之为核,予以介绍,内部组成如图3.17所示。图3.1789C51单片机内部组成TH1TH0TCONTL1TL0TMOD定时器T0/T1T2CONTH2RCAP2HT2MODTL2RCAP2L定时器T2IEIPSCONSBUF串行口中断控制IPHP0口P1口P2口P3口P0P1P2P3快闪存储器FlashROM4K/8K/16/32KRAM256BAUXRAUXR1ERAM256/768B内部程序/数据存储器节电与双DPTR控制暂存TMP2暂存TMP1状态PSW累加器A寄存器B算术逻辑部件ALUPCHPCLOSC定时控制电路PCONIP程序计数器双DPTRCKCON堆栈SP指针DPTR数据指针时钟控制SADDRSADEN用于地址识别的地址与地址掩码寄存器

主要包括8位CPU、片内Flash程序存储器、数据存储器、布尔处理机、3个16位定时器/计数器、4个8位并行输入输出接口、一个全双工UART等。

(1)CPUCPU采用CISC结构,字长8位,可进行加、减、乘、除以及“与”、“或”、“非”、“移位”等算术逻辑运算。主要包括算术逻辑部件ALU、累加器Acc、寄存器B、暂存寄存器TMP1/2、通用/专用寄存器组以及程序状态寄存器PSW等。内设布尔处理器,可进行“位”操作。(2)存储器存储器分为程序存储器和数据存储器。早期MCS-51采用EPROM作为程序存储器,从80C51开始使用快闪FLASH存储器,容量为4KB至64KB,可支持系统中烧录程序(ISP)和在应用中烧录程序(IAP)。数据存储器采用RAM,容量较小,一般为256,其中高位地址(80H~FFH)与特殊功能寄存器(SFR)重叠。为了扩大内部RAM的容量,在89C51之后新增片内RAM(即ERAM)256B/768B,在Philips的P89C51Rx2中新增片内RAM6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论