《单片机并行接口PIO72定时计数器电路.ppt》由会员分享,可在线阅读,更多相关《单片机并行接口PIO72定时计数器电路.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章第七章 I/I/O接口电路接口电路7-17-1 单片机并行接口单片机并行接口PIOPIO7-27-2 定时定时/计数器电路计数器电路CTCCTC7-37-3 可编程并行接口芯片可编程并行接口芯片7-57-5 串行串行I/OI/O接口接口SIOSIO7-17-1 单片机并行接口单片机并行接口PIOPIOPIPIO:并行:并行I/I/O接口接口用于微型机与外部设备之间并行传送数据。用于微型机与外部设备之间并行传送数据。7-1-17-1-1MCS-51MCS-51的并行接口的并行接口4 4个个8 8位双向并行位双向并行I IO接口:接口:P0.0P0.7、P1.0P1.7、P2.0P2.7、P
2、3.0P3.7。均为多功能均为多功能I/I/O接口,接口,CPUCPU按当前操作自动进行功能切按当前操作自动进行功能切换。换。片内片内接口寄存器在接口寄存器在SFRSFR中的映象地址:中的映象地址:1 1I/I/O数据锁存器:数据锁存器:P0、P1、P2、P3、SBUF2 2I/I/O控制控制/状态寄存器:状态寄存器:IE、IP、TCON、TMOD、SCON、PCON一一PIPIO接口内部结构接口内部结构输出锁存器、输出驱动器、输入缓冲器及多路功能切换电路。输出锁存器、输出驱动器、输入缓冲器及多路功能切换电路。1 1)输出操作:输出数据经过内部总线暂存到输出锁存器中,经过)输出操作:输出数据经
3、过内部总线暂存到输出锁存器中,经过输出驱动器送到输出驱动器送到I/O引脚上。输出锁存器的内容可读入修改。引脚上。输出锁存器的内容可读入修改。2 2)输入操作:)输入操作:I/O引脚输入数据经过输入缓冲器送到内部总线上。引脚输入数据经过输入缓冲器送到内部总线上。二二PIPIO接口接口的三种操作的三种操作1.输出锁存:输出将使数据写入输出锁存器。输出锁存:输出将使数据写入输出锁存器。输出指令:输出指令:M MOV VP1P1,A AM MOV VP1.0P1.0,C C2.2.输输入入三三态态:输输入入从从I/I/O引引脚脚上上输输入入信信号号,读读信信号号打打开开,引引脚脚信信号号通过下三态门进
4、入内部总线。为保证可靠输入,先写入通过下三态门进入内部总线。为保证可靠输入,先写入“1”“1”。M MOV VP1P1,#0FFH#0FFH;使输出驱动器截止;使输出驱动器截止M MOV VA A,P1P1;输入;输入P0P0P3P3的复位状态均为的复位状态均为FFHFFH,自动处于输入状态。,自动处于输入状态。3.3.读读-修修改改-写写:修修改改输输出出锁锁存存器器的的内内容容。锁锁存存器器中中的的数数据据通通过过上上三态门进入内部总线,修改后再写入到锁存器中。三态门进入内部总线,修改后再写入到锁存器中。读读-修改修改-写指令:写指令:PIPIO为目的操作数的指令为目的操作数的指令 ANL
5、 P1 ANL P1,A A三三.PIPIO的使用的使用 1.P0P0口:并行双向接口或系统总线口:并行双向接口或系统总线DBDB0 07 7/AB/AB0 07 72.P12.P1口:称为用户口:称为用户I/I/O接口。对片内接口。对片内EPREPROM M编程时,用作编程时,用作EPREPROM M低低8 8位地址信号线。位地址信号线。四四.接口负载能力接口负载能力P0P0驱动驱动8 8个个TTLTTL电路,电路,P1P1,P2P2,P3P3可驱动可驱动4 4个个TTLTTL电路电路3 3.P2P2口:双向口:双向I/I/O接口或高接口或高8 8位地址总线位地址总线ABAB8 81515对
6、读写片外存储器后,引脚仍恢复输出锁存器的内容。可用于对读写片外存储器后,引脚仍恢复输出锁存器的内容。可用于读写片外数据存储器:读写片外数据存储器:MOV P2,#20HMOV R0,#00MOVX A,R04.P3P3口:双向并行接口和第二功能:口:双向并行接口和第二功能:串行接口引脚:串行接口引脚:TXD、RXD中断输入引脚:中断输入引脚:INT0、INT1定时器输入引脚:定时器输入引脚:T0、T1读写控制线:读写控制线:RD、WR P1 P1、P2P2和和P3P3为准双向口。为准双向口。五五.应用举例应用举例例例:用:用4 4个发光二极管对应显示个发光二极管对应显示4 4个开关的开合状态。
7、个开关的开合状态。如如P1.0P1.0合则合则P1.4P1.4亮。亮。MCS-51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01.1.无条件传送方式:指示灯立即反映开关状态。无条件传送方式:指示灯立即反映开关状态。ORG 0000HAJMP MAINORG 0100HMAIN:ORL A,#0FH MOV P1,AMOV A,P1SWAP A MOV P1,ASJMP MAIN2.2.中断传送方式:中断传送方式:先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态。先设好开关状态,然后发出中断请求信号,改变指示灯亮灭状态。ORG 0000H AJMP MAIN ORG
8、0003H AJMP IOINT ORG 0100HMAIN:SETB IT0 SETB EX0 SETB EAHERE:SJMP HERE ORG 0500HIOINT:MOV A,#0FFH MOV P1,A MOV A,P1 SWAP A MOV P1,A RETIP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT0MCS-51K+5V7-27-27-27-2定时定时定时定时/计数器电路计数器电路计数器电路计数器电路CTCCTCCTCCTC一定时一定时/计数器的应用计数器的应用1 1计数功能:计数功能:生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记生产线上产
9、品计数。每个产品通过得到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包装机器。录脉冲个数,当计数值与设定值相等,启动包装机器。检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。脉冲个数,显示转速。二定时二定时/计数器的工作原理计数器的工作原理定定时时/计计数数器器中中的的核核心心部部件件为为可可预预置置初初值值计计数数器器。预预置置初初值值后开始计数,直至计数值归后开始计数,直至计数值归0 0或产生溢出,可申请中断。或产生溢出,可申请中断。计数器有加计数器有加 1 1 计数或减计数或减1 1计数两
10、种形式。计数两种形式。K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计数初值例:设例:设CTCCTC中为中为8 8位加位加1 1计数器。按要求选择功能和初值。计数器。按要求选择功能和初值。1 1.要求检测到要求检测到100100个脉冲,发中断请求,通知个脉冲,发中断请求,通知CPUCPU。选计数功能,计数初值为选计数功能,计数初值为156 156。2 2.要要求求定定时时每每隔隔100100 s s时时间间,发发一一次次中中断断请请求
11、求。设设内内部部时时钟钟周期周期1 1 s s选定时功能,计数初值为选定时功能,计数初值为156 156。2 2定时功能:用于实时控制,定时采样、定时启动等。当定时定时功能:用于实时控制,定时采样、定时启动等。当定时时间与设定值相等,执行规定操作。时间与设定值相等,执行规定操作。7-2-17-2-1 MCS-51MCS-51定时定时/计数器计数器2 2个可独立控制的个可独立控制的1616位定时器位定时器/计数器:计数器:T0T0、T1T1定时器初始化编程:定时器初始化编程:1.1.功能选择(定时功能选择(定时/计数)计数)2.2.位数选择(位数选择(8/13/168/13/16位)位)3.3.
12、启动方式选择(内部启动启动方式选择(内部启动/外部启动)外部启动)4.4.启动控制(启动启动控制(启动/停止)停止)5.5.恢复初值方式(自动重装恢复初值方式(自动重装/软件重装)软件重装)一一.定时器控制、状态寄存器定时器控制、状态寄存器1.1.TMTMOD D定时器方式寄存器(定时器方式寄存器(89H89H)1 1)功能选择位)功能选择位C/TC/T:=0=0,定时功能,计数内部机器周期脉冲;,定时功能,计数内部机器周期脉冲;=1=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)输入的负脉冲。输入的负脉冲。2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式
13、:种工作方式:13/16/813/16/8位位3 3)门控方式选择位)门控方式选择位GATEGATE :=0=0,非门控方式,非门控方式(内部启动内部启动):TRx=1TRx=1,启动定时器工作;,启动定时器工作;TRx=0TRx=0,停止定时器工作。,停止定时器工作。=1=1,门控方式,门控方式(外部启动外部启动):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。确定定时器工作方式指令:确定定时器工作方式指令:M MOV TMV TMOD D,#方式字方式字例例:设:设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用方式用方式1 1门控计数。门控计数。M
14、MOV VTMTMOD D,#T1T02.TCTCON N定时器控制定时器控制/状态寄存器状态寄存器1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作,停止定时器工作=1=1,启动定时器工作,启动定时器工作例:启动例:启动T0T0:SETBSETBTR0TR02 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1,引起中断请求,引起中断请求,CPUCPU响应响应TxTx中断后,中断后,自动清自动清0 TFx0 TFx。3 3可预置初值的可预置初值的1616位加位加1 1计数器计数器TH0TH0、TL0TL0、T
15、H1 TH1、TL1TL1预置预置T0T0初值指令:初值指令:M MOV VTH0TH0,#X#XH HM MOV VTL0TL0,#X#XL L可用软件检测可用软件检测TFxTFx,必须软件清,必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测;检测T0T0是否溢出是否溢出SJMPSJMPWAITWAIT ;未溢出,继续检测;未溢出,继续检测NEXTNEXT:;溢出,;溢出,TF0TF0清清0 0,处理溢出,处理溢出二二.定时器工作方式定时器工作方式由方式选择位由方式选择位M1M1、M0M0设定设定1.方式方式0 01313位定时位定时/计数器。计数器。
16、THx 8 THx 8位和位和TLxTLx低低5 5位组成位组成1313位加位加1 1计数器计数器计数外部脉冲个数:计数外部脉冲个数:1 18192(28192(21313)定时时间定时时间(T=1(T=1 s)s):1 1 s s 8.19ms8.19ms2.方式方式1 11616位定时位定时/计数器。计数器。THx8 THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器计数器计数外部脉冲个数:计数外部脉冲个数:1 165536(265536(21616)定时时间定时时间(T=1(T=1 s)s):1 1 s s 65536T=65.54ms 65536T=65.54ms
17、3.方式方式2 2自动恢复初值自动恢复初值8 8位定时位定时/计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器。位初值暂存器。用于需要重复定时和计数的场合。用于需要重复定时和计数的场合。最大计数值:最大计数值:256(2256(28 8)最大定时时间最大定时时间(T=1(T=1 s)s):256 256 s s4.4.方式方式3 3T0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/计数器和计数器和TH0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0T
18、H0占用占用T1T1控制位:控制位:TR1TR1。T1T1不能使用方式不能使用方式3 3工作工作5.5.计算时间常数计算时间常数X(X(计算初值计算初值)计数功能:计数功能:X=2X=2n n-计数值计数值n n:8/13/16 8/13/16 定时功能:定时功能:X=2X=2n n-t/T-t/T t t:定时时间、:定时时间、T T:机器周期:机器周期三三.MCS-51MCS-51定时器的应用定时器的应用定定时时器器初初始始化化编编程程:使使用用定定时时器器工工作作之之前前,先先写写入入控控制制寄寄存器,确定好定时器工作方式存器,确定好定时器工作方式初始化编程格式:初始化编程格式:MOV
19、TMOD,#方式字;选择方式方式字;选择方式MOV THx,#XH;装入;装入Tx时间常数时间常数MOV TLx,#XL(SETB EA);开;开Tx中断中断(SETB ETx)SETB TRx ;启动;启动TxTx定时器定时器1.按实际需要选择定时按实际需要选择定时/计数功能计数功能2.按时间或计数长度选择方式按时间或计数长度选择方式3.计算时间常数计算时间常数4.溢出处理编程格式:溢出处理编程格式:1 1)查询方式:先查询定时器溢出标志,再进行溢出处理。)查询方式:先查询定时器溢出标志,再进行溢出处理。;定时器初始化;定时器初始化WAITWAIT:JBC JBC TFxTFx,PT PT;
20、检测溢出标志;检测溢出标志SJMP SJMP WAITWAITPTPT:M MOV VTHxTHx,#X#XH H;重装时间常数;重装时间常数M MOV VTLxTLx,#X#XL L ;溢出处理;溢出处理SJMPSJMPWAITWAIT2 2)中断方式:初始化后执行其他任务,中断服务程序处理溢出。)中断方式:初始化后执行其他任务,中断服务程序处理溢出。ORGRG0000H0000HLJMPLJMPMAINMAINORGRG000BH(001BH)000BH(001BH);TxTx中断入口中断入口LJMPLJMPPTSPTSMAINMAIN:;初始化后执行其他程序;初始化后执行其他程序PTSP
21、TS:;溢出中断服务程序;溢出中断服务程序M MOV VTHxTHx,#X#XH H;重装时间常数;重装时间常数M MOV VTLxTLx,#X#XL LRETIRETI四四.应用举例应用举例例例:由:由P1.0P1.0输出方波信号,周期为输出方波信号,周期为2ms2ms,设设f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1ms1ms改变一次改变一次P1.0P1.0的输出状态。用的输出状态。用T0T0非门控方式非门控方式1 1定时。定时。计算时间常数:计算时间常数:X=2X=216 16-t/T=2-t/T=216 16-1000/1=FC18H-1000/1=FC18H(
22、1 1)查询方式:)查询方式:START:MOV TMOD,#MOV TL0,#MOV TH0,#SETB TR0 LOOP:JBCTF0,PTF0SJMP LOOP PTF0:CPLP1.0MOV TL0,#MOV TH0,#SJMP LOOP(2 2)中断方式)中断方式 ORG 0000HAJMP MAINORG 000BHAJMP PT0INTORG 0100H MAIN:MOV SP,#60HMOV TMOD,#MOV TL0,#MOV TH0,#SETB EASETB ET0SETB TR0 HERE:SJMP HERE PT0INT:CPLP1.0 MOV TL0,#MOV TH0
23、,#RETI例例P1.7P1.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设时钟频率为秒地闪烁,设时钟频率为6MHz6MHz。长定时方法:增加一个软件计数器或一个硬件计数器。长定时方法:增加一个软件计数器或一个硬件计数器。硬件方式:硬件方式:T0 T0定时,定时,T1T1计数计数T0T0的定时跳变信号的定时跳变信号P1.0P1.0的负跳变次的负跳变次数,计满数,计满5 5个跳变为个跳变为1 1秒。秒。START:MOV TMOD,#61H MOV TL1,#0FBH MOV TH1,#0FBH CLR P1.0 SETB TR1LOOP1:CPL P1.7LOOP2 :MOV TL
24、0,#3CH MOV TH0,#0B0H SETB TR0LOOP3:JBCTF0,LOOP4SJMP LOOP3LOOP4:CPLP1.0JBCTF1,LOOP1SJMP LOOP2例例定时器外部引脚定时器外部引脚T0(T1)T0(T1)用作外部中断信号输入端。用作外部中断信号输入端。外部负脉冲引起中断请求,选计数方式,时间常数为外部负脉冲引起中断请求,选计数方式,时间常数为FFHFFH。例例:门控方式测量正脉冲宽度:门控方式测量正脉冲宽度解解:INT1INT1引引脚脚输输入入被被检检测测信信号号,记记录录在在正正脉脉冲冲的的时时间间内内包含机器脉冲个数。包含机器脉冲个数。1)设脉宽小于设脉
25、宽小于65.5ms65.5ms等待查询等待查询INT0INT0,正脉冲过后,读出,正脉冲过后,读出TH1TL1TH1TL1。START:MOV TMOD,#90H MOV TL1,#0H MOV TH1,#0HWAIT1:JBP3.3,WAIT1 SETB TR1WAIT2 :JNBP3.3,WAIT2 WAIT3:JBP3.3,WAIT3CLRTR1MOV R2,TL1MOV R3,TH1TR1=1 T1启动 TR1=0 T1停止INT12)设脉宽大于设脉宽大于65.5ms65.5ms,中断方式记录,中断方式记录TH1TL1TH1TL1溢出中断次数。溢出中断次数。SETB TR1SETB E
26、T1;开;开T1中断中断SETB EAWAIT2:JNBP3.3,WAIT2;等待正脉冲到来;等待正脉冲到来WAIT3:JBP3.3,WAIT3;等待正脉冲结束;等待正脉冲结束CLRTR1;关闭;关闭T1MOV IE,#00;关闭中断;关闭中断MOV R2,TL1;读出;读出T1MOV R3,TH1LCALL PPS;计算脉宽;计算脉宽HERE:SJMP HERE;其他任务;其他任务PRIC:INCR4;记录溢出次数;记录溢出次数RETIPPS:;计算脉宽子程序;计算脉宽子程序计算脉宽的子程序的计算式如下:计算脉宽的子程序的计算式如下:脉宽脉宽t=(R4 216 +R3 R2)T(T为机器周期
27、)为机器周期)7-37-3可编程并行接口芯片可编程并行接口芯片82558255用于扩展单片机并行用于扩展单片机并行I/I/O接口。接口。7-3-17-3-1结构与引脚结构与引脚一一.结构结构1.1.数据线数据线D D0 07 7:传送计算机与:传送计算机与82558255之间的数据、控制字和状态字。之间的数据、控制字和状态字。PAPA0 07 7 PBPB 0 07 7 PCPC0 07 7:传传送送82558255与与外外设设之之间间的的数数据据和和联联络络信信息息,PCPC0 07 7可用作数据线或联络线可用作数据线或联络线1 1.3.3个个8 8位并行位并行I/I/O接口接口PAPA、P
28、BPB和和PCPC包含包含I/OI/O数据锁存器,控制寄存器和状态寄存器。数据锁存器,控制寄存器和状态寄存器。2 2.2.2组控制组控制 A A组:组:PAPA和和PCPC0 03 3、B B组:组:PBPB和和PCPC4 47 73 3.3.3种工作方式:种工作方式:基本基本I/I/O:输出锁存,输入三态,不用联络信号。:输出锁存,输入三态,不用联络信号。应答式应答式I/I/O:输入:输入/输出均锁存,输出均锁存,C C口用于传送联络信号,读口用于传送联络信号,读C C口可口可了解外设当前状态。了解外设当前状态。应答双向式:应答双向式:A A口为双向口为双向I/I/O,C C口用作口用作A
29、A口双向传送的联络信号线口双向传送的联络信号线二二.引脚引脚 P0 P2.78051A0A1CS82553732.2.地址线地址线CSCS:片选线:片选线A A1 1,A A0 0:口选线,寻址:口选线,寻址 PA PA,PBPB,PCPC数据口和控制口。数据口和控制口。例例求求82558255口地址:口地址:解:解:A A口口(7F00H)(7F00H),B B口口(7F01H)(7F01H),C C口口(7F02H)(7F02H),控制口控制口(7F03H)(7F03H)(三三)读写控制线读写控制线RDRD,WRWR控制计算机与控制计算机与82558255之间的信息传送和流向之间的信息传送
30、和流向(四四)复位线复位线RESETRESET高电平复位,使内部寄存器全部清零。高电平复位,使内部寄存器全部清零。7-3-2 7-3-2 82558255编程规定编程规定82558255初始化编程:往控制口写入控制字,确定初始化编程:往控制口写入控制字,确定82558255工作方式。工作方式。方式选择控制字:方式选择控制字:D7=1D7=1C C口置位口置位/复位控制字:复位控制字:D7=0D7=0例例:8255PA8255PA口方式口方式0 0输出单片机片内输出单片机片内RAMRAM数据,数据,PBPB口方式口方式1 1输入输入。PIPIOS:M MOV VDPTRDPTR,#7F03H#7
31、F03H;控制口地址;控制口地址M MOV VA A,#86#86;写控制字;写控制字M MOVXVX DPTRDPTR,A A;设工作方式;设工作方式M MOV VDPTRDPTR,#7F00H#7F00H;PAPA数据口地址数据口地址M MOV VA A,R0R0;取;取RAMRAM的数的数据据M MOVXVX DPTRDPTR,A A;由;由PAPA口输出口输出 7-47-4可编程多功能接口芯片可编程多功能接口芯片81558155256256字节字节RAMRAM,3 3个并行口个并行口PAPA0 07 7、PBPB0 07 7、PCPC0 05 5,1 1个个1414位定时器。位定时器。
32、7-4-1 7-4-1 结构和引脚结构和引脚一一.引脚功能引脚功能1.1.数据线数据线ADAD0 07 7:传送:传送81558155与计算机之间的数据,控制字,状态字。与计算机之间的数据,控制字,状态字。PAPA0 07 7、PBPB0 07 7、PCPC0 05 5 :传送:传送81558155与外设之间的信息。与外设之间的信息。2.2.地址线地址线CECE:I IO/M/M:选择口选择口/RAM/RAM单元单元ADAD0 07 7:6 6个个I/I/O口和口和256256字节字节RAMRAM地址。地址。3.3.控制线控制线ALEALE:地址锁存:地址锁存RDRD、WRWR:读写控制:读写
33、控制4.4.定时器输入定时器输入/输出线:输出线:TIMERINTIMERIN、TIMERTIMEROUTUT5.5.复位线复位线RESETRESET P0.00.7 P2.6 P2.7 ALE8051AD07IO/MCSALE81557-57-57-57-5 串行串行串行串行I/I/I/I/OO接口接口接口接口SIOSIOSIOSIO一一.串行通讯的基本方式串行通讯的基本方式(一一).).异步通讯异步通讯以字符为传送单位用起始位和停止位标识每个字符的开始和结束以字符为传送单位用起始位和停止位标识每个字符的开始和结束字符间隔不固定,只需字符传送时同步。字符间隔不固定,只需字符传送时同步。异步通
34、讯常用格式:一个字符帧异步通讯常用格式:一个字符帧异步通讯的双方需要两项约定:异步通讯的双方需要两项约定:1.1.字符格式字符格式一帧字符位数的规定:数据位,校验位,起始位和停止位。一帧字符位数的规定:数据位,校验位,起始位和停止位。2.2.波特率波特率(位位/秒秒)对传送速率的规定对传送速率的规定例:要求每秒传送例:要求每秒传送120120个字符,每帧为个字符,每帧为1010位。位。解:解:B=12010=1200 B=12010=1200波特波特每位每位0.83ms0.83ms数据位传输率数据位传输率=1208=960=1208=960位位/秒秒(二二).).同步通讯同步通讯以一串字符为一
35、个传送单位,字符间不加标识位,在一串字符开以一串字符为一个传送单位,字符间不加标识位,在一串字符开始用同步字符标识,硬件要求高,通讯双方须严格同步。始用同步字符标识,硬件要求高,通讯双方须严格同步。D0D1D2D3D4D5D6D7停止位停止位起始位起始位二二.串行接口功能串行接口功能1.1.发送器:并发送器:并串数据格式转换,添加标识位和校验串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。位,一帧发送结束,设置结束标志,申请中断。2.2.接收器:串接收器:串并数据格式转换,检查错误,去掉标并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。
36、识位,保存有效数据,设置接收结束标志,申请中断。3.3.控制器:接收编程命令和控制参数,设置工作方式:控制器:接收编程命令和控制参数,设置工作方式:同步同步/异步、字符格式、波特率、校验方式、数据位与同异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。步时钟比例等。三三.串行数据传送方向串行数据传送方向单工通讯:数据单向传送。单工通讯:数据单向传送。半双工通讯:数据可分时双向传送。半双工通讯:数据可分时双向传送。全双工通讯:可同时进行发送和接收。全双工通讯:可同时进行发送和接收。发送器接收器发送器接收器7-5-17-5-1 MCS-51串行接口串行接口 1 1个全双工串行接口,可同时进
37、行发送和接收。个全双工串行接口,可同时进行发送和接收。串行接口输入串行接口输入/输出引脚:输出引脚:TXD(P3.1)TXD(P3.1)、RXD(P3.0)RXD(P3.0)数据格式数据格式(P.237(P.237图图):按不同方式,一帧位数:按不同方式,一帧位数 8/10/11 8/10/11发送发送/接收时,数据皆低位在前。接收时,数据皆低位在前。一帧字符发送一帧字符发送/接收结束,置位标志位接收结束,置位标志位(TI/RI)(TI/RI)并申请并申请SIOSIO中断。中断。中断控制:中断允许位中断控制:中断允许位ESES中断入口:中断入口:0023H0023HD0D1D2D3D4D5D6
38、D7停止位停止位起始位起始位D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D8停止位停止位起始位起始位D7一一.串行接口控制串行接口控制1 1.数据缓冲器数据缓冲器SBUFSBUF发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址99H99H。1 1)发送)发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同时启动发送。将同时启动发送。发送指令:发送指令:M MOV VSBUFSBUF,A A2 2)接收)接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。读取串
39、行口接收数据指令:读取串行口接收数据指令:M MOV AV A,SBUFSBUF2 2.串行口控制串行口控制/状态寄存器状态寄存器SCSCON N(98H)(98H)SM0SM0,SM1SM1:选择串行口:选择串行口4 4种工作方式。种工作方式。SM2SM2:多机控制位,用于多机通讯。:多机控制位,用于多机通讯。RENREN:允许接收控制位,:允许接收控制位,REN=1REN=1,允许接收;,允许接收;REN=0REN=0,禁止接收。,禁止接收。TB8TB8发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/数据标识位数据标识位RB8RB8:接收的第:接收的第9 9
40、位数据位或停止位位数据位或停止位TITI:发送中断标志,发送一帧结束,:发送中断标志,发送一帧结束,TI=1TI=1,必须软件清零,必须软件清零RIRI:接收中断标志,接收一帧结束,:接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零3 3.节电控制寄存器节电控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。:波特率加倍控制位。SMOD=1,波特率加倍,波特率加倍,SMOD=0,则不加倍。,则不加倍。二二.串行接口的工作方式串行接口的工作方式SM0SM0,SM1SM1选择四种工作方式选择四种工作方式。(1)(1)方式方式0 0:同步移位寄存器方式。用于扩展并行
41、:同步移位寄存器方式。用于扩展并行I/I/O接口。接口。1 1.一帧一帧8 8位,无起始位和停止位。位,无起始位和停止位。2 2.RXD.RXD:数据输入:数据输入/输出端。输出端。TXD TXD:同步脉冲输出端,每个脉冲对应一个数据位。:同步脉冲输出端,每个脉冲对应一个数据位。3 3.波特率波特率B=fosc/12B=fosc/12如:如:fosc=12MHz fosc=12MHz,B=1MHzB=1MHz,每位数据占,每位数据占1 1 s s。4 4.发送过程:写入发送过程:写入SBUFSBUF,启动发送,一帧发送结束,启动发送,一帧发送结束,TI=1TI=1。接收过程:接收过程:REN=
42、1REN=1且且RI=0RI=0,启动接收,一帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1。发发送送时时序序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=0RXD输入输入RI 接接收收时时序序(a)(b)(2)(2)方式方式1 1 8 8位数据异步通讯方式。位数据异步通讯方式。1 1.一帧一帧1010位:位:8 8位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。2 2.RXD.RXD:接收数据端。:接收数据端。TXD TXD:发送数据端。:发送数据端。3 3.波特率:波特率:用用T1作为波特率发生
43、器,作为波特率发生器,B=(2B=(2SMOD/32)T1/32)T1溢出率。溢出率。4 4.发送:写入发送:写入SBUFSBUF,同时启动发送,一帧发送结束,同时启动发送,一帧发送结束,TI=1TI=1。接收:接收:REN=1REN=1,允许接收。接收完一帧,若,允许接收。接收完一帧,若RI=0RI=0且停止位为且停止位为1 1(或或SM2=0)SM2=0),将接收数据装入,将接收数据装入SBUFSBUF,停止位装入,停止位装入RB8RB8,并使,并使RI=1RI=1;否;否则丢弃接收数据,不置位则丢弃接收数据,不置位RIRI。当当REN=1REN=1,CPUCPU开始采样开始采样RXDRX
44、D引脚负跳变信号,若出现负跳变,才引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为进入数据接收状态,先检测起始位,若第一位为0 0,继续接收其余,继续接收其余位;否则,停止接收,重新采样负跳变。位;否则,停止接收,重新采样负跳变。数据采样速率为波特率数据采样速率为波特率1616倍频,在数据位中间,用第倍频,在数据位中间,用第7 7、8 8、9 9个个脉冲采样脉冲采样3 3次数据位,并次数据位,并3 3中取中取2 2保留采样值。保留采样值。写入写入SBUF采样采样(a)发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位
45、RXD输入数据输入数据(b)接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变(3)(3)方式方式2 2和方式和方式3 39 9位数据异步通讯方式。位数据异步通讯方式。1 1.一帧为一帧为1111位:位:9 9位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。第第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机通讯标识位。中,常用作校验位和多机通讯标识位。2 2.RXD.RXD:接收数据端,:接收数据端,TXDTXD:发送数据端。:发送数据端。3 3.波特率:波特率:方式方式
46、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且第且第9 9位为位为1 1(或或SM2=0)SM2=0),将接收数据装入接收,将接收数据装入接收SBUFSBUF,第,第9 9位装入位装入RB8RB8,使,使RI=1RI=1;否则丢弃接收数据,不置位否则丢弃接收数据,
47、不置位RIRI。发发送送时时序序写入写入SBUFTXD输出输出TIRXD输入输入接接收收时时序序RID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变(4 4)计算波特率计算波特率方式方式0 0为固定波特率:为固定波特率:B=fosc/12B=fosc/12方式方式2 2可选两种波特率:可选两种波特率:B=(2 B=(2SMOD /64)fosc/64)fosc 方式方式1 1、3 3为可变波特率,用为可变波特率,用T1T1作波特率发生器。作波特率发生器。B=(2B=(2SMOD/32)T1/32)T
48、1溢出率溢出率T1T1为方式为方式2 2的时间常数:的时间常数:X=2 X=28 8-t/T-t/T溢出时间:溢出时间:t=(2 t=(28 8-X)T=(2-X)T=(28 8-X)12/fosc-X)12/foscT1T1溢出率溢出率=1/t=fosc/12(2=1/t=fosc/12(2n n-X)-X)波特率波特率B=(2B=(2SMOD /32)fosc/12(2/32)fosc/12(28 8-X)-X)串行口方式串行口方式1 1、3 3,根据波特率选择,根据波特率选择T1T1工作方式,计算时间常数。工作方式,计算时间常数。T1T1选方式选方式2 2:TH1=X=2 TH1=X=2
49、8 8-fosc/122-fosc/122SMOD/(32B)/(32B)T1T1选方式选方式1 1用于低波特率,需考虑用于低波特率,需考虑T1T1重装时间常数时间。重装时间常数时间。7-5-27-5-2 串行口的应用串行口的应用串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#控制状态字;写方式字且控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H);波特率加倍;波特率加倍 (MOV TMOD,#20H);T1作波特率发生器作波特率发生器 (MOV TH1,#X);选定波特率;选定波特率 (MOV TL1,#X)(SETB TR1)(SETB EA);开
50、串行口中断;开串行口中断 (SETB ES)发送程序:先发送一个字符,等待发送程序:先发送一个字符,等待TI=1TI=1后再发送下一个字符。后再发送下一个字符。1.1.查询方式查询方式:TRAM:MOV A,R0 ;取数据;取数据 MOV SBUF,A ;发送一个字符;发送一个字符WAIT:JBCTI,NEXT;等待发送结束;等待发送结束SJMP WAITNEXT:INCR0 ;准备下一次发送;准备下一次发送SJMP TRAM2.中断方式中断方式:ORG 0023H;串行口中断入口;串行口中断入口 AJMP SINTMAIN:;初始化编程;初始化编程TRAM:MOV A,R0 ;取数据;取数据