第四章单片机的其他片内功能部件L详解

上传人:cl****1 文档编号:593393968 上传时间:2024-09-24 格式:PPT 页数:74 大小:948.50KB
返回 下载 相关 举报
第四章单片机的其他片内功能部件L详解_第1页
第1页 / 共74页
第四章单片机的其他片内功能部件L详解_第2页
第2页 / 共74页
第四章单片机的其他片内功能部件L详解_第3页
第3页 / 共74页
第四章单片机的其他片内功能部件L详解_第4页
第4页 / 共74页
第四章单片机的其他片内功能部件L详解_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《第四章单片机的其他片内功能部件L详解》由会员分享,可在线阅读,更多相关《第四章单片机的其他片内功能部件L详解(74页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 单片机的其他片内单片机的其他片内 功能部件功能部件4-14-1 并行并行I/OI/O口口 4-24-2 定时器定时器/ /计数器计数器 4-44-4 中断系统中断系统 4-34-3 串行通信接口串行通信接口 1I/O I/O 接口的作用接口的作用1.实现和不同外设的速度匹配实现和不同外设的速度匹配2.改变数据传送方式改变数据传送方式3.改变信号的性质和电平改变信号的性质和电平2端口与接口端口与接口l端口:端口:常指常指I/O接口中带有端口地址的寄存器接口中带有端口地址的寄存器或缓冲器,或缓冲器,CPU通过端口地址就可以对端口通过端口地址就可以对端口中信息进行读写。中信息进行读写。

2、l接口:接口:指指CPU与外设间的与外设间的I/O接口芯片,一个接口芯片,一个外设通常需要一个外设通常需要一个I/O接口,但一个接口,但一个I/O接口可接口可以有多个以有多个I/O端口,传送数据字的端口称数据端口,传送数据字的端口称数据口,传送命令字的称命令口,传送状态字的口,传送命令字的称命令口,传送状态字的称为状态口。称为状态口。3外部设备的编址外部设备的编址 即给所有即给所有I/O接口中的端口编址,接口中的端口编址,CPUCPU通过这些端通过这些端口地址与外设交换信息。口地址与外设交换信息。1.对外设端口单独编址对外设端口单独编址(如:如:Z80)专门的专门的I/O指令:指令: IN A

3、, (N) ; AAN端口中的数端口中的数 OUT (N),A2.外设端口和存储器统一编址外设端口和存储器统一编址(如:如:MCS-51)将一部分地址空间让给外设端口,存储器不再使用。将一部分地址空间让给外设端口,存储器不再使用。统一编址的优点:统一编址的优点:(1)一切指令均适用于)一切指令均适用于I/O端口的访问,增强了端口的访问,增强了CPU对外围设备的处理能力。对外围设备的处理能力。(2)CPU本身不需要专门的本身不需要专门的I/O指令。指令。(3)外设端口地址安排灵活,数量不限。)外设端口地址安排灵活,数量不限。44-1 4-1 并行并行I/OI/O口口v四个四个8位并行位并行I/O

4、端口:端口:P0P0、P1P1、P2P2和和P3P3。v每个端口都是每个端口都是8位准双向口,包含一个八位数据位准双向口,包含一个八位数据输出锁存器输出锁存器、一个输出驱动器和一个八位数据输一个输出驱动器和一个八位数据输入缓冲器。入缓冲器。v四个并行四个并行I/OI/O口都可以作准双向通用口都可以作准双向通用I/OI/O口,既可口,既可以作输入口,又可以作输出口,还可以作双向口。以作输入口,又可以作输出口,还可以作双向口。输出有锁存功能;输入有三态缓冲但无锁存功能输出有锁存功能;输入有三态缓冲但无锁存功能( (各引脚上的数据必须一直保存到各引脚上的数据必须一直保存到CPUCPU读走为止读走为止

5、) ) 。它们既可以以字节寻址,也可以按位独立输入。它们既可以以字节寻址,也可以按位独立输入/ /输出。输出。 5三种三种I/O端口操作方式端口操作方式1.数据输出方式(写端口)数据输出方式(写端口) 通过一条指令将数据写入通过一条指令将数据写入P0-P3的数据锁存器,的数据锁存器,然后通过输出驱动器送到端口引脚。然后通过输出驱动器送到端口引脚。 MOV P0,A ;累加器累加器A中内容送中内容送P0口口2.读端口读端口 对端口锁存器数据进行读入,这个数据并非端对端口锁存器数据进行读入,这个数据并非端口引脚上的数据口引脚上的数据 MOV A,P1 ;P1锁存器中数据送锁存器中数据送A63.读引

6、脚读引脚 从端口引脚上读数据,先使对应端口锁存器置从端口引脚上读数据,先使对应端口锁存器置位,使位,使T管截止,然后打开数据缓冲器,使引脚管截止,然后打开数据缓冲器,使引脚数据输入数据总线。数据输入数据总线。 MOV P1,#0FH ;使使P1口低四位锁存器置位口低四位锁存器置位 MOV A,P1 ;读读P1口低四位引脚线信号口低四位引脚线信号7P1口的位结构口的位结构4-1-1 4-1-1 P1P1口口lP1口的内部结构口的内部结构8l通用通用I/O口口可以采用字节操作也可以采用位操作,可以采用字节操作也可以采用位操作,CPU既可以把它们看作数据口也可以看既可以把它们看作数据口也可以看作状态

7、口。作状态口。CPU复位后,口锁存器为复位后,口锁存器为“1”,对于作,对于作为输入的口线(读引脚),相应位的口为输入的口线(读引脚),相应位的口锁存器不能写入锁存器不能写入“0”。9例例41读读P1.4P1.7口状态送指示灯显示。口状态送指示灯显示。 字节操作参考程序字节操作参考程序: ORL P1, #0F0H ;P1.4P1.7口锁存器置口锁存器置1 MOV A, P1 ;读读P1.4P1.7引脚状态引脚状态 SWAP A ; ORL A, #0F0H ; 保持保持P1.4P1.7口锁存器为口锁存器为1 MOV P1, A ; RET10 P2口有口有两种功能两种功能: 对于内部有程序存

8、贮器的单片机,对于内部有程序存贮器的单片机,P2口既口既可以作为输入可以作为输入/输出口使用,也可以作为输出口使用,也可以作为系统扩展的地址总线口,输出高系统扩展的地址总线口,输出高8位地址位地址A8A15。 对于内部没有程序存贮器的单片机,必须对于内部没有程序存贮器的单片机,必须外接程序存贮器,外接程序存贮器,一般情况下一般情况下P2口只能作口只能作为系统扩展的高为系统扩展的高8位地址总线口,而不能位地址总线口,而不能作为外部设备的输入输出口。作为外部设备的输入输出口。 4-1-2 4-1-2 P2P2口口11P2口作通用口作通用I/O口口 (支持字节操作和位操作支持字节操作和位操作)例例4

9、-3 XRL P2,#01H ;P2.0取反取反CPL P2.0 ;P2.0取反取反 P2口的位结构口的位结构12P2口作地址总线口作地址总线(1 1)若片外数据存储器的容量)若片外数据存储器的容量256256B B 这时这时P2P2口不输出地址,仍可作为口不输出地址,仍可作为I/OI/O口使用口使用例例4-44-4 将将5656H H写写入入外外部部RAMRAM的的3838H H单单元元,CPUCPU执执行行下下面面的的程序段不影响程序段不影响P2P2口状态:口状态: MOV R0MOV R0, #38H #38H MOV A MOV A, #56H #56H MOVX R0 MOVX R0

10、, A A (2)若片外数据存储器的容量)若片外数据存储器的容量256B MOVX A,DPTR MOVX DPTR,A134-1-3 4-1-3 P0P0口口 P0口既可作通用口既可作通用I/O口(用口(用8051时)使用,时)使用,又可作地址数据分时复用总线使用。又可作地址数据分时复用总线使用。14P3口除了作口除了作为准双向通为准双向通用用I/O接口使接口使用外,每一用外,每一根线还具有根线还具有第二种功能第二种功能 。4-1-4 4-1-4 P3P3口口 引脚引脚第第 二二 功功 能能P3.0RXD(串行输入口)串行输入口)P3.1TXD(串行输出口)串行输出口)P3.2INT0INT

11、0(外部中断外部中断0请求输入端)请求输入端)P3.3INT1INT1(外部中断外部中断1请求输入端)请求输入端)P3.4T0(定时器定时器/计数器计数器0计数脉冲输入端)计数脉冲输入端)P3.5T1(定时器定时器/计数器计数器1计数脉冲输入端)计数脉冲输入端)P3.6WR(片外片外RAM写选通信号输出端写选通信号输出端)P3.7RDRD(片外片外RAM读选通信号输出端)读选通信号输出端)15 MCS-51内部具有的定时内部具有的定时/计数器,在检测、计数器,在检测、控制等应用中发挥重要作用,用定时器作实时控制等应用中发挥重要作用,用定时器作实时时钟,可实现定时检测、控制;计数器用于外时钟,可

12、实现定时检测、控制;计数器用于外部事件计数,用作分频器和事故处理来用。部事件计数,用作分频器和事故处理来用。1、定时、定时/计数器可以分为定时器模式和计数器模计数器可以分为定时器模式和计数器模式两种。每种模式可单独设定为方式式两种。每种模式可单独设定为方式0、1、2和方式和方式3工作。工作。2、定时器模式下的定时时间或计数器模式下的、定时器模式下的定时时间或计数器模式下的计数值可由计数值可由CPU通过程序设定,但不能超过所通过程序设定,但不能超过所设定的工作方式下的最大值。设定的工作方式下的最大值。3、定时、定时/计数器内部是一个二进制加计数器内部是一个二进制加1计数器,计数器,当计数器计满回

13、零时能自动产生溢出中断请求,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已中止。表示定时时间已到或计数已中止。4-24-2 定时器定时器/ /计数器计数器162 2个可独立控制的个可独立控制的1616位定时器位定时器/ /计数器:计数器:T0T0、T1T1原理:原理:1、定时模式、定时模式每一个机器周期计数器加每一个机器周期计数器加1,直至计满溢出产生中断请,直至计满溢出产生中断请求。对于一个求。对于一个N位的加位的加1计数器,若计数时钟的频率计数器,若计数时钟的频率f是已知的,是已知的,则从初值则从初值a开始加开始加1计数至溢出所占用的时间为:计数至溢出所占用的时间为:当

14、当N=8N=8、a=0a=0、t=1/ft=1/f时,最大的定时时间为:时,最大的定时时间为: T=256t T=256t 2 2、计数模式、计数模式外部输入信号是加到外部输入信号是加到T0T0(P3.4P3.4)或或T1T1(P3.5P3.5)端,端,CPUCPU每个机器周期对每个机器周期对T0(T0(或或T1)T1)检测一次,只有在前一次检测为检测一次,只有在前一次检测为1 1后后一次检测为一次检测为0 0时才使计数器加时才使计数器加1 1。所以,对外部输入信号的最高。所以,对外部输入信号的最高计数速率是晶振的计数速率是晶振的1/241/24。17一一. .定时器方式、控制定时器方式、控制

15、/ /状态寄存器状态寄存器1.1.TMTMOD D定时器定时器方式寄存器方式寄存器(8989H H)1 1)功能选择位)功能选择位C/TC/T:=0=0,定时功能,计数内部机器周期脉冲;定时功能,计数内部机器周期脉冲;=1=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)输入的脉冲下降沿。输入的脉冲下降沿。2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作方式:13/16/813/16/8位位3 3)门控方式选择位)门控方式选择位GATE GATE : =0=0,非门控方式非门控方式( (内部启动内部启动) ):TRx=1TRx=1,启动定时器工作;启

16、动定时器工作;TRx=0TRx=0,停止定时器工作。停止定时器工作。=1=1,门控方式,门控方式( (外部启动外部启动) ):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。T1T018 M MOV VTMTMOD D,#1101 0010B#1101 0010B 或或 M MOV VTMTMOD D,#0D2H#0D2H注:只能字节寻址注:只能字节寻址 TMTMOD D确定定时器工作方式指令:确定定时器工作方式指令:M MOV TMV TMOD D,# #方式字方式字例:例:设设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用方式用方式1 1门控计数。门控

17、计数。192 2. .TCTCTCTCOON N N N定时器控制定时器控制定时器控制定时器控制/ / / /状态寄存器状态寄存器状态寄存器状态寄存器(88888888H H H H)1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作;停止定时器工作; =1=1,启动定时器工作。,启动定时器工作。例:启动例:启动T0T0:SETBSETBTR0 ;TR0 ;注:可以位寻址注:可以位寻址2 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1。中断方式:中断方式: TFx=1 TFx=1引起中断请求,引起中断请求,

18、CPUCPU响应响应TxTx中断后,自动对中断后,自动对TFxTFx清清0 0 。软件查询方式:软件查询方式: 可用软件检测可用软件检测TFxTFx,必须软件清必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测检测T0T0是否溢出是否溢出SJMPSJMPWAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEXT: ;溢出,溢出,TF0TF0清清0 0,处理溢出,处理溢出203 3可预置初值的可预置初值的1616位加位加1 1定时计数器定时计数器 属于属于SFRSFR中的一种,中的一种,T0T0由由TH0TH0、TL0TL0组成,组成, T1T1由

19、由TH1TH1、TL1TL1组成。通过预设初值来定时。组成。通过预设初值来定时。预置预置T0T0初值指令:初值指令:M MOV VTH0TH0,#X#XH HM MOV VTL0TL0,#X#XL L21二、二、二、二、定时器工作方式定时器工作方式定时器工作方式定时器工作方式由方式选择位由方式选择位由方式选择位由方式选择位M1M1M1M1、M0M0M0M0设定设定设定设定1.1.1.1.方式方式方式方式0 0 0 01313位定时位定时/ /计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 18192(28192(21313) )定时时间定时时间(12(12MHzMHz,即:即:T=1T

20、=1 s)s):1 1 s s 8.192ms8.192ms振荡器振荡器12THxTLxTFx8位位 5位位Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请22THx THx 高高8 8位和位和TLx TLx 低低5 5位组成位组成1313位加位加1 1计数器计数器例:计算得初值为例:计算得初值为76927692,1313位定时器位定时器T0T0应装初值应装初值多少?多少?76927692化为化为1616进制数进制数1 1E0CH,E0CH,则则TH0TH00FOH,TL0=0CH0FOH,TL0=0CH232.2.2.2.方式方式方式方式1 1 1 1

21、1616位定时位定时/ /计数器。计数器。 THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器计数器计数外部脉冲个数:计数外部脉冲个数:1 165536(265536(21616) )定时时间定时时间( (T=1T=1 s)s):1 1 s s 65536T= 65.54ms 65536T= 65.54ms振荡器振荡器12THxTLxTFx8位位 8位位Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请243. 3. 方式方式方式方式2 2 2 2自动恢复初值自动恢复初值8 8位定时位定时/ /计数器。计数器。TLxTLx为为

22、8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器。位初值暂存器。无需重装初值,用于需要重复定时无需重装初值,用于需要重复定时和计数的场合。和计数的场合。最大计数值:最大计数值:256 (2256 (28 8) )最大定时时间最大定时时间( (T=1T=1 s)s): 256 256 s s振荡器振荡器12TLxTHxTFx8位位 Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请重重装装25 方式方式2下,当定时器计满回零时,一方面向下,当定时器计满回零时,一方面向CPU发出溢出中断请求,另一方面从发出溢出中断请求,另一方面从TH中重

23、新获得初值并启动计数。中重新获得初值并启动计数。 而方式而方式0、1、3下,定时器必须通过重装初下,定时器必须通过重装初值来重新启动计数。值来重新启动计数。264.4.方式方式方式方式3 3(只适用(只适用(只适用(只适用T0T0)T0T0分成分成2 2个独立的个独立的8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位。T1T1不能使用方式不能使用方式3 3工作工作, ,一般当一般当T1T1作为波特率发生器时作为波特率发生器

24、时, ,T0T0选方选方式式3 3。振荡器振荡器12TL0TF08位位 T0脚脚&TR0 1GATE启动启动控制控制INT0C/T=0C/T=1中断中断申请申请TH0TF18位位 启动启动控制控制中断中断申请申请振荡器振荡器12TR1274-2-3 4-2-3 4-2-3 4-2-3 定时器定时器定时器定时器/ / / /计数器的初始化计数器的初始化计数器的初始化计数器的初始化 1初始化步骤初始化步骤 1 1)给定时器方式寄存器)给定时器方式寄存器TMOD写一个方式控写一个方式控制字。制字。 2 2)给定时器送定时初值。)给定时器送定时初值。 3 3)给中断允许寄存器)给中断允许寄存器IEIE

25、选送中断控制字和中选送中断控制字和中断优先级寄存器断优先级寄存器IPIP选送中断优先级字,以开放选送中断优先级字,以开放相应中断和设定中断优先级。相应中断和设定中断优先级。 4 4)给定时器控制寄存器)给定时器控制寄存器TCON送命令字,以送命令字,以启动或禁止定时器启动或禁止定时器/ /计数器的运行。计数器的运行。 28 2计数器初值的计算计数器初值的计算 TC=MC 方式时为方式时为213213;方式时;方式时为为216216;方式和方式时为;方式和方式时为2828。TCTC为计数初值为计数初值C C为计满所需要的计数个数为计满所需要的计数个数29定时器初值的计算定时器初值的计算T=(MT

26、=(MTC) TTC) T计数计数上式也可写成:上式也可写成:TC=MTC=MT/ TT/ T计数计数 式中,为模值,和定时器的工作方式式中,为模值,和定时器的工作方式有关;有关;T T计数计数是单片机时钟周期是单片机时钟周期CLKCLK的的1212倍;倍;TCTC为定时器的定时初值。为定时器的定时初值。 30 例例4-7 若单片机时钟频率为若单片机时钟频率为12MHz,请计算定时请计算定时2ms所需的定时器初值。所需的定时器初值。解解:由由于于定定时时器器工工作作在在方方式式2 2和和方方式式3 3下下时时的的最最大大定定时时时时间间只只有有0.2560.256msms,因因此此要要想想获获

27、得得2 2msms的的定定时时间定时器必须工作在方式时时间定时器必须工作在方式0 0或方式或方式1 1。若采用方式若采用方式0 0,则根据公式可得定时器初值为:,则根据公式可得定时器初值为:TC= TC= M MT/ TT/ T计数计数= = 213213 2*103/1=6192=1830H2*103/1=6192=1830H即:即:TH0TH0应装应装0 0C1HC1H;TL0TL0应装应装#10#10H H(高三位为高三位为0 0)若采用方式若采用方式1 1,则根据公式可得定时器初值为:,则根据公式可得定时器初值为:TC= TC= 21216 62*103/1=63536=F830H2*

28、103/1=63536=F830H 即:即:TH0TH0应装应装#0#0F8HF8H;TL0TL0应装应装#30#30H H。31例:例:设设8031时钟频率为时钟频率为12MHz,要求定时器要求定时器T0定时定时50ms,写出初始化程序。写出初始化程序。TC=M-T/T计数计数216-50ms/1us=15536=3CB0HSTART:MOV TMOD #01H START:MOV TMOD #01H ;方式方式1 1 MOV TH0,#3CH MOV TH0,#3CH ;装初值装初值 MOV TL0,#0B0H MOV TL0,#0B0H SETB TR0 SETB TR0 ;启动启动T0

29、T0计数计数WAITWAIT:JBC TF0JBC TF0,TT0 TT0 ;检测检测T0T0是否溢出是否溢出 SJMP WAITSJMP WAIT ;未溢出,继续检测未溢出,继续检测TTO: MOV TH0, #3CH TTO: MOV TH0, #3CH ;重装初值重装初值 MOV TL0,#0B0H MOV TL0,#0B0H 324-34-3 串行通信接口串行通信接口一一. .数据通信的基本方式数据通信的基本方式并行通信并行通信数据有多少位就需多少根传送线,传送距离短,数据有多少位就需多少根传送线,传送距离短,传送速度快。传送速度快。串行通信串行通信只需一对传送线,传送距离相对较远,但

30、传送只需一对传送线,传送距离相对较远,但传送速度慢。速度慢。33二二. .串行通信的基本方式串行通信的基本方式( (一一) )异步通信异步通信 以字符为传送单位用起始位和停止位标识每个以字符为传送单位用起始位和停止位标识每个字符的开始和结束,字符间隔不固定,只需字字符的开始和结束,字符间隔不固定,只需字符传送时同步。符传送时同步。 34( (二二) )同步通信同步通信 每一数据块开头时发送一个或两个同步字符,每一数据块开头时发送一个或两个同步字符,使发送与接收双方取得同步。数据块的各个字使发送与接收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信速度得符间取消了起始位和停止位,所

31、以通信速度得以提高。以提高。 三三. .串行数据传送方向串行数据传送方向单工通讯:数据单向传送。单工通讯:数据单向传送。半双工通讯:数据可分时双向传送。半双工通讯:数据可分时双向传送。全双工通讯:可同时进行发送和接收。全双工通讯:可同时进行发送和接收。发送器接收器发送器接收器35四四. .串行接口的基本结构串行接口的基本结构1.1.发送器:发送器:并并串数据格式转换,添加标识位和校验位,串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。一帧发送结束,设置结束标志,申请中断。2.2.接收器:接收器:串串并数据格式转换,检查错误,去掉标识并数据格式转换,检查错误,去掉标识位

32、,保存有效数据,设置接收结束标志,申请中断。位,保存有效数据,设置接收结束标志,申请中断。3.3.控制器:控制器:接收编程命令和控制参数,设置工作方式:接收编程命令和控制参数,设置工作方式:同步同步/ /异步、字符格式、波特率、校验方式、数据位与同异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。步时钟比例等。36五、五、MCS-51的串行接口控制器的串行接口控制器1.1.数据缓冲器数据缓冲器SBUFSBUF(发送器和接收器)(发送器和接收器)发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址9999H H 。 1 1)发送发送SBUFSBUF存放待发送的存放

33、待发送的8 8位数据,写入位数据,写入SBUFSBUF的的同时同时 启动发送启动发送。 发送指令:发送指令:M MOV V SBUFSBUF,A A2 2)接收接收SBUFSBUF中存放已接收成功的中存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。 读取串行口接收数据指令:读取串行口接收数据指令: M MOV AV A,SBUFSBUF372.2.串行口控制串行口控制/ /状态寄存器状态寄存器 SCON(98H)SCON(98H)(控制器)控制器)SM0SM0,SM1SM1:选择串行口选择串行口4 4种工作方式。种工作方式。382.2.串行口控制串行口控制/ /状态寄存器状态

34、寄存器 SCONSCON (98H)(98H)SM2SM2:方式方式2 2和方式和方式3 3的多机通信控制位的多机通信控制位. .RENREN:允许接收控制位,允许接收控制位,REN=1REN=1,允许接收;允许接收;REN=0REN=0,禁禁 止接收止接收. .TB8TB8:发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/ /数据数据 标识位标识位. .RB8RB8:接收的第接收的第9 9位数据位或停止位位数据位或停止位. .TITI: 发送中断标志,发送一帧结束时由硬件置位,发送中断标志,发送一帧结束时由硬件置位, TI=1TI=1,须软件清零须软件清零.

35、.RIRI: 接收中断标志,接收一帧结束时由硬件置位,接收中断标志,接收一帧结束时由硬件置位, RI=1 RI=1,须软件清零须软件清零. .39SMOD(PCON.7) ):串行通信串行通信波特率加倍控制位。波特率加倍控制位。SMOD=1,串行通信串行通信波特率加倍,波特率加倍, SMOD=0,则不加倍。则不加倍。波特率:波特率:每秒钟传送二进制数码的位数(每秒钟传送二进制数码的位数(bit 数),单位是数),单位是bps(bit per second)。若波特率为若波特率为1200bps,字符的实际传送速率字符的实际传送速率为为1200/10=120帧帧/秒。秒。3.3.节电控制寄存器节电

36、控制寄存器 PCON (97H)PCON (97H)40六、六、六、六、 串行接口的工作方式串行接口的工作方式串行接口的工作方式串行接口的工作方式(由(由(由(由SM0SM0SM0SM0、SM1SM1SM1SM1选择设定)选择设定)选择设定)选择设定)( (1)1)方式方式0 0:同步移位寄存器方式。同步移位寄存器方式。用于串行扩展用于串行扩展I/I/O接口。接口。1.1.一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。2.2.RXDRXD:数据输入数据输入/ /输出端。输出端。 TXDTXD:同步移位脉冲输出端,每个脉冲对应一个数据位。同步移位脉冲输出端,每个脉冲对应一个数据位。3

37、.3.波特率波特率B = fosc/12B = fosc/12若:若: fosc=12MHzfosc=12MHz, B=1MHzB=1MHz,每位数据占每位数据占1 1 s s。4.4.发送过程:发送过程:先对先对TITI清零,写入清零,写入SBUFSBUF,同时启动发送,一帧发同时启动发送,一帧发 送结束,送结束,TI=1TI=1。从低位开始串行输出,在外部的移位寄存从低位开始串行输出,在外部的移位寄存 器器7474LS164LS164(串入并出)中,数据的低位在右,高位在左。串入并出)中,数据的低位在右,高位在左。 接收过程:接收过程:REN=1REN=1且且RI=0RI=0,启动接收,一

38、帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1。 外部接有移位寄存器外部接有移位寄存器7474LS166LS166(并入串出)。并入串出)。 41串行输入、并行输出移位寄存器内部结构串行输入、并行输出移位寄存器内部结构RXDTXD42(2) (2) (2) (2) 方式方式方式方式1 1 1 1: 8 8 8 8位数据异步通讯方式。位数据异步通讯方式。位数据异步通讯方式。位数据异步通讯方式。1.1.一帧一帧1010位:位:8 8位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。 2.2.RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数

39、据端。发送数据端。3.3.波特率:波特率:用用T1作为波特率发生器,作为波特率发生器, B=(2 B=(2SMOD/32)/32)T1T1溢出率溢出率4.4.发送:发送:先对先对TITI清零,清零,写入写入SBUFSBUF,同时启动发送,一帧同时启动发送,一帧 发送结束,发送结束,TI=1TI=1。 接收:接收:REN=1REN=1且且RI=0RI=0,允许接收。接收完一帧允许接收。接收完一帧,将接收将接收 数据装入数据装入SBUFSBUF,RI=1RI=1。43接收原理:接收原理:当当REN=1REN=1,CPUCPU开始采样开始采样RXDRXD引脚负跳变信号,若出现负引脚负跳变信号,若出现

40、负跳变,才进入数据接收状态。即先检测起始位,若第一位跳变,才进入数据接收状态。即先检测起始位,若第一位为为0 0,继续接收其余位;否则,停止接收,重新检测采样,继续接收其余位;否则,停止接收,重新检测采样RXDRXD引脚的负跳变。引脚的负跳变。CPUCPU数据采样速率为所选波特率数据采样速率为所选波特率1616倍频,在数据位中间,倍频,在数据位中间,对第对第7 7、8 8、9 9个脉冲采样到的值进行位检测,并以个脉冲采样到的值进行位检测,并以3 3中取中取2 2(次相同)的原则确定采样值,防止干扰。(次相同)的原则确定采样值,防止干扰。44接收和发送时序图接收和发送时序图写入写入SBUF采样(

41、a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD数据输入数据输入 (b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测负跳变45(3)(3)(3)(3) 方式方式方式方式2 2 2 2和方式和方式和方式和方式3 3 3 3: 9 9 9 9位数据异步通讯方式。位数据异步通讯方式。位数据异步通讯方式。位数据异步通讯方式。1.1.一帧为一帧为1111位:位:9 9位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。 第第9 9位数据位在位数据位在TB8/

42、RB8TB8/RB8中,常用作奇偶校验位和多机通讯标中,常用作奇偶校验位和多机通讯标 识位。识位。2.2.RXDRXD:接收数据端。接收数据端。 TXD TXD:发送数据端。发送数据端。3.3.波特率:波特率: 方式方式2 2:B=(2B=(2SMOD/64)fosc /64)fosc 方式方式3 3:B=(2B=(2SMOD/32)T1/32)T1溢出率溢出率4.4.发送:先装入发送:先装入TB8TB8,写入写入SBUFSBUF并启动发送,发送结束,并启动发送,发送结束,TI=1TI=1。 接收:接收:REN=1REN=1且且RI=0RI=0,允许接收。接收完一帧,若允许接收。接收完一帧,若

43、RI=0RI=0且且 SM2=0 SM2=0或或RB8=1,RB8=1,将接收数据装入接收将接收数据装入接收SBUFSBUF,第第9 9位装入位装入 RB8 RB8,使使RI=1RI=1;否则丢弃接收数据,不置位否则丢弃接收数据,不置位RIRI。46(4 4 4 4)计算波特率)计算波特率)计算波特率)计算波特率方式方式0 0为固定波特率:为固定波特率:B=fB=fosc/12/12方式方式2 2可选两种波特率:可选两种波特率: B=(2B=(2SMOD /64)fosc /64)fosc 方式方式1 1、3 3为可变波特率,用为可变波特率,用T1T1作波特率发生器。作波特率发生器。B=(2B

44、=(2SMOD/32)T1/32)T1溢出率溢出率T1T1通常选用可自动重装初值模式通常选用可自动重装初值模式( (工作方式工作方式2)2),设计数初值为,设计数初值为X X,则溢出周期则溢出周期=(2=(28 8-X)12/f-X)12/fosc ,T1T1溢出率为溢出周期的倒数,所以有溢出率为溢出周期的倒数,所以有 波特率波特率=(2=(2SMOD/32)f/32)fosc/12(2/12(28 8-X)-X)反之,可根据串行口方式反之,可根据串行口方式1 1、方式、方式3 3的波特率选择的波特率选择T1T1工作方式,计工作方式,计算初值算初值X X:若若T1T1选方式选方式2 2,则,则

45、计数器初值计数器初值X(X(在在TH1TH1中中) )2 28 8-(-(f fosc/12)2/12)2SMOD/(32/(32波特率波特率) )。474-3-5 4-3-5 4-3-5 4-3-5 单片机双机通信和多机通信单片机双机通信和多机通信单片机双机通信和多机通信单片机双机通信和多机通信 1.双机通信双机通信48串行口的应用串行口的应用串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#状态字状态字 ;写方式字,且写方式字,且TI=RI=0 MOV PCON,#80H ;波特率加倍波特率加倍 MOV TMOD,#20H ;T1作波特率发生器作波特率发生器,方式方式

46、2 MOV TH1, #X ;T1置初值置初值 MOV TL1, #X SETB TR1 SETB EA ;CPU开中断允许开中断允许 SETB ES ;允许串行口中断允许串行口中断49发送程序:发送程序:发送程序:发送程序:先发送一个字符,等待先发送一个字符,等待先发送一个字符,等待先发送一个字符,等待TITITITI置置置置1 1 1 1后再发送下一个字符。后再发送下一个字符。后再发送下一个字符。后再发送下一个字符。1.1.查询方式:查询方式:TRAM: MOV A,R0 ;取数据取数据 MOV SBUF,A ;发送一个字符发送一个字符WAIT:JBCTI,NEXT ;等待发送结束等待发送

47、结束SJMP WAITNEXT:INCR0 ;准备下一次发送准备下一次发送SJMP TRAM(一)串行口(一)串行口(一)串行口(一)串行口方式方式方式方式0 0 0 0( ( ( (用于扩展单片机的用于扩展单片机的用于扩展单片机的用于扩展单片机的I/I/I/I/OO接口接口接口接口) ) ) )502.中断方式:中断方式: ORG 0023H ;串行口中断入口串行口中断入口 AJMP SINT ORG 0300H MAIN: ;初始化编程初始化编程TRAM: MOV A,R0 ;取数据取数据MOV SBUF,A ;发送第一个字符发送第一个字符 H: SJMP H ;等待等待 SINT: ;入

48、栈入栈 CLR TI ;发送中断标志发送中断标志TI清零清零INC R0MOV A,R0 ;取下一个数据取下一个数据MOV SBUF,A ;发送下一个字符发送下一个字符 ;出栈出栈RETI51接收程序:接收程序:接收程序:接收程序:REN=1REN=1REN=1REN=1、RI=0RI=0RI=0RI=0等待接收。若等待接收。若等待接收。若等待接收。若RI=1RI=1RI=1RI=1,则从,则从,则从,则从SBUFSBUFSBUFSBUF读取数据。读取数据。读取数据。读取数据。1.1.查询方式:查询方式: WAIT:JBCRI,NEXT;查询等待查询等待SJMP WAITNEXT:MOV A,

49、SBUF ;读取接收数据读取接收数据MOV R0,A;保存数据保存数据INCR0 ;准备下一次接收准备下一次接收SJMP WAIT522.2.中断方式:中断方式: ORG 0023H AJMP RINT ORG 0300HMAIN: ;初始化编程初始化编程 H: SJMP H ;等待等待 RINT: ;入栈入栈 CLRRI ;清接收中断标志清接收中断标志MOV A,SBUF ;读取接收的数据读取接收的数据MOV R0,A;保存数据保存数据INCR0 ;出栈出栈RETI53(二二)异步通讯程序举例异步通讯程序举例 1.1.发发送送程程序序:将将片片内内RAM RAM 50H50H起起始始单单元元

50、的的1616个个单单元元的的数数据据由由串串行行口发送。口发送。要求发送波特率为系统时钟的要求发送波特率为系统时钟的32分频,并进行奇偶校验。分频,并进行奇偶校验。MAINT: MOV SCON,#80H ;串行口初始化,方式串行口初始化,方式2 MOV PCON,#80H ;波特率,波特率,SMOD=1 SETBEA SETBES ;开串行口中断开串行口中断MOV R0,#50H ;设数据指针设数据指针MOV R7,#10H ;数据长度数据长度 LOOP: MOV A,R0 ;取一个字符取一个字符MOV C,P ;加奇偶校验加奇偶校验MOV TB8,CMOV SBUF,A ;启动第一次发送启

51、动第一次发送 WAIT: JBCTI,NEXT ;等待发送结束等待发送结束SJMP WAIT NEXT: INCR0 ;准备下一次发送准备下一次发送DJNZ R7,LOOP ;是否发送完?是否发送完? END542. 2. 接收程序:接收程序:接收程序:接收程序:串行接收串行接收串行接收串行接收1616个字符,存入片内个字符,存入片内个字符,存入片内个字符,存入片内RAMRAM的的的的5050H H起始单元,起始单元,起始单元,起始单元,串行口波特率为串行口波特率为串行口波特率为串行口波特率为2400(2400(设晶振为设晶振为设晶振为设晶振为11.059211.0592MHz)MHz),进行

52、奇偶校验。进行奇偶校验。进行奇偶校验。进行奇偶校验。MAIN: MOV SCON,#0D0H ;串行口方式串行口方式3允许接收允许接收MOV TMOD,#20H ;T1方式方式2定时定时MOV TL1, #0F4H ;写入写入T1时间常数时间常数MOV TH1, #0F4HSETB TR1 ;启动启动T1MOV R0, #50H ;设数据指针设数据指针 MOV R7, #10H ;接收数据长度接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收等待串行口接收 SJMP WAIT55NEXT: MOV A,SBUF ;取一个接收字符取一个接收字符 JNB P,COMP ;奇偶校验奇

53、偶校验 JNB RB8,ERR ; P为为1、RB8为为0,数据出错,数据出错 SJMP RIGHT ;P=RB8=1,数据正确数据正确COMP: JB RB8,ERR ; P为为0、RB8为为1,数据出错,数据出错RIGHT: MOV R0,A ;保存一个字符保存一个字符 INC R0 ;修改指针修改指针 DJNZ R7,WAIT ;全部字符接收完全部字符接收完? CLR F0 SJMP QUIT ;F0 =0,接收数据全部正确接收数据全部正确ERR: SETB F0 ;F0 =1,接收数据出错接收数据出错QUIT: RET ;就停止接收就停止接收56 2.多机通信多机通信574.4.1 4

54、.4.1 4.4.1 4.4.1 中断系统概述中断系统概述中断系统概述中断系统概述一、中断的概念一、中断的概念一、中断的概念一、中断的概念 中央处理器中央处理器CPUCPU正在处理某正在处理某事件的时候,外部发生了更为紧事件的时候,外部发生了更为紧急的事件,请求急的事件,请求CPUCPU暂停当前的暂停当前的工作,转入处理所发生的事情,工作,转入处理所发生的事情,处理完后,再回到被中断的地方,处理完后,再回到被中断的地方,继续原来的工作继续原来的工作, ,这样的过程称这样的过程称为中断。为中断。日日常常事事务务程程序序中中断断服服务务程程序序4-44-4 中断系统中断系统58l中断技术的优点:中

55、断技术的优点: 提高提高CPU的效率。的效率。 提高实时数据的处理时效提高实时数据的处理时效 被被控控对对象象的的实实时时参参数数、越越限限数数据据和和故故障障信信息为计算机及时采集,以便应急处理。息为计算机及时采集,以便应急处理。 故障处理故障处理 如掉电中断。如掉电中断。59l中断系统的功能:中断系统的功能: 中断优先权排队中断优先权排队 根根据据轻轻重重缓缓急急排排队队,优优先先处处理理最最紧紧急急事事件件的的中断请求。中断请求。 实现中断嵌套实现中断嵌套 CPU处处理理中中断断时时,发发生生另另一一个个优优先先级级更更高高的的中中断断请请求求,CPU转转而而响响应应优优先先级级更更高高

56、的的中中断断请求,处理完之后再回到原来中断服务程序。请求,处理完之后再回到原来中断服务程序。 自动响应中断自动响应中断 实现中断返回。实现中断返回。60二、中断系统结构二、中断系统结构二、中断系统结构二、中断系统结构2 2个外部中断源信号:个外部中断源信号:INT0INT0、INT1INT12 2个定时器个定时器T0T0、T1T1溢出中断请求:溢出中断请求:TF0TF0、TF1TF11 1个串行口数据发送、接收结束中断请求:个串行口数据发送、接收结束中断请求:TITI、RIRI61三、中断控制寄存器三、中断控制寄存器三、中断控制寄存器三、中断控制寄存器62四、中断控制寄存器中的各中断标志四、中

57、断控制寄存器中的各中断标志四、中断控制寄存器中的各中断标志四、中断控制寄存器中的各中断标志1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI SCONTCON登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;=0=0,无中断请求。,无中断请求。CPUCPU响应中断后,各中断标志响应中断后,各中断标志TF1、TF0、IE1、IE0均由硬件均由硬件自自动清零。注意:动清零。注意:TITI,RIRI中断中断标志必须软件清零。标志必须软件清零。2.外部中断外部中断触发方式选择位:触发方式选择位:IT0、IT1=1=1,负边沿触发中断请求,负边沿触发中

58、断请求(需检测(需检测两次:先高后低两次:先高后低); =0=0,低电平触发中断请求,低电平触发中断请求(CPU只需检测外部引脚只需检测外部引脚一次一次) 。63五、中断控制寄存器中各控制位五、中断控制寄存器中各控制位五、中断控制寄存器中各控制位五、中断控制寄存器中各控制位=1=1,开中断;,开中断;=0=0,关中断。,关中断。例:例:允许允许CPUCPU响应响应T0T0的中断请求的中断请求M MOV IE,#82H OV IE,#82H 或者或者 SETB ET0 SETB ET0 SETB EA SETB EA2 2级优先级:级优先级:=1=1,为高优先级;,为高优先级;=0=0,为低优先

59、级。,为低优先级。 同一优先级别按内部硬件查询顺序排列优先级:同一优先级别按内部硬件查询顺序排列优先级: 高高 INT0INT0、T0T0、INT1INT1、T1T1、SISIO 低低。3. .中断允许控制位:中断允许控制位:EA、ES、ET1、EX1、ET0、EX0IEIP4 4中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX064注意:注意:注意:注意:l低优先级中断可以被高优先级中断所中低优先级中断可以被高优先级中断所中断,反之不能。断,反之不能。l一种中断一旦得到响应,与它同级的中一种中断一旦得到响应,与它同级的中断不能再中断它。断不能

60、再中断它。654.4.2 4.4.2 4.4.2 4.4.2 中断处理过程中断处理过程中断处理过程中断处理过程1.1.1.1.中断响应中断响应中断响应中断响应(一)中断响应条件(一)中断响应条件 1. 1.有中断源发出中断请求;有中断源发出中断请求; 2. 2.中断总允许位中断总允许位EAEA1 1,即即CPUCPU开中断;开中断; 3. 3.相应的中断允许位为相应的中断允许位为1 1,即没有屏蔽。,即没有屏蔽。(二)(二) 响应过程响应过程1.阻断同级或低级中断;阻断同级或低级中断;2.PC指针内容压栈保护;指针内容压栈保护;3.相应中断入口地址装入相应中断入口地址装入PC,程序转移到该程序

61、转移到该 中断入口地址单元。中断入口地址单元。66(三)(三)发生下列情况,发生下列情况,中断响应中断响应会受到会受到阻断阻断:1 . 当当CPUCPU正在执行的一条指令还没有完成正在执行的一条指令还没有完成。2当有同级或当有同级或高优先级高优先级中断中断正在进行中正在进行中。3在在执执行行RETIRETI或或访访问问IEIE、IPIP等等指指令令后后,不不会会立立即即响响应应中中断断,至至少少要要再再执执行行一一条条其其它它指指令令之之后后才才会会响响应应。672.中断处理中断处理注意:注意: (1)各各中中断断源源的的入入口口矢矢量量地地址址之之间间,相相隔隔8个个单单元元,通通常常是是在

62、在中中断断入入口口矢矢量量地地址址单单元元处处存存放放一一条条无无条条件件转转移移指指令令,转转至至存存储储器器其其他的任何空间去执行中断服务程序。他的任何空间去执行中断服务程序。 (2)若若要要在在执执行行当当前前中中断断程程序序时时禁禁止止更更高高优优先先级级中中断断,应应用用软软件件关关闭闭CPU中中断断,或或屏屏蔽蔽更更高高级级中中断断源源的的中中断断,在在中中断断返返回回前前再再开放中断。开放中断。 (3)在在保保护护现现场场和和恢恢复复现现场场时时,为为了了不不使使现现场场信信息息受受到到破破坏坏或或造造成成混混乱乱,一一般般在在此此情情况况下下,应应关关CPU中中断断,使使CPU

63、暂暂不不响响应应新新的中断请求。的中断请求。 683.中断返回中断返回中断返回指令:中断返回指令: RETI= RET指令指令 + + 通知通知CPUCPU中断服务已结束。中断服务已结束。694.4.3 4.4.3 4.4.3 4.4.3 中断系统应用中断系统应用中断系统应用中断系统应用中断服务程序的中断服务程序的般格式如下:般格式如下:CLREA;关中断关中断PUSH PSW ;保护现场保护现场PUSH ASETB EA;开中断,允许开中断,允许CPU响应高级中断响应高级中断CLREA;关中断关中断POP A POP A ;恢复现场恢复现场POP PSWPOP PSWSETB EA;开中断开

64、中断RETI;中断返回中断返回 ;服务程序;服务程序701 1定定时器器/ /计数器的数器的应用和用和编程程 例例410 产生产生2ms的方波的方波ORG0000HRESET:AJMPMAIN ;转主程序转主程序 ORG 000BH ;转中断处理程序转中断处理程序 AJMPIT0P ORG 0100HMAIN: MOV SP,#60H ACALL PT0M0HERE:SJMP HERE ;等待中断等待中断PT0M0: MOVTL0,#0CH ;T0置初值置初值 MOVTH0,#0F0H SETBTR0 SETBET0 ;允许允许T0中断中断 SETB EA ;CPU开放中断开放中断 RET71

65、 IT0P: MOVTL0,#0CH;T0重新置初值重新置初值 MOVTH0,#0F0H CPLP1.0 ;P1.0取反取反 RETI722 2串行口的串行口的应用和用和编程程 例例4-12 4-12 MAIN: MOV TMOD,#20H ;T1,方式方式2,产生波特率,产生波特率 MOV THl, #0FDH ;T1装初值装初值 MOV TL1, #0FDH SETB TRl MOV SCON,#52H ;选串行口方式选串行口方式l,允许接收,允许接收, MOV R4,#0 ;R4作字符串表指针作字符串表指针 MOV DPTR,#TSABMLPl: MOV A,R4 MOVC A,A+DP

66、TR JZ MLP6 ;字符串以字符串以0表示结束表示结束MLP3: JBC TI,MLP2 ;判断上一位是否发送完判断上一位是否发送完 SJMP MLP3MLP2: MOV SBUF,A ;发送下一位发送下一位 INC R4 ;位指针加一位指针加一 SJMP MLP173MLP6: JBC RI,MLP5 ;上一位接收完则接收下一位数上一位接收完则接收下一位数 SJMP MLP6 ;未接收完则等待未接收完则等待MLP5: MOV A,SBUFMLP8: JBC TI,MLP7 ;上一位发送完则发送下一位数上一位发送完则发送下一位数 SJMP MLP8 ;未发送完则等待未发送完则等待MLP7: MOV SBUF,A SJMP MLP6TSAB: DB MCS-51 Microcomputer DB 0AH,0DH,074

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号