中断系统定时器计数器串行口.ppt_第1页
中断系统定时器计数器串行口.ppt_第2页
中断系统定时器计数器串行口.ppt_第3页
中断系统定时器计数器串行口.ppt_第4页
中断系统定时器计数器串行口.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第5章 中断系统、定时器/计数器、串行口,. 单片机的中断系统,5.1.1 中断的概念 所谓中断,是指当计算机正在执行正常程序时,系统中出现了某些急需处理的异常情况和特殊请求。计算机停止正在执行的正常程序,转而去处理异常情况,处理完异常情况后,再回到正常程序的过程。,5.1.2 中断源,中断源就是能向CPU提出申请的部件。 注:MCS-51单片机(51子系列)有五个中断源,其中两个外中断,三个内中断,具有两个中断优先级,可以实现二级中断嵌套。,内部结构如下:,5.1.3 中断的控制, 定时计数器控制寄存器() TCON 为定时计数器的控制器,单元地址为,位地址为,其格式如表-所示。 IT0:外中断0的触发方式选择位,为“0”低电平触发,为“1”下降沿触发,由用户设定。 IE0:外中断0中断申请标志位,当满足触发条件时,IE0为“1”,否则为“0”,由硬件完成。 IT1:外中断1的触发方式选择位,为“0”低电平触发,为“1”下降沿触发,由用户设定。 IE1:外中断1中断申请标志位,当满足触发条件时,IE1为“1”,否则为“0”,由硬件完成。,TR0:为T0的启动位,为“1”时T0开始计数,为“0”时T0停止计数,由用户设定。 TF0:为T0的溢出标志位,当T0计满数后,TF0为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。 TR1:为T1的启动位,为“1”时T1开始计数,为“0”时T1停止计数,由用户设定。 TF1:为T1的溢出标志位,当T1计满数后,TF1为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。, 串行口控制寄存器(),SCON 为串行接口的控制器, 单元地址为, 位地址为 , 其格式如表 -所示。 RI:为串行口的接收标志位,当接收完一帧数据后,由硬件置“1”。 TI:为串行口的发送标志位,当发送完一帧数据后,由硬件置“1”。 注:其余的6位,在串行口中给大家讲解。,注:1、工作在中断方式时: 这5个申请标志位都是在满足条件的情况下,由硬件置“1”。其中IE0、IE1、TF0、TF1,在系统响应中断后,由硬件清“0”;RI、TI是由软件清“0”。是因为这两个标志位共用一个入口地址。 2、工作在查询方式时: 这5个申请标志位都是在满足条件的情况下,由硬件置“1”,查询后由软件清“0”。, 中断允许控制寄存器,由于单片机没有专门的开中断和关 中断指令,个中断源中断的开放和关闭是通过中断 允许寄存器 进行两级控制的。所谓两级控制,是 指有一个中断允许总控制位,配合各中断源的中 断允许控制位共同实现对中断请求的控制。 的单 元地址为,位地址为,其内容 及位地址如表 -所示。,EA:总的中断允许,为“0”时禁止中断,为“1”时允许中断(所有的中断源)。 EX0:外中断0(INT0)中断允许,为“0”时禁止中断,为“1”时允许中断。 ET0:定时/计数器T0中断允许,为“0”时禁止中断,为“1”时允许中断。 EX1:外中断1(INT1)中断允许,为“0”时禁止中断,为“1”时允许中断。 ET1:定时/计数器T1中断允许,为“0”时禁止中断,为“1”时允许中断。 ES:串行口S中断允许,为“0”时禁止中断,为“1”时允许中断。 注:都是由用户设定。, 中断优先级控制寄存器,中断优先级寄存器字节地址为,位地址为,其内容及位地址如表 -所示。,PX0:外中断INT0优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。 PT0:定时/计数器T0优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。 PX1:外中断INT1优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。 PT1:定时/计数器T1优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。 PS:串行口S优先级设置,为“0”时低优先级,为“1”时高优先级,由用户设置。 注:都是有用户设定。,注:高优先级中断源可以中断正在执行的低优先级中断服务程序,同级或低优先级中断源不能中断正在执行的中断服务程序。, 中断的处理过程, 中断响应 某一中断源向 发出中断请求,只有满足下面条件后,才能得到 的响应: 有中断源发出中断请求; 中断总允许位,即 开中断; 申请中断的中断源的中断允许位为,即相应的中断允许标志位为。,满足以上条件,CPU一般会响应中断,但如果有下列情况之一,则中断响应被暂时搁置: 1、CPU正在执行一个同级或高优先级的中断服务程序; 2、当前的机器周期不是正在执行的指令的最后一个机器周期,只有在当前指令执行完后,才能响应中断; 3、当前正在执行的指令时返回指令(RET、RETI)或访问IE、IP指令。, 中断处理 中断响应的主要内容就是由硬件自动执行一条 长调用指令LCALL,其格式为LCALL addr16。这 里的addr16就是相应的中断服务程序入口地址。这些 中断入口地址已由系统设定。例如对于定时器计数 器的中断响应,自动调用的长调用指令为: LCALL 000BH, 中断返回 中断服务程序的最后一条指令必须是中断返回 指令RETI。CPU 执行完这条指令后,把响应中断时 所保护的断点地址从堆栈中弹出,然后装入程序计数 器PC 中,CPU 就从原来被中断处继续执行原来被中 断的程序。,例题:在单片机的P0口外接8路LED发光管,用于流水灯显示,在外中断0(P3.2)引脚外接一独立式按,来控制流水灯的方向(中断方式)。,ORG 0000H LJMP ST ORG 0003H LJMP INT0 ORG 0050H ST: MOV SP, #2FH MOV A, #0FEH SETB IT0 SETB EA SETB EX0 CLR F0 ST1:JB F0, RRR MOV P0, A LCALL DEL RL A SJMP ST1 RRR:MOV P0,A LCALL DEL RR A SJMP ST1,DEL :MOV R7,#00H DEL1:MOV R6,#00H DEL2:NOP NOP NOP NOP DJNZ R6, DEL2 DJNZ R7, DEL1 RET INT0: CPL F0 RETI END,. 定时器计数器,5.2.1 定时器计数器的结构和工作原理 80C51单片机中设置有两个16位的可编程的定时器计数器T0、T1,其结构如图 -所示。通过用户设定,都可以工作在计数或者定时状态。,5.2.2定时器计数器的控制,1、 工作方式寄存器 用于控制 和 的工作方式, 字节地址为, 其各位的定义格式如表- 所示,不可位寻址,低4位控制T0,高4位控制T1。,(1)工作方式选择位、 定时器计数器的工作方式由、的状态确定,其对应关系如表- 所示。,(2)定时器计数器方式选择位 为“0”时,工作在定时状态 为“1”时,工作在计数状态 (3)门控位 为“0”时,无门控 为“1”时,有门控 注:TMOD都是由用户通过软件设置。,、 定时器计数器控制寄存器 控制寄存器 的主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止。 单元地址为,位地址为,其格式如表- 所示。,TR0:为T0的启动位,为“1”时T0开始计数,为“0”时T0停止计数,由用户设定。 TF0:为T0的溢出标志位,当T0计满数后,TF0为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。 TR1:为T1的启动位,为“1”时T1开始计数,为“0”时T1停止计数,由用户设定。 TF1:为T1的溢出标志位,当T1计满数后,TF1为“1”,在中断系统中也称之为中断申请标志位,由硬件完成。,5.2.3 定时器计数器的工作方式,1、方式0(以T0为例) 定时器 方式的结构框图如图 -所示,为13位定时/计数器。,(1)T0工作的状态由C/T控制,为“0”时定时,为“1”时计数。 (2)T0启动由TR0(启动位)、GATR(门控位)、INT0(外引脚P3.2)控制。 GATR=0:TR0=1时,T0启动工作 TR0=0时,T0禁止工作 GATR=1:TR0=1且INT0=1时,T0启动工作 TR0=0或INT0=0时,T0禁止工作 (3)计数时,由外引脚输入计数脉冲 N:为计数值(已知) a:计数初值(未知量) 最大计数:8192个脉冲 定时时,由时钟的12分频作为计数脉冲 t:为定时时间,若fosc=12MHz,tmax=8.192ms,注:1、8051单片机的定时/计数器都是对输入的脉冲进行+1计数。 2、计数时由外引脚输入计数脉冲,再由13位的计数器进行计数。 3、定时时由内部时钟的12分频后,再由13位的计数器进行计数,最后得到时间。 4、由于是+1计数,计满后产生溢出位TF0,所以用户根据需要计数或定时时间的大小,计算出定时/计数器的初值a,再通过软件放入定时/计数器的高8位(TH0)和低5位(TL0)中。 5、由于方式0是13位定时计数器(低8位中的高3位不用),所以在放数时要避开这3位。 6、由于方式0不能自动装入初值,故在溢出后,需通过软件再次装入初值给TL0和TH0。,例5-4 用定时器T1,工作方式0实现定时,并在P1.0引脚上输出周期为10ms的方波,设晶振Fosc 12MHz。 解:(a)确定工作方式对TMOD 赋值,使用T1, 所以低 位未用, 全部设为, 高 位中GATE=0,C/T=0,M1M0=00,所以TMOD=00H。 (b)预置定时或计数的初值 要在P1.0引脚上输出周期为10ms的方波,只要每隔5ms将P1.0取反一次就可以了。因此选用T1在方式下定时时间为5ms,则T1的初值为:t=(8192-a)X12/Fosc, 已知t=5ms, Fosc 12MHz则a=3192=C78H=0000 1100 0111 1000B,因13位计数器中TL1的高位未用,可填写任意值,一般填写,TH1占高位,所以,a的实际填写值应为:a=0110001100011000B6318H,即:TH1=63H,TL1=18H。,中断方式: ORG 0000H LJMP MAIN ORG 001BH LJMP PTT1 ORG 0050H MAIN:MOV SP,#50H MOV TMOD , #00H MOV TL1,#18H MOV TH1,#63H SETB EA SETB ET1 SETB TR1 SJMP $,ORG 0200H PTT: MOV TL1,#18H MOV TH1,#63H CPL P1.0 RETI END 见5-4,查询方式: ORG 0000H LJMP MAIN ORG 0050H MOV TMOD,#00H MOV TL1,#18H MOV TH1,#63H SETB TR1 LOOP: JBC TF1,LOOP0 SJMP LOOP LOOP0:MOV TL1,#18H MOV TH1,#63H CPL P1.0 SJMP LOOP END 见5-4B,注:1、中断方式时,溢出标志位,由系统硬件清“0”; 2、查询方式时,溢出标志位,由用户请“0”; 3、JBC 指令,可自动对判断位请“0”。 4、方式0不能自动装入初值。,2. 工作方式 方式1和方式0的差别仅仅在于计数器的位数不同,方式1为16位的定时器计数器。定时器T0工作于方式1的结构框图如图5-8所示。,注:(1)控制同方式0 (2)计数时,由外引脚输入计数脉冲 N:为计数值(已知) a:计数初值(未知量) 最大计数:65536个脉冲 定时时,由时钟的12分频作为计数脉冲 t:为定时时间,若fosc=12MHz,tmax=65.536ms (3)编程方法同方式0,不能自动装入初值a。, 工作方式 工作方式2为自动重装载的8位定时器计数器,在工作方式2时,16位计数器被拆成两个,TL0用作8位计数器,TH0用作计数初值寄存器。定时器T0 工作于方式 的结构框图如图5-9所示。,注:(1)控制同方式0 (2)TL0为计数单元,TH0为预赋初值单元(不参与计数)。 (3)计数时,由外引脚输入计数脉冲 N:为计数值(已知) a:计数初值(未知量) 最大计数:256个脉冲 定时时,由时钟的12分频作为计数脉冲 t:为定时时间,若fosc=12MHz,tmax=256us (4)编程方式同上,但能自动装入初值a(通过TH0)。,例:利用T0工作方式实现定时,在P1.0口输出一个1KHz的方波信号Fosc=6MHz。 解:(a)确定工作方式对TMOD 赋值,使用T0, 所以高 位未用, 全部设为, 低 位中GATE=0,C/T=0,M1M0=10,所以TMOD=02H。 (b)预置定时或计数的初值 要在P1.0引脚上输出周期为1KHz的方波,则方波的周期为1000ms,只要每隔500us将P1.0取反一次就可以了。因此选用T0在方式2下定时时间为500us,则T0的初值为:t=(256-a)X12/Fosc, 已知t=500us, Fosc 6MHz则a=6D=06H,因TL0作为计数单元,TH0作为预赋初值单元,故高低8位同时赋初值a即:TH0=06H,TL0=06H。,ORG 0000H LJMP MAIN ORG 000BH LJMP TT0 ORG 0030H MAIN:MOV TMOD,#02H MOV TH0,#06 MOV TL0,#06 SETB EA SETB ET0 SETB TR0 SJMP $ TT0: CPL P1.0 RETI END,注:方式2能自动装入初值,故在溢出后,无需通过软件再对计数单元装入初值,而是由硬件系统自动装入初值。, 工作方式 工作方式3是为了增加一个附加的8位定时器计数器而提供的,使80C51具有个定时器计数器。工作方式3只适用于定时器计数器T0,定时器计数器T1处于方式时相当于TR1=0,停止计数。定时器T0工作于方式的结构框图如图5-10所示。,注:(1)T0工作在方式3时,T1只能用于比特率发生器(不能作为一般的定时/计数器使用)。 (2)T0工作于方式3时,将16位的计数单元分成两个独立的计数单元。低8位TL0占用了本身的控制位(C/T、GATE、TR0、INT0、TF0),可作为定时或计数器使;高8位TH0占用了T1的启动位TR1和溢出位TF1,只可作为定时器使用。 (3)计数时,由外引脚输入计数脉冲 N:为计数值(已知) a:计数初值(未知量) 最大计数:256个脉冲 定时时,由时钟的12分频作为计数脉冲 t:为定时时间,若fosc=12MHz,tmax=256us (4)编程方式同方式1,不能自动装入初值。,5.3 串行通信技术,5.3.1 串行通信的基本概念 数据通信的基本方式 图5-14 为并行通信和串行通信的原理。, 异步通信和同步通信 在异步通信中,数据通常是以字符(或字节) 为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线为接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步在异步通信中,数据是一帧一帧(包括一个字符代码或以字节数据)发送的,每一帧的数据格式如图- 所示。,()同步通信 同步通信是指在一个数据块的开头使用同步字符。数据传送时使用同一频率的时钟脉冲来实现发送端与接收端的严格时间同步。这种时钟脉冲称为同步脉冲,数据同步传送的格式如图 -所示。, 波特率 波特率的定义是每秒钟传送二进制数码的位数(亦称数),单位是。波特率是串行通信的重要指标,用于表征数据传送的速率。波特率越高,数据传输速度越快。字符的实际传送速率与波特率不同。字符的实际传送速率是指每秒钟内所传字符帧的帧数,与字符帧格式有关。, 串行通信的制式 在串行通信中,数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为单工()、半双工()和全双工()种制式。图- 为种制式的示意图。,5.3.2 串行通信总线标准及其接口 串行通信接口 异步串行通信接口有以下种,- 接口 ()- 信息格式标准 RS-232C 采用串行格式,该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个信息之间无信息,则写“”,表示空。其格式标准如图5-18所示。,()- 电平转换器 ()- 总线规定 - 标准总线为根,采用标准的 型芯插头座 RS-449、RS-422A、RS-423A标准接口 ()-标准接口 -是年公布的标准接口,在很多方面可以代替- 使用。 ()-、- 标准接口- 文本给出了-中对于通信电缆、驱动器和接收器的要求,-标准接口,5.3.3 串行口的结构与控制 1. 80C51串行口的结构 80C51单片机通过引脚RXD (P3.0串行数据接收端)、TXD (P3.1,串行数据发送端)与外界进行通信。串行接口简化结构如图 -所示。,串行接口的控制寄存器 ()串行控制寄存器 是一个特殊功能寄存器,用以设定串行接口的工作方式、接收发送控制及设置状态标志。字节地址为,可进行位寻址,其格式如表 -所示。,SM0、SM1:串行口工作方式选择 0 0 方式0、8位移位寄存器方式 0 1 方式1、10位异步通信方式 1 0 方式2、11位异步通信方式 1 1 方式3、11位异步通信方式 SM2:多机通信位 方式0时必须为“0”,一般用于方式2、3的接收端。,REN:允许接收标志位,用在接收端,为“0”时禁止接收,为“1”时允许接收。 TB8:发送的第九位数,用在方式2、3中的发送端。 RB8:接收的第九位数,用在方式2、3中的接收端。 TI:为串行口的发送标志位,当发送完一帧数据后,由硬件置“1”。 RI:为串行口的接收标志位,当接收完一帧数据后,由硬件置“1”。 注:TI、RI都是由硬件置“1”,都是由软件清“0” ( 不管是中断方式,还是查询方式)。,5.3.4 串行口的工作方式及波特率计算 串行口工作方式 ()工作方式 工作方式时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD (P3.0)引脚输入或输出,同步移位脉冲由TXD (P3.1)引脚输出。发送和接收均为位数据,低位在先,高位在后。,a、发送: 电路:RXD为输出端 TXD为时钟脉冲输出端 条件:TI=0 启动:将数据写入SBUF(MOV SBUF,A)。 过程:先发D0、D1、最后D7。 停止:发送完D7位后,停止,同时TI=1。 b、接收: 电路: RXD为输入端 TXD为时钟脉冲输出端 条件:RI=0 启动:REN=1 过程:先收D0、D1、最后D7。 停止:接收到D7位后,

温馨提示

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

评论

0/150

提交评论