MCS-51的片内接口.ppt

上传人:牧羊曲112 文档编号:6512369 上传时间:2023-11-08 格式:PPT 页数:54 大小:779KB
返回 下载 相关 举报
MCS-51的片内接口.ppt_第1页
第1页 / 共54页
MCS-51的片内接口.ppt_第2页
第2页 / 共54页
MCS-51的片内接口.ppt_第3页
第3页 / 共54页
MCS-51的片内接口.ppt_第4页
第4页 / 共54页
MCS-51的片内接口.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《MCS-51的片内接口.ppt》由会员分享,可在线阅读,更多相关《MCS-51的片内接口.ppt(54页珍藏版)》请在三一办公上搜索。

1、第四章 MCS-51的片内接口,内容提要:,4-1 MCS-51中断系统,4-2 定时/计数器,4-4 MCS-51片内串行接口,4-3 定时/计数器的应用,4-1 MCS-51中断系统,一、概述,与上对比,单片机中也有同样的问题。CPU正 在执行原程序,突然,被意外事情打断,转去执行 新程序。CPU执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫。,什么叫中断?举例:某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。,对突发事故,做出紧急处理。根据现场随时变化的各种参数、信息,做出实时监控。CPU与外部设备并行工作,以中断方式相联系,提高工作效率。

2、解决快速CPU与慢速外设之间的矛盾。在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。,中断的作用:,对于MCS-51单片机中断系统的组成可以用一句话来讲,叫做:“五源中断,两级管理”,五个中断源:入口地址 外部中断0(/INT0)0003H T0溢出中断 000BH 外部中断1(/INT1)0013H T1溢出中断 001BH 串口中断 0023H,二、中断请求源(“五源中断”),中断源的中断请求,如何通知CPU?,利用中断请求标志位来通知!,以上6个中断请求标志位分别分布在TCON、SCON两个寄存器中。,TCON,SCON,在中断源与CPU之间有二级中断允许控

3、制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。,三、中断控制(两级管理)1、中断屏蔽(第一级管理),IE,若为“1”,开关接通,允许例如 SETB EA若为“0”,开关断开,不允许例如 CLR IE.7,2、中断优先级(第二级管理),为什么要有中断优先级?,P S 串口的中断优先级别PT1 定时/计数器T1的中断优先级别PX1 外部中断1 的中断优先级别PT0 定时/计数器T0的中断优先级别PX0 外部中断0 的中断优先级别,该位是“1”时,为高级优先级该位是“0”时,为低级优先级,同一级中的5个中断源的优先顺序是:,中断优先原则:(概括为四句话)1、低级不打断

4、高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。,事件1,事件2,子程序2,子程序1,中断嵌套的概念:,主程序,中断,中断,四、MCS-51中断的响应过程,响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,1)硬件清零相应中断请求标志(TI、RI除外)2)将当前PC内容压入堆栈保护断点;3)将中断服务子程序入口地址送PC转移。,返回过程:(RETI执行后)(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的两个字节内容送PC恢复断点。(3)CPU接着中断处继续执行原程序。,注意:1)保护断点与保护现场以及恢复断点

5、与恢复现场的区别。2)外部中断响应时间在3 8个机器周期之间。利用外部中断实现单步操作:,+5v,在主程序中:CLR IT0SETB EASETB PX0SETB EX0 在中断服务子程序中:JNB P3.2,$JB P3.2,$RETI,小结:1、MCS-51单片机中断系统有几个中断源?分别是什么?事先约定的优先顺序是怎样的?2、如何进行中断允许控制?如何进行中断优先级控制?3、中断优先的规则是什么?,4-2 定时/计数器,一、定时/计数器的结构,51子系列单片机内有两个十六位增一 定时/计数器,TH0,计数值高八位,TL0,计数值低八位,TH1,计数值高八位,TL1,计数值低八位,TMOD

6、,TCON,工作方式,定时/计数控制,1、工作方式控制寄存器 TMOD,2、定时/计数器控制寄存器TCON,TCON,能否启动定时/计数器工作与GATE有关,分两种情况:GATE=0 时,若TRi=1,开启Ti计数工作;(i=0或1)若TRi=0,停止Ti计数。GATE=1 时,若TRi=1 且/INTi=1时开启Ti计数;若TRi=1 且/INTi=0时不能开启Ti计数。若TRi=0,停止Ti计数。,二、定时/计数器的四种工作模式,M1 M0 模式 说明 0 0 0 13位定时/计数器 高八位TH(7 0)+低五位TL(4 0)0 1 1 16位定时/计数器 TH(7 0)+TL(7 0)1

7、 0 2 8位计数初值自动重装 TL(7 0)TH(7 0)1 1 3 T0运行,而T1停止工作,8位定时/计数。,1、模式0计数寄存器TLi 低5位+THi8位(T1、T0的等效逻辑结构),TLi(5位),THi(8位),TFi,中断,04 07,C/T=0 定时;C/T=1 对外计数。定时:fosc/12=1/(12/fosc)=1/T,波形等间隔,次数已定,时间确定即对机器周期进行计数。,左图定时时间为 N*T,N个方波,计数:脉冲不等间隔。,每个下降沿计数一次 确认一次负跳变需两个机器周期,所以,计数频率最高为fosc/24。,2、模式1与模式0相似。与模式0的区别:计数位数不同。计数

8、 寄 存 器:THi(高8位)+TLi(低8位),3、模式2与模式0、1的区别:1)计数位数不同;2)初值自动重装。,4、模式3T0定时/计数,而T1停止计数,但可作波特率发生器。T0分成两独立定时/计数器TL0和TH0。TL0使用C/T、GATE、TR0、/INT0、TF0定时/计数,TH0使用TR1、TF1 因此,只能用于定时,(a)TL0作8位定时/计数器,(b)TH0作8位定时器,模式3时,T1可定时为模式0、1、2的定时/计数,但不可中断,所以一般只作串口波特率发生器用。,(a)T0模式3时T1模式0,(b)T0模式3时T1模式1,(c)T0模式3时T1模式2,编程前确定参数:(1)

9、定时/计数器 T0、T1选择其一,(2)工 作 方 式 C/T及GATA,(3)计 数 初 值 加1计数、16位。,计数:X=MN;M=213=8192(模式0)M=216=65536(模式1)M=28=256(模式2、模式3)定时:X=MN=M t/T(t为所要求的 定时时间,T为机器周期),(4)工 作 模 式 M1、M0,四、定时/计数器的应用,编制初始化程序:1)写TMOD;2)确定IE、IP;3)写计数初值;4)启动计数(TRi),例1、设计一个能产生t=1ms的周期信号发生器,试编程。解:选T0;C/T=0,GATE=0,N=t/T=t/12(1/fosc)=500 所以,X=M

10、500,模式0、模式1均可,取模式0,M=213=8192X=8192500=7692=1E0CH,=0001 1110 000 0 1100B,,1E0CH,TL0,TH0,F0H,0CH,先将低五位放入TL0中,再将剩余的数从右向左数出八位放入TH0中。,LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN:MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H,SETB TR0 SETB ET0 SETB EA SJMP,ORG 0000H,INSE1:MOV TL0,#0CH MOV TH0,#0F

11、0H CPL P10 RETI,小结:1、MCS-51单片机内有几个定时计数器?如何计数?2、T0、T1有几种工作方式?3、编程应用前要事先确定的参数有几个?,布置作业:P141 9,4-3 定时/计数器的应用,TCON,复习:,例2、设fosc=6MHz,利用单片机内定时/计数器及P10口线输出1000个脉冲,脉冲周期为2mas,试编程。,T=121/fosc=2us 选取T0定时;T1计数。,设T0采用中断方式产生周期为2ms方波,T1对该方波计数,当输出至第1000个脉冲时,使TF1置1。在主程序中用查询方法,检测到TF1变1时,关掉T0,停止输出方波。,T0、T1参数的确定:T0模式0

12、、定时:脉宽为脉冲周期的一半所以,X=2131ms/2us=0001 1110 0000 1100BTH0=0F0H;TL0=0CH T1模式1、计数:N=1000 则 X=655361000=64536=0FC18H(若选模式0也可以,此时X=7192=1C18H),程序:ORG 0000H LJMP MAIN ORG 000BH LJMP TOS ORG 1000H,MAIN:MOV TMOD,#50H;T0定时,模式0;T1计数,模式1 MOV TL0,#0CH MOV TH0,#0F0H MOV TL1,#18H MOV TH1,#0FCH,SETB TR1 SETB TR0 SETB

13、 ET0 SETB EA WAIT:JNB TF1,WAIT;查询1000个脉冲计够没有到?CLR EA CLR ET0 ANL TCON,#0FH;停T0、T1 SJMP TOS:MOV TL0,#0CH MOV TH0,#0F0H CPL P10 RETI END,例3、脉冲参数测量GATE功能的使用。脉冲高电平(计数)长度值存于21H、20H中,脉冲低电平长度存于23H、22H中。电路连接如下图所示。,解:复习GATE的用法:GATE=0时,TRi=1,即可启动Ti定时/计数 GATE=1时,TRi=1,且=1,才启动定时/计数。,ORG 0000H LJMP MAIN ORG 2000

14、HMAIN:MOV TMOD,#99H;T0、T1均工作在定时,;模式1,GATE=1 MOV A,#00H;T0、T1赋计数初值00H,;定时最长时间为0000 65536 MOV TL0,A,MOV TH0,A MOV TL1,A MOV TH1,A,TEST0:JB P32,TEST0;检测是否到a点 SETB TR0;到a点,TR0=1,做好取计时值准备。TEST1:JNB P32,TEST1;检测是否到1点 SETB TR1;到1点T0计时;TR1=1,做好T1计时准备。TEST2:JB P32,TEST2;检测是否到2点 CLR TR0;到2点,停止T0计时,T1开始计时。MOV

15、20H,TH0;保存T0计时结果 MOV 21H,TL0,TEST3:JB P33,TEST3;检测是否到3点 CLR TR1;到3点,停止T1计数 MOV 22H,TH1;保存T1计数结果 MOV 23H,TL1 LCALL DISP SJMP,小结:1、定时/计数的四种方式是怎样的?2、如何计算计数初值?如何编程送入计数初值?3、GATE的用法是怎样的?,布置作业:P141 10、11,4-4 MCS-51单片机串行接口,一、串行通信概述1、什么叫串行通信?,在生活中同学们排横队行走 并行;排纵队行走 串行。计算机中在传输信息、数据时也有并行、串行的问题。,接收设备,发送设备,2、同步通信

16、、异步通信,同步发送设备时钟与接收设备时钟严格一致。,异步 发送时钟与接收时钟不一定相等。,3、串行通信的方向,单工,A 发,B 发,半双工,A 发 收,B 收 发,例如:广播电台 收音机,例如:对讲机,全双工,A 发 收,B 收 发,例如:电话机,4、波特率即串行通信速率。b/s、bps 在异步通信中,单位时间内所传送的有效二进制位数波特率。举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为每秒240个字符。求波特率。解:(181)240=2400 b/s=2400波特。,5、串行通信接口,发送:,CPU,发送寄存器SBUF,发送时钟:,接收:,CPU,接收时钟,接收数据寄存

17、器SBUF,二、MCS-51机串行接口单片机内有通用异步接收/发送器 UART。全双工,4种工作方式,波特率可编程设置,可中断。,1、串口的组成 从编程角度讲来看主要由以下寄存器组成。,SBUF 串行发送/接收数据缓冲器 是两个物理单元,共用一个地址(99H),PCON 电源管理寄存器,SCON 串行口控制寄存器,2、串行口的工作方式(1)方式0:同步移位寄存器方式 波特率固定为fosc/12 RXD 接收发送数据 TXD 产生同步移位脉冲 接收/发送完,置位RI/TI,(要求SM2=0),发送,接收,无起始位,无停止位。可用于并口的扩展。,(2)方式1:8位UART 波特率为(2SMODT1

18、的溢出率)/32,可变。一帧信息10位。,发送,接收,送 RB8,发送完置位TI。,当接收到数据后,置位RI是有条件的。即:REN=1,RI=0 且SM2=0或SM2=1但是接收到的停止位为1。此时,数据装载SBUF,RI置1,停止位进入RB8。,(3)方式2、方式3:9位UART 一般用于多机通信。一帧信息11位。,发送,发送完数据置位TI。,接收,接收到有效数据完毕,置位RI的条件:REN=1,RI=0 且SM2=0或接收到第9位数据为1,此时,数据装载SBUF,RI置1,第9位数据(TB8)RB8。,送RB8,方式2波特率:(固定)2SMOD/64 fosc,3、波特率的设置方式0、方式

19、2固定。方式1,方式3可变。波特率=2SMOD/32(T1的溢出率)T1溢出率=单位时间内溢出次数=1/(T1的定时时间)而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。N=28 t/T,t=(28N)T=(28N)12/fosc所以,T1溢出率=1/t=fosc/12(28N),故,波特率=2SMOD/32 fosc/12(256N)。若已知波特率,则可求出T1的计数初值:y=2562SMODfosc/(波特率3212),巩固新课:例、若fosc=6MHz,波特率为2400波特,设SMOD=1,则定时/计数器T1的计数初值为多少?并进行初始

20、化编程。,解:X=2562SMODfosc/(24003212)=242.98243=F3H fosc=11.0592MHz,波特率为2400,设SMOD=0,则 X=F4H。初始化编程:MOV TMOD,#20H MOV PCON,#80H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 MOV SCON,#50H,小结:1、什么叫串行通信?2、UART叫什么?(通用异步接收/发送器)3、单工、半双工、全双工?4、串口工作用到哪些寄存器?(PCON、SCON、SBUF)5、串口有几种工作方式?6、波特率如何设置?(T1的计数初值如何确定),布置作业:P141 7、9、10,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号