单片机串行口课件_第1页
单片机串行口课件_第2页
单片机串行口课件_第3页
单片机串行口课件_第4页
单片机串行口课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

单片机串行口课件第1页,共70页,2023年,2月20日,星期一异步通信方式01停止位起始位低位高位7位数据位奇偶校验停止位第N个字符第N-1个字符第2页,共70页,2023年,2月20日,星期一同步通信方式(Synchronous

DataCommunication)第3页,共70页,2023年,2月20日,星期一串行通信的波特率

波特率(bandrate)是异步通信中每秒钟传送的二进制数码的位数(比特数),单位是位/秒。作用:1、反映串行通信的速率;

2、反映对传输通道的要求:波特率越高,要求的传输通道的频带宽度就越宽。异步通信:波特率为每秒传送的字符数和每个字符位数的乘积。第4页,共70页,2023年,2月20日,星期一6.2MCS-51串行口的结构MCS-51有一个可编程的全双工串行通信接口,可作为通用异步收发器(UART),也可作为同步移位寄存器。它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率,给使用者带来很大的灵活性。第5页,共70页,2023年,2月20日,星期一串行口内部结构示意简图第6页,共70页,2023年,2月20日,星期一串行口控制寄存器SCON(1)SCON(98H)第7页,共70页,2023年,2月20日,星期一(2)PCON(87H)

电源控制寄存器PCON中只有SMOD位与串行口工作有关,如下图所示。电源控制寄存器PCON第8页,共70页,2023年,2月20日,星期一6.3串行口的4种工作方式方式的选择由SM0

、SM1实现。四种方式的比较:工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART起始位0、8位数据、结束位1可变(取决于定时器1溢出率)方式211位UART起始位0、8位数据、奇偶校验位和结束位1fosc/64或fosc/32方式311位UART同上可变(取决于定时器1溢出率)第9页,共70页,2023年,2月20日,星期一1.串行口方式0

同步移位寄存器方式

方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。其帧格式如下:串行数据通过RXD输入或输出,而TXD用于输出移位时钟,作为外接部件的同步信号。这种方式不适用于两个8051之间的串行通信,但可以通过外接移位寄存器来实现单片机的I/O接口扩展。第10页,共70页,2023年,2月20日,星期一串行口方式0的应用(P150,P169)

串行口扩展显示器

【例1】用8位串入并出移位寄存器74HC164扩展显示器。

第11页,共70页,2023年,2月20日,星期一功能:把数据从显示缓冲区送到数码管。

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

出口:把预置的数输出以更新原有的显示。编写程序实现:第12页,共70页,2023年,2月20日,星期一

MOV R7,#08H ;显示8个数码管

MOV R0,#DIS0

;显示缓冲区未地址送入R0DL0:MOV A,@R0 ;取要显示数作查表偏移量

MOV DPTR,#TAB ;指向字形表首

MOVC A,@A+DPTR;查表得字形码

MOV SBUF,A ;发送显示DL1:JNB T1,DL1 ;等待发送完一帧

CLR TI ;清中断标志,准备继续发送

DEC R0 ;更新显示单元

DJNZ R7,DL0 ;重复显示所有数码管

RETTAB:

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,暗第13页,共70页,2023年,2月20日,星期一74LS165其中A,B,C,D,E,F,G,H并行输入端。QH串行输出端。CLOCK:时钟输入端。CLOCKINHIBIT:时钟禁止端。当时钟禁止端CLK2为低电平时,允许时钟输入。SHIFT/LOAD:移位与置位控制端。SER:扩展多个74LS165的首尾连接端。74LS165是一个并行输入串行输出的移位寄存器。第14页,共70页,2023年,2月20日,星期一RI图(b)方式0接收电路及时序第15页,共70页,2023年,2月20日,星期一串行口方式0的应用(P150,P169)串行口扩展的键盘第16页,共70页,2023年,2月20日,星期一

ORG 0100HSTART: CLRP1.0;载入数据

NOP;NOP;SETBP1.0;数据输出

CLRP1.1;允许时钟输入RCVI:MOV SCON,#10HJNB RI,$ CLR RI MOV A,SBUF

…;判断键值,散转

OPR0:

LJMP STARTTAB:AJMPOPR0 AJMP OPR1

…AJMP OPR7

第17页,共70页,2023年,2月20日,星期一2.串行口方式1

—10位UART方式1以10位为一帧传输,设有1个起始位(0),8个数据位和1个停止位(1)。其帧格式为:方式1真正用于串行发送或接收,为10位通用异步接口。TXD(P3.1)引脚发送数据,RXD(P3.0)引脚接收数据。数据传输波特率由T1的溢出率决定,可用程序设定。在接收时,停止位进入SCON的RB8。串行口方式1的发送和接收时序如图(a)和(b)所示。第18页,共70页,2023年,2月20日,星期一方式1发送和接收时序只有当REN=1时,才能对RXD进行检测。第19页,共70页,2023年,2月20日,星期一①RI=0。即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中数据已被取走。由软件使RI=0,以便提供“接收SBUF已空”的信息。②SM2=0或收到的停止位为1(方式1时,停止位进入RB8)。满足上述两个条件,将接收到的数据装入串行口的SBUF和RB8(RB8装入停止位),并置位RI,通知CPU取数据;如果不满足,接收到的数据不能装入SBUF,这意味着该帧信息将会丢失。接收有效的两个条件:第20页,共70页,2023年,2月20日,星期一两个单片机之间的通信通信协议:数据格式、校验方式

波特率硬件连接第21页,共70页,2023年,2月20日,星期一2.串行口方式1的应用例:通过MCS-51串行口发送带存放在片内RAM20H~3FH中的数据,要求传送的波特率为1200bps。编写有关的通信程序。fosc=11.0592MHz。

分析:第22页,共70页,2023年,2月20日,星期一取SMOD=0 ∴(TH1)=232=0E8H

设串行口为方式1,定时器/计数器T1为方式2作为串行口的波特率发生器。可以避免计数溢出后用软件重装定时初值的工作。第23页,共70页,2023年,2月20日,星期一

ORG 0100H

MOV TMOD,#20H ;设T1为方式2 MOV TL1,#0E8H ;T1定时常数

MOV TH1,#0E8H SETB TR1 ;启动T1 MOV SCON,#01000000B;设串行口为方式1 MOV R0,#20H ;设发送数据区首址

MOV R7,#32 ;发送32个ASCII码数据LOOP:MOVA,@R0 ;取ASCII码数据

ACALLSP_OUT ;调用串行口发送子程序

INC R0 ;未发送完,则继续

DJNZ R7,LOOP

主程序:第24页,共70页,2023年,2月20日,星期一SP_OUT:MOVSBUF,A ;带校验位发送

JNBTI,$ ;发送等待

CLRTI;清TI标志

RET 串行口发送子程序:第25页,共70页,2023年,2月20日,星期一例:B机由串行口接收数据块。解:采用查询方式,本例与上例相呼应,接收器把接收到的32个数据存放在20H-3FH单元内,波特率同上。第26页,共70页,2023年,2月20日,星期一 MOVSCON,#01010000B;设串口方式1,允许接收

MOVTMOD,#20H;设置定时器T1为方式2 MOVTL1,#0E8H;初值,波特率为1200b/s MOVTH1,#0E8H SETBTR1 ;启动T1运行

MOVR0,#20H;数据存放首地址

MOVR7,#32;数据块长度LOOP:ACALLSP_IN ;调用接收一帧子程序

MOV@R0,A ;存放接收的数据

INCR0 DJNZR7,LOOP ……主程序:第27页,共70页,2023年,2月20日,星期一SP_IN: JNBRI,$ ;RI由硬件置位

CLRRI ;软件清除RI MOVA,SBUF RET接收一帧子程序:第28页,共70页,2023年,2月20日,星期一3.串行口方式2和3

—11位UART方式2和方式3以11位为1帧传输,设有1个起始位(0),8个数据位,1个附加第9位和1个停止位(1)。其帧格式为:附加第9位(D8)由软件置1或清0。发送时在TB8中,接收时送RB8中。方式2的波特率是固定的,为振荡器频率的1/32或1/64。方式3的波特率则由T1的溢出率决定,可用程序设定。方式2和方式3的发送、接收时序如图所示。其操作与方式1类似。第29页,共70页,2023年,2月20日,星期一方式2、方式3发送和接收时序只有当REN=1时,才能对RXD进行检测。第30页,共70页,2023年,2月20日,星期一发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址/数据标志位),然后将要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并装入到第9位数据位的位置,再逐一发送出去。发送完毕,使TI=1。发送过程第31页,共70页,2023年,2月20日,星期一接收时,使SCON中的REN=1,允许接收。当检测到RXD(P3.0)端有1→0的跳变(起始位)时,开始接收9位数据,送入移位寄存器(9位)。当满足RI=0且SM2=0,或接收到的第9位数据为1时,前8位数据送入SBUF,附加的第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效,也不置位RI。接收过程第32页,共70页,2023年,2月20日,星期一例:编制一个发送程序,将片内RAM中50H—5FH的数据串行发送。串行口设定为工作方式2,TB8作奇偶校验位。发送波特率375kb/s,晶振为12MHz,SMOD=1。解:在数据写入发送SBUF之前,先将数据的奇偶标志P写入TB8,此时,第9位数据便可作奇偶校验用。可采用查询和中断两种方式发送。第33页,共70页,2023年,2月20日,星期一

ORG0000H

AJMPMAIN

;上电,转向主程序

ORG0100H

;主程序MAIN: MOVSCON,#80H

;设工作方式2

MOVPCON,#80H

;取波特率为fosc/32

MOVR0,#50H

;首址50H送R0

MOVR7,#10H

;数值长度送R7LOOP: MOVA,@R0

;取数据

MOVC,P

;P→C

MOVTB8,C

;奇偶标志送TB8

MOVSBUF,A

;发送数据WAIT: JBCTI,CONT

AJMPWAIT

;等待中断标志TI=1CONT: INCR0

DJNZR7,LOOP

;数值尚未发送完,继续发送下一个数据

SJMP$

END第34页,共70页,2023年,2月20日,星期一例:编制一个接收程序,将接收的16B数据送入片内RAM的50H-5FH单元中。设串行口工作在方式2,波特率为375bps。解:第35页,共70页,2023年,2月20日,星期一源程序如下:MAIN:MOVSCON,#080H;串行口工作于方2;REN=1,可接收

MOVPCON,#80H ;设SMOD=1MOVR0,#50H

;首址50H送R0

MOVR7,#10H

;数值长度送R7SETBREN ;启动接收WAIT:JBCRI,PR1 ;接收完一帧数据,清RI,转PR1SJMPWAIT ;否则等待PR1:MOVA,SBUF;读入数据

JNBP,PNP;P=0,转PNP JNBRB8,ERR;P=1,RB8=0,转出错处理

SJMPRIGHTPNP:JBRB8,ERR;P=0,RB8=1,转出错处理RIGHT:MOV@R0,A;数据送内存

INCR0;修改地址指针

DJNZR7,WAIT;数据未接收完,;继续接收下一个数据

CLRF0 ;置正确接收完毕标志F0=0SJMPENDTERR:SETBF0ENDT:SJMP$

第36页,共70页,2023年,2月20日,星期一4.波特率的设定在串行通信中,要求收发双方接收和发送数据的波特率必须一致。通过软件对MCS-51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定(T1每秒溢出的次数)。串行口的四种工作方式对应着三种波特率。由于输入的移位时钟来源不同,因此,各种方式的波特率计算公式也不同。第37页,共70页,2023年,2月20日,星期一(1)方式0的波特率由下图可见,方式0时,每个机器周期产生一个移位时钟,发送或接收一位数据。因此,波特率固定为振荡频率的1/12,并不受PCON寄存器中SMOD位的影响。串行口方式0波特率的产生第38页,共70页,2023年,2月20日,星期一(2)方式2的波特率方式2波特率取决于PCON中SMOD位的值:

SMOD=0时,波特率为fosc的1/64;

SMOD=1时,波特率为fosc的1/32。即:方式2波特率≌(2SMOD/64)×foscfosc=12MHz,SMOD=0,187.5kbpsSMOD=1,375kbps第39页,共70页,2023年,2月20日,星期一(3)方式1和方式3的波特率方式1和方式3的移位时钟脉冲由定时器T1产生,如图所示。因此,MCS-51串行口方式1和方式3的波特率由定时器T1的溢出率与SMOD值共同决定。即方式1、方式3波特率≌(2SMOD/32)×T1溢出率串行口方式1、方式3波特率的产生第40页,共70页,2023年,2月20日,星期一其中,T1溢出速率取决于T1的计数速率(计数速率≌fosc/12)和T1预置的初值。其中,k为定时器T1的位数定时器方式0,k=13;定时器方式1,k=16;定时器方式2,k=8。第41页,共70页,2023年,2月20日,星期一例:若定时器T1工作于方式1,采用11.059MHz的晶振,要求利用定时器1产生1200bps的波特率,则令SMOD=0,可算得初值为那么,TH1的初值为0FFH,TL1的初值为0E8H。第42页,共70页,2023年,2月20日,星期一有关的程序如下:MAIN: MOVTMOD,#10H;置定时器T1为方式1 MOVTL1,#0E8H;装入初值

MOVTH1,#0FFH MOVPCON,#00H;SMOD=0 SETBEA;开放CPU中断

SETBET1

;开放定时器T1中断

SETBTR1;启动T1运行

……如果定时器T1工作于方式1,T1作为波特率发生器,需在T1溢出中断服务程序中重装初值。T1溢出中断服程序:

MOVTL1,#0E8H;重新装入初值

MOVTH1,#0FFHRETI;中断返回第43页,共70页,2023年,2月20日,星期一由于T1方式2是定时器自动重装载的操作模式,当定时器T1工作在方式2时,可直接用作串行口的波特率发生器。与上例相同,算得初值和重装载值为:第44页,共70页,2023年,2月20日,星期一有关程序:

MOVTMOD,#20H;置T1为方式2MOVTL1,#0E8H;装入初值

MOVTH1,#0E8HMOVPCON,#00H;SMOD=0SETBTR1;启动T1运行

MOVSCON,#01000000B;设置串行口为方式1……第45页,共70页,2023年,2月20日,星期一FFHFDHFDHFAHF4HE8H1DH72HFEEBH2222222210000000001100000001211.059211.059211.059211.059211.059211.0592612方式1、3:62.5KHz19.2KHz9.6KHz4.8KHz2.4KHz1.2KHz137.5Hz110Hz110HzXXX112方式2最大值:375KHzXXXX12方式0最大值:1MHz重置装入值方式C/T定时器1SMODf(MHz)波特率串行口方式1、方式3常用波特率及其初值第46页,共70页,2023年,2月20日,星期一串行口从机0#主机串行口……串行口从机1#串行口从机n#多机通讯系统示意图6.4多机通讯第47页,共70页,2023年,2月20日,星期一多机通讯原理

问题1:多机通信时主机如何寻找从机?

问题2:如何区分地址和数据信息?

串行口控制寄存器SCON中的SM2为多机通讯控制位。串行口工作于方式2或3。

SM2------多机通讯位;

TB8/RB8----地址/数据标志位;第48页,共70页,2023年,2月20日,星期一SM2、RB8与从机动作关系SM2RB8从机动作10不能接收数据11能收到主机发的数据(TB8=1,地址信息)00进入串口中断,对接收的数据进行处理01进入串口中断,对接收的数据进行处理第49页,共70页,2023年,2月20日,星期一多机通信过程所有从机的SM2=1,处于只接收地址帧状态;主机发地址信息,以第9位TB8=1表示发送的是地址帧;从机接收到地址帧后与本机地址比较;被寻址从机SM2=0,其它从机SM2=1不变;主机发送数据(TB8=0),对已被寻址的从机因SM2=0,可以接收主机发来的信息。其余从机因SM2=1不接收主机数据;被寻址的从机SM2置1,主机可另发地址帧与其它从机通信。第50页,共70页,2023年,2月20日,星期一6.5串行口的编程和应用编程注意事项设置串行口工作方式设置波特率(SMOD,若是方式1、3,设置TI初值)若串行口接收数据,REN必须赋值为1TI和RI标志,须由软件清0第9位第51页,共70页,2023年,2月20日,星期一1.8051单片机片内有一个全双工的异步串行口(UART)。2.MCS-51串行口可设置为4种工作方式,由特殊功能寄存器SCON的SM0、SM1位定义。3.串行口4种工作方式的特点方式0:同步移位寄存器方式1:10位UART(波特率可变)方式2:11位UART方式3:11位UART(波特率可变)4.波特率的设置方式0:仅与fosc相关;方式2:与fosc和PCON的SMOD位相关;方式1和方式3:与SMOD及T1的溢出率相关。5.串行口的编程:查询和中断。本章总结第52页,共70页,2023年,2月20日,星期一电子音响设计要求:单片机演奏音乐实现基本方法(1)音符音调(音高)客观:音符的频率(2)音符节拍音符的长度程序设计第53页,共70页,2023年,2月20日,星期一电子音响(1)(1)音符音调(音高):音符的频率音名:CDEFGAB标准音高A:每秒振动440次,即f=440Hz相邻的音组中相同音名的两个音,包括变化音级,称之为八度。

八度音阶由12个音集合而成,音阶的分度以对数关系划分21/12=1.059463若f1距f2n个半音,则运算公式:n个半音=12*log2(f1/f2))例:C比A低9个半音,计算C的頻率f,-9=12*log2(f/440)得f=261.6

唱名:

12345671

do,re,mi,fa,so,la,ti,doC调音阶do,re,mi,fa,so,la,ti,do,為261.6,293.7,329.6,349.2,392.0,440.0,493.9,523.2。其中第一个do为261.6Hz,第二个do为523.2Hz是第一个do的2倍。第54页,共70页,2023年,2月20日,星期一电子音响(1)(1)音符音调(音高):音符的频率程序设计产生一个音符:C调音阶do产生C调音阶do,re,mi,fa,so,la,ti,do,每一个音阶持续100ms261.6,293.7,329.6,349.2,392.0,440.0,493.9,523.2。第55页,共70页,2023年,2月20日,星期一电子音响(2)(1)音符音调(音高):音符的频率程序设计第56页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间在简谱中,1、2、3、4、5、6、7这七个基本音符,不仅表示音的高低,而且还是表示时值长短的基本单位,称为四分音符,其他音符均是在四分音符的基础上,用加记短横线“-”和附点“·”表示。相邻两种音符之间的时值比例为2∶1

第57页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间在简谱中,1、2、3、4、5、6、7这七个基本音符,不仅表示音的高低,而且还是表示时值长短的基本单位,称为四分音符,其他音符均是在四分音符的基础上,用加记短横线“-”和附点“·”表示。在简谱中,如果音符时值的长短用短横线"-"表示,就称为单纯音符

第58页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间在简谱中,加记在单纯音符的右侧的、使音符时值增长的小圆点"·",称为附点。加记附点的音符称为附点音符。附点本身并无一定的长短,其长短由前面的单纯音符来决定。附点的意义在于增长原音符时值的一半,常用于四分音符和小于四分音符的各种音符之后。第59页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间歌曲被划分成小节:一个普通歌曲的长度大约有100小节。在音乐中,时间被分成均等的基本单位,每个单位叫做一个“拍子”或称一拍。表示每小节中基本单位拍的时值和数量的记号,称拍号。拍号通常用分数来标记,分子表示每小节中单位拍的数目,分母表示单位拍的音符时值,例如3/4,它的含义是“每小节有三拍,每拍是四分音符”,或简单地说“每小节有三个四分音符”。节拍是按拍号要求相隔一定时间反复出现重音的模式,或者说,它是固定的强弱音。第60页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间下面是一些常见的拍子:偶数类,有2/2(每小节有两个二分音符)、2/4、4/4、4/8(每小节有四个八分音符)等,这些偶数节拍是对称的,带有行进的特点;奇数类,有3/2(每小节有三个二分音符)、3/4、3/8、6/4、6/8、9/8等;它们听上去带有旋转性,因此常常和舞曲有关。第61页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间歌曲被划分成小节:每个小节都是确定的拍长;节拍具体在乐谱中指的是每一小节的音符总长度。那么一拍到底该唱多长呢?速度是指节拍的速率。它大致可以分为三大类:慢、快和适中。拍子的时值是一个相对的时间概念,比如当乐曲的规定速度为每分钟60拍时,每拍占用的时间是一秒;当规定速度为每分钟120拍时,每拍的时间是半秒,依此类推。拍子的基本时值确定之后,各种时值的音符就与拍子联系在一起。第62页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间那么一个音符到底该唱多长呢?拍号通中的分母表示单位拍的音符时值拍子的时值可以是四分音符、二分音符,也可以是八分音符。例如,当以四分音符为一拍时,一个全音符相当于四拍,一个二分音符相当于两拍,八分音符相当于半拍,十六分音符相当于四分之一拍;如果以八分音符做为一拍,则全音符相当于八拍,二分音符是四拍,四分音符是两拍,十六分音符是半拍。第63页,共70页,2023年,2月20日,星期一电子音响(2)(2)音符节拍:音符的持续时间一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms。我们以一拍的时长为400ms为例,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms。第64页,共70页,2023年,2月20日,星期一电子音响(2)(1)音符音调(音高):音符的频率程序设计产生C调音阶do,re,mi,fa,so,la,每一个音阶持续演奏200ms,200ms,100ms,100ms,200ms,400ms。第65页,共70页,2023年,2月20日,星期一本章结束第66页,共70页,2023年

温馨提示

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

评论

0/150

提交评论