单片机8051串行接口的C编程ppt课件

上传人:钟*** 文档编号:3321786 上传时间:2019-12-11 格式:PPT 页数:27 大小:409.50KB
返回 下载 相关 举报
单片机8051串行接口的C编程ppt课件_第1页
第1页 / 共27页
单片机8051串行接口的C编程ppt课件_第2页
第2页 / 共27页
单片机8051串行接口的C编程ppt课件_第3页
第3页 / 共27页
点击查看更多>>
资源描述
第6章8051串行口的C编程,本章主要介绍串行通信概念及51系列单片机的串行口问题,将具体介绍以下内容:,51单片机串行口-串行口结构、串行口的控制寄存器、串行口的工作方式、串行口的初始化、应用举例。,计算机串行通信基础-基本概念。,1,通信方式,6.1计算机串行通信基础,基本概念,并行通信方式空间上区分各位数据及联络控制信号。占用传输线多,速度快。,串行通信方式时间上区分各位数据及联络控制信号。占用传输线少,速度慢。,2,6.251单片机串行口,一、串行口结构,8051系列单片机片上有UART(通用异步收发)用于串行通信,发送时数据由TXD端发出,接收时数据由RXD端输入。,TTL电平:短距离机间通信RS232电平:与计算机通信。(驱动芯片MAX232),3,二、串行口的控制寄存器,与串行口有关的控制寄存器有:,1串行口控制寄存器SCON,工作方式控制位,中断标志,接收允许位,(硬件置位,软件清0),0禁止1允许(软件设置),4,工作方式控制位SM0、SM1,5,2电源控制寄存器PCON,SMOD:串行口波特率加倍位。,6,三、串行口的工作方式,串行口共有四种工作方式,方式110位异步通信方式,10位=1位起始位(0)+8位数据位+1位停止位(1),其中起始位和停止位在发送时是自动插入的。,7,发送:SBUF=?;,SBUF=“abc”;,发送条件TI=0;(软件清0)发送完毕TI=1;(硬件置位),8,接收:?=SBUF;,例子:serial_data=SBUF;,接收条件REN=1;(软件置位)收到数据RI=1;(硬件置位)读数完毕RI=0;(软件清0),9,波特率=2SMOD*(定时器1的溢出率)/32,例子:波特率=9600,fosc=11.059M,则设置PCON=0 x00;/SMOD=0;TMOD=0 x20;TH1=0 xfd;TL1=0 xfd;TR1=1;/启动定时器1ES=1;/开串行口中断EA=1;/开CPU中断,10,四、串行口的初始化,1.串行口波特率,使用单片机串口时,选用的晶振比较固定6MHz,12MHz,11.0592MHz。常用于和计算机的通信;选用的波特率也相对固定。串行口常用的波特率及相应的设置见表8-3。,11,2.初始化步骤,设置产生波特率的定时器1、串行口控制和中断控制。,具体步骤:,(1)确定定时器1的工作方式,编程TMOD寄存器;,(2)计算定时器1的初值,装载TH1和TL1;,(4)确定串行口的控制,编程SCON和PCON;,(5)开CPU和源中断,编程IE中的ES和EA位。,(3)启动定时器1,编程TCON中的TR1位;,12,五、串行口应用举例,例1:发送字符串程序,#include#defineucharunsingnedchar#defineuintunsignedintucharidatatrdata10=M,C,S,-,5,1,0 x0d,0 x0a,0 x00;,13,main()uchari;uintj;/*在11.0592MHz下,设置9600波特率,方式1*/TMOD=0 x20;/设置定时器1的方式TH1=0 xfd;/设置定时器1的初值TL1=0 xfd;SCON=0 x50;/设置串行口方式1,并允许接收PCON=0 x00;TR1=1;/启动定时器1,14,while(1)i=0;while(trdatai!=0 x00)/发送字符串SBUF=trdatai;while(TI=0);TI=0;i+;for(j=0;j12500;j+);/延时,15,例2:发送单字符子函数,voidsend_char(ucharhex)SBUF=hex;while(TI=0);TI=0;,16,例3:发送字符串子函数,voidsend_string(uchar*string)while(*string!=0)send_char(*string);string+;,17,例4:发送字符串程序。例1的程序可以改写成调用子函数的方式。,main()uintj;while(1)send_string(trdata);for(j=0;j12500;j+);,18,main()uintj;while(1)send_string(“MCS-51”);send_char(0 x0d);send_char(0 x0a);for(j=0;j=buffer_size)comrxdwrite=0;,26,ucharstring_compare(uchar*string,ucharnumber)/串口字符串比较ucharb,c;for(b=0;bnumber;b+)c=comrxdbufb;if(c!=(*string)return(0);string+;return(1);,27,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!