单片机串口通信

单片机串口通信

ID:19898054

大小:460.00 KB

页数:46页

时间:2018-10-07

单片机串口通信_第1页
单片机串口通信_第2页
单片机串口通信_第3页
单片机串口通信_第4页
单片机串口通信_第5页
资源描述:

《单片机串口通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章串行通信及接口学习指南串行通讯技术是单片机系统开发中常用的技术之一,串行口也是单片机常规内部集成的功能。近几年来,虽然新的通讯技术、手段不断出现,但串行通讯技术由于它技术成熟、开发方便而一直都被广泛应用于工控场合。51系列单片机中一般也集成了全双工的串行端口。一般通过定时器来设定通讯的波特率,通过设置几个寄存器来设定工作方式等等。本章主要内容串行口的结构:介绍与串行通讯相关的寄存器以及工作模式等串行通讯的原理:主要介绍同步,异步通讯的原理通讯协议:介绍常用的通讯协议的设计与实现单机通讯:介绍单片机与PC机、单片机与单片机之间的串行通讯多机通讯:介绍单片机多机通讯的原理和多机通

2、讯协议的设计通讯程序的调试:介绍如何调试通讯程序10.1串行口的结构51系列单片机内部有全双工串行口,提供了4种工作方式。波特率可由软件设置,由片内的定时器/计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。串行口除了用于数据通讯外,还可以非常方便地构成一个或多个并行输入/输出口,或作串,并转换,或用来驱动键盘和显示器。串行口控制寄存器SCON:该寄存器的字节地址为98H,可位寻址。SCON格式为:10.1.1串口控制寄存器SM0、SM1:控制串行口的工作方式。SM2:允许方式2和方式3进行多机通讯控制位。在方式2或方式3中,如SM2=1,则接收到第9位数据。EN:允

3、许串行接收控制位。由软件置位时允许接收,软件清零时停止接收。TE8:是工作在方式2和方式3时,要发送的第9位数据。RB8:是工作在方式2和方式3时,接收到的第9位数据。TI:发送中断标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清零。RI:接收中断标志位。由片内硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位,必须由软件清零。PCON:其字节地址a7H、没有位寻址功能。PCON的格式如下,其中与串行接口有关的只有D7。D7(SMOD)是波特率加倍位,为1的时候,波特率加倍。10.1.2特殊功能寄存

4、器51系列单片机有4种工作方式,通过SCON中的SM1、SM0来设置10.1.3串口工作方式功能说明001101010123移位寄存器方式(用于扩展I/O口)8位UART,波特率可变(T1溢出率/n)9位UART,波特率为fosc/64或fosc/329位USRT,波特率可变(T1溢出率/n)SM0SM1方式方式0在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fosc/12。数据由RXD端出入,同步移位脉冲由TxD端输出,发送、接收的是8位效据,不设起始比和停止位,低位在前,高位在后。。在方式0的发送状态,当一个数据写入串行口发送缓冲器SBUF时,串行口将数据以fo

5、sc/12的波特率由低位到高位从TxD引脚输出,发送完中断标志TI置1,TxD引脚输出同步脉冲。该方式下串行口作为同步移位寄存器使用,可以利用移位寄存器进行并行I/O扩展。这时以RxD端作为数据移位的输入、输出口,而出TXD端提供移位时钟脉冲。在方式0的接收状态下,设置REN=1和RI=0,串行口就处于允许接收状态,此时RxD为串行输入端,TXD为同步脉冲输出端。串行接收的波特串为fosc/12。当接收完一帧数据(8位)后,控制信号复位,中断标志RI被置位,呈中断申请状态。每次接收完成时,必须通过软件将RI清零,以启动下一次接收。方式1此时串行口为8位异步通讯接口。数据长度为10位:

6、含1位起始位,8位数据位(低位在先)和1位停止位。TxD为发送端,RxD为接收端。串行口以方式1发送时,数据由TxD端输出,发送完10位数据后,发送中断标志置1。当REN=1时,串行口便以所选波特率的16倍速率采样RxD引脚状态,当采样到RXD端从1到0的跳变时就进行接收,接收的值是3次采样中至少二次相同的值,以保证数据可靠无误。在起始位,如果接收到的值不为0,则起始位无效,重新接收,当再次接收到一个由l到0的跳变时,重新启动接收。如果接收值为0,起始位有效,串行口开始接收数据位的其余信息(10位),接收完成后,RI被置位。方式1的波特率是可以通过软件进行设置的,其计算公式如下:所谓

7、的溢出率是指单位时间内T1的溢出次数,假设定时器的初值为N则,溢出率为=fosc/12*(2n-N)。其中n为定时器的定时位数,例如,将T1设置为工作模式2,即8位自动重装的模式,则n=8,溢出率为=fosc/12*(28-N)。假如fosc=11.0592MHz,想得到9600的拨特率,此时,定时器T1初值的计算方法为:N=28-(2SMOD*11.0592*106)/(9600*32*12)如果SMOD=1则N=FAH。方式2串行口工作在方式2时,为9

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。