《单片机原理及工程应用》课件-第5章 串行通信技术(第2次课 应用)2023_第1页
《单片机原理及工程应用》课件-第5章 串行通信技术(第2次课 应用)2023_第2页
《单片机原理及工程应用》课件-第5章 串行通信技术(第2次课 应用)2023_第3页
《单片机原理及工程应用》课件-第5章 串行通信技术(第2次课 应用)2023_第4页
《单片机原理及工程应用》课件-第5章 串行通信技术(第2次课 应用)2023_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1串行口的工作方式SM0SM1工作方式功

能波

率00方式0移位寄存器方式fosc/1201方式18位通用异步接收器/发送器可变10方式29位通用异步接收器/发送器fosc/32或

fosc/6411方式39位通用异步接收器/发送器可变复习25.2.3波特率设置1.方式0和方式2的波特率

方式0波特率是固定的,波特率是振荡频率fosc的12分频。即

波特率B=fosc/12

方式2波特率由振荡频率fosc和SMOD(PCON.7)所决定。其对应公式为:

波特率B=fosc×2SMOD/64

当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。32.方式1和方式3的波特率方式1和方式3的波特率由定时器T1的溢出率和SMOD决定,即由下式确定:波特率B=定时器T1溢出率×2SMOD/32

实际上,当定时器T1作波特率发生器使用时,通常是工作在方式2,即自动重装载的8位定时器方式,此时TL1作计数用,自动重装载的值保存在TH1内。设计数的预置值(计数初值)为X,那么每过(256-X)个机器周期,定时器溢出一次。4

定时时间t=(256-X)T=(256-X)12/fosc

T1的溢出率为fosc/(12×(256-X)),其波特率为:波特率

通常在系统设计时,大多数情况是先确定了系统的波特率B,而我们则要根据系统的波特率B计算定时器T1的计数初值,由上式我们可求出计数初值X为:55.3串行口应用

串行通信口的应用过程中要做的工作:1.确定通信规约,通信双方要明确约定以下内容:通信方式―明确采用何种通信方式、帧结构、各位含义等。通信速率―通常规定通信波特率。校验方式—确定传输数据的校验方式。通常采用奇/偶校 验,同步传输时有纵校验、横校验等。回送信息-传输信息被确认后,向对方回送何种信息。代码含义-传输1帧数据中各个代码的含义。62.确定相关器存器的值(各寄存器的具体设定方法在前面已作了详细介绍)(1)串行口控制寄存器SCON。(2)电源控制寄存器PCON的PCON.7,波特率加倍系数位SMOD。(3)对于方式1、方式3要设置波特率,实际上就是设置定时器T1为方式2,相关的寄存器有:定时器/计数器方式寄存器TMOD、定时器/计数器控制寄存器TCON、及初值寄存器TH1、TL1。3.编写程序,按照以上确定的各寄存器的值对串行口初始化。并编写中断服务程序。71.利用串行口扩展LED显示器82.利用串行口输入开关量93.双机通信系统设甲乙两台机器按全双工方式收发ASCII码字符,数据位为8位,其中最高1位用来作奇偶校验位,采用偶校验方式,要求传送的波特率为1200波特。假设发送缓冲区OUTBUF首址为片内RAM60H,接收缓冲区INBUF首址为RAM70H,时钟频率fosc=6MHz

101.确定通信方式根据系统要求,通信双方要相互约定:7位ASCII码加1位校验位共8位数据,故可采用串行口方式1进行通信。51单片机的奇偶校验位P是当累加器A中“1”的个数为奇数时P=1;为偶数时P=0。直接把P的值放入ASCII码的最高位(奇偶校验位),即为偶校验方式。112.计算定时器T1的计数初值对于串行口方式1,波特率由定时器T1的溢出率和SMOD决定,定时器T1采用工作方式2,可以避免计数溢出后用软件重装定时初值。取SMOD=0,按式(5.4)可求得计数初值X为:123.确定相关寄存器参数(1)串行口控制寄存器SCONSM1=01时为方式1,在SM2=0和REN=1条件下,允许接收数据,其余各位均取0。则(SCON)=01010000B=50H(2)电源控制寄存器PCON由于SMOD=0,所以(PCON)=00H(同系统复位以后的状态,可不赋值)。位D7D6D5D4D3D2D1D0功能SM0SM1SM2RENTB8RB8TIRI位D7D6D5D4D3D2D1D0功能SMOD---CF1CF0PDIDL13定时器T1T0位D7D6D5D4D3D2D1D0功能GATEC/TM1M0GATEC/TM1M0(3)确定定时器方式寄存器TMOD

由于只用T1,且为定时方式2,(TMOD)=00100000B=20H请注意:串行通信端口的接收中断RI、发送中断TI共用一个中断向量(0023H),因此,串行口中断请求后,中断服务程序首先要判断是RI、TI当中的那个请求中断。144.编写有关的通信程序主程序:ORG0000H LJMPMAIN ORG0023H;串行中断入口

LJMPSINOUTORG0040HMAIN:MOVSP,#60H MOVTMOD,#20H;定时器T1设为方式2 MOVTL1,#0F3H;装入定时器初值

MOVTH1,#0F3H;8位重装值

SETBTR1 ;启动定时器T1 MOVSCON,#50H;串行口设为方式1 MOVR0,#60H;OUTBUF首址

MOVR1,#70H;INBUF首址

SETBEA ;开中断

SETBES ;允许串行口中断

LCALLSOUT;先发送1个字符

SJMP$ ;等待中断

15;中断服务程序:

ORG1000HSINOUT:JNBRI,SEND;不是接收,则转向发送

LCALLSIN;是接收,则调用接收子程序

RETI;中断返回SEND: LCALLSOUT;是发送,则调用发送子程序

RETI;中断返回;发送子程序:SOUT: MOVA,@R0;取发送数据到A MOVC,P;偶校验位赋于C MOVACC.7,C;送入ASCII码最高位中

INCR0;修改发送数据指针

MOVSBUF,A;发送数据

CLRTI;清发送中断标志

RET;子程序返回

16;接收子程序:SIN: MOVA,SUBF;读入接收缓冲区内容

JNBP,EXIT;若P=0,则接收正确ERROR:…

;若P=1,则接收错误

;出错处理EXIT:ANLA,#7FH;删去校验位

MOV@R1,A;存入接收缓冲区

INCR1 ;修改接收缓冲区指针

CLRRI ;清接收中断标志

RET ;子程序返回175.4RS-232C串行总线及应用RS-232C标准是美国电子工业协会(EIA)在1969年颁布的一种推荐标准,RS是RecommendedStandard的缩写。18RS-232C在工程中的应用为了提高数据通信的可靠性和抗干扰能力,RS-232C标准中规定发送端信号逻辑“0”(空号)电平范围为+5V~+15V,逻辑“1”(传号)电平范围为-5V~-15V;接收端逻辑“0”为+3V~+15V,逻辑“1”为-3V~-15V。噪声容限为2V。-5V~+5V以及-3V~+3V之间分别为发送端和接收端点信号的不确定区。通常,RS-232C总线逻辑电平采用+12V表示“0”,-12V表示“1”。19RS-232与TTL电平转换20RS-232与TTL电平转换21RS-232与TTL电平转换22MAX232电平转换器件该器件十分有用,请各位熟记!2389C51PCMAX232RS232电平TTL电平24

在分布式多波特率通信系统中,常常要求从设备在软件上能做到波特率能随主设备自动调整,使系统适应性更强,智能化程度更高。当然,一般情况下,波特率自动检测的范围仅限于标准波特率。常用实现波特率自动检测的方法有三种:

(1)从设备启动通信程序

温馨提示

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

评论

0/150

提交评论