方式和控制寄存器分解课件

上传人:沈*** 文档编号:241467400 上传时间:2024-06-27 格式:PPT 页数:52 大小:302KB
返回 下载 相关 举报
方式和控制寄存器分解课件_第1页
第1页 / 共52页
方式和控制寄存器分解课件_第2页
第2页 / 共52页
方式和控制寄存器分解课件_第3页
第3页 / 共52页
点击查看更多>>
资源描述
方式和控制寄存器分解第6章MCS-51单片机内部定时器/计数器及串行接口6.1 定时器定时器/计数器的结构及工作原理计数器的结构及工作原理 图6.1定时器/计数器结构框图第6章MCS-51单片机内部定时器/计数器及串行接口加法计数器是计满溢出时才申请中断,所以在给计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值,设最大值为M,计数值为N,初值为X,则X的计算方法如下:计数状态:X=MN定时状态:X=M定时时间/T而T=12晶振频率第6章MCS-51单片机内部定时器/计数器及串行接口6.2 方式和控制寄存器方式和控制寄存器 一、一、定时器定时器/计数器的方式寄存器计数器的方式寄存器TMOD 图6.2TMOD各位定义第6章MCS-51单片机内部定时器/计数器及串行接口1.M1M0工作方式控制位工作方式控制位 表6.1工作方式选择表M1 M0 方式方式说说 明明00013位定时器(TH的8位和TL的低5位)01116位定时器/计数器102自动重装入初值的8位计数器113T0分成两个独立的8位计数器,T1在方式3时停止工作第6章MCS-51单片机内部定时器/计数器及串行接口 2.C/T 定时器方式或计数器方式选择位定时器方式或计数器方式选择位若C/T=1时,为计数器方式;C/T=0时,为定时器方式。3.GATE 定时器定时器/计数器运行门控标志位计数器运行门控标志位当GATE=1时,只有INT0(或INT1)引脚为高电平且TR0(或TR1)置1时,相应的定时器/计数器才被选通工作,这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0,则只要TR0(或TR1)置1,定时器/计数器就被选通,而不管INT0(或INT1)的电平是高还是低。第6章MCS-51单片机内部定时器/计数器及串行接口 二、二、定时器定时器/计数器控制寄存器计数器控制寄存器TCONTF0、TF1分别是定时器/计数器T0、T1的溢出标志位,加法计数器计满溢出时置1,申请中断,在中断响应后自动复0。TF产生的中断申请是否被接受,还需要由中断是否开放来决定。TR1、TR0分别是定时器/计数器T1、T0的运行控制位,通过软件置1后,定时器/计数器才开始工作,在系统复位时被清0。第6章MCS-51单片机内部定时器/计数器及串行接口6.3 工作方式工作方式 一、一、方式方式 0 图图6.3方式0(13位计数器)第6章MCS-51单片机内部定时器/计数器及串行接口二、二、方式方式1 图6.4方式1(16位计数器)第6章MCS-51单片机内部定时器/计数器及串行接口三、方式三、方式 2图6.5方式2(初始常数自动重装载)第6章MCS-51单片机内部定时器/计数器及串行接口 四、四、方式方式 3 图6.6方式3(两个8位独立计数器)第6章MCS-51单片机内部定时器/计数器及串行接口6.4 定时器定时器/计数器应用举例计数器应用举例 一、一、方式方式 0 的应用的应用 例例 1利用定时器输出周期为2ms的方波,设单片机晶振频率为6MHz。选用定时器/计数器T0作定时器,输出为P1.0引脚,2ms的方波可由间隔1ms的高低电平相间而成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。定时1ms的初值:因为机器周期=126MHz=2s所以1ms内T0需要计数N次:N=1ms2s=500第6章MCS-51单片机内部定时器/计数器及串行接口由此可知:使用方式0的13位计数器即可,T0的初值X为X=MN=8192500=7692=1E0CH但是,因为13位计数器中,低8位TL0只使用了5位,其余码均计入高8位TH0的初值,则T0的初值调整为TH0=0F0H,TL0=0CHTMOD初始化:TMOD=00000000B=00H(GATE=0,C/T=0,M1=0,M0=0)TCON初始化:启动TR0=1IE初始化:开放中断EA=1,定时器T0中断允许ET0=1第6章MCS-51单片机内部定时器/计数器及串行接口程序清单如下:ORG0000HAJMPSTART;复位入口ORG000BHAJMPTOINT;T0中断入口ORG0030HSTART:MOVSP,60H;初始化程序MOVTH0,0F0H;T0赋初值MOVTL0,0CHMOVTMOD,00HSETBTR0;启动T0第6章MCS-51单片机内部定时器/计数器及串行接口SETBET0;开T0中断SETBEA;开总允许中断MAIN:AJMPMAIN;主程序TOINT:CPLP1.0MOVTL0,0CHMOVTH0,0F0HRET第6章MCS-51单片机内部定时器/计数器及串行接口 二、二、方式方式 1应用应用方式1与方式0基本相同,只是方式1改用了16位计数器。要求定时周期较长时,13位计数器不够用,可改用16位计数器。例例 2已知某生产线的传送带上不断地有产品单向传送,产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计,红灯灭时才在上次统计结果的基础上继续统计,试用单片机定时器/计数器T1的方式1完成该项产品的计数任务。第6章MCS-51单片机内部定时器/计数器及串行接口图6.7硬件原理图第6章MCS-51单片机内部定时器/计数器及串行接口(1)初始化:TMOD=11010000B=0D0H(GATE=1,C/T=1,M0M1=01)TCON=00H(2)T1在方式1时,溢出产生中断,且计数器回零,故在中断服务程序中,需用R0计数中断次数,以保护累积计数结果。第6章MCS-51单片机内部定时器/计数器及串行接口(3)启动T1计数,开T1中断。程序清单如下:ORG0000HAJMPSTART;复位入口ORG001BHAJMPT1INT;T1中断入口ORG0100HSTART:MOVSP,60H;初始化程序MOVTCON,00HMOVTMOD,0D0HMOVTH1,00H第6章MCS-51单片机内部定时器/计数器及串行接口MOVTL1,00HMOVR0,00H;清中断次数计数单元MOVP3,28H;设置P3.5第二功能SETBTR1;启动T1SETBET1;开T1中断SETBEA;开总中断MAIN:ACALLDISP;主程序,调显示子程序ORG0A00HT1INT:INCR0;中断服务子程序RETIDISP:;显示子程序RET第6章MCS-51单片机内部定时器/计数器及串行接口 三、三、方式方式 2 应用应用方式2是定时器自动重装载的操作方式,在这种方式下,定时器0和1的工作是相同的,它的工作过程与方式0、方式1基本相同,只不过在溢出的同时,将8位二进制初值自动重装载,即在中断服务子程序中,不需要编程送初值,这里不再举例。定时器T1工作在方式2时,可直接用作串行口波特率发生器,第6章MCS-51单片机内部定时器/计数器及串行接口 四、四、方式方式 3 的应用的应用定时器T0工作在方式3时是2个8位定时器/计数器。且TH0借用了定时器T1的溢出中断标志TF1和运行控制位TR1。例例 3假设有一个用户系统中已使用了两个外部中断源,并置定时器T1于方式2,作串行口波特率发生器用,现要求再增加一个外部中断源,并由P1.0口输出一个5Hz的方波(假设晶振频率为6MHz)。第6章MCS-51单片机内部定时器/计数器及串行接口在不增加其它硬件开销时,可把定时器/计数器T0置于工作方式3,利用外部引脚T0端作附加的外部中断输入端,把TL0预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0立即溢出,申请中断,相当于边沿激活的外部中断源。在方式3下,TH0总是作8位定时器用,可以靠它来控制由P1.0输出的5kHz方波。由P1.0输出5kHz的方波,即每隔100s使P1.0的电平发生一次变化。则TH0中的初始值 X=MN=256100/2=206。下面是有关的程序。第6章MCS-51单片机内部定时器/计数器及串行接口MOVTL0,0FFHMOVTH0,206MOVTL1,BAUD;BAUD根据波特率要求设置常数MOVTH1,BAUDMOVTMOD,27H;置T0工作方式3;TL0工作于计数器方式MOVTCON,55H;启动定时器T0、T1,置外部中断0和1;为边沿激活方式MOVIE,9FH;开放全部中断第6章MCS-51单片机内部定时器/计数器及串行接口TL0溢出中断服务程序(由000BH单元转来):TL0INT:MOVTL0,0FFH;外部引脚T0引起中断处理程序RETITH0溢出中断服务程序(由001BH转来):TH0INT:MOVTH0,206CPLP1.0RETI此处串行口中断服务程序、外中断0和外中断1的中断服务程序没有列出。第6章MCS-51单片机内部定时器/计数器及串行接口6.5 MCS-51单片机的串行接口单片机的串行接口 6.5.1 串行通信的基本概念串行通信的基本概念(1)同步方式是将一大批数据分成几个数据块,数据块之间用同步字符予以隔开,而传输的各位二进制码之间都没有间隔。其基本特征是发送与接收时钟始终保持严格同步。(2)异步通信是按帧传送数据,它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地发送和接收的。第6章MCS-51单片机内部定时器/计数器及串行接口6.5.2 与串行口有关的特殊功能寄存器与串行口有关的特殊功能寄存器 1.数据缓冲器数据缓冲器SBUF串行口缓冲器SBUF是可直接寻址的特殊功能寄存器,其内部RAM字节地址是99H。在物理上,它对应着两个独立的寄存器,一个发送寄存器,一个接收寄存器。发送时,就是CPU写入SBUF的时候,51系列单片机没有专门的启动发送状态的指令;接收时,就是读取SBUF的过程,接收寄存器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时响应接收器的中断,没有把上一帧数据读走,而产生两帧数据重叠的问题。第6章MCS-51单片机内部定时器/计数器及串行接口 2.串行口控制寄存器串行口控制寄存器SCONSCON用于控制和监视串行口的工作状态,其各位定义如图5.3所示。相应的各位功能介绍如下:SM0、SM1:用于定义串行口的操作模式,两个选择位对应4种模式,见表6.2。其中fOSC是振荡器频率,UART为通用异步接收和发送器的英文缩写。SM2:多机通信时的接收允许标志位。在模式2和3中,若SM2=1,且接收到的第9位数据(RB8)是0,则接收中断标志(RI)不会被激活。在模式1中,若SM2=1且没有接收到有效的停止位,则RI不会被激活。在模式0中,SM2必须是0。第6章MCS-51单片机内部定时器/计数器及串行接口表6.2串行口操作模式选择SM0SM1 模式功能波特率000110110101同步移位寄存器8位UART9位UART9位UARTfOSC/12可变(T1溢出率)fOSC/64或fOSC/32可变(T1溢出率)第6章MCS-51单片机内部定时器/计数器及串行接口3.电源控制寄存器电源控制寄存器PCON特殊功能寄存器PCON中,只有一位(最高位)SMOD与串行口的工作有关,该位是串行口波特率系数的控制位:SMOD=1时,波特率加倍,否则不加倍。PCON的地址为87H,不可位寻址,因此初始化时需要字节传送。第6章MCS-51单片机内部定时器/计数器及串行接口6.5.3 串行口的串行口的 4 种工作模式种工作模式 1.模式模式 0 2.(1)模式模式 0 输出状态。输出状态。图6.8外接移位寄存器输出第6章MCS-51单片机内部定时器/计数器及串行接口(2)模式0输入状态。图6.9外接移位寄存器输入第6章MCS-51单片机内部定时器/计数器及串行接口2.模式模式 1串行口工作于模式1时,为波特率可变的8位异步通信接口。数据位由P3.0(RXD)端接收,由P3.1(TXD)端发送。传送一帧信息为10位:一位起始位(0),8位数据位(低位在前)和一位停止位(1)。波特率是可变的,它取决于定时器T1的溢出速率及SMOD的状态。(1)模式1发送过程。用软件清除TI后,CPU执行任何一条以SBUF为目标寄存器的指令,就启动发送过程。数据由TXD引脚输出,此时的发送移位脉冲是由定时器/计数器T1送来的溢出信号经过16或32分频而取得的。一帧信号发送完时,将置位发送中断标志TI=1,向CPU申请中断,完成一次发送过程。第6章MCS-51单片机内部定时器/计数器及串行接口(2)模式1接收过程。用软件清除RI后,当允许接收位REN被置位1时,接收器以选定波特率的16倍的速率采样RXD引脚上的电平,即在一个数据位期间有16个检测脉冲,并在第7、8、9个脉冲期间采样接收信号,然后用三中取二的原则确定检测值,以抑制干扰。并且采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时,则启动接收过程,在接收移位脉冲的控制下,接收完一帧信息。当最后一次移位脉冲产生时能满足下列两个条件:RI=0;接收到的停止位为1或SM2=0。第6章MCS-51单片机内部定时器/计数器及串行接口 3.模式模式 2 和模式和模式 3。串行口工作于模式2和模式3时,被定义为9位异步通信接口。它们的每帧数据结构是11位的:最低位是起始位(0),其后是8位数据位(低位在先),第10位是用户定义位(SCON中的TB8或RB8),最后一位是停止位(1)。模式2和模式3工作原理相似,唯一的差别是模式2的波特率是固定的,即为f/32或fOSC/64;而模式3的波特率是可变的,与定时器T1的溢出率有关。第6章MCS-51单片机内部定时器/计数器及串行接口(1)模式2和模式3的发送过程。发送过程是由执行任何一条SBUF为目的寄存器的指令来启动的。由“写入SBUF”信号把8位数据装入SBUF,同时还把TB8装入发送移位寄存器的第9位,并通知发送控制器要求进行一次发送。发送开始,把一个起始位(0)送到TXD端。移位后,数据由移位寄存器送到TXD端。再过一位,出现第一个移位脉冲。第一次移位时,把一个停止位“1”由控制器的停止位发生端送入移位寄存器的第9位。此后,每次移位时,把0送入第9位。因此,当TB8的内容送到移位寄存器的输出位置时,其左面一位是停止位“1”,而再往左的所有位全为“0”。这种状态由零检测器检测到后,就通知发送控制器作最后一次移位,然后置TI=1,请求申请中断。第9位数据(TB8)由软件置位或清零,可以作为数据的奇偶校验位,也可以作为多机通信中的地址、数据标志位。如把TB8作为奇偶校验位,可以在发送程序中,在数据写入SBUF之前,先将数据位写入TB8。第6章MCS-51单片机内部定时器/计数器及串行接口(2)模式2和模式3接收过程。与模式1类似,模式2和模式3接收过程始于在RXD端检测到负跳变时,为此,CPU以波特率16倍的采样速率对RXD端不断采样。一检测到负跳变,16分频计数器就立刻复位,同时把1FFH写入输入移位寄存器。计数器的16个状态把一位时间等分成16份,在每一位的第7、8、9个状态时,位检测器对RXD端的值采样。如果所接收到的起始位无效(为1),则复位接收电路,等待另一个负跳变的到来。若起始位有效(为0)则起始位移入移位寄存器,并开始接收这一帧的其余位。当起始位0移到最左面时,通知接收控制器进行最后一次移位。把8位数据装入接收缓冲器SBUF,第9位数据装入SCON中的RB8,并置中断标志RI=1。第6章MCS-51单片机内部定时器/计数器及串行接口装入SBUF和RB8以及置位RI的信号只有在产生最后一个移位脉冲且同满足下列两个条件,才会产生:RI=0;SM2=0或接收到的第9位数据为“1”。上述两个条件中任一个不满足,所接收的数据帧就会丢失,不再恢复。两者都满足时,第9位数据装入TB8,前8位数据装入SBUF。请注意:与模式1不同,模式2和3中装入RB8的是第9位数据,而不是停止位。所接收的停止位的值与SBUF、RB8和RI都没有关系,利用这一特点可用于多机通信中。第6章MCS-51单片机内部定时器/计数器及串行接口6.5.4 多机通信多机通信 图6.10多处理机通信系统第6章MCS-51单片机内部定时器/计数器及串行接口 6.5.5 波特率波特率串行口每秒钟发送或接收的数据位数称为波特率。假设发送一位数据所需时间为T,则波特率为1/T。(1)模式0的波特率等于单片机晶振频率的1/12,即每个机器周期接收或发送一位数据。(2)模式2的波特率与电源控制器PCON的最高位SMOD的写入值有关:即 SMOD=0,波 特 率 为(1/64)fOSC;SMOD=1,波 特 率 为(1/32)fOSC。第6章MCS-51单片机内部定时器/计数器及串行接口(3)模式1和模式3的波特率除了与SMOD位有关之外,还与定时器T1的溢出率有关。定时器T1作为波特率发生器,常选用定时方式2(8位重装载初值方式),并且禁止T1中断。此时TH1从初值计数到产生溢出,它每秒钟溢出的次数称为溢出率。于是第6章MCS-51单片机内部定时器/计数器及串行接口表表 6.3 定时器定时器T1产生的常用波特率产生的常用波特率 第6章MCS-51单片机内部定时器/计数器及串行接口假设某MCS-51单片机系统,串行口工作于模式3,要求传送波特率为1200Hz,作为波特率发生器的定时器T1工作在方式2时,请求出计数初值为多少?设单片机的振荡频率为6MHz。因为串行口工作于模式3时的波特率为所以第6章MCS-51单片机内部定时器/计数器及串行接口当SMOD=0时,初值TH1=256-6106/(12001232/1)=243=0F3H当SMOD=1时,初值TH1=256-6106/(12001232/2)=230=0E6H第6章MCS-51单片机内部定时器/计数器及串行接口6.6 串行口的应用串行口的应用 一、一、串行口的编程串行口的编程串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下:(1)按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。(2)对于操作模式2或3,应根据需要在TB8中写入待发送的第9位数据。(3)若选定的操作模式不是模式0,还需设定接收/发送的波特率。设定SMOD的状态,以控制波特率是否加倍。若选定操作模式1或3,则应对定时器T1进行初始化以设定其溢出率。第6章MCS-51单片机内部定时器/计数器及串行接口二、二、串行口的应用串行口的应用 例例1 用8051串行口外接74LS165移位寄存器扩展8位输入口,输入数据由8个开关提供,另有一个开关K提供联络信号。电路示意如图6.11所示。当开关K合上时,表示要求输入数据。输入8位开关量,处理不同的程序。图6.11第6章MCS-51单片机内部定时器/计数器及串行接口程序如下程序如下:START:JBP1.0,$;开关K未合上,等待SETBP1.1;165并行输入数据CLRP1.1;开始串行移位MOVSCON,10H;串行口模式0并启动接收JNBRI,$;查询RICLRRI;查询结束,清RIMOVA,SBUF;输入数据;根据A处理不同任务SJMPSTART;准备下一次接收。第6章MCS-51单片机内部定时器/计数器及串行接口例例 2 利用串行口进行双机通信。利用串行口进行双机通信。图6.12双机通信系统第6章MCS-51单片机内部定时器/计数器及串行接口甲机发送(采用查询方式):MOVSCON,80H;设置工作方式2MOVPCON,00;置SMOD=0,波特率不加倍MOVR0,40H;数据区地址指针MOVR2,10H;数据长度LOOP:MOVA,R0;取发送数据MOVC,P;奇偶位送TB8MOVTB8,CMOVSBUF,A;送串口并开始发送数据第6章MCS-51单片机内部定时器/计数器及串行接口WAIT:JBCTI,NEXT;检测是否发送结束并清TISJMPWAITNEXT:INCR0;修改发送数据地址指针DJNZR2,LOOPRET乙机接收(查询方式):MOVSCON,90H;模作模式2,并允许接收MOVPCON,00H;置SMOD=0MOVRO,60H;置数据区地址指针MOVR2,10H;等待接收数据长度第6章MCS-51单片机内部定时器/计数器及串行接口LOOP:JBCRI,READ;等待接收数据并清RISJMPLOOPREAD:MOVA,SBUF;读一帧数据MOVC,PJNCLP0;C不为1转LP0JNBRB8,ERR;RB8=0,即RB8不为P转ERRAJMPLP1LP0:JBRB8,ERR;RB8=1,即RB8不为P转ERRLP1:MOVR0,A;RB8=P,接收一帧数据INCR0DJNZR2,LOOPRETERR:;出错处理程序谢谢!
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!