第2章MCS51系列单片机的硬件结构课件.ppt
第2章MCS-51系列单片机的硬件结构,1 概述 2 微处理器 3 存储器 4 定时器/计数器 5 并行I/O口 6 串行接口 7 中断系统 8 特殊工作方式,9/24/2022,1,第2章MCS-51系列单片机的硬件结构 1 概述,1 概述,学习单片机要掌握什么?单片机拥有什么资源?有哪些寄存器,各有什么功能?内部存储器特征,如何编址与访问?还有什么功能部件:定时器、并口、串口、中断系统及入口地址、工作方式?引脚情况,如何连接系统?指令系统,如何编写程序?根据系统需求,如何进行扩展?(5)典型的接口电路如何设计,程序如何实现?,9/24/2022,2,1 概述学习单片机要掌握什么?9/24/20222,1 概述,1-1 主要功能MCS-51系列单片机是Intel公司在80年代初推出的高性能单片微型计算机,包含51、52两个子系列。针对特定CPU,有以下特点:,9/24/2022,3,1 概述 1-1 主要功能9/24/20223,按功能可分成8个部件,通过片内单一总线连接起来,1.微处理器,2.数据存储器,3.程序存储器,4.I/O口,5.串行口,6.定时/计数器,7.中断系统,8.特殊功能寄存器,控制方式:SFR对各功能部件集中控制,片内总线,1 概述,1-2 内部结构框图,9/24/2022,4,CPU控制部件RAMP0口P2口ROM(EPROM)串行口,1 概述,1-3 外部引脚说明从结构框图可看出,MCS-51芯片共有40个引脚,HMOS工艺芯片采用DIP封装,CHMOS芯片也有方型封装的。(1)电源Vcc+5VVss 地(2)时钟XTAL2XTAL1接晶体两引脚,9/24/2022,5,1 概述1-3 外部引脚说明9/24/20225,1 概述,1-3 外部引脚说明(3)I/O引脚P0口:准双向I/O口在扩展存贮器(程序存贮器或数据存贮器)或I/O扩展时,可分时复用为低8位地址线和双向数据线P1口:准双向I/O口对52系列(8032、8052)要比51系列多一个中断源(定时器/计数器),P1.1作为T2(计数脉冲输入),P1.2为T2EX(T2的外部控制端)。P2口:准双向I/O口在P0口的第2种情况,它作为高8位地址线输出,9/24/2022,6,1 概述1-3 外部引脚说明9/24/20226,1 概述,1-3 外部引脚说明(3)I/O引脚P3口:准双向I/O口 第2功能,9/24/2022,7,1 概述1-3 外部引脚说明引脚转义引脚功能说明P3.0,1 概述,1-3 外部引脚说明(4)控制线:ALE/PROG:地址锁存有效信号输出*下降沿用来锁存地址*一般情况,它均在每个机器周期出现2次(对12MHZ晶振,其频率为2MHZ,即周期为.5uS),可作为时钟供外部使用,但在MOVX访问外部数据存贮器时,它在两周期内(MOVX为双周期指令)会跳空一个,频率不再恒定。*对片内有EPROM机型(8051、8751、8052),在编程时,它作为编程脉冲输入端。,9/24/2022,8,1 概述1-3 外部引脚说明9/24/20228,1 概述,1-3 外部引脚说明(4)控制线:PSEN:片外程序存贮器读选通信号输出端访问外部程序存贮器时,每周期有效2次(低电平);访问片外数据存贮器时,它无效,因此不会读错。RST/VPD:复位及备用电源在振荡时,两个机器周期的高电平(12MHz时,需2s),使单片机回初始状态,上电时,由于要起振时间,要更长约10s。在掉电时(不起振),若它接有备用电池,将自动发挥作用,向片内RAM供电。即如Vcc有,该端有高电平是复位。无Vcc,该端有高电平,则是备用电源。,9/24/2022,9,1 概述1-3 外部引脚说明9/24/20229,1 概述,1-3 外部引脚说明(4)控制线:EA/VDD:片外程序存贮器选用端 EA为低时,只用片外程序存贮器,故对8031、8032只能接地。EA为高时,先选用片内程序存贮器,再选用片外程序存贮器有片内程序存贮器(EPROM)在编程时,它接21V作为编程电压输入。,9/24/2022,10,1 概述1-3 外部引脚说明9/24/202210,2 微处理器,2-1 运算器 微处理器亦称CPU,由运算器、控制器两大部分构成。运算器以ALU为核心,附加一些工作寄存器、A、B、PSW暂存器等。(1)ALU,在内部控制信号作用下完成各种算术及逻辑操作。(2)累加器A,最常用的专用寄存器,为8位。(3)PSW,相当于其它单片机的标志寄存器(8位),各位有下面定义:,9/24/2022,11,2 微处理器 2-1 运算器 RS0ACF0RS1COVP,2 微处理器,2-1 运算器 C:进位标志位,在执行某些算术及逻辑操作时可被置位或复位,也可由软件访问(JC、JNC、SETBC、MOV C、bit等)例:相加时最高位的进位 C置1(硬件)相减时最高位的借位 AC:辅助进位标志,在作BCD码运算时用到。例:相加时,D3有进位 AC内硬件置1 相减时,D3有借位F0:软件标志,用户定义的状态标志,由用户软件置位或复位。RS1,RS0:寄存器组选择,由用户软件置位或复位,以选定4个组中的哪一个工作寄存器组投入工作。,9/24/2022,12,2 微处理器 2-1 运算器 9/24/202212,2 微处理器,2-1 运算器 OV:溢出标志,运算结果超出A有效范围时(-128127),由硬件置位,否则清零。加法最高、次高之一有进位减法最高、次高之一有借位 OV置1乘法:积大于255时,表示有高8位在B寄存器中除法:DIV A B中B为0时,9/24/2022,13,2 微处理器 2-1 运算器 9/24/202213,2 微处理器,2-1 运算器 加法运算时OV标志置、复位的条件分析:(1)最高位有、次高位无进位:OV=1 负数+负数正数(2)最高位无、次高位有进位:OV=1 正数+正数负数(3)最高位有、次高位有进位:OV=0 负数+负数负数 正数+负数正数(4)最高位无、次高位无进位:OV=0 正数+正数正数 正数+负数负数由此可见,OV=1表示有符号数的运算出错,9/24/2022,14,2 微处理器 2-1 运算器 9/24/202214,2 微处理器,2-1 运算器 OV标志例子:无符号数 127+10 1 1 1 1 1 1 10 0 0 0 0 0 0 1 C=0 OV=1 128出范围1 0 0 0 0 0 0 0 结果成了-128有符号数-128+(-1)1 0 0 0 0 0 0 01 1 1 1 1 1 1 1 C=1 OV=1-129出范围0 1 1 1 1 1 1 1 结果为127有符号数-1+(-1)1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 C=1 OV=0-21 1 1 1 1 1 1 0 未出范围,9/24/2022,15,2 微处理器 2-1 运算器 9/24/202215,2 微处理器,2-1 运算器 P奇偶标志每条指令根据A中1的个数对P置位或复位:奇数个置1,偶数个清0(注意与80 x86的PF相反)在通信时有用,9/24/2022,16,2 微处理器 2-1 运算器 9/24/202216,2 微处理器,2-2 控制器含IR、ID、定时及控制电路根据指令产生相应的操作时序及控制信号。,9/24/2022,17,2 微处理器 2-2 控制器9/24/202217,2 微处理器,2-3 CPU时序 振荡周期、时钟周期(状态周期)、机器周期、指令周期。若振荡周期为12MHz,则状态周期、机器周期、指令周期分别为:6MHz、1MHz、250kHz1MHz(4周期指令单周期指令)见图,9/24/2022,18,2 微处理器 2-3 CPU时序 9/24/202218,3 存储器,9/24/2022,19,内部数据存储器外部数据存储器特00H1FH20H2FH30H,3 存储器,3-1 程序存储器51系列:8031:无,8051:4kROM,8751:4kEPROMAT89C51:4kFLASH 52系列:它由8032、8052、8kROM外部程序存贮器:64k寻址范围(1)访问方式执行程序时:由PC自动寻址访问其特定单元数据时,用MOVC指令程序转移,用转移指令(2)编址 EA为0,只访问片外ROM,EA为1,先访问片内,超出片内容量范围后自动访问片外。,9/24/2022,20,3 存储器 3-1 程序存储器9/24/202220,3 存储器,3-1 程序存储器(3)程序存贮器的几个特殊单元程序存贮器中有7个特殊单元做为程序入口。0000H 复位后 PC初值为0,即从此开始执行0003H INT0入口000BH T0溢出0013H INT1入口001BH T1溢出0023H 串行口002BH T2溢出或T2EX负跳变(下降沿)(52子系列8032,8052才有)由于间隔短,一般只放跳转指令。,9/24/2022,21,3 存储器 3-1 程序存储器9/24/202221,3 存储器,3-2 数据存贮器51子系列:8031、8051、8751 RAM 128byte SFR 128个52子系列:8032、8052 RAM 256byte SFR 128个外部数据存贮器寻址范围 64K,9/24/2022,22,3 存储器 3-2 数据存贮器9/24/202222,3 存储器,3-2 数据存贮器(1)编址与访问*片内,9/24/2022,23,3 存储器 3-2 数据存贮器9/24/202223,3 存储器,3-2 数据存贮器(1)编址与访问*片外:均为64K寻址空间,9/24/2022,24,3 存储器 3-2 数据存贮器00HFFH100HFFFF,3 存储器,3-2 数据存贮器(2)堆栈内部RAM区有一部分用于堆栈,位置由SP初值决定。初始时,SP=07H,即跳过0组通用寄存器,(占用R0R7 00H07H,由PSW复位初值决定)。SP可人为设定为2FH,即从30H开始,不影响工作寄存器组及位寻址区。,9/24/2022,25,3 存储器 3-2 数据存贮器9/24/202225,4 定时器/计数器,背景知识,9/24/2022,26,4 定时器/计数器 背景知识9/24/202226,4 定时器/计数器,背景知识,TH1 TL1TH0 TL0TMODTCON,9/24/2022,27,4 定时器/计数器 背景知识TH1 TL19/24/202,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,9/24/2022,28,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,9/24/2022,29,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,检测外部事件发生的次数,9/24/2022,30,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,检测外部事件发生的次数,9/24/2022,31,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,检测外部事件发生的次数,9/24/2022,32,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,检测外部事件发生的次数,9/24/2022,33,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,为什么需要定时/计数器?,根据规定的时间间隔完成某项控制功能,根据需要的延时启动某项任务,检测外部事件发生的次数,9/24/2022,34,4 定时器/计数器 4-1 概述为什么需要定时/计数器?根,4 定时器/计数器,4-1 概述,如何实现?,软件延时采用延时电路实现固定的硬件延时采用可编程定时/计数器实现,可编程定时/计数器(Timer/Counter,简称T/C)正是MCS-51单片机的一种重要的功能部件,9/24/2022,35,4 定时器/计数器 4-1 概述如何实现?软件延时可编程定,4 定时器/计数器,4-1 概述,可编程定时/计数器(T/C)工作原理?,例:往桶里滴水,考察其溢出时间:,9/24/2022,36,4 定时器/计数器 4-1 概述可编程定时/计数器(T/C,4 定时器/计数器,4-1 概述,可编程定时/计数器(T/C)工作原理?,例:往桶里滴水,考察其溢出时间:,9/24/2022,37,4 定时器/计数器 4-1 概述可编程定时/计数器(T/C,4 定时器/计数器,4-1 概述,可编程定时/计数器(T/C)工作原理?,例:往桶里滴水,考察其溢出时间:,9/24/2022,38,4 定时器/计数器 4-1 概述可编程定时/计数器(T/C,4 定时器/计数器,4-1 概述,可编程定时/计数器(T/C)工作原理?,例:往桶里滴水,考察其溢出时间:,9/24/2022,39,4 定时器/计数器 4-1 概述可编程定时/计数器(T/C,4 定时器/计数器,4-1 概述,可编程定时/计数器(T/C)工作原理?,例:往桶里滴水,考察其溢出时间:,桶有多大?-定时/计数范围滴水的速度?-时钟源频率原来有多少水?-初值问题如何知道溢出?-溢出时的反应,9/24/2022,40,4 定时器/计数器 4-1 概述可编程定时/计数器(T/C,4 定时器/计数器,4-1 概述,51系列单片机有2个定时/计数器(T/C0、T/C1),外部计数引脚,内部定时时钟,特殊功能寄存器,9/24/2022,41,4 定时器/计数器 4-1 概述51系列单片机有2个定时/,4 定时器/计数器,4-1 概述,51系列单片机有2个定时/计数器(T/C0、T/C1),定时/计数范围:均为16位,可以设定工作模式,9/24/2022,42,4 定时器/计数器 4-1 概述51系列单片机有2个定时/,4 定时器/计数器,4-1 概述,51系列单片机有2个定时/计数器(T/C0、T/C1),时钟源频率:定时-内部固定时钟,机器周期 计数-外部引脚脉冲,9/24/2022,43,4 定时器/计数器 4-1 概述51系列单片机有2个定时/,4 定时器/计数器,4-1 概述,51系列单片机有2个定时/计数器(T/C0、T/C1),初值问题:可以编程设定初值,9/24/2022,44,4 定时器/计数器 4-1 概述51系列单片机有2个定时/,4 定时器/计数器,4-1 概述,51系列单片机有2个定时/计数器(T/C0、T/C1),计数溢出时的影响:置TF标志,可用于查询或中断,9/24/2022,45,4 定时器/计数器 4-1 概述51系列单片机有2个定时/,4 定时器/计数器,本节小结:,背景知识,概述,定时/计数器功能定时/计数器实现方法定时/计数器工作原理MSC-51单片机定时/计数器功能的结构,下节内容,控制寄存器定时/计数器工作方式初值的计算方法,9/24/2022,46,4 定时器/计数器 本节小结:背景知识概述定时/计数器功能,4 定时器/计数器,4-2 定时/计数器的控制寄存器,TMOD 方式控制寄存器,9/24/2022,47,4 定时器/计数器 4-2 定时/计数器的控制寄存器TMO,4 定时器/计数器,4-2 定时/计数器的控制寄存器,TCON 控制寄存器,TR0(TR1)运行控制位,为1时定时器/计数器才工作TF0(TF1)中断标志位,置位后可向CPU申请中断,计数器溢出时硬件置位,也可软件置位(或清0)产生软中断,9/24/2022,48,4 定时器/计数器 4-2 定时/计数器的控制寄存器TCO,4 定时器/计数器,4-3 定时/计数器工作方式介绍(T/C1为例),工作方式0,初始值为0,计数时间为8192;初始值为8191,计数时间为1计数范围18192(T1或Tcy),9/24/2022,49,4 定时器/计数器 4-3 定时/计数器工作方式介绍(T/,4 定时器/计数器,4-3 定时/计数器工作方式介绍(T/C1为例),工作方式1,同方式0类似,只是TL1也用8位,共16位计数范围165536(T1或Tcy),9/24/2022,50,4 定时器/计数器 4-3 定时/计数器工作方式介绍(T/,4 定时器/计数器,4-3 定时/计数器工作方式介绍(T/C1为例),工作方式2,9/24/2022,51,4 定时器/计数器 4-3 定时/计数器工作方式介绍(T/,4 定时器/计数器,4-3 定时/计数器工作方式介绍(T/C0为例),工作方式,9/24/2022,52,4 定时器/计数器 4-3 定时/计数器工作方式介绍(T/,4 定时器/计数器,4-4 定时/计数器方式确定与初值计算,定时模式,设需要定时时间为T,计数脉冲源为Tcy,则所需计数次数为:C=T/Tcy。根据C的值确定工作方式:设某工作方式最大计数值为M,则选择工作方式时,必须保证MC由于是加法计数,则确定初值V为:V=M-C方式0:M=8192;方式1:M=65536;方式2:M=256,9/24/2022,53,4 定时器/计数器 4-4 定时/计数器方式确定与初值计算,4 定时器/计数器,4-4 定时/计数器方式确定与初值计算,计数模式,用于检测外部事件发生的次数,满规定次数,向CPU汇报,可以直接得到所需计数次数C。根据C的值确定工作方式:设某工作方式最大计数值为M,则选择工作方式时,必须保证MC。初值V为:V=M-C。,9/24/2022,54,4 定时器/计数器 4-4 定时/计数器方式确定与初值计算,4 定时器/计数器,4-5 定时/计数器的操作方式,如何通知CPU,计数溢出,置TF0(或TF1)为1若定时中断允许,则可以去执行中断程序也可以采用查询方式检测TF0(或TF1)的状态,从而完成相应任务TF0(或TF1)标志在响应中断后将自动清零,在查询方式时需要软件清零,以便正常进行下一次操作为了实现周期性控制,除方式2外,需要在检测到标志后重装初值。,9/24/2022,55,4 定时器/计数器 4-5 定时/计数器的操作方式如何通知,4 定时器/计数器,4-5 定时/计数器的操作方式,CPU编程流程(T0为例),初始化:设定工作方式:TMOD设定初值:TL0,TH0若用中断方式,则开相应的定时中断启动定时器工作:TCON中TR0置1查询TF0状态或编写中断服务程序重新装初值(若需要)清TF0标志(若需要)执行相应任务,9/24/2022,56,4 定时器/计数器 4-5 定时/计数器的操作方式CPU编,4 定时器/计数器,思考题,什么是定时/计数器的溢出?溢出后会产生什么现象?怎样确定定时器的控制字?如何计算定时器初值?定时/计数器有关的两个SFR是什么?定时/计数器有几种工作方式?它们的定时/计数范围是多少?,9/24/2022,57,4 定时器/计数器 思考题什么是定时/计数器的溢出?溢出后,5 并行I/O口,5-1 概述MCS-51系列单片机有8*4根I/O线,分为P0、P1、P2、P3口,分别对应4个锁存器(P0、P1、P2、P3),各口既可并行输入/输出,也可单独输入/输出。特征简介:P0:由CPU送来的控制信号决定可作为:地址/数据分时复用线(访问外部存贮器)通用I/O口(准双向)外加提升电阻(只对通用I/O功能时)可驱动8个LSTTL负载(800A),9/24/2022,58,5 并行I/O口 5-1 概述9/24/202258,5 并行I/O口,5-1 概述P1:通用I/O口(准双向)外面无需上拉电阻可驱动4个LSTTL负载(400A)8032、8052的P1。0、P1。1还有第二功能(T2),9/24/2022,59,5 并行I/O口 5-1 概述9/24/202259,5 并行I/O口,5-1 概述P2:由CPU送来控制信号决定可作为高8位地址线:当外部RAM大于256byte时(256byte之内可按8位编址),要用DPTR访问,故P2口输出高8位地址线。当外部ROM存在时,P2口必为高8位地址通用I/O口(准双向)外面无需上拉电阻带4个LSTTL负载,9/24/2022,60,5 并行I/O口 5-1 概述9/24/202260,5 并行I/O口,5-1 概述P3:可作为通用I/O口(准双向)第2功能(RXD、INT0、IN、输入功能及、xD输出信号用口)执行第功能时,口锁存器要写,9/24/2022,61,5 并行I/O口 5-1 概述9/24/202261,5 并行I/O口,5-2 结构介绍,9/24/2022,62,5 并行I/O口 5-2 结构介绍 9/24/202,5 并行I/O口,5-2 结构介绍,9/24/2022,63,5 并行I/O口 5-2 结构介绍 9/24/202,5 并行I/O口,5-2 结构介绍,9/24/2022,64,5 并行I/O口 5-2 结构介绍 9/24/202,5 并行I/O口,5-2 结构介绍,9/24/2022,65,5 并行I/O口 5-2 结构介绍 9/24/202,5 并行I/O口,5-3 总结 输入:,该引脚无锁存功能,也可位访问(先给端口写入)l 通用方式 输出:MOVP0,#data写端口,要锁存,也可位访问,其中接上拉电阻 端口操作:ORL P0,#data等“读修改写”指令,读的是锁存器。l地址数据复用:访问片外存贮器,MOVX或执行外部存贮器中的程序只有具有,9/24/2022,66,5 并行I/O口 5-3 总结9/24/202266,5 并行I/O口,5-3 总结l 高位地址线:具有有外部程序存贮器,执行时自动访问该外部存贮器 有外部A,且按位编址,,,l 第功能 口有个输入功能,个输出功能,9/24/2022,67,5 并行I/O口 5-3 总结9/24/202267,串行接口,概述串行通信,信息中的数据逐位顺序传送的通信方式称为串行通信,适合于远距离通信,连线少,但速度慢。(1)分类*异步通信,9/24/2022,68,串行接口 概述9/24/202268,串行接口,概述(1)分类*同步通信 以数据块为通信单元,在其间发送同步脉冲,以取得同步,数据间不要起始位与停止位,提高了速率,但两边时钟要同步。,9/24/2022,69,串行接口 概述9/24/202269,串行接口,概述(2)串口通信概览,9/24/2022,70,串行接口 概述9/24/202270,串行接口,概述(2)串口通信概览,9/24/2022,71,串行接口 概述9/24/202271,串行接口,2控制寄存器,9/24/2022,72,串行接口 2控制寄存器9/24/202272,串行接口,2控制寄存器()0,1:方式选择(由软件确定工作方式)()2(多机通信控制)(由软件置位及复位,及(接收中断控制)由硬件置位,软件复位)(),发送中断标志(发送完后,由硬件置位,由软件复位)()允许接收控制软件控制:允许:禁止()8,要发送的8,是在方式,用,由软件写入 方式:停止位 方式()8,接收到的8,硬件自动写入 8 方式,9/24/2022,73,串行接口 2控制寄存器9/24/202273,串行接口,6-3 工作方式 见图()方式:位移位寄存器方式,并行扩展引脚用于发送或接收数据为同步移位脉冲输出(fosc/12)发送:,启动,发送完位后,置,产生中断接收:条件下,置,启动接收过程,收完位后,装载信号将数据送入,并置,产生中断。在中断程序里,清,并用,从中取起数据*发送与接收地址一样,不同指令访问不同的。,9/24/2022,74,串行接口 6-3 工作方式 9/24/2022,串行接口,6-3 工作方式(2)方式1:8位异步串行通信方式,一帧由10位构成。由T1、T2的溢出速率(T2CON的RCLK、TCLK定)(对51系列与T2无关)及SMOD定波特率,可变。*发送:MOV SBUF,A将并行数据送往SBUF,并启动发送控制器。1帧10位发送完后,置TI=1,产生中断。*接收:软件器REN=1启动接收过程,开始检测起始位,把1位传送时间分成16位(可以推论Baud不能大于fosc/16),7、8、9 3个状态采样RXD脚,相同的二次认为数据。,9/24/2022,75,串行接口 6-3 工作方式 9/24/2022,串行接口,6-3 工作方式(3)方式2,3:9位异步串行通信方式,一帧由11位构成,只是Baud不同方式2 波特率fosc/32(SMOD=1)或fosc/64(SMOD=0)方式3:波特率T1、T2及SMOD定(P2CON的RCLK,TCLK)*发送,同方式1,只是数据多1位,第9位由SCON中的TB8提供*接收:同方式1,只是停止位不进入移位寄存器,而第9位数据给RB8SM2=0 收数据:用于双机通信,RB8作为奇/偶校验位,9/24/2022,76,串行接口 6-3 工作方式 9/24/2022,串行接口,6-3 工作方式(4)多机通信:由方式2,3承担主机(一个)发送,从机(多个)接收。,9/24/2022,77,串行接口 6-3 工作方式 9/24/2022,串行接口,6-3 工作方式(5)波特率:l 方式0:固定为fosc/12 SMOD=1 fosc/32l 方式2 SMOD=0 fosc/64 l方式1,3 51系列:发送接收一样,为T1溢出速率*2SMOD/32,9/24/2022,78,串行接口 6-3 工作方式 9/24/2022,串行接口,6-3 工作方式(6)串口通信设计编写发送程序和接收程序依据通信要求确定方式(数据位数是否要校验,Baudrate等)收发方采用同样的方式计算T1的初值,收发方应相同,以使波特率一样见图,9/24/2022,79,串行接口 6-3 工作方式 9/24/2022,7 中断系统,7-1概述 51系列(8031、8051、8751)有5个中断源 INT0、TF0、INT1、TF1、串行中断(TI、RI)52系列增加一个(8032、8052)定时器/计数器2(TF2、EXF2)见图,9/24/2022,80,7 中断系统7-1概述9/24/202280,7 中断系统,7-2 中断源(1)INT0、INT1 IE0(IE1)由硬件触发(检测到下降沿时),CPU响应中断后自动清除IE0(IE1)CPU在每个机器周期采样引脚,故下降沿时高低电平至少各维待一个机器周期。(2)TF0、TF1在定时器,计数器溢出时硬件触发CPU响应中断后会自动清零(3)串行通信中断TI、RI在发送(接收)一帧信息后,由硬件自动置TI(RI),但必须用软件清除TI(RI),9/24/2022,81,7 中断系统7-2 中断源9/24/202281,7 中断系统,7-3 中断控制(1)中断控制寄存器,9/24/2022,82,7 中断系统7-3 中断控制 9/24/202282,7 中断系统,7-3 中断控制(2)中断优先级权的区别l CPU同时收到几个中断请求时,首先响应优先级高的中断l正在进行的中断过程不可被新的同级或低优先级的中断请求所中断l正在进行的低优先级的中断过程可被高优先级的中断请求所中断,实现二级嵌套。后两条由用户不可访问的两个优先级状态触发器实现注意,只要是同一优先级,查询顺序优先的中断不能中断查询顺序优先权低的中断过程,只在同时中断时才起作用。,9/24/2022,83,7 中断系统7-3 中断控制 9/24/202283,7 中断系统,7-4 中断响应()CPU没有处理同级或高优先级的中断()必须执行完一条指令()若执行的RETI或访问IE、IP,则必须再执行一条其它指令。CPU在机器周期的S1响应中断CPU响应中断后,由硬件完成下面功能 根据优先级,将相应的优先级状态触发器置1 保留断点(PC)清中断标志(IE0、IE1、TF0、TF1)(RI、TI由软件清除,在中断服务程序中实现)。中断入口地址入PC,进入中断服务程序。中断服务程序最后指令为RETI,CPU执行时:l 将优先级状态触发器清0l 从stack中恢复PC,从而返回断点处若要保留其它信息,则需在中断服务程序开始保留,RETI前恢复,9/24/2022,84,7 中断系统7-4 中断响应9/24/202284,7 中断系统,7-5 中断请求的撤除目的是为了避免一次中断多次响应()IE0、IE1、TF0、TF1软件自动清除()TF2、EXF2、RI、TI必须在中断服务程序中清除,电平触发时,时间不能太长,应想法在执行中断服务程序时将电平恢复为高。,9/24/2022,85,7 中断系统7-5 中断请求的撤除9/24/202285,CPU时序图,返回,9/24/2022,86,CPU时序图返回9/24/202286,串口结构,返回,9/24/2022,87,串口结构返回9/24/202287,串口收发流程,返回,9/24/2022,88,串口收发流程返回9/24/202288,中断系统,返回,9/24/2022,89,中断系统返回9/24/202289,