首页 第7章--51单片机串行接口

第7章--51单片机串行接口

举报
开通vip

第7章--51单片机串行接口单片机技术及应用——基于汇编及C51程序设计第7章51单片机串行接口主要章节7.1通信的基本概念7.251单片机串行口的功能与结构7.3串行口的工作方式7.4串行口的应用2017/7/921第7章51单片机串行接口7.1通信的基本概念7.1.1并行通信和串行通信2017/7/931(a)并行通信(b)串行通信第7章51单片机串行接口根据信息传送的方向,串行通信可以分为单工、半双工和全双工2017/7/941(a)单工(b)半双工(c)全双工第7章51单片机串行接口7.1.2串行通信的基本过程1.发送过程2017/7...

第7章--51单片机串行接口
单片机技术及应用——基于汇编及C51程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 第7章51单片机串行接口主要章节7.1通信的基本概念7.251单片机串行口的功能与结构7.3串行口的工作方式7.4串行口的应用2017/7/921第7章51单片机串行接口7.1通信的基本概念7.1.1并行通信和串行通信2017/7/931(a)并行通信(b)串行通信第7章51单片机串行接口根据信息传送的方向,串行通信可以分为单工、半双工和全双工2017/7/941(a)单工(b)半双工(c)全双工第7章51单片机串行接口7.1.2串行通信的基本过程1.发送过程2017/7/951发送时钟数据线01100110第7章51单片机串行接口2.接收过程2017/7/961接收时钟数据线01100110第7章51单片机串行接口7.1.3串行通信的通信方式1.串行异步通信方式2017/7/971特点:一次传送的位数比较少,对发送时钟和接收时钟的同步性要求相对不高,线路简单。传送速度较慢。第7章51单片机串行接口2.串行同步通信方式2017/7/981同步字符1同步字符2数据块校验字符1校验字符2特点:一次连续传送多个字符,传送的位数多,对发送时钟和接收时钟同步性要求很高,控制线路复杂传送速度快。第7章51单片机串行接口7.1.4波特率波特率是指串行通信中,单位时间传送的二进制位数,单位为bps。传输速度往往又可用每秒传送多少个字节来表示(Bps)。它与波特率的关系为:波特率(bps)=一个字符的二进制位数×字符/秒(Bps)2017/7/991第7章51单片机串行接口7.251单片机串行口的功能与结构7.2.1串行口的功能51单片机具有一个全双工的串行异步通信接口,可以同时发送和接收数据。有四种工作方式:方式0、方式1、方式2和方式3。方式0为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口。方式1为8位的异步通信方式,通常用于双机通信。方式2和方式3为9位的异步通信方式,通常用于多机通信2017/7/9101第7章51单片机串行接口7.2.2串行口的结构2017/7/9111串行口数据寄存器(SBUF),串行口控制寄存器SCON、电源控制寄存器PCON以及定时/计数器和中断系统中的特殊功能寄存器组成。第7章51单片机串行接口7.2.3串行口控制寄存器SCON2017/7/9121SM0、SM1:串行口工作方式选择位SCOND7D6D5D4D3D2D1D098HSM0SM1SM2RENTB8RB8TIRISM0SM1方式功能波特率00方式0移位寄存器方式fosc/1201方式18位异步通信方式可变10方式29位异步通信方式fosc/32或fosc/6411方式39位异步通信方式可变SM2:多机通信控制位。REN:接收允许控制位。TB8:发送数据的第9位。RB8:接收数据的第9位。TI:发送中断标志位。RI:接收中断标志位。第7章51单片机串行接口7.2.4电源控制寄存器PCON2017/7/9131PCOND7D6D5D4D3D2D1D087HSMODXXXGF1GF0PDIDLSMOD:波特率加倍位。当SMOD位为1,则串行口方式1、方式2、方式3的波特率加倍。GF1、GF0:通用标志位。由软件置位或复位PD:掉电方式位。当PD=1时,进入掉电方式。IDL:待机方式位。当IDL=1时,进入待机方式。第7章51单片机串行接口7.3串行口的工作方式7.3.1方式0----移位寄存器方式方式0通常用来外接移位寄存器,用作扩展I/O口。RXD:串行数据TXD:同步时钟。数据格式:低位在前,高位在后,长度8位,在SBUF中。波特率:fosc/12。(1)发送条件:TI=0操作:MOVSBUF,A结果:发送完毕,TI置“1”。第7章51单片机串行接口条件:RI=0操作:REN(SCON.4)置“1”结果:8位数据接收数据缓冲器SBUF中,同时,RI置“1”,向CPU申请中断。用户处理:MOVA,SBUF(2)接收第7章51单片机串行接口7.3.2方式1----8位异步通信方式TXD:发送数据端RXD:接收数据端。数据格式:1位起始位(0),SBUF中8位数据位(低位在前)和1位停止位(1)。波特率:2SMOD×(T1的溢出率)/32(1)发送条件:TI=0操作:MOVSBUF,A结果:发送完毕,TI置“1”。第7章51单片机串行接口条件:RI=0,REN(SCON.4)置“1”。结果:8位数据接收数据缓冲器SBUF中,同时,RI置“1”,向CPU申请中断。用户处理:MOVA,SBUF(2)接收第7章51单片机串行接口7.3.3方式2和方式3TXD:发送数据端RXD:接收数据端数据格式:1位起始位(0),SBUF中8位数据位(低位在前)第9位TB8和1位停止位(1)波特率:2SMOD×(T1的溢出率)/32(1)发送条件:TI=0操作:先准备第9位TB8,执行MOVSBUF,A结果:发送完毕,TI置“1”。第7章51单片机串行接口条件:RI=0,REN(SCON.4)置“1”。结果:SM2=0,接收的前8位数据送SBUF,第9位送RB8,RI置“1”,向CPU申请中断。SM2=1,若接收的第9位为1,则前8位数据送SBUF,第9位送RB8,RI置“1”,向CPU申请中断。用户处理:MOVA,SBUF(2)接收第7章51单片机串行接口7.4串行口的应用7.4.1利用方式0扩展并行I/O接口【例7-1】用8051单片机的串行口外接串入并出的芯片74HC164扩展并行输出口控制一组发光二极管,使发光二极管从右至左延时轮流显示。74HC164是一块8位的串入并出的芯片,共14个引脚,除了电源和地信号外,A、B:串行数据输入端;CLK:串行时钟信号输入端;Q0~Q7:8位数据并行输出端;:清零端,输入低电平时74HC164输出端清0;在CLK=0、=1时,74HC164保持原来数据。2017/7/9201第7章51单片机串行接口2017/7/9211第7章51单片机串行接口设串行口采用查询方式,显示的延时依靠调用延时子程序来实现2017/7/9221汇编语言程序:ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#00H;串口初始化方式0MOVA,#0FEHSTART:MOVSBUF,A;51单片机串口发送LOOP:JNBTI,LOOP;等待发送ACALLDELAY;延时CLRTIRLA;循环移位改变显示内容SJMPSTARTDELAY:MOVR7,#80H;延时子程序LOOP2:MOVR6,#0FFHLOOP1:DJNZR6,LOOP1DJNZR7,LOOP2RETEND第7章51单片机串行接口2017/7/9231#include<reg51.h>//包含特殊功能寄存器库#include<intrins.h>//包含内部函数voidmain(){unsignedchari;unsignedintj;SCON=0x00;//串口初始化方式0i=0xFE;for(;;){SBUF=i;//51单片机串口发送while(!TI){;}//等待发送TI=0;for(j=0;j<=20000;j++){_nop_();}//延时i=_crol_(i,1);//改变显示内容}}C语言程序:第7章51单片机串行接口【例7-2】用8051单片机的串行口外接并入串出的芯片74HC165扩展8位并行输入口,输入一组开关的状态,并通过二极管显示出来。74HC165是一块8位的并入串出的芯片,共16个引脚,除了电源和地信号外,P7~P0:8位并行输入端;SIN:串行数据输入端;QH、:串行数据同相、反相输出端;CLK:串行时钟信号输入端;CLKINH:串行时钟允许输入端,当它为低电平时,允许CLK时钟输入;S/:串出/并入方式控制输入端,S/=1,允许串行输出,S/=0允许并行置入。74HC165的工作过程一般如下:(1)使控制端S/=0,8位并行数据置入到内部的寄存器;(2)使控制端S/=1,在时钟信号CLK的控制下,内部寄存器的内容按从P0~P7的顺序从串行输出端依次输出。2017/7/9241第7章51单片机串行接口2017/7/9251P0口接的8个发光二极管第7章51单片机串行接口串行口方式0数据的接收,用SCON寄存器中的REN位来控制,采用查询RI的方式来判断数据是否输入,汇编语言程序:2017/7/9261ORG0000HLJMPMAINORG0100HMAIN:CLRP1.0;74HC165并入NOPNOPNOPSETBP1.0;74HC165串出NOPNOPNOPMOVSCON,#10H;串口初始化方式0,允许接收LOOP:JNBRI,LOOP;接收CLRRIMOVA,SBUFMOVP0,A;送P0口显示SJMPMAINEND第7章51单片机串行接口C语言程序:2017/7/9271#include<reg51.h>//包含特殊功能寄存器库#include<intrins.h>//包含内部函数库sbitP1_0=P1^0;voidmain(){unsignedchari;while(1){P1_0=0;_nop_();_nop_();_nop_();//74HC165并入P1_0=1;_nop_();_nop_();_nop_();//74HC165串出SCON=0x10;//串口初始化方式0,允许接收while(!RI){;}//接收RI=0;i=SBUF;P0=i;//送P0口显示}}第7章51单片机串行接口7.4.2利用方式1实现点对点的双机通信【例7-3】用汇编语言编程通过串行实现将甲机的片内RAM中30H~3FH单元的内容传送到乙机的片内RAM的40H~4FH单元中。2017/7/9281甲、乙两机都选择方式1即8位异步通信方式,最高位用作奇偶校验,波特率为1200bps,甲机发送,乙机接收,因此甲机的串口控制字为40H,乙机的串口控制字为50H。第7章51单片机串行接口由于选择的是方式1,波特率由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定,则需对定时/计数器T1初始化。设SMOD=0,甲、乙两机的振荡频率为12MHz,由于波特率为1200bps。定时/计数器T1选择为方式2,则初值如下。初值=256-fosc×2SMOD/(12×波特率×32)=256-12000000/(12×1200×32)≈230=E6H根据要求,定时/计数器T1的方式控制字为20H。2017/7/9291第7章51单片机串行接口甲机的发送程序:乙机的接收程序:2017/7/9301TSTART:MOVTMOD,#20HMOVTL1,#0E6HMOVTH1,#0E6HMOVPCON,#00HMOVSCON,#40HMOVR0,#30HMOVR7,#10HSETBTR1LOOP:MOVA,@R0MOVC,PMOVACC.7,CMOVSBUF,AWAIT:JNBTI,WAITCLRTIINCR0DJNZR7,LOOPRETRSTART:MOVTMOD,#20HMOVTL1,#0E6HMOVTH1,#0E6HMOVPCON,#00HMOVR0,#40HMOVR7,#10HSETBTR1LOOP:MOVSCON,#50HWAIT:JNBRI,WAITMOVA,SBUFMOVC,PJCERRORANLA,#7FHMOV@R0,AINCR0DJNZR7,LOOPRET第7章51单片机串行接口习题1、2、3、5、62017/7/9311第7章51单片机串行接口
本文档为【第7章--51单片机串行接口】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥17.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
蓉蓉
暂无简介~
格式:ppt
大小:254KB
软件:PowerPoint
页数:31
分类:修理服务/居民服务
上传时间:2022-04-08
浏览量:17