学习51单片机必备--串口中断.ppt

上传人:wj 文档编号:17689935 上传时间:2023-08-03 格式:PPT 页数:58 大小:730.50KB
下载 相关 举报
学习51单片机必备--串口中断.ppt_第1页
第1页 / 共58页
学习51单片机必备--串口中断.ppt_第2页
第2页 / 共58页
学习51单片机必备--串口中断.ppt_第3页
第3页 / 共58页
学习51单片机必备--串口中断.ppt_第4页
第4页 / 共58页
学习51单片机必备--串口中断.ppt_第5页
第5页 / 共58页
学习51单片机必备--串口中断.ppt_第6页
第6页 / 共58页
学习51单片机必备--串口中断.ppt_第7页
第7页 / 共58页
学习51单片机必备--串口中断.ppt_第8页
第8页 / 共58页
学习51单片机必备--串口中断.ppt_第9页
第9页 / 共58页
学习51单片机必备--串口中断.ppt_第10页
第10页 / 共58页
学习51单片机必备--串口中断.ppt_第11页
第11页 / 共58页
学习51单片机必备--串口中断.ppt_第12页
第12页 / 共58页
学习51单片机必备--串口中断.ppt_第13页
第13页 / 共58页
学习51单片机必备--串口中断.ppt_第14页
第14页 / 共58页
学习51单片机必备--串口中断.ppt_第15页
第15页 / 共58页
学习51单片机必备--串口中断.ppt_第16页
第16页 / 共58页
学习51单片机必备--串口中断.ppt_第17页
第17页 / 共58页
学习51单片机必备--串口中断.ppt_第18页
第18页 / 共58页
学习51单片机必备--串口中断.ppt_第19页
第19页 / 共58页
学习51单片机必备--串口中断.ppt_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学习51单片机必备--串口中断.ppt

《学习51单片机必备--串口中断.ppt》由会员分享,可在线阅读,更多相关《学习51单片机必备--串口中断.ppt(58页珍藏版)》请在冰点文库上搜索。

学习51单片机必备--串口中断.ppt

1,本章主要介绍串行通信概念及51系列单片机的串行口问题,将具体介绍以下内容:

计算机串行通信基础-基本概念、标准接口。

51单片机串行口-串行口结构、串行口的控制寄存器、串行口的工作方式、应用举例。

第七章MCS-51的串行口,2,本章学习目标,*串行通信概述,7.1串行口的结构,7.2串行口的4种工作方式,7.3多机通信,7.4串行口的编程和应用,3,通信方式,1.异步通信与同步通信,并行通信方式空间上区分各位数据及联络控制信号。

占用传输线多,速度快。

串行通信方式时间上区分各位数据及联络控制信号。

占用传输线少,速度慢。

*串行通信概述,4,*2.串行通信方式,-信息传输在一个方向上只占用一跟通信线,它既作为数据线,又作为联络线。

信息各式上分,异步通信方式按字符传输,同步通信方式按数据块传输,5,*3.异步通信方式,0,1,停止位,起始位,低位,高位,7位数据位,奇偶校验,停止位,第N个字符,第N-1个字符,6,异步通信方式利用每一帧的起、止信号建立发送和接收之间的同步。

特点:

a、每一帧内部各位均采用固定的时间间隔b、帧与帧之间的间隔是随机的c、接收机依靠每一帧的起始位和停止位识别字符传送是否结束,或是一个新字符d、异步传送时不传送同步时钟脉冲,异步传送方式中字符按帧格式传送。

7,*4同步通信SYNC(SynchronousDataCommunication),在同步通信中,数据或字符开始处是用一同步字符来指示(一般约定为12个字符),以实现发送端和接收端同步,一旦检测到约定同步字符,下面就连续按顺序接收数据。

8,同步传送方式是一种连续传送方式。

特点:

a、在被传送的数据块前加上同步字符SYN;b、数据之间没有间隙;c、传输速度高、容量大;d、发送方在发送数据的同时,要将时钟信号同时传送。

9,*5.串行通信的波特率,波特率(bandrate)是异步通信中每秒钟传送的二进制数码的位数(比特数),单位是位/秒。

作用:

1、反映串行通信的速率;2、反映对传输通道的要求:

波特率越高,要求的传输通道的频带宽度就越宽异步通信:

波特率为每秒传送的字符数和每个字符位数的乘积。

例如:

数据传送的速率为120个字符每秒,每个字符由1个起始位、8个数据位和1个停止位组成,则其传送波特率为:

10b120s1200bs1200波特。

注意:

时钟频率和波特率不是同一个概念,时钟频率比波特率高得多。

10,*6.串行通信的方式,按照数据传送方向,串行通信可分为半双工(halfduplex)制式和全双工(fullduplex)制式。

1半双工制式在半双工制式下,甲机和乙机之间只有一个通信回路,接收和发送不能同时进行,只能分时发送和接收。

2全双工制式在全双工制式下,甲、乙两机之间数据的发送和接收可以同时进行,称为全双工传送。

不管哪种形式的串行通信,在两机之间均应有共地线。

11,*7.数据传送方向,单工方式,半双工方式,全双工方式,12,MCS-51单片机串行接口的硬件,MCS-51单片机串行接口的控制,MCS-51单片机串行接口工作方式,P3.0位的第二功能收端RXDP3.1位的第二功能发端TXD,寄存器SCON、PCON、SBUF寄存器IE、IP,方式0方式2,方式1方式3,7.1串行口的结构,13,有两个数据缓冲寄存器SBUF,一个输入移位寄存器,一个串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。

8位SBUF是全双工串行接口寄存器,它是特殊功能寄存器,地址为99H,不可位寻址;串行输出时为发送数据缓冲器,发送寄存器只写不读,数据从发送端TXD(P3.1)输出;串行输入时为接收数据缓冲器,接收寄存器只读不写,数据从接收端RXD(P3.0)输入;由指令确定是对发送寄存器或接收寄存器作用。

14,SM0、SM1串行接口工作方式定义位,SM0、SM1=00方式0,8位同步移位寄存器SM0、SM1=01方式1,10位异步接收发送SM0、SM1=10方式2,11位异步接收发送SM0、SM1=11方式3,11位异步接收发送,7.1.1串行口控制寄存器SCON,注意:

方式0的特点,方式2、方式3的差异,15,SM2多机通信控制位(方式2和3),SM2=0,无多机通信SM2=1,允许多机通信,串行口控制寄存器SCON,REN串行口接收数据控制位,REN=1,允许串行口接收数据REN=0,禁止串行口接收数据,由软件置位或清除,16,TB8发送串行输出数据的第9位,串行口控制寄存器SCON,RB8接收串行输入数据的第9位,双机通信时它可作奇偶校验位;在多机通信中可作为区别地址帧或数据帧的标识位。

在方式2和方式3中是接收的第9位数据。

17,TI串行口中发送完一组数据后的中断标志,若串口发送完一组数据,则由硬件自动置TI=1若串口还要发数据,则应手动编程使TI=0,串行口控制寄存器SCON,RI串行口中接收完一组数据后的中断标志,若串口接收完一组数据,则由硬件自动置RI=1若串口还要收数据,则应手动编程使RI=0,18,7.1.2特殊功能寄存器PCON,串行数据传送速率控制寄存器PCON,SMOD=0,定义波特率不变,SMOD=1,定义波特率加倍,注:

PCON寄存器的地址为87H,仅b7位有用,不可位寻址。

地址:

87H,TDL:

等待方式位,PD:

掉电方式,GF1、GF2通用标志位,ANLPCON,7FH:

对SMOD位清零,ORLPCON,80H:

对SMOD位置位,19,7.2串行口的4种工作方式,SM0SM1,串行口工作方式选择位,20,7.2.1方式0移位寄存器输入/输出方式,非串行通信用方式扩展并行I/O,RXD、TXD线的作用,用并入串出移位寄存器扩展并行输入口用串入并出移位寄存器扩展并行输出口,RXD串并、并串数据传送线TXD同步时钟线,同步时钟为fosc/12(固定波特率),注:

为应用串行接口扩展并行接口的方式。

串行口为同步移位寄存器方式,21,7.2.2方式110位异步接收/发送(波特率可变),方式1的数位,1位起始位值08位数据位为有用信息(低位在前,可含1位校验位)1位停止位值1,异步传送时的速率设置,速率设置的方法设置定时器T1的初值常用波特率:

用T1作为波特率发生器,B=(2SMOD/32)T1溢出率。

串行口为8位异步通信接口,22,方式1(续),异步发送时的工作过程,发送条件清SCON中发送中断标志TI=0,发送指令MOVSBUF,A,注:

需发送的8位字节数据送串行数据缓冲器SBUF后将启动异步发送开始。

起始位0、停止位1在执行发送指令时自动加入,发送传输线TXD、GND,发送10位数据结束发送中断标志TI=1,注:

若需继续发送,置TI=0,送数据到SBUF,23,方式1(续),异步接收时的工作过程,接收条件清SCON中接收中断标志RI=0置SCON中接收控制标志REN=1,接收传输线RXD、GND,接收同步位接收传输线RXD有从1到0的信号,接收数据9位数据送数据接收器,8位字节数据送串行数据缓冲器SBUF1位停止位送入SCON中的RB8=1,接收10位数据结束接收中断标志RI=1,注:

若需继续接收,置RI=0,24,7.2.3方式211位异步接收/发送(波特率固定),方式2的数位,1位起始位值08位数据位为1字节有用信息1位校验位对有用信息的奇偶校验1位停止位值1,异步传送时的速率设置,若PCON中SMOD=0,速率=fosc/32若PCON中SMOD=1,速率=fosc/64,串行口为9位异步通信接口,25,方式2(续),异步发送时的工作过程,异步接收时的工作过程,基本过程同方式11位校验位在发送前应先置入SCON中的TB8,基本过程同方式11位校验位(第9位)送SCON中的RB8,注:

RB8中未存放1位停止位,26,7.2.4方式311位异步接收/发送(波特率可变),方式311位异步接收/发送(波特率可变),基本定义同方式2,速率设置同方式1,注:

方式0固定波特率为fosc/12方式2固定波特率为fosc/32或fosc/64上述方式与单片机主频有关方式1可变波特率方式3可变波特率上述方式与定时器T1的初值有关,27,7.3多机通信,多个MCS-51单片机可以利用串行口进行多机通信。

在多机通信中要保证主机与所选择的从机实现可靠地通信,必须保证串行口具有识别功能。

控制寄存器SCON的SM2位就是为满足这一条而设置的多机通信控制位。

原理:

在串行口以方式2(或方式3)接收时,若SM21,表示置多机通信功能位,此时可能出现两种情况:

接收到的第9位数据为1时,数据才装入SBUF,并置中断标志RI1,向CPU发出中断请求。

接收到的第9位数据为0时,则不产生中断标志,信息抛弃若SM20,则接收到的第9位数据不论为0还是1,都产生RI1中断标志,接收到的数据装入SBUF。

28,多机通信系统示意图,多机通信的实现,主要靠主、从机之间正确地设置与判断多机通信控制位SM2和发送或接收的第9数据位(D8)。

下面简述如何实现多机通信。

29,

(1)主、从机均初始化为方式2或方式3,置SM21,允许中断。

(2)主机置TB81,发送要寻址的从机地址。

(3)所有从机均接收主机发送的地址,并进行地址比较。

(4)被寻址的从机确认地址后,置本机。

SM20,向主机返回地址,供主机核对。

(5)核对无误后,主机向被寻址的从机发送命令,通知从机接收或发送数据。

(6)通信只能在主、从机之间进行,两个从机之间的通信需通过主机作中介。

(7)本次通信结束后,主、从机重置SM21,主机可再对其他从机寻址。

30,例:

主机向02号从机发送50H5FH中的数据;02号从机将接收到的数据放到内RAM30H3FH单元中。

主机程序:

ORG0030HMAIN:

MOVSCON,98HM1:

MOVSBUF,02HL1:

JNBTI,$CLRTIJNBRI,$MOVA,SUBFXRLA,#02HJZRHTAJMPM1,RHT:

CLRTB8MOVR0,50HM1:

MOVR7,10HL3:

MOVA,R0MOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,L3AJMPMAINEND,31,从机程序:

ORG0030HMAIN:

MOVR0,30HMOVR6,10HSI:

MOVSCON,0B0HSR1:

JNBRI,$CLRRISR2:

MOVA,SUBFXRLA,#02HJNZSR1CLRSM2MOVSBUF,#02HJNBTI,$CLRTI,SR3:

JNBRI,$CLRRIJNBTB8,RHTSETBSM2SJMPSR1RHT:

MOVA,SBUFMOVR0,AINCR0DJNZR6,SR3AJMPSIEND,32,7.3波特率的制定方法,

(1)方式0的波特率在方式0下,串行口通信的波特率是固定的,其值为fosc/12(fosc为主机频率)。

(2)方式2的波特率在方式2下,通信波特率为fosc/32或fosc/64,根据特殊功能寄存器PCON中SMOD位的状态来决定串行口在那个波特率下工作。

选择公式为:

波特率的定义串行口每秒钟发送(或接收)的位数。

33,(3)方式1或方式3的波特率在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率是可变的。

波特率的公式为:

式中:

K为定时器T1的位数。

34,定时器T1产生的常用波特率,35,7.3串行口的编程和应用,方式0用于扩展并行I/O口,方式1和方式3仅传送数位不同,方式2为固定波特率,方式1和方式3均需设置可变波特率,36,方式0用于扩展并行I/O口,串并方式,扩展并行输出口,电路图,RXDTXD,DATACLK,功能线,RXD接移位寄存器的数据输入端TXD接移位寄存器的同步时钟端,8031,串入并出移位寄存器,注:

注意信号方向,37,方式0用于扩展并行I/O口,并串方式,扩展输入口,电路图,功能线,RXDTXD,DATACLK,8031,并入串出移位寄存器,RXD接移位寄存器的数据输出端TXD接移位寄存器的同步时钟端,注:

注意信号方向,38,方式0用于扩展并行I/O口,例10.1:

用8031的串口外接1个串入并出移位寄存器芯片CD4094扩展为8位并行输出口,并口接8个LED,并循环轮流显示。

电路图,P1.0,DATACLK,TBS,CD4094,8031,TXD,RXD,39,方式0用于扩展并行I/O口,编程,ORG0000HLJMPMAINORG0023HLJMPSBRMAIN:

MOVSCON,#00XXXX0XB;方式0,TI=0SETBEASETBESMOVA,#10000000B;初值,左边LED亮CLRP1.0;CD4094输出并口关闭MOVSBUF,A;数据传出,产生中断LOOP:

SJMP$,40,方式0用于扩展并行I/O口,编程(续),SBR:

SETBP1.0;CD4094输出并口打开,LED亮ACALLDELAYCLRTI;手动清中断标志RRA;循环位移;80H、40H、20H、10H、08HCLRP1.0;CD4094输出并口关闭MOVSBUF,A;数据传出,产生中断RETIEND,注:

延时子程序DELAY未给出,41,方式0用于扩展并行I/O口,例10.2:

用8031的串口外接1个并入串出移位寄存器芯片CD4014扩展为8位并行输入口,并口接8个开关量输入,开关K闭合时有效。

电路图,P/S,CD4014,8031,P1.0,K,RXD,TXD,DATA,CLK,P1.1,42,方式0用于扩展并行I/O口,编程,START:

JBP1.0,START;若K未合上则循环查询SETBP1.1;CD4014并行数据输入有效MOVSCON,#00X1XXX0B;方式0,REN=1允许接收,RI=0CLRP1.1;CD4014串行数据输出有效LOOP:

JNBRI,LOOP;若RI=0数据未收完;若RI=1数据已收完CLRRI;手动清RI,准备下次传送数据MOVA,SBUF,43,方式1用于串行通信,例10.3:

8031串行口双工方式收发ASCII字符,最高1位用来作奇偶校验位,采用奇校验方式,波特率为1200。

工作方式,数据区,主频选用,方式1,7位ASCII码,1位校验码,发送数据区首址20H,接收数据区首址40H,T1设置,fosc=6MHz,方式2,初值为F4H(查表10.2),44,方式1用于串行通信,主程序(2个单片机均有),ORG0000HLJMPMAINORG0023HLJMPSBR1MOVTMOD,#20H;定时器T1设置为方式2MOVTL1,#0F4HMOVTH1,#0F4H;装定时器T1的初值SETBTR1;启动定时器T1,45,方式1用于串行通信,主程序(2个单片机均有),MOVSCON,#50H;串口工作方式1,REN=1MOVR0,#20H;发数据区首址MOVR1,#40H;收数据区首址SETBET1;开T1中断SETBES;开串口中断SETBEA;开总中断ACALLSOUT;调用发送子程序SJMP$,46,方式1用于串行通信,串行口中断服务程序,SBR1:

JNBRI,SENDACALLSIN;若RI=1,调用接收子程序SJMPNEXTSEND:

ACALLSOUT;若RI=0,调用发送子程序NEXT:

RETI,47,方式1用于串行通信,发送子程序,SOUT:

MOVA,R0MOVC,PCPLCMOVACC.7,CINCR0MOVSBUF,ACLR,TIRET,48,方式1用于串行通信,接收子程序,SIN:

MOVA,SBUFMOVC,PCPLCANLA,#7FHMOVR1,AINCR1CLRRIRET,49,7.3单片机串行口的应用,7.3.1串行口扩展显示器【例7-1】用8位串入并出移位寄存器74HC164扩展显示器。

50,功能:

把数据从显示缓冲区送到数码管。

入口;将要显示的数放在以DIS0为首的8个单元中。

出口:

把预置的数输出以更新原有的显示。

MOVR2,08H;显示8个数码管MOVR0,DIS7;显示缓冲区未地址送入R0DL0:

MOVA,R0;取要显示数作查表偏移量MOVDPTR,TAB;指向字形表首MOVCA,ADPTR;查表得字形码MOVSBUF,A;发送显示DL1:

JNBT1,DL1;等待发送完一帧CLRT1;清中断标志,准备继续发送DECR0;更新显示单元DJNZR2,DL0;重复显示所有数码管TAB:

DB0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4,DB92H,82H,0F8H,80H,90H;5,6,7,8,9,DB88H,83H,0C6H,0A1H,86H;A,B,C,D,E,DB8EH,0BFH,8CH,0FFH;F,P,暗,51,7.3.2串行口扩展的键盘,在方式0下,串行口作同步移位寄存器用,以8位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的,为fosc12。

串行数据由RXD(P3.0)端输入或输出。

52,CJNER1,08,LP1SJMPRCVIN1:

MOVA,R0ADDA,AJMPADPTRTAB:

AJMPOPR0AJMPOPR1AJMPOPR7OPR0:

LJMPSTARTOPR7:

LJMPSTARTEND,ORG0100HSTART:

MOVR7,20MOVR0,50HMOVDPTR,#TABRCVI:

MOVSCON,10HJNBRI,$CLRRIMOVA,SBUFMOVR0,#0MOVR1,#0LP1:

RRCAJNCN1INCR0INCR1,53,7.3.3双机通信,编程使乙机从甲机接收16个字节数据块,并存入片外3000H300FH单元。

接收过程中要求判奇偶校验标志RB8。

若出错则置F0标志为1,若正确则置F0标志为0,然后返回。

【例7-3】编程把甲机片内RAM50H5FH单元中的数据块从串行口输出。

定义在方式3下发送,TB8作奇偶校验位。

采用定时器1方式2作波特率发生器,波特率为1200波特,fosc110592MHz,预置值TH10E8H。

54,发送子程序如下:

MOVTMOD,#20H;设置定时器1为方式2MOVTL1,0E8H;设预置值MOVTH1,0E8HSETBTRI;启动定时器1MOVSCON,0C0H;设置串行口为方式3MOVPCON,00H;SMOD0MOVR0,#50H;设数据块指针MOVR7,10H;设数据长度10HTRS:

MOVA,R0;取数据送至AMOVC,PMOVTB8,C;奇偶位P送至TB8MOVSBUF,A启动发送WAIT:

JNBTI,$;判1帧是否发送完CLRTIINCR0;更新数据单元DJNZR7,TRS;循环发送至结束,55,接收子程序编程如下:

MOVTMOD,20H;设置定时器1为方式2MOVTL1,0E8H;设预置值MOVTH1,0E8HSETBTR1;启动定时器1MOVSCON,0C0H;设置串行口为方式3MOVPCON3,00H;SMOD0MOVDPTR,3000H;设置数据块指针MOVR7,10H;设数据块长度SETBREN;允许接收WAIT:

JNBRI,$;判1帧是否接收完CLRRI,56,MOVA,SBUF;读入1帧数据JNBPSW.0,PZ;奇偶位P为0则跳转JNBRB8,ERR;Pl,RB80则出错SJMPYES;二者全为1则正确PZ:

JBRB8,ERR;P0,RB8l则出错YES:

MOVXDPTR,A;正确,存放数据INCDPTR;修改地址指针DJNZR7,WAIT;判断数据块接收完否CLRPSW.5;接收正确且接收完清F0标志RET;返回ERR:

SETBPSW.5;出错则置F0标志为“l”RET;返回,57,作业10.110.3,58,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2