资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,5,章,MCS-51,单片机,典型功能部件结构及应用,5.1,中断系统,5.2 MCS-51,单片机定时器,/,计数器,5.3,串行口,第5章 MCS-51单片机,1,5.1,中断系统,5.1.1,中断的概念,1.,中断及中断源,中断是指在,CPU,正在执行某一段程序的过程中,如果外界或内部发生了紧急事件,要求,CPU,暂停正在运行的程序转而去处理这个紧急事件,待处理完后再回到原来被停止执行程序的间断点,继续执行原来被打断了的程序的过程。,实现这种功能的机构称为中断系统,产生中断的请求源叫中断源。,2.,中断嵌套及优先级,当,CPU,正在处理一个优先级低的中断请求的时候,如果发生另一个优先级比它高的中断请求,,CPU,暂停正在处理的中断源的处理程序,转而处理优先级高的中断请求,待处理完之后,再回到原来正在处理的低级中断程序,这种,高级中断源能中断低级中断源的中断处理称为中断嵌套。,5.1 中断系统,2,5.1.2 MCS-51,中断系统结构及中断控制,1.,中断源和中断请求标志,(,1,)中断源,MSC-51,系列单片机的,5,个中断源,包括,2,个外部中断源和,3,个内部中断源。,2,个外部中断源是外部中断,0,和外部中断,1 ; 3,个内部中断源是定时器,/,计数器,0,溢出中断、定时器,/,计数器,1,溢出中断、串行口的发送和接收中断(,TI,和,RI,)。,(,2,),TCON,寄存器,TCON,是定时器,/,计数器,0,和,1,(,T0,、,T1,)的控制寄存器,,同时也用来锁存,T0,、,T1,的溢出中断请求标志和外部中断请求标志。,(,3,),SCON,寄存器,SCON,为串行口控制寄存器,其中的低两位用作串行口中,断请求标志。,TI,(,SCON.1,),:串行口发送中断请求标志。,RI,(,SCON.0,),:串行口接收中断请求标志。,5.1.2 MCS-51中断系统结构及中断控制,3,TCON,寄存器:,IE1,(,TCON.3,):外部中断请求标志位。,IT1,(,TCON.2,):外部中断触发方式控制位。由软件来置,1,或清,0,IT1=0,时,外部中断,1,为电平触发方式,,IT1=1,时,外部中断,1,为边沿触发方式(下降沿有效),IT0,(,TCON.0,):外部中断,0,()触发方式控制位,由软件置位或复位。,IT0=1,,外部中断,0,为边沿触发方式(下降沿有效);,IT0=0,,外部中断,0,为电平触发方式。,TF0,(,TCON.5,):定时器,/,计数器,0,(,T0,)的溢出中断请求标志。当,T0,计数产生溢出时,由硬件将,TF0,置,1,TF1,(,TCON.7,):定时器,/,计数器,1,(,T1,)的溢出中断请求标志,IE0,(,TCON.1,):外部中断请求标志位。当引脚(,P3.2,)上出现中断请求信号时,由硬件置位,IE0,,向,CPU,申请中断。,TCON寄存器:,4,2.,中断允许控制,在,MCS-51,单片机中断系统中,中断的允许或禁止是由,片内的中断允许寄存器,IE,控制的。其引脚定义如下:,EA,(,IE.7,),:,CPU,中断允许标志。,EA=0,时,表示,CPU,屏蔽所有中断;,EA=1,,表示,CPU,开放中断,但每个中断源的中断请求是允许还是被禁止,还需由各自的允许位来确定。,ES,(,IE.4,),:串行口中断允许位。,ES=0,,禁止串行口中断;,ES=1,时,允许串行口中断。,ET1,(,IE.3,),:定时器,/,计数器,T1,溢出中断允许位。,ET1=1,,允许,T1,中断;,ET1=0,,禁止,T1,中断。,EX1,(,IE.2,),:外部中断,1,中断允许位。,EX1=1,,允许外部中断,1,中断;,EX1=0,,禁止外部中断,1,中断。,ET0,(,IE.1,),:定时器,/,计数器,T0,溢出中断允许位,其功能同,ET1,EX0,(,IE.0,),:外部中断,0,中断允许位,功能同,EX1,。,中断允许寄存器,IE,中各位的状态,可根据要求用软件置位或清零,从而实现对于该中断源允许中断或禁止中断。当,CPU,复位时,,IE,被清零。,2. 中断允许控制,5,3.,中断优先级控制,MCS-51,系列单片机的中断优先级是由中断优先级寄存器,IP,控制的。,MSC-51,单片机中的中断系统,应遵循以下基本准则:,(1),低优先级中断可被高优先级中断请求所中断,高优先级中断不能被低优先级中断请求所中断。,(2),同级的中断请求不能打断已经执行的同级中断。,(3),中断源自然优先级顺序,中断源自然优先级,由高到低,:,外部中断,0,定时器,/,计数器,0,外部中断,1,定时器,/,计数器,1,串行口,3. 中断优先级控制,6,5.1.3 MCS-51,中断响应过程,MCS-51,系列单片机的中断响应过程可分为中断响应、中断处理和中断返回三个阶段。,1.,中断响应,CPU,响应中断的条件主要有以下几点:,(,1,)有中断源发出中断请求;,(,2,)中断总允许为,EA=1,,即,CPU,开中断;,(,3,)请求中断的中断源的中断允许位为,1,5.1.3 MCS-51中断响应过程,7,2.,中断处理,CPU,从执行中断处理程序第一条指令开始到返回指令,RETI,为止,这个过程称为中断处理或中断服务。中断处理一般包括保护现场、处理中断源的请求以及恢复现场三部分内容。,3.,中断返回,中断返回是指执行完中断处理程序的最后指令,RETI,之后,程序返回到断点,继续执行原来的程序。,8,5.1.4,中断响应后中断请求的撤除,中断源提出中断申请,在,CPU,响应此中断请求后,该中断源的中断请求在中断返回之前应当撤除,以免引起重复中断,被再次响应。,5.1.5,中断系统应用,例:,单片机读,P1.0,的状态,把这个状态送到,P1.7,的指示灯去,当,P1.0,为高电平,指示灯亮;当,P1.0,为低电平时,指示灯不亮。要求用中断控制这一输入,/,输出过程,每请求中断一次,完成一个读写过程。,9,#include,sbit P1_0=P10;,sbit P1_7=P17;,void main(),IE=0x81;,/* cpu,开中断和外部中断,0,允许*,/,TCON=0x01;,/* INT0,设置为负边沿触发*,/,while (1);,void ex_int0(void)interrupt 0,if (P1_0=1),P1_7=1;,else,P1_7=0;,#include,10,5.2 MCS-51,单片机定时器,/,计数器,MCS-51,单片机内部有两个,16,位定时器,/,计数器,简称定时器,0,(,T0,)和定时器,1,(,T1,)。它们均可用作定时器或事件计数器,为单片机系统提供计数和定时功能,还可作为串行接口的波特率发生器,5.2.1,定时器,/,计数器概述,定时器,/,计数器实际上是加,1,计数器,当它对外部事件进行计数时,由于频率不固定,此时称之为,计数器,;,当它对内部固定频率的机器周期进行计数时,称之为,定时器,。,它们的工作状态及工作方式由两个特殊功能寄存器,TMOD,和,TCON,的各位来决定。工作状态有定时和计数两种,由,TMOD,的第,2,位(,T0,)或第,6,位(,T1,)决定。工作模式共有,0,3,四种,也是由,TMOD,其中的两位(,1,个定时器)来决定。,TMOD,和,TCON,的内容由软件写入。,5.2 MCS-51单片机定时器/计数器,11,定时器,/,计数器内部结构框图,定时器,/,计数器的基本结构:,TH1,、,TL1,是,T1,的计数器,,TH0,、,TL0,是,T0,的计数器。,TH1,和,TL1,、,TH0,和,TL0,分别构成两个,16,位加法计数器 。,定时器/计数器内部结构框图 定时器/计数器的基本结构:,12,5.2.2,定时器,/,计数器的控制,定时器,/,计数器有,4,种工作模式,由,TMOD,设置并由,TCON,控制。,1.,工作方式控制寄存器,TMOD,特殊功能寄存器,TMOD,的地址为,89H,,它不能位寻址,在设置时一次写入。高,4,位用于定时器,T1,,低,4,位用于定时器,T0,M1M0,工作模式控制位,M1M0,对应,4,种不同的二进制组合,分别对应,4,种工作模式。,C/T :,定时器方式和计数器方式选择控制位,为,1,:定时,/,计数器工作在计数器方式。,为,0,:定时,/,计数器工作在定时器方式。,GATE,定时器,/,计数器运行控制位,(,门控位,),2.,定时器控制寄存器,TCON,定时器控制寄存器,TCON,除可字节寻址外,还可以位寻址。,TCON,的字节地址为,88H,,位地址为,88H,8FH,。,5.2.2 定时器/计数器的控制,13,5.2.3,定时器,/,计数器的工作模式,MCS-51,系列单片机的定时器,/,计数器,T0,和,T1,可由软件对特殊功能寄存器,TMOD,中控制位,C/,进行设置,以选择定时功能或计数功能。对,M1,和,M0,位的设置对应于四种工作模式,即模式,0,、模式,1,、模式,2,、模式,3,。,1.,工作模式,0,模式,0,是选择定时器,/,计数器(,T0,或,T1,)的高,8,位和低,5,位组成的一个,13,位定时器,/,计数器。其逻辑框图如图,5-4,所示。,定时器,/,计数器,T0,工作模式,0,逻辑结构框图,5.2.3 定时器/计数器的工作模式 定时器/计数器T0工,14,2.,工作模式,1,该模式对应的是一个,16,位的定时器,/,计数器,其结构与操作几乎与模式,0,完全相同,惟一的差别是:在模式,1,中,寄存器,TH0,和,TL0,是以全部,16,位参与操作。用于定时工作方式时,定时时间为,t=(2,16,-T0,初值,),振荡周期,12,用于计数工作方式时,计数最大长度为,2,16,65535,个外部脉冲。,定时器,/,计数器,T0,工作模式,1,逻辑结构框图,2. 工作模式1定时器/计数器T0工作模式1逻辑结构,15,3.,工作模式,2,模式,2,把,TL0,(或,TL1,)设置成一个可以自动重装载的,8,位定时器,/,计数器。,TL0,计数溢出时,不仅使溢出中断标志位,TF0,置,1,,而且还自动把,TH0,中的内容重新装载到,TL0,中。,TL0,用作,8,位计数器,,TH0,用以保存初值。,用于定时工作方式时,其定时时间(,TF0,溢出周期)为,t=(2,8,-TH0,初值,),振荡周期,12,用于计数工作方式时,,最大计数长度为,2,8,=256,个外部脉冲。,定时器,/,计数器,T0,工作模式,2,逻辑结构框图,3. 工作模式2 定时器/计数器T0工作模,16,4.,工作模式,3,工作模式,3,对,T0,和,T1,大不相同。若将,T0,设置为模式,3,,,TL0,和,TH0,被分成为两个相互独立的,8,位计数器。,定时器,/,计数器,T0,工作模式,3,逻辑结构框图,5.,波特率发生器,定时器,T0,和,T1,可同时工作在不同的工作方式。在定时器,T0,工作在模式,3,时,尽管,TR1,和,TF1,被,T0,占用,但,T1,仍可通过,M0M1,设置其工作模式为,0,2,。,此时,,T1,常用作串口的波特率发生器。,4. 工作模式3定时器/计数器T0工作模式3逻辑结构框图 5,17,5.2.4,定时器,/,计数器的应用举例,设单片机晶振为,6MHz,,,P1.0,连接一个发光二极管,利用定时器使发光二极管每,1s,其状态改变一次。,由于定时器最长定时时间是有限的,因此,为实现,1s,的延时,可以设置定时器,T0,定时时间为,100ms,,通过程序设置一个软件计数器,对定时器溢出次数(,10,次)计数。,计数初值的算法:,65536-100000/2 = 15536=(3CB0H),5.2.4 定时器/计数器的应用举例,18,C51,程序如下:,#include ,#define uchar unsigned char,sbit led = P10;,void Init (void),TMOD = 0x01;,/,设置,T0,为方式,1,TH0 =0-50000 / 256;,/,对于,16,位计数器,0-50000=15536,免于计算直接装入初值,TL0 =0-50000 % 256;,/,装入初值,(15536 mod256),TR0 = 1;,led = 1;,19,void main(void),uchar i = 0;,Init ( );,while(1),TH0 =0-50000 / 256;/,重新装入初值,TL0 =0-50000 % 256;,while(!TF0) ;/,等待,T0,溢出,TF0 = 0;/,清除溢出标志位,i +;/,软件计数加,1,if(i = 10),led = led;/ P1.0,取反输出,i = 0;/,软件计数器清,0,void main(void),20,5.3,串行口,CPU,与外部设备的基本通信方式有两种:, 并行通信,数据的各位同时进行传送。其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。, 串行通信,数据一位一位地按顺序进行传送。其特点是只需一对传输线就可实现通信,当传输的数据较多、,距离较远时,它可以显著减少传输线,降低通信成本,但是串行传送的速度慢。,5.3.1,串行通信的基本概念,串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。,1.,异步通信和同步通信,串行通信有两种基本通信方式:异步通信和同步通信。,(,1,)异步通信,在异步通信中,数据通常以字符(或字节)为单位组成数,据帧传送。,5.3 串行口,21,异步通信的字符帧格式,异步通信的字符帧格式 ,22,(,2,)同步通信,在同步通信中,每个数据块传送开始时,采用一个或两个,同步字符作为起始标志 ,,数据在同步字符之后,个,数不受限制,由所需传送,的数据块长度确定。,同步传送的数据格式,(2)同步通信同步传送的数据格式 ,23,2.,串行通信的制式,在串行通信中,数据是在由通信线连接的两个工作站之间传送的。按照数据传送方向,串行通信可分为单工、半双工和全双工三种方式,(,1,)单工制式,只允许数据向一个方向传送,即一方只能发送,另一方只能接收。,(,2,)半双工制式,允许数据双向传送,但由于只有一根传输线,在同一时刻只能一方发送,另一方接收。,(,3,)全双工制式,允许数据同时双向传送,由于有两根传输线,在,A,站,将数据发送到,B,站的同时,也允许,B,站将数据发送到,A,站。,2. 串行通信的制式,24,3.,波特率和发送,/,接收时钟,(,1,)波特率,串行通信的数据是按位进行传送的,每秒钟传送的二进制数码的位数称为波特率(也称比特数),单位是,bps,(,bit per second,),即位,/,秒。,(,2,)发送,/,接收时钟,二进制数据序列在串行传送过程中以数字信号波形的形式出现。无论发送或是接收,都必须有时钟信号对传送的数据进行定位。,在发送数据时,发送器在发送时钟的下降沿将移位寄存器中的数据串行移位输出;在接收数据时,接收器在接收时钟的上升沿对数据位采样。,3. 波特率和发送/接收时钟,25,4.,奇偶校验,当串行通信用于远距离传送时,容易受到噪声干扰。为保证通信质量,需要对传送的数据进行校验。对于异步通信,常用的校验方法是奇偶校验法。,4. 奇偶校验,26,5.3.2 MCS-51,单片机串行口,1.,串行口结构,串行口内部有两个物理上相互独立的数据缓冲器,SBUF,,一个用于发送数据,另一个用于接收数据。但发送缓冲器只能写入数据,不能读出数据;而接收缓冲器只能读出数据,不能写入数据,所以两个缓冲器共用一个地址(,99H,)。,串行口结构框图,串行口结构框图 ,27,发送数据时,执行一条将数据写入,SBUF,的传送指令(例如,MOV SBUF,A,),即可将要发送的数据按事先设置的方式和波特率从引脚,TXD,串行输出。一个数据发送完毕后,串行口产生中断标志位,向,CPU,申请中断,请求发送下一个数据。,接收数据时,当检测到,RXD,引脚上出现一帧数据的起始位后,便一位一位地将接下来的数据接收保存到,SBUF,中,然后产生中断标志位,向,CPU,申请中断,请求,CPU,接收这一数据,,CPU,响应中断后,执行一条读,SBUF,指令,(例如,MOV A,SBUF,)就可将接收到的数据送入某个寄存器或存储单元。为避免前后两帧数据重叠,接收器是双缓冲的。,发送数据时,执行一条将数据写入SBUF 的传送指令(,28,2.,串行口控制,(,1,)串行口控制寄存器,SCON,SCON,是,MCS-51,的一个,SFR,,串行数据通信的方式选择、接收,和发送控制以及串行口的状态标志都由专用寄存器,SCON,控,制和指示。,SCON,用于控制串行口的工作方式,同时还包含,要发送或接收到的第,9,位数据位以及串行口中断标志位。该,寄存器的字节地址为,98H,。,(,2,)电源控制寄存器,PCON,PCON,中只有最高位,SMOD,与串行口工作有关,该位用于,控制串行口工作于方式,1,、,2,、,3,时的波特率。当,SMOD=1,时,,波特率加倍。,PCON,的字节地址为,87H,,没有位寻址功能。单,片机复位时,,SMOD=0,。,2. 串行口控制,29,3.,串行口的工作方式,方式,0,主要用于扩展并行输入,/,输出口,方式,1,、方式,2,和方式,3,主要用于串行通信。,(,1,)方式,0,该方式为同步移位寄存器输入,/,输出方式,常用于扩展并行,I/O,口。,(,2,)方式,1,方式,1,为波特率可变的,10,位异步通信方式,由,TXD,端发送数据,,RXD,端接收数据。收发一帧数据的格式为,1,位起始位、,8,位数据位、一位停止位,共,10,位 。,(,3,)方式,2,和方式,3,这两种方式都是,11,位异步通信,操作方式完全一样,只有波特率不同,适用于多机通信。,3. 串行口的工作方式,30,4.,波特率设置,(,1,)方式,0,的波特率,在方式,0,下,串行口的波特率是固定的,即,波特率,=fosc /12,(,2,)方式,2,的波特率,在方式,2,下,串行口的波特率可由,PCON,中的,SMOD,位控制:若使,SMOD=0,,则所选波特率为,fosc/64,;若使,SMOD=1,,则波特率为,fosc/32,。,(,3,)方式,1,和方式,3,的波特率,在这两种方式下,串行口波特率由定时器,T1,的溢出率和,SMOD,值同时决定。相应公式为:,波特率,=2,SMOD,T1,溢出率,/32,31,5.3.3,串行口应用,1.,串行口方式,0,的应用,串行口方式,0,为同步操作。,外接串入,并出或并入,串出器件,可实现,I/O,的扩展。,I/O,口扩展有两种不同用途:一是利用串行口扩展并行输出口,此时需外接串行输入,/,并行输出的同步移位寄存器,如,74LS164,或,CD4094,;,另一种是利用串行口扩展并行输入口,此时需外接并行输入,/,串行输出的同步移位寄存器,如,74LS165/74HC165,或,CD4014,。,5.3.3 串行口应用 ,32,2.,串行口在其他方式下的应用,MCS-51,单片机串行口工作在方式,1,、,2,、,3,时,都用于异步通信,它们之间的主要差别是字符帧格式和波特率不同。此时,单片机发送或接收数据可以采用查询方式或中断方式。,3.,双机通信,双机通信也称为点对点的异步串行通信。当两个,MCS-51,系列单片机应用系统相距很近时,可将它们的串行口直接相连来实现双机通信,双机通信中通信双方处于平等地位,不需要相互之间识别地址,因此串行口工作方式,1,、,2,、,3,都可以实现双机之间的全双工异步串行通信。如果要保持通信的可靠性,还需要在收发数据前规定通信协议,包括对通信双方发送和接收信息的格式、差错校验与处理、波特率设置等事项的明确约定。,2. 串行口在其他方式下的应用,33,5.3.4,常用串行通信总线标准及接口电路,常用的标准异步串行通信接口有,RS-232C,、,RS-422/485,、,USB,通用接口等几类。,1. RS-232C,总线标准及接口电路,(,1,),RS-232C,总线标准,RS-232C,适用于短距离或带调制解调器的通信场合,设备之间的通信距离不大于,15m,时,可以用,RS-232C,电缆直接连接;对于距离大于,15m,以上的长距离通信,需要采用调制解调器才能实现。,RS-232C,传输速率最大为,20Kbps,。,RS-232C,标准总线为,25,条信号线,采用一个,25,脚的连接器,一般使用标准的,D,型,25,芯插头座(,DB-25,),。,RS-232C,采用负逻辑,即逻辑,1,用,5V,15V,表示,逻辑,0,用,5V,15V,表示。因此,,RS-232C,不能和,TTL,电平直接相连。,5.3.4 常用串行通信总线标准及接口电路,34,(,2,),RS-232C,接口电路,MAX232,MAX232,是,MAXIM,公司生产的包含两路接收器和驱动器的专用集成电路,用于完成,RS-232C,电平与,TTL,电平转换。,MAX232,内部有一个电源电压变换器,可以把输入的,5V,电压变换成,RS-232C,输出电平所需的,10V,电压。,2. RS-422/485,总线标准及接口电路,(,1,),RS-422/485,总线标准,RS,422,采用差分接收、差分发送工作方式,不需要数字地线。它使用双绞线传输信号,根据两条传输线之间的电位差值来决定逻辑状态。,RS,422,接口电路采用高输入阻抗接收器和比,RS-232C,驱动能力更强的发送驱动器,可以在相同的传输线上连接多个接收节点,所以,RS,422,支持点对多的双向通信。,35,RS-485,是,RS,422,的变型。它是多发送器的电路标准,允许双绞线上一个发送器驱动,32,个负载设备,负载设备可以是被动发送器、接收器或收发器。,RS,422/485,最大传输距离为,1200m,,最大传输速率为,10Mbps,。,(,2,),RS-485,接口电路,MAX485,MAX485,是用于,RS,422/485,通信的差分平衡收发器,由,MAXIM,公司生产。芯片内部包含一个驱动器和一个接收器,适用于半双工通信。其主要特性如下:,1,)传输线上可连接,32,个收发器;,2,)具有驱动过载保护;,3,)最大传输速率为,2.5Mbps,;,4,)共模输入电压范围为,7V,12V,;,5,)工作电流范围为:,120A,500A,;,6,)供电电源:,5V,。,RS-485是RS422的变型。它是多发送器的电,36,本章小结:,练习及思考题:,实训项目五:,予习:,谢谢大家!,本章小结:,37,本章结束 谢谢使用,本章结束 谢谢使用,38,
展开阅读全文