校内大赛单片机多媒体课件机电_第1页
校内大赛单片机多媒体课件机电_第2页
校内大赛单片机多媒体课件机电_第3页
校内大赛单片机多媒体课件机电_第4页
校内大赛单片机多媒体课件机电_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

80C51系列单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。一、51单片机的串行接口结构SBUF(发)SBUF(收)发送控制器TI接收控制器RI移位寄存器波特率发生器T11A累加器(门)移位寄存器RxDTxD去申请中断引脚引脚CPU内部

发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;

接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。二、串行口特殊功能寄存器1、串行数据缓冲器SBUF

在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H,用同一寄存器名SBUF。在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。指令

MOVSBUF,A

启动一次数据发送,可向SBUF

再发送下一个数指令

MOVA,SBUF

完成一次数据接收,SBUF可再接收下一个数2、串行控制寄存器SCONSCOND7D6D5D4D3D2D1D0位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式选择多机通信控制接收允许发送第9位接收第9位发送中断接收中断①SM0SM1——串行口工作方式选择位。②SM2——多机通信控制位。③REN——允许接收控制位。REN=1,允许接收。④TB8——方式2和方式3中要发送的第9位数据。⑤RB8——方式2和方式3中要接收的第9位数据。⑥TI——发送中断标志。⑦RI——接收中断标志。①SM0SM1——串行口工作方式选择位。其状态组合所对应的工作方式如表6-2所示。

SM0SM1工作方式

功能说明000同步移位寄存器输入/输出,波特率固定为fosc/120118位UART;波特率可变(TI溢出率/n,n=32或16)1029位UART,波特率固定为fosc/n,(n=64或32)1139位UART,波特率可变(T1溢出率/n,n=32或16)②SM2------多机通信控制位。在方式2和方式3中,若SM2=1,且RB8(接收到的第9位数据)=1时,将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的8位数据丢弃。而当SM2=0时,则不论第9位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。

③REN------允许接收控制位。REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。④TB8------方式2和方式3中要发送的第9位数据。在方式2和方式3时,TB8是发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0表示数据,TB8=1表示地址。该位由软件置位或复位。

TB8还可用于奇偶校验位。⑤RB8------方式2和方式3中要接收的第9位数据。在方式2或方式3时,RB8存放接收到的第9位数据。⑥TI------发送中断标志。当方式0时,发送完第8位数据后,该位由硬件置位。在其他方式下,遇发送停止位时,该位由硬件置位。因此TI=1,表示帧发送结束,可软件查询TI位标志,也可以请求中断。TI位必须由软件清0。⑦RI------接收中断标志。当方式0时,接收完第8位数据后,该位由硬件置位。在其他方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束,可软件查询RI位标志,也可以请求中断。RI位也必须由软件清0。接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对RI/TI

清0,以备下一次收/发。3、电源控制寄存器PCONPCOND7D6D5D4D3D2D1D0位名称SMOD———GF1GF0PDIDLSMOD=1,串行口波特率加倍。PCON寄存器不能进行位寻址。☞

SMOD:在串行口工作方式1、2、3中,是波特率加倍位

=1时,波特率加倍

=0时,波特率不加倍。

(在PCON中只有这一个位与串口有关)二、串行工作方式

80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SM0SM1决定。

1、串行工作方式0(同步移位寄存器工作方式)以RXD(P3.0)端作为数据移位的输入/输出端,以TXD(P3.1)端输出移位脉冲。移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。其帧格式为:•

•D0D1D2D3D4D5D6D7•

方式0可将串行输入输出数据转换成并行输入输出数据。⑴数据发送

在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移入74HC164SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被自动置1。其后74HC164的内容即可并行输出。74HC164CLR为清0端,输出时CLR必须为1,否则74HC164Q0~Q7输出为0。

串行口作为并行输出口使用时,要有“串入并出”的移位寄存器配合。(例如CD4094或74HCl64)(2)数据接收

串行口作为并行输入口使用时,要有“并入串出”的移位寄存器配合。(例如CD4014或74HCl65)

74HC165S/L端为移位/置入端,当S/L=0时,从Q0~Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数据D7后,置位中断标志RI,表示一帧数据接收完成。⑶波特率:方式0

波特率固定,为单片机晶振频率的十二分之一。即一个机器周期进行一次移位。⑷应用举例【例6-1】电路如图所示,试编制程序按下列顺序要求每隔0.5秒从左向右依次点亮,每次亮一个;循环操作。

解:编程如下:

MOVSCON,#00H;串行口方式0CLRES;禁止串行中断P121MOVA,#80H;置发光二极管亮暗控制字表首址LP1:CLRP1.0;关闭并行输出,STR=O时,关闭并行输出;

CLRT1;清标志位

MOVSBUF,A;启动串行发送

JNBTI,$;等待发送完毕

SETBP1.0;开启并行输出,STR=1时,开启并行输出;

LCALLDELAY;调用延时0.5秒子程序(参阅例4-13)CLRTI;清发送中断标志

RRA;指向下一控制字

SJMPLP1;顺序编号0~29依次操作完毕,从0开始重新循环DELAY:【例】电路如图所示,用80c51外接CD4014扩展8位并行输入口,输入数据由8个开关提供,试编制程序输入K1~K8状态数据,并存入内RAM40H。

P1.0=0将并行数据锁存,P1.0=1CD4014允许串行移位操作。解:编程如下: KIN:MOVSCON,#00H;串行口方式0CLRES ;禁止串行中断

CLRP1.0;锁存并行输入数据

SETBP1.0;允许串行移位操作

SETBREN;允许并启动接收

JNBRI,$ ;等待接收完毕

MOV40H,SBUF;存入K1~K8状态数据

RET;2、串行工作方式1

方式1是一帧10位的异步串行通信方式,包括1个起始位,8个数据位和一个停止位。其帧格式为:起始D0D1D2D3D4D5D6D7停止⑴数据发送发送时只要将数据写入SBUF,在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式。然后在移位脉冲的作用下,由TXD端串行输出。一帧数据发送完毕,将SCON中的TI置1。⑵数据接收接收时,在REN=1前提下,当采样到RXD从1向0跳变状态时,就认定为已接收到起始位。随后在移位脉冲的控制下,将串行接收数据移入SBUF中。一帧数据接收完毕,将SCON中的RI置1,表示可以从SBUF取走接收到的一个字符。⑶波特率T1的溢出时间=(256-X).12/fosc

其中SMOD为PCON寄存器中最高位的值,SMOD=1表示波特率倍增。

方式1波特率可变,由定时/计数器T1的计数溢出率来决定。波特率=(2SMOD/32)T1的溢出率其中:X是定时器初值☞波特率=2SMOD

fosc32

12(256

-X)

在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此上式又可写为:☞初值X=256

-2SMOD

fosc32

波特率

12⑷应用举例【例6-3】设甲乙机以串行方式1进行数据传送,fosc=11.0592MHz,波特率为1200b/s。甲机发送的16个数据存在内RAM40H~4FH单元中,乙机接收后存在内RAM50H为首地址的区域中。

T1初值=256-×=232=E8H3212×1200解: 串行方式1波特率取决于T1溢出率(设SMOD=0), 计算T1定时初值: 1105920020甲机发送子程序:TXDA:MOVTMOD,#20H ;置T1定时器工作方式2 MOVTL1,#0E8H ;置T1计数初值

MOVTH1,#0E8H ;置T1计数重装值

CLRET1 ;禁止T1中断

SETBTR1 ;T1启动

MOVSCON,#40H ;置串行方式1,禁止接收

MOVPCON,#00H ;置SMOD=0(SMOD不能位操作)

CLRES ;禁止串行中断

MOVR0,#40H ;置发送数据区首地址

MOVR2,#16 ;置发送数据长度

MOV A,@R0 ;读一个数据

MOV SBUF,A ;发送

JNB TI,$ ;等待一帧数据发送完毕

CLR TI ;清发送中断标志

INC R0 ;指向下一字节单元

DJNZ R2,TRSA ;判16个数据发完否?未完继续

RET ;

TRSA:乙机接收子程序:

RXDB:

MOVTMOD,#20H ;置T1定时器工作方式2 MOVTL1,#0E8H ;置T1计数初值

MOVTH1,#0E8H ;置T1计数重装值

CLRET1 ;禁止T1中断

SETBTR1 ;T1启动

MOVSCON,#40H ;置串行方式1,禁止接收

MOVPCON,#00H ;置SMOD=0(SMOD不能位操作) CLRES ;禁止串行中断

MOVR0,#50H ;置接收数据区首地址

MOVR2,#16 ;置接收数据长度

SETBREN

;启动接收

RDSB:

JNB RI,$ ;等待一帧数据接收完毕

CLR RI ;清接收中断标志

MOV A,SBUF ;读接收数据

MOV @R0,A ;存接收数据

INC R0 ;指向下一数据存储单元

DJNZ R2,RDSB ;判16个数据接收完否?未完继续

RET;

方式2是一帧11位的串行通信方式,即1个起始位,8个数据位,1个可编程位TB8/RB8和1个停止位,其帧格式为:3、串行工作方式2起始D0D1D2D3D4D5D6D7TB8/RB8停止

可编程位TB8/RB8既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。当SMOD=0时,波特率=20

╳fosc/64=fosc/64当SMOD=1时,波特率=21

╳fosc/64=fosc/32

数据发送和接收与方式1基本相同,区别在于方式2把发送/接收到的第9位内容送入TB8/RB8。

波特率:方式2波特率固定,即fosc/32和fosc/64。如用公式表示则为:波特率=2SMOD╳fosc/64【例6-4】设计一个串行方式2发送子程序(SMOD=1),将片内RAM50H~5FH中的数据串行发送,第9数据位作为奇偶校验位。接到接收方核对正确的回复信号(用FFH表示)后,再发送下一字节数据,否则再重发一遍。解:程序如下:MOVA,@R0;读数据MOVC,PSW.0;奇偶标志送TB8MOVTB8,C;MOVSBUF,A;启动发送JNBTI,$;等待一帧数据发送完毕CLRTI;清发送中断标志SETBREN;允许接收CLRRI;清接收中断标志JNBRI,$;等待接收回复信号MOVA,SBUF;读回复信号CPLA;回复信号取反JNZTRLP;非全0(回复信号≠FFH,错误),转重发INCR0;全0(回复信号=FFH,正确), 指向下一数据存储单元CJNER0,#60H,TRLP;判16个数据发送完否?未完继续RET;TRLP:MOVSCON,#80H;置串行方式2,禁止接收MOVPCON,#80H;置SMOD=1MOVR0,#50H ;置发送数据区首址TRS2:【例7-5】编制一个串行方式2接收子程序,接收上例发送的16个数据,存首址为40H的内RAM中,并核对奇偶校验位,接收核对正确,发出回复信号FFH;发现错误,发出回复信号00H,并等待重新接收。RXD2:MOVSCON,#80H;置串行方式2,禁止接收

MOVPCON,#80H;置SMOD=1MOVR0,#40H;置接收数据区首址

SETBREN;启动接收RWAP:JNBRI,$;等待一帧数据接收完毕

CLRRI ;清接收中断标志

MOVA,SBUF;读接收数据,并在PSW中产生接收数据的奇偶值

JBPSW.0,ONE;P=1,转另判

JBRB8,ERR;P=0,RB8=1,接收有错;

;P=0,RB8=0,接收正确,继续接收RLOP:MOV@R0,A;存接收数据

INCR0;指向下一数据存储单元RIT:MOVA,#0FFH;置回复信号正确FDBK:MOVSBUF,A;发送回复信号

CJNER0,#50H,RWAP;判16个数据接收完否?未完继续

CLRREN;16个数据正确接收完毕,禁止接收

RET;ONE:JNBRB8,ERR;P=1,RB8=0,接收有错

SJMPRLOP;P=1,RB8=1,接收正确,继续接收ERR:CLRA;接收有错,置回复信号错误标志

SJMPFDBK;转发送回复信号

温馨提示

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

评论

0/150

提交评论