您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第8章单片机串行通信及其接口
第8章串行通信及其接口•8.1概述•8.2MCS-51的串行口•8.3串行口的控制8.1概述•串行通信:数据一位接一位顺序传送,可只用一根数据线传送多位信息。返回本章首页8.1概述•串行通信有两种基本方式。同步通信SYNC(SynchronousDataCommunication):严格同步,发送同步码,数据连续,信息量大,速度较高异步通信ASYNC(AsynchronousDataCommunication):帧格式传送,信息量不大返回本章首页异步通信一幀字符信息的结构异步串行通信数据格式同步字符CRC字符开始终止数据块同步通信数据格式幀结构8.1概述•串行通信从传输方式分为:串行接口有单工、半双工和全双工3种返回本章首页8.1概述•RS-232C总线•I2C--PHILIPS公司推出的I2C总线(INTELICBUS)•SPI--(SerialPeripheralInterface--串行外设接口)返回本章首页串行接口的连接的三种方法1三线连接2RS-232接口连接3modem方式连接TXDRXDGNDTXDRXDGND三线链接TXDRXDGNDTXDRXDGNDRS232电平转换RS232电平转换RS232接口连接串行通信的传送速率传送速率用于描述数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送格式位的数目来表示,称之为波特率(baudrate)。每秒传送一个格式位就是1波特,即:1波特=1bps(位/秒)在串行通信中,格式位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率也高,通信速度就快;反之,时钟频率低,则波特率也低,通信速度也慢。起始位D0D1D2D4D3D5D6D7X标志停止位检验位RS232C总线上传输的异步通信典型数据格式分类符号名称引脚说明地线机架保护地(屏蔽地)1信号地(公共地)7数据信号线TXD数据发送线2在无数据信息传输或收/发信息间隔期,RXD/TXD电平为1。辅助信道传输速率较主信道低。其余同RXD数据接收线3TXD辅助信道数据发送线14RXD辅助信道数据接收线16定时信号线DCE发送信号定时15指示被传输的每个bit信息的中心位置DCE接收信号定时17DTE发送信号定时24控制线RTS请求发送4DTE发给DCECTS允许发送5DCE发给DTEDSRDCE装置就绪6DTRDTE装置就绪20DTE发给DCEDCD接收信号(载波)检测8DTE收到满足标准的信号时置位振铃指示22由DCE收到振铃时置位信号质量检测21由DCE根据数据信息是否有错而置位/复位数据信号速率选择23指定两种传输速率中的一种RTS辅助信道请求发送19CTS辅助信道允许发送13RCD辅助信道接收检测12备用线9未定义,保留供DCE装置测试使用10111825RS232C信号线及其在DB-25的针脚号8.1概述•串行接口结构图返回本章首页8.2MCS-51的串行口•8.2.1串行口的结构•8.2.2串行口的工作方式•8.2.3波特率的计算返回本章首页中断请求8.2.1串行口的结构•MCS-51单片机片内有一个串行接口,可提供同步或全双工异步串行通信方式.设有二个互相独立的接收\发送缓冲器,可分别接受和发送数据发送缓冲器只能写入,接收缓冲器只能读出两个缓冲器可共用一个地址码99H发送:MOVSBUF,A接收:MOVA,SBUF中断请求8.2.1串行口的结构•与串行口有关的特殊功能寄存器有:SCON:串行口控制寄存器SBUF:缓冲寄存器PCON:功耗控制寄存器(D7:SMOD为波特率系数选择位)。8.2.1串行口的结构1.串行口控制寄存器SCON(98H),可位寻址SM0SM1:确定4种工作方式SM2:多机通信控制位REN:允许串行接收位TB8:待发送的第9位数据RB8:接受到的第9位数据TI和RI:发送和接收中断标志位(注:软件清零)SCON(98h)位地址SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998D7D6D5D4D3D2D1D02.特殊功能寄存器PCON•其字节地址为87H,没有位寻址功能。PCON的格式如图7-7所示,其中与串行接口有关的只有D7位。PCONSMODD7D6D5D4D3D2D1D0返回本节8.2.2串行口的工作方式1.方式0(移位寄存器方式)发送/接收时序发送接收2.方式1(8位UART)发送/接收时序发送接收3.方式2(9位UART)发送/接收时序发送发送数据TXD端输出,发送11位数据。第9位为可程控的数据,在SCON的TB8中。TB8由软件值1或清零。•多机通讯,作为发送地址(1)或数据(0)的标志位。•双机通讯,作为奇偶校验位。接收数据由RXD端输入,接收11位信息,当接收器采样到RXD端从1到0的跳变,开始接收一帧信息。当SM2=1,仅接受地址信号。地址匹配,SM2,-0。SM2=0,接受数据及地址信号。(RB8=1为地址信号,RB8=0为有效数据位)SCON位地址SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998D7D6D5D4D3D2D1D04.方式3(9位UART)•当SM0SM1=11时,串行口工作在方式3。方式3为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。返回本节8.2.3波特率的计算串行口方式0的波特率是固定的,为系统时钟的12分频(fosc/12),即每个机器周期传送一位数据位。串行口用方式2工作时,波特率为(2SMOD/64)×fosc。串行口方式1和方式3用定时器T1作为波特率发生器,其波特率有多种选择,与T1的溢出率有关串行口方式1、3的波特率=(2SMOD/32)×T1溢出率T1的溢出率即T1溢出时间的倒数,它与T1选择的功能、工作方式和预置初值等有关8.2.3波特率的计算若定时器T1设定为自动重装方式,T1的溢出率及串行口波特率算式如下:当单片机与PC机通讯,工作于串行工作方式1,假定波特率为9600波特,当单片机的fOSC=11.0592MHZ,波特率=(2SMOD/32)×T1溢出率,T1溢出率=(28-X)*fOSC/12SMOD=1时,X=256-fOSC*2/(384*9600)=250=0FAH将X写入TH1和TL1时,若波特率发生器产生的实际传输率为波特率=9599.84波特波特率相对误差=(9600—9599.84)/9600=0.00177%表8-3常用的波特率及计算器初值返回本节8.3串行口的控制•一、利用串行口扩展I/O•二、主从机间的通信•三、多机通信接口返回本章首页一、利用串行口扩展I/O单片机串行工作方式0—8位同步移位寄存器•利用74LS164扩展并行口,编制程序使L0~L7以计数方式点亮。•2、共阴数码管八段码ABCDEFGP分别接74LS164的输出口Q7~Q0,左移位显示0~9串并转换,发光二极管显示程序设计ORG0000HLJMPMAINORG000BHLJMPINT_T0MAIN:MOVSP,#53HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#82HSETBTR0MOVR0,#30HMOVR1,#0AHMOVSCON,#00HCLRTINEXT:MOVA,@R0SETBP1.0MOVSBUF,AJNBTI$CLRTICLRP1.0INCR0CLRF0JNBF0,$CLRF0LJMPNEXTEND初始化:串口方式0定时器方式1等待1S串口发送数据查询发送完否(TI=‘1’)TI=‘0’显示数据指针+1YN1秒定时程序(1秒钟F0-1)INT_T0:PUSHACCPUSHPSWCLREAMOVTL0,#3CHMOVTH0,#0B0HDJNZR1,EXITMOVR1,#0AHSETBF0EXIT:SETBEAPOPPSWPOPACCRETI定时初值中断允许串口方式0定时1S串行发送关闭并行输出开启并行输出串并转换,LED显示程序设计ORG0000HLJMPMAINORG000BHLJMPINT_T0OGR0030HMAIN:MOVSP,#53HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#82HSETBTR0MOVR0,#30HMOVR1,#0AHMOVSCON,#00HCLRTINEXT:MOVA,@R0MOVDPTR,#CDATAMOVCA,@A+DPTR初始化:串口方式0定时器方式1等待1S串口发送LED字型码查询发送完否(TI=‘1’)TI=‘0’显示数据指针+1YNSETBP1.0MOVSBUF,AJNBTI$CLRP1.0CLRTIINCR0CLRF0JNBF0,$CLRF0LJMPNEXTENDCDATA:DB0FCH,60HDB0DAH,0F2HDB66H,0B6HDB0BEH,0E0HDB0FEH,0F6H(abcdefgh)二、主从机间的通信1.双机串行异步通信单片机与单片机间的串行异步通信接口设计(如图8-14~8-16所示)单片机与PC系列微机间的异步串行通信接口设计(如图8-17所示)图8-14两台8031直接通信图8-15两台8031采用RS232C总线通信图8-16两台8751互传数据图8-178031单片机和PC机通过RS232C总线通信接口图程序设计1、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部RAM40H~4FH单元的内容传送到乙机外部RAM1000H~100FH单元,请编程实现。ORG0000HLJMPMAINORG0023HLJMPT_PGORG0030HMAIN:MOVSP,#60HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#00HMOVSCON,#40HMOVR0,#40HMOVR1,#10HSETBEASETBES假设fsoc=6MHz,串行工作方式1,smod=0,则计数初值为:X=256-6*106*20/(384*1200)=256-13=FFH+1-13=0F3HSETBTR1MOVA,@R0CLRTIMOVSBUF,ASJMP$T_PG:DJNZR1,NEXTCLRESCLRTR1LJMPBACKNEXT:INCR0MOVA,@R0CLRTIMOVSBUF,ABACK:RETIsmod=0方式1,REN=0中断允许取数发送甲机发送程序:程序设计1、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部RAM40H~4FH单元的内容传送到乙机外部RAM1000H~100FH单元,编程实现。ORG0000HLJMPMAINORG0023HLJMPR_PGORG0030HMAIN:MOVSP,#60HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#00HMOVSCON,#50HMOVDPTR,#1000HMOVR1,#10HSETBEASETBESSETBTR1CLRRISJMP$R_PG:MOVA,SBUFMOV@DPTR,ACLRRIINCDPTRDJNZR1,BACKCLRESCLRTR1BACK:RETIsmod=0方式1,REN=1中断允许接受送外存乙机接受程序:8.3.2多机通信接口1.多机通信原理•串行口控制寄存器SCON中的SM2为多机通信接口控制位。•RB8=1为地址信号,RB8=0为有效数据位•串行口以方式2或3接收时,SM2=1,则仅当接收到的第9位数据RB8为1时,数据才装入SBUF,置位RI,请求CPU对数据进行处理;地址匹配,SM2,-0。当SM2=0时,则接收到一个数据后,不管第9位数据RB8是0还是1,都将数据装入接收缓冲器SBUF并置位中断标志RI,请求CPU处理。……2.多机通信程序设计MCS-51多机通信程序设计以典型的PC机和MCS-51构成的主从式多机系统为例,如图7-23所示,阐述多机通信的程序设计。多机通信示意……图7-23PC机
本文标题:第8章单片机串行通信及其接口
链接地址:https://www.777doc.com/doc-319475 .html