第四章单片机的其他片内功能部件L_第1页
第四章单片机的其他片内功能部件L_第2页
第四章单片机的其他片内功能部件L_第3页
第四章单片机的其他片内功能部件L_第4页
第四章单片机的其他片内功能部件L_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、2l实现和不同外设的速度匹配实现和不同外设的速度匹配l改变数据传送方式改变数据传送方式l改变信号的性质和电平改变信号的性质和电平3l端口:端口:常指常指I/O接口中带有端口地址的寄存器接口中带有端口地址的寄存器或缓冲器,或缓冲器,CPU通过端口地址就可以对端口通过端口地址就可以对端口中信息进行读写。中信息进行读写。l接口:接口:指指CPU与外设间的与外设间的I/O接口芯片,一个接口芯片,一个外设通常需要一个外设通常需要一个I/O接口,但一个接口,但一个I/O接口接口可以有多个可以有多个I/O端口,传送数据字的端口称数端口,传送数据字的端口称数据口,传送命令字的称命令口,传送状态字据口,传送命令

2、字的称命令口,传送状态字的称为状态口。的称为状态口。4外部设备的编址外部设备的编址 即给所有即给所有I/O接口中的端口编址,接口中的端口编址,CPUCPU通过这些端通过这些端口地址与外设交换信息。口地址与外设交换信息。1.对外设端口单独编址对外设端口单独编址(如:如:Z80)专门的专门的I/O指令:指令: IN A, (N) ; AAN端口中的数端口中的数 OUT (N),A2.外设端口和存储器统一编址外设端口和存储器统一编址(如:如:MCS-51)将一部分地址空间让给外设端口,存储器不再使用。将一部分地址空间让给外设端口,存储器不再使用。统一编址的优点:统一编址的优点:(1)一切指令均适用于

3、)一切指令均适用于I/O端口的访问,增强了端口的访问,增强了CPU对外围设备的处理能力。对外围设备的处理能力。(2)CPU本身不需要专门的本身不需要专门的I/O指令。指令。(3)外设端口地址安排灵活,数量不限。)外设端口地址安排灵活,数量不限。5v四个四个8位并行位并行I/O端口:端口:P0P0、P1P1、P2P2和和P3P3。v每个端口都是每个端口都是8位准双向口,包含一个八位数据位准双向口,包含一个八位数据输出锁存器输出锁存器、一个输出驱动器和一个八位数据输一个输出驱动器和一个八位数据输入缓冲器。入缓冲器。v四个并行四个并行I/OI/O口都可以作准双向通用口都可以作准双向通用I/OI/O口

4、,既可口,既可以作输入口,又可以作输出口,还可以作双向口。以作输入口,又可以作输出口,还可以作双向口。输出有锁存功能;输入有三态缓冲但无锁存功能输出有锁存功能;输入有三态缓冲但无锁存功能( (各引脚上的数据必须一直保存到各引脚上的数据必须一直保存到CPUCPU读走为止读走为止) ) 。它们既可以以字节寻址,也可以按位独立输入它们既可以以字节寻址,也可以按位独立输入/ /输出。输出。 6三种三种I/O端口操作方式端口操作方式1.数据输出方式(写端口)数据输出方式(写端口) 通过一条指令将数据写入通过一条指令将数据写入P0-P3的数据锁存器,的数据锁存器,然后通过输出驱动器送到端口引脚。然后通过输

5、出驱动器送到端口引脚。 MOV P0,A ;累加器累加器A中内容送中内容送P0口口2.读端口读端口 对端口锁存器数据进行读入,这个数据并非端对端口锁存器数据进行读入,这个数据并非端口引脚上的数据口引脚上的数据 MOV A,P1 ;P1锁存器中数据送锁存器中数据送A73.读引脚读引脚 从端口引脚上读数据,先使对应端口锁存器置从端口引脚上读数据,先使对应端口锁存器置位,使位,使T管截止,然后打开数据缓冲器,使引脚管截止,然后打开数据缓冲器,使引脚数据输入数据总线。数据输入数据总线。 MOV P1,#0FH ;使使P1口低四位锁存器置位口低四位锁存器置位 MOV A,P1 ;读读P1口低四位引脚线信

6、号口低四位引脚线信号8P1.X锁存器读锁存器内部总线写锁存器读引脚VCC内部上拉电阻QQDCLP1.X引脚P1口的位结构口的位结构lP1口的内部结构口的内部结构9l通用通用I/O口口可以采用字节操作也可以采用位操作,可以采用字节操作也可以采用位操作,CPU既可以把它们看作数据口也可以看既可以把它们看作数据口也可以看作状态口。作状态口。CPU复位后,口锁存器为复位后,口锁存器为“1”,对于作,对于作为输入的口线(读引脚),相应位的口为输入的口线(读引脚),相应位的口锁存器不能写入锁存器不能写入“0”。10例例41读读P1.4P1.7口状态送指示灯显示。口状态送指示灯显示。 字节操作参考程序字节操

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 ; RET11 P2口有口有两种功能两种功能: 对于内部有程序存贮器的单片机,对于内部有程序存贮器的单片机,P2口既口既可以作为输入可以作为输入/输出口使用,也可以作为系输出口使用,也可以作为系统扩展的地址总线口,输出高统扩展的地址总线口,输出高8位地址位地址A8A15。 对于内部没有程序存贮器的单片机,必须对于内部没有程序存贮器的单片机

8、,必须外接程序存贮器,外接程序存贮器,一般情况下一般情况下P2口只能作口只能作为系统扩展的高为系统扩展的高8位地址总线口,而不能位地址总线口,而不能作为外部设备的输入输出口。作为外部设备的输入输出口。 12P2口作通用口作通用I/O口口 (支持字节操作和位操作支持字节操作和位操作)例例4-3 XRL P2,#01H ;P2.0取反取反CPL P2.0 ;P2.0取反取反 P2口的位结构口的位结构13P2口作地址总线口作地址总线(1 1)若片外数据存储器的容量)若片外数据存储器的容量256256B B 这时这时P2P2口不输出地址,仍可作为口不输出地址,仍可作为I/OI/O口使用口使用例例4-4

9、4-4 将将5656H H写入外部写入外部RAMRAM的的3838H H单元,单元,CPUCPU执行下面的执行下面的程序段不影响程序段不影响P2P2口状态:口状态: MOV R0MOV R0, #38H #38H MOV A MOV A, #56H #56H MOVX R0 MOVX R0, A A (2)若片外数据存储器的容量)若片外数据存储器的容量256B MOVX A,DPTR MOVX DPTR,A14P0口既可作通用口既可作通用I/O口(用口(用8051时)使用,时)使用,又可作地址数据分时复用总线使用。又可作地址数据分时复用总线使用。15P3口除了作口除了作为准双向通为准双向通用用

10、I/O接口使接口使用外,每一用外,每一根线还具有根线还具有第二种功能第二种功能 。引脚引脚第第 二二 功功 能能P3.0RXD(串行输入口)串行输入口)P3.1TXD(串行输出口)串行输出口)P3.2INT0INT0(外部中断外部中断0请求输入端)请求输入端)P3.3INT1INT1(外部中断外部中断1请求输入端)请求输入端)P3.4T0(定时器定时器/计数器计数器0计数脉冲输入端)计数脉冲输入端)P3.5T1(定时器定时器/计数器计数器1计数脉冲输入端)计数脉冲输入端)P3.6WR(片外片外RAM写选通信号输出端写选通信号输出端)P3.7RDRD(片外片外RAM读选通信号输出端)读选通信号输

11、出端)16 MCS-51内部具有的定时内部具有的定时/计数器,在检测、计数器,在检测、控制等应用中发挥重要作用,用定时器作实时控制等应用中发挥重要作用,用定时器作实时时钟,可实现定时检测、控制;计数器用于外时钟,可实现定时检测、控制;计数器用于外部事件计数,用作分频器和事故处理来用。部事件计数,用作分频器和事故处理来用。1、定时、定时/计数器可以分为定时器模式和计数器模计数器可以分为定时器模式和计数器模式两种。每种模式可单独设定为方式式两种。每种模式可单独设定为方式0、1、2和方式和方式3工作。工作。2、定时器模式下的定时时间或计数器模式下的、定时器模式下的定时时间或计数器模式下的计数值可由计

12、数值可由CPU通过程序设定,但不能超过所通过程序设定,但不能超过所设定的工作方式下的最大值。设定的工作方式下的最大值。3、定时、定时/计数器内部是一个二进制加计数器内部是一个二进制加1计数器,计数器,当计数器计满回零时能自动产生溢出中断请求,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已中止。表示定时时间已到或计数已中止。2 2个可独立控制的个可独立控制的1616位定时器位定时器/ /计数器:计数器:T0T0、T1T1原理:原理:1、定时模式、定时模式每一个机器周期计数器加每一个机器周期计数器加1,直至计满溢出产生中断请,直至计满溢出产生中断请求。对于一个求。对于一个N位的

13、加位的加1计数器,若计数时钟的频率计数器,若计数时钟的频率f是已知的,是已知的,则从初值则从初值a开始加开始加1计数至溢出所占用的时间为:计数至溢出所占用的时间为:当当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时才使计数器加时才使

14、计数器加1 1。所以,对外部输入信号的最。所以,对外部输入信号的最高计数速率是晶振的高计数速率是晶振的1/241/24。)2(*1afN一一. .定时器方式、控制定时器方式、控制/ /状态寄存器状态寄存器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/81

15、3/16/8位位3 3)门控方式选择位)门控方式选择位GATE GATE : =0=0,非门控方式非门控方式( (内部启动内部启动) ):TRx=1TRx=1,启动定时器工作;启动定时器工作;TRx=0TRx=0,停止定时器工作。停止定时器工作。=1=1,门控方式,门控方式( (外部启动外部启动) ):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。GATEC/TM1M0GATEC/TM1M0T1T0M1 M0方方式式功功能能描描述述0 0013位位0 1116位位1 028位位自自动动重重装装1 13T0为为两两个个8位位19 M MOV VTMTMOD D,#110

16、1 0010B#1101 0010B 或或 M MOV VTMTMOD D,#0D2H#0D2H注:只能字节寻址注:只能字节寻址 GATEC/TM1M0GATEC/TM1M0TMTMOD D确定定时器工作方式指令:确定定时器工作方式指令:M MOV TMV TMOD D,# #方式字方式字例:例:设设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用方式用方式1 1门控计数。门控计数。1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作;停止定时器工作; =1=1,启动定时器工作。,启动定时器工作。例:启动例:启动T0T0:SETBSETBTR0 ;TR0

17、 ;注:可以位寻址注:可以位寻址2 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1。中断方式:中断方式: TFx=1 TFx=1引起中断请求,引起中断请求,CPUCPU响应响应TxTx中断后,自动对中断后,自动对TFxTFx清清0 0 。软件查询方式:软件查询方式: 可用软件检测可用软件检测TFxTFx,必须软件清必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测检测T0T0是否溢出是否溢出SJMPSJMPWAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEXT: ;溢出,溢出,TF0T

18、F0清清0 0,处理溢出,处理溢出TF1TR1TF0TR0213 3可预置初值的可预置初值的1616位加位加1 1定时计数器定时计数器 属于属于SFRSFR中的一种,中的一种,T0T0由由TH0TH0、TL0TL0组成,组成, T1T1由由TH1TH1、TL1TL1组成。通过预设初值来定时。组成。通过预设初值来定时。预置预置T0T0初值指令:初值指令:M MOV VTH0TH0,#X#XH HM MOV VTL0TL0,#X#XL L1313位定时位定时/ /计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 18192(28192(21313) )定时时间定时时间(12(12MHzMHz

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

20、CH0FOH,TL0=0CHT1T9T8T7T6T5T4T3T2T13T12T11T10TH0/TH1TL0/TL11616位定时位定时/ /计数器。计数器。 THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器计数器计数外部脉冲个数:计数外部脉冲个数:1 165536(265536(21616) )定时时间定时时间( (T=1T=1 s)s):1 1 s s 65536 65536T= 65.54msT= 65.54msusfatosc12)2(16振荡器振荡器12THxTLxTFx8位位 8位位Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=

21、0C/T=1中断中断申请申请自动恢复初值自动恢复初值8 8位定时位定时/ /计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器。位初值暂存器。无需重装初值,用于需要重复定时无需重装初值,用于需要重复定时和计数的场合。和计数的场合。最大计数值:最大计数值:256 (2256 (28 8) )最大定时时间最大定时时间( (T=1T=1 s)s): 256 256 s susfatosc12)2(8振荡器振荡器12TLxTHxTFx8位位 Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请重重装装26

22、方式方式2下,当定时器计满回零时,一方面向下,当定时器计满回零时,一方面向CPU发出溢出中断请求,另一方面从发出溢出中断请求,另一方面从TH中重新获得初值并启动计数。中重新获得初值并启动计数。 而方式而方式0、1、3下,定时器必须通过重装初下,定时器必须通过重装初值来重新启动计数。值来重新启动计数。T0T0分成分成2 2个独立的个独立的8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位。T1T1不能使用方式不能使用方式3 3

23、工作工作, ,一般当一般当T1T1作为波特率发生器时作为波特率发生器时, ,T0T0选方选方式式3 3。振荡器振荡器12TL0TF08位位 T0脚脚&TR0 1GATE启动启动控制控制INT0C/T=0C/T=1中断中断申请申请TH0TF18位位 启动启动控制控制中断中断申请申请振荡器振荡器12TR1281初始化步骤初始化步骤 1 1)给定时器方式寄存器)给定时器方式寄存器TMOD写一个方式控写一个方式控制字。制字。 2 2)给定时器送定时初值。)给定时器送定时初值。 3 3)给中断允许寄存器)给中断允许寄存器IEIE选送中断控制字和中选送中断控制字和中断优先级寄存器断优先级寄存器IP

24、IP选送中断优先级字,以开放选送中断优先级字,以开放相应中断和设定中断优先级。相应中断和设定中断优先级。 4 4)给定时器控制寄存器)给定时器控制寄存器TCON送命令字,以送命令字,以启动或禁止定时器启动或禁止定时器/ /计数器的运行。计数器的运行。 292计数器初值的计算计数器初值的计算 TC=MC 方式时为方式时为213213;方式时;方式时为为216216;方式和方式时为;方式和方式时为2828。TCTC为计数初值为计数初值C C为计满所需要的计数个为计满所需要的计数个数数30定时器初值的计算定时器初值的计算T=(MT=(MTC) TTC) T计数计数上式也可写成:上式也可写成:TC=M

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

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

27、装#0#0F8HF8H;TL0TL0应装应装#30#30H H。0000110001100TH0TL0C110H32例:例:设设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 ;启动启动T0T0计数计数W

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

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

30、方向串行数据传送方向单工通讯:数据单向传送。单工通讯:数据单向传送。半双工通讯:数据可分时双向传送。半双工通讯:数据可分时双向传送。全双工通讯:可同时进行发送和接收。全双工通讯:可同时进行发送和接收。发送器接收器发送器接收器1.1.发送器:发送器:并并串数据格式转换,添加标识位和校验位,串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。一帧发送结束,设置结束标志,申请中断。2.2.接收器:接收器:串串并数据格式转换,检查错误,去掉标识并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。位,保存有效数据,设置接收结束标志,申请中断。3.3.控制

31、器:控制器:接收编程命令和控制参数,设置工作方式:接收编程命令和控制参数,设置工作方式:同步同步/ /异步、字符格式、波特率、校验方式、数据位与同异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。步时钟比例等。1.1.数据缓冲器数据缓冲器SBUFSBUF(发送器和接收器)(发送器和接收器)发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址9999H H 。 1 1)发送发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF的的同时同时 启动发送启动发送。 发送指令:发送指令:M MOV V SBUFSBUF,A A2 2)接

32、收接收SBUFSBUF中存放已接收成功的中存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。 读取串行口接收数据指令:读取串行口接收数据指令: M MOV AV A,SBUFSBUF38SM0 SM1 SM2 REN TB8 RB8TIRI2.2.串行口控制串行口控制/ /状态寄存器状态寄存器 SCON(98H)SCON(98H)(控制器)控制器)SM0SM0,SM1SM1:选择串行口选择串行口4 4种工作方式。种工作方式。SM0SM1SM2RENTB8RB8TIRI2.2.串行口控制串行口控制/ /状态寄存器状态寄存器 SCONSCON (98H)(98H)SM2SM2:方式

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

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

35、(1)1)方式方式0 0:同步移位寄存器方式。同步移位寄存器方式。用于串行扩展用于串行扩展I/I/O接口。接口。1.1.一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。2.2.RXDRXD:数据输入数据输入/ /输出端。输出端。 TXDTXD:同步移位脉冲输出端,每个脉冲对应一个数据位。同步移位脉冲输出端,每个脉冲对应一个数据位。3.3.波特率波特率B = fosc/12B = fosc/12若:若: fosc=12MHzfosc=12MHz, B=1MHzB=1MHz,每位数据占每位数据占1 1 s s。4.4.发送过程:发送过程:先对先对TITI清零,写入清零,写入SBUFSBU

36、F,同时启动发送,一帧发同时启动发送,一帧发 送结束,送结束,TI=1TI=1。从低位开始串行输出,在外部的移位寄存从低位开始串行输出,在外部的移位寄存 器器7474LS164LS164(串入并出)中,数据的低位在右,高位在左。串入并出)中,数据的低位在右,高位在左。 接收过程:接收过程:REN=1REN=1且且RI=0RI=0,启动接收,一帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1。 外部接有移位寄存器外部接有移位寄存器7474LS166LS166(并入串出)。并入串出)。 42串行输入、并行输出移位寄存器内部结构串行输入、并行输出移位寄存器内部结构RXDTXD1.1.一帧一帧10

37、10位:位:8 8位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。 2.2.RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数据端。发送数据端。3.3.波特率:波特率:用用T1作为波特率发生器,作为波特率发生器, B=(2 B=(2SMOD/32)/32)T1T1溢出率溢出率4.4.发送:发送:先对先对TITI清零,清零,写入写入SBUFSBUF,同时启动发送,一帧同时启动发送,一帧 发送结束,发送结束,TI=1TI=1。 接收:接收:REN=1REN=1且且RI=0RI=0,允许接收。接收完一帧允许接收。接收完一帧,将接收将接收 数据装入

38、数据装入SBUFSBUF,RI=1RI=1。44接收原理:接收原理:当当REN=1REN=1,CPUCPU开始采样开始采样RXDRXD引脚负跳变信号,若出现负引脚负跳变信号,若出现负跳变,才进入数据接收状态。即先检测起始位,若第一位跳变,才进入数据接收状态。即先检测起始位,若第一位为为0 0,继续接收其余位;否则,停止接收,重新检测采样,继续接收其余位;否则,停止接收,重新检测采样RXDRXD引脚的负跳变。引脚的负跳变。CPUCPU数据采样速率为所选波特率数据采样速率为所选波特率1616倍频,在数据位中间,倍频,在数据位中间,对第对第7 7、8 8、9 9个脉冲采样到的值进行位检测,并以个脉冲

39、采样到的值进行位检测,并以3 3中取中取2 2(次相同)的原则确定采样值,防止干扰。(次相同)的原则确定采样值,防止干扰。接收和发送时序图接收和发送时序图写入写入SBUF采样(a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD数据输入数据输入 (b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测负跳变1.1.一帧为一帧为1111位:位:9 9位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。 第第9 9位数据位在位数据位在TB8/RB8TB8/RB8

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

41、 SM2=0 SM2=0或或RB8=1,RB8=1,将接收数据装入接收将接收数据装入接收SBUFSBUF,第第9 9位装入位装入 RB8 RB8,使使RI=1RI=1;否则丢弃接收数据,不置位否则丢弃接收数据,不置位RIRI。47方式方式0 0为固定波特率:为固定波特率:B=fB=fosc/12/12方式方式2 2可选两种波特率:可选两种波特率: B=(2B=(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3为可变波特率,用为可变波特率,用T1T1作波特率发生器。作波特率发生器。B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率T1T1通常选用可自动重装初值模式

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

43、sc/12)/12)2 2SMOD/(32/(32波特率波特率) )。481.双机通信双机通信8031应用系统(A)TXDRXDGND8031应用系统 (B)RXDTXDGND电缆串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#状态字状态字 ;写方式字,且写方式字,且TI=RI=0 MOV PCON,#80H ;波特率加倍波特率加倍 MOV TMOD,#20H ;T1作波特率发生器作波特率发生器,方式方式2 MOV TH1, #X ;T1置初值置初值 MOV TL1, #X SETB TR1 SETB EA ;CPU开中断允许开中断允许 SETB ES ;允许串行口中断

44、允许串行口中断501.1.查询方式:查询方式:TRAM: MOV A,R0 ;取数据取数据 MOV SBUF,A ;发送一个字符发送一个字符WAIT:JBCTI,NEXT ;等待发送结束等待发送结束SJMP WAITNEXT:INCR0 ;准备下一次发送准备下一次发送SJMP TRAM512.中断方式:中断方式: ORG 0023H ;串行口中断入口串行口中断入口 AJMP SINT ORG 0300H MAIN: ;初始化编程初始化编程TRAM: MOV A,R0 ;取数据取数据MOV SBUF,A ;发送第一个字符发送第一个字符 H: SJMP H ;等待等待 SINT: ;入栈入栈 CL

45、R TI ;发送中断标志发送中断标志TI清零清零INC R0MOV A,R0 ;取下一个数据取下一个数据MOV SBUF,A ;发送下一个字符发送下一个字符 ;出栈出栈RETI521.1.查询方式:查询方式: WAIT:JBCRI,NEXT;查询等待查询等待SJMP WAITNEXT:MOV A,SBUF ;读取接收数据读取接收数据MOV R0,A;保存数据保存数据INCR0 ;准备下一次接收准备下一次接收SJMP WAIT532.2.中断方式:中断方式: ORG 0023H AJMP RINT ORG 0300HMAIN: ;初始化编程初始化编程 H: SJMP H ;等待等待 RINT:

46、;入栈入栈 CLRRI ;清接收中断标志清接收中断标志MOV A,SBUF ;读取接收的数据读取接收的数据MOV R0,A;保存数据保存数据INCR0 ;出栈出栈RETI(二二)异步通讯程序举例异步通讯程序举例 1.1.发送程序:发送程序:将片内将片内RAM 50HRAM 50H起始单元的起始单元的1616个单元的数据由串行个单元的数据由串行口发送。口发送。要求发送波特率为系统时钟的要求发送波特率为系统时钟的32分频,并进行奇偶校验。分频,并进行奇偶校验。MAINT: MOV SCON,#80H ;串行口初始化,方式串行口初始化,方式2 MOV PCON,#80H ;波特率,波特率,SMOD=

47、1 SETBEA SETBES ;开串行口中断开串行口中断MOV R0,#50H ;设数据指针设数据指针MOV R7,#10H ;数据长度数据长度 LOOP: MOV A,R0 ;取一个字符取一个字符MOV C,P ;加奇偶校验加奇偶校验MOV TB8,CMOV SBUF,A ;启动第一次发送启动第一次发送 WAIT: JBCTI,NEXT ;等待发送结束等待发送结束SJMP WAIT NEXT: INCR0 ;准备下一次发送准备下一次发送DJNZ R7,LOOP ;是否发送完?是否发送完? ENDSM0 SM1 SM2 REN TB8 RB8TIRIMAIN: MOV SCON,#0D0H

48、;串行口方式串行口方式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 WAITSM0 SM1 SM2 RENTB8RB8TIRI56NEXT: MOV A,SBUF ;取一个接收字符取一个接收字符 JNB P,COMP ;奇偶校验奇偶校验 JNB RB8,ERR ; P为为1

49、、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 ;就停止接收就停止接收578031应用系统(A)TXDRXDGND8031应用系统 (B)RXDTXDGND电

50、缆8031应用系统 (N)RXDTXDGND.2.多机通信多机通信 中央处理器中央处理器CPUCPU正在处理某正在处理某事件的时候,外部发生了更为紧事件的时候,外部发生了更为紧急的事件,请求急的事件,请求CPUCPU暂停当前的暂停当前的工作,转入处理所发生的事情,工作,转入处理所发生的事情,处理完后,再回到被中断的地方处理完后,再回到被中断的地方,继续原来的工作,继续原来的工作, ,这样的过程这样的过程称为中断。称为中断。日常事务程序日常事务程序中断服务程序中断服务程序59l中断技术的优点:中断技术的优点: 提高提高CPU的效率。的效率。 提高实时数据的处理时效提高实时数据的处理时效 被控对象

51、的实时参数、越限数据和故障被控对象的实时参数、越限数据和故障信息为计算机及时采集,以便应急处理。信息为计算机及时采集,以便应急处理。 故障处理故障处理 如掉电中断。如掉电中断。60l中断系统的功能:中断系统的功能: 中断优先权排队中断优先权排队 根据轻重缓急排队,优先处理最紧急事件根据轻重缓急排队,优先处理最紧急事件的中断请求。的中断请求。 实现中断嵌套实现中断嵌套 CPU处理中断时,发生另一个优先级更高处理中断时,发生另一个优先级更高的中断请求,的中断请求,CPU转而响应优先级更高的中转而响应优先级更高的中断请求,处理完之后再回到原来中断服务程断请求,处理完之后再回到原来中断服务程序。序。

52、自动响应中断自动响应中断 实现中断返回。实现中断返回。2 2个外部中断源信号:个外部中断源信号:INT0INT0、INT1INT12 2个定时器个定时器T0T0、T1T1溢出中断请求:溢出中断请求:TF0TF0、TF1TF11 1个串行口数据发送、接收结束中断请求:个串行口数据发送、接收结束中断请求:TITI、RIRI寄存器名称寄存器名称D7D6D5D4D3D2D1D0TCON(88H)TF1TF0IE1IT1IE0IT0定时器控制定时器控制寄存器寄存器位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88HSCON(98H)TIRI串行口控

53、制串行口控制寄存器寄存器位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HIE(A8H)EAESET1 EX1 ET0 EX0中断允许中断允许寄存器寄存器位地址位地址AFHAFHACHACHABHABHAAHAAHA9HA9HA8HA8HIP(B8H)PSPT1PX1PT0PX0中断优先级中断优先级寄存器寄存器位地址位地址BCHBCHBBHBBHBAHBAHB9HB9HB8HB8H1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SM0 SM1 SM

54、2 REN TB8 RB8TIRISCONTCON登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;=0=0,无中断请求。,无中断请求。CPUCPU响应中断后,各中断标志响应中断后,各中断标志TF1、TF0、IE1、IE0均由硬件均由硬件自自动清零。注意:动清零。注意:TITI,RIRI中断中断标志必须软件清零。标志必须软件清零。2.外部中断外部中断触发方式选择位:触发方式选择位:IT0、IT1=1=1,负边沿触发中断请求,负边沿触发中断请求(需检测(需检测两次:先高后低两次:先高后低); =0=0,低电平触发中断请求,低电平触发中断请求(CPU只需检测外部引脚只

55、需检测外部引脚一次一次) 。=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,为低优先级。,为低优先级。 同一优先级别按内部硬件查询顺序排列优先级:同一优先级别按内部硬件查询顺序排列优先级: 高高 INT0INT0、T0T0、INT1INT1、T1T1、SISIO 低低。3. .中断允许控制位:中断允许控制位:EA、ES、ET1、

56、EX1、ET0、EX0EA/ET2ESET1EX1ET0EX0IE/PT2PSPT1PX1PT0PX0IP4 4中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX065l低优先级中断可以被高优先级中断所中低优先级中断可以被高优先级中断所中断,反之不能。断,反之不能。l一种中断一旦得到响应,与它同级的中一种中断一旦得到响应,与它同级的中断不能再中断它。断不能再中断它。(一)中断响应条件(一)中断响应条件 1. 1.有中断源发出中断请求;有中断源发出中断请求; 2. 2.中断总允许位中断总允许位EAEA1 1,即即CPUCPU开中断;开中断; 3. 3.相应的中断允许位为相应的中断允许位为1 1,即没有屏蔽。,即没有屏蔽。(二)(二) 响应过程响应过程1.阻断同级或低级中断;阻断同级或低级中断;2.PC指针内容压栈保护;指针内容压栈保护;3.相应中断入口地址装入相应中断入口地址装入PC,程序转移到该程序转移到该 中断入口地址单元。中

温馨提示

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

最新文档

评论

0/150

提交评论