第8章单片机串行通信及其接口_第1页
第8章单片机串行通信及其接口_第2页
第8章单片机串行通信及其接口_第3页
第8章单片机串行通信及其接口_第4页
第8章单片机串行通信及其接口_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第第8章章 串行通信及其接口串行通信及其接口8.1 概述概述8.2 MCS-51的串行口的串行口8.3 串行口的控制串行口的控制8.1 概述概述串行通信:串行通信: 数据一位接一位顺序传送,可只用一根数据线传送多位信息。数据一位接一位顺序传送,可只用一根数据线传送多位信息。返回本章首页8.1 概述概述串行通信有两种基本方式串行通信有两种基本方式。 同步通信同步通信SYNCSYNC(Synchronous Data Communication): :严格同步严格同步, ,发送同步码发送同步码, ,数据连续数据连续, ,信息量大信息量大, ,速度较高速度较高 异步通信异步通信ASYNCASYNC(

2、Asynchronous Data Communication): :帧格式帧格式传送传送, ,信息量不大信息量不大返回本章首页异步通信一幀字符信息的结构异步串行通信数据格式同步字符CRC字符开始终止数据块同步通信数据格式幀结构8.1 概述概述串行通信从传输方式分为:串行通信从传输方式分为:串行接口有单工、半双工和全双工串行接口有单工、半双工和全双工3种种返回本章首页8.1 概述概述RS-232C总线总线I2C-PHILIPS公司推出的公司推出的 I2C总线(总线(INTEL IC BUS)SPI-(Serial Peripheral Interface-串行外设接口串行外设接口)返回本章首页

3、串行接口的连接的三种方法 1 三线连接 2 RS-232接口连接 3 modem方式连接 TXDRXDGND TXDRXDGND三线链接TXDRXDGNDTXDRXDGNDRS232电平转换RS232电平转换RS232接口连接 串行通信的传送速率串行通信的传送速率传送速率用于描述数据传送的快慢。在串行通信中,数据是按位进行传送的,因此传送速率用每秒钟传送格式位的数目来表示,称之为波特率(baud rate)。每秒传送一个格式位就是1波特,即: 1波特=1bps(位/秒) 在串行通信中,格式位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率也高,通信速度就快;反之,

4、时钟频率低,则波特率也低,通信速度也慢。 起 始位D0D1D2D4D3D5D6D7X标志停止位检验位RS232C总线上传输的异步通信典型数据格式分类符号名称引脚说明地线 机架保护地(屏蔽地)1 信号地(公共地)7 数据信号线TXD数据发送线2在无数据信息传输或收/发信息间隔期,RXD/TXD电平为1。辅助信道传输速率较主信道低。其余同RXD数据接收线3TXD辅助信道数据发送线14RXD辅助信道数据接收线16定时信号线 DCE发送信号定时15指示被传输的每个bit信息的中心位置 DCE接收信号定时17 DTE发送信号定时24 控制线RTS请求发送4DTE发给DCECTS允许发送5DCE发给DTE

5、DSRDCE装置就绪6 DTRDTE装置就绪20DTE发给DCEDCD接收信号(载波)检测8DTE收到满足标准的信号时置位 振铃指示22由DCE收到振铃时置位 信号质量检测21由DCE根据数据信息是否有错而置位/复位 数据信号速率选择23指定两种传输速率中的一种RTS辅助信道请求发送19 CTS辅助信道允许发送13RCD辅助信道接收检测12备用线 9未定义,保留供未定义,保留供DCE装置测试使用装置测试使用 10 11 18 25RS232C信号线及其在信号线及其在DB-25的针脚号的针脚号8.1 概述概述串行接口结构图串行接口结构图返回本章首页8.2 MCS-51的串行口的串行口8.2.1

6、串行口的结构串行口的结构8.2.2 串行口的工作方式串行口的工作方式8.2.3 波特率的计算波特率的计算返回本章首页中断请求中断请求8.2.1 串行口的结构串行口的结构 MCS-51单片机片内有一个串行接口,可提供同步或全单片机片内有一个串行接口,可提供同步或全 双工异步串行通信方式双工异步串行通信方式.设有二个互相独立的设有二个互相独立的 接收接收发送缓冲器发送缓冲器,可可 分别接受和发送数据分别接受和发送数据发送缓冲器只能写入发送缓冲器只能写入, 接收缓冲器只能读出接收缓冲器只能读出两个缓冲器可共用一两个缓冲器可共用一 个地址码个地址码99H 发送:发送:MOV SBUF,A 接收:接收:

7、MOV A,SBUF中断请求中断请求8.2.1 串行口的结构串行口的结构与串行口有关的特殊功能寄存器有与串行口有关的特殊功能寄存器有:SCON:串行口控制寄存器串行口控制寄存器SBUF :缓冲寄存器缓冲寄存器PCON:功耗控制寄存器功耗控制寄存器(D7: SMOD为波特率系数选择位为波特率系数选择位) 。8.2.1 串行口的结构串行口的结构1串行口控制寄存器串行口控制寄存器SCON (98H),可位寻址,可位寻址SM0 SM1:确定确定4种工作方式种工作方式SM2:多机通信控制位多机通信控制位REN:允许串行接收位允许串行接收位TB8:待发送的第待发送的第9位数据位数据RB8:接受到的第接受到

8、的第9位数据位数据TI和和RI:发送和接收中断标志位发送和接收中断标志位(注注:软件清零软件清零)SCON(98h)位地址SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998 D7D6D5D4D3D2D1D02特殊功能寄存器特殊功能寄存器PCON其字节地址为其字节地址为87H,没有位寻址功能。,没有位寻址功能。PCON的的格式如图格式如图7-7所示,其中与串行接口有关的只有所示,其中与串行接口有关的只有D7位。位。PCONSMOD D7D6D5D4D3D2D1D0 返回本节8.2.2 串行口的工作方式串行口的工作方式1方式方式0 (移位寄存器方式)发送(移位寄存器方式)

9、发送/接收时序接收时序发送发送接收接收2方式方式1 (8位位UART) 发送发送/接收时序接收时序发送发送接收接收3方式方式2 (9位位UART)发送发送/接收时序接收时序发送发送发送数据发送数据TXD端输出,发送端输出,发送11位数据。位数据。第第9位为可程控的数据,在位为可程控的数据,在SCON的的TB8中。中。TB8由软件值由软件值1或清零。或清零。多机通讯,作为发送地址(多机通讯,作为发送地址(1)或数据()或数据(0)的标志位。)的标志位。双机通讯,作为奇偶校验位。双机通讯,作为奇偶校验位。接收接收数据由数据由RXDRXD端输入,接收端输入,接收1111位信息,位信息,当接收器采样到

10、当接收器采样到RXDRXD端从端从1 1到到0 0的跳变,开始接收一的跳变,开始接收一帧信息。帧信息。当当SM2=1SM2=1,仅接受地址信号。地址匹配,仅接受地址信号。地址匹配, SM2,- 0SM2,- 0。SM2=0SM2=0,接受数据及地址信号。,接受数据及地址信号。(RB8=1(RB8=1为地址信号,为地址信号, RB8=0RB8=0为有效数据位)为有效数据位)SCON位地址SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998 D7D6D5D4D3D2D1D04方式方式3 (9位位UART) 当当SM0SM1=11时,串行口工作在方式时,串行口工作在方式3。方

11、式。方式3为波特率可变的为波特率可变的9位异步通信方式,除了波特率外,位异步通信方式,除了波特率外,方式方式3和方式和方式2相同。相同。返回本节8.2.3 波特率的计算波特率的计算l串行口方式0的波特率是固定的,为系统时钟的12 分频(fosc/12),即每个机器周期传送一位数据位。l串行口用方式2工作时,波特率为(2SMOD/64)fosc 。 l串行口方式1和方式3用定时器T1作为波特率发生器, 其波特率有多种选择,与T1的溢出率有关l串行口方式1、3的波特率= (2SMOD32)T1溢出率lT1的溢出率即T1溢出时间的倒数,它与T1选择的 功能、工作方式和预置初值等有关8.2.3 波特率

12、的计算波特率的计算l 若定时器T1设定为自动重装方式,T1的溢出率及串 行口波特率算式如下:l当单片机与PC机通讯,工作于串行工作方式1,假 定波特率为9600波特,当单片机的fOSC=11.0592MHZ, 波特率= (2SMOD32)T1溢出率, T1溢出率=(28-X)*fOSC/12lSMOD1时, X256- fOSC*2/(384*9600)= 2500FAHl将X写入TH1和TL1时,若波特率发生器产生的实际传输率为波特率9599.84波特l波特率相对误差=(96009599.84)/9600=0.00177%表8-3 常用的波特率及计算器初值返回本节8.3 串行口的控制串行口的

13、控制一、利用串行口扩展一、利用串行口扩展I/O二、二、 主从机间的通信主从机间的通信三、三、 多机通信接口多机通信接口返回本章首页一、利用串行口扩展一、利用串行口扩展I/O l l 单片机串行工作方式单片机串行工作方式08位同步移位寄存器位同步移位寄存器利用利用74LS16474LS164扩展并行口,编制程序使扩展并行口,编制程序使L0L0L7L7以计数方式以计数方式点亮。点亮。2 2、共阴数码管八段码、共阴数码管八段码ABCDEFGPABCDEFGP分别接分别接74LS16474LS164的输出口的输出口Q7Q7Q0Q0,左移位显示,左移位显示0 09 9串并转换,发光二极管显示程序设计串并

14、转换,发光二极管显示程序设计 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BHLJMP INT_T0LJMP INT_T0MAIN: MOV SP,#53HMAIN: MOV SP,#53H MOV TMOD, #01HMOV TMOD, #01HMOVTH0,#3CHMOVTL0,#0B0HMOVIE, #82HSETBTR0MOV R0,#30HMOV R0,#30H MOV R1,#0AH MOV R1,#0AH MOV SCON,#00H MOV SCON,#00H CLR TI CLR TINEXT: MOV A,

15、 R0NEXT: MOV A, R0 SETB P1.0 SETB P1.0 MOV SBUF,A MOV SBUF,AJNB TI $JNB TI $ CLR TI CLR TICLR P1.0CLR P1.0 INC R0 INC R0 CLR F0 CLR F0JNB F0, $ JNB F0, $ CLR F0CLR F0 LJMP NEXT LJMP NEXT END END初始化:串口方式初始化:串口方式0定时器方式定时器方式1等待等待1S串口发送数据串口发送数据查询发送完否查询发送完否 (TI=1 )TI=0显示数据指针显示数据指针+1YN1 1秒定时程序(秒定时程序(1 1秒钟

16、秒钟 F0-1)F0-1)INT_T0: PUSH ACCINT_T0: PUSH ACC PUSH PSW PUSH PSW CLR EA CLR EA MOV TL0,#3CH MOV TL0,#3CH MOV TH0,#0B0H MOV TH0,#0B0H DJNZ R1,EXIT DJNZ R1,EXIT MOV R1,#0AH MOV R1,#0AH SETB F0 SETB F0 EXIT: SETB EAEXIT: SETB EA POP PSW POP PSW POP ACC POP ACC RETI RETI定时定时初值初值中断中断允许允许串口串口方式方式0定时定时1S串行串

17、行发送发送关闭并行输出关闭并行输出开启并行输出开启并行输出串并转换,串并转换,LED显示程序设计显示程序设计 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP INT_T0 LJMP INT_T0 OGR 0030H OGR 0030HMAIN:MOV SP,#53HMAIN:MOV SP,#53H MOV TMOD, #01H MOV TMOD, #01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H SETB TR0 MOV R0,#30H MOV R0,#30H MOV R1,

18、#0AH MOV R1,#0AH MOV SCON,#00H MOV SCON,#00H CLR TI CLR TINEXT:MOV A,R0NEXT:MOV A,R0 MOV DPTR,#CDATA MOV DPTR,#CDATA MOVC A,A+DPTR MOVC A,A+DPTR初始化:串口方式初始化:串口方式0定时器方式定时器方式1等待等待1S串口发送串口发送LED字型码字型码查询发送完否查询发送完否 (TI=1 )TI=0显示数据指针显示数据指针+1YN SETB SETB P1.0 MOV SBUF,A JNB TI $ CLR P1.0 CLR TI INC R0 CLR F0

19、 JNB F0, $ CLR F0CLR F0 LJMP NEXT LJMP NEXT END ENDCDATA:DB 0FCH,60HCDATA:DB 0FCH,60H DB 0DAH,0F2H DB 0DAH,0F2H DB 66H,0B6H DB 66H,0B6H DB 0BEH,0E0H DB 0BEH,0E0H DB 0FEH,0F6H DB 0FEH,0F6H (abcdefgh (abcdefgh) )二、二、 主从机间的通信主从机间的通信1双机串行异步通信双机串行异步通信l l 单片机与单片机间的串行异步通信接口设计单片机与单片机间的串行异步通信接口设计(如图如图8-148-1

20、6所示所示 )l l 单片机与单片机与PC系列微机间的异步串行通信接口系列微机间的异步串行通信接口设计(设计(如图如图8-17所示)所示)图8-14 两台8031直接通信图8-15 两台8031采用RS232C总线通信图8-16 两台8751互传数据图8-17 8031单片机和PC机通过RS232C总线通信接口图程序设计程序设计1、假定甲、乙机进行串行数据通信,其波特率为、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部。甲机将内部RAM 40H4FH单元的内容传送到乙机外部单元的内容传送到乙机外部RAM 1000H100FH单元,请编程实现。单元,请编程实现。ORG 0000HL

21、JMPMAINORG0023HLJMPT_PGORG0030HMAIN: MOV SP, #60HMOV TMOD, #20HMOV TH1, #0F3HMOV TL1, #0F3HMOV PCON, #00HMOV SCON, #40H MOV R0, #40HMOV R1, #10HSETB EASETB ES假设假设fsoc=6MHz,串行工作方式,串行工作方式1,smod=0,则计数初值为:则计数初值为:X=256-6*106*20 / (384*1200)=256-13=FFH+1-13=0F3HSETB TR1MOV A, R0CLR TIMOV SBUF, A SJMP$T_PG

22、: DJNZ R1, NEXTCLR ESCLR TR1LJMP BACKNEXT:INCR0MOVA, R0CLR TIMOVSBUF, ABACK: RETIsmod=0 方式方式1,REN=0中断中断允许允许取数取数发送发送甲机发送程序:甲机发送程序:程序设计程序设计1、假定甲、乙机进行串行数据通信,其波特率为、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部。甲机将内部RAM 40H4FH单元的内容传送到乙机外部单元的内容传送到乙机外部RAM 1000H100FH单元,编程实现。单元,编程实现。ORG 0000HLJMPMAINORG0023HLJMPR_PGORG0030

23、HMAIN: MOV SP, #60HMOV TMOD, #20HMOV TH1, #0F3HMOV TL1, #0F3HMOV PCON, #00HMOV SCON, #50H MOV DPTR, #1000HMOV R1, #10HSETB EASETB ESSETB TR1CLR RISJMP$R_PG: MOVA, SBUFMOVDPTR, ACLR RIINC DPTRDJNZ R1, BACKCLR ESCLR TR1BACK: RETIsmod=0 方式方式1,REN=1中断中断允许允许接受接受送外存送外存乙机接受程序:乙机接受程序:8.3.2 多机通信接口多机通信接口1多机通信原理多机通信原理 串行口控制寄存器串行口控制寄存器SCON中的中的SM2为多机通信接口控制位。为多机通信接口控制位。 RB8=1为地址信号,为地址信号, RB8=0为有效数据位为有效数据位 串行口以方式串行口以方式2或或3接收时,接收时, SM2=1,则仅当接收到的第9位数据RB8为1时,数

温馨提示

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

评论

0/150

提交评论