六、8051串行接口的C编程

上传人:lx****y 文档编号:242912322 上传时间:2024-09-11 格式:PPT 页数:27 大小:57KB
返回 下载 相关 举报
六、8051串行接口的C编程_第1页
第1页 / 共27页
六、8051串行接口的C编程_第2页
第2页 / 共27页
六、8051串行接口的C编程_第3页
第3页 / 共27页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第6章 8051串行口的C编程,本章主要介绍,串行通信概念,及51系列单片机的,串行口,问题,将具体介绍以下内容:,51单片机串行口,-串行口结构、串行口的控制寄存器、串行口的工作方式、串行口的初始化、应用举例。,计算机串行通信基础,-基本概念。,1,通,信,方,式,6.1 计算机串行通信基础,基本概念,并行,通信方式,空,间上,区分各位数据,及联络控制信号。占,用传输线多,速度快。,串行,通信方式,时,间上,区分各位数据,及联络控制信号。占,用传输线少,速度慢。,2,6.2 51单片机串行口,一、串行口结构,8051系列单片机片上有UART(通用异步收发)用于串行通信,发送时数据由,TXD,端,发出,,接收时数据由,RXD,端,输入,。,TTL,电平:短距离机间通信,RS232,电平:与计算机通信。(驱动芯片,MAX232,),3,二、串行口的控制寄存器,与串行口有关的控制寄存器有:,1,串行口控制寄存器SCON,D7,D6,D5,D4,D3,D2,D1,D0,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,工作方式控制位,中断标志,接收允许位,(硬件置位,软件清0),0 禁止,1 允许,(软件设置),4,工作方式控制位SM0、SM1,SM0 SM1 工作方式 说明 波特率,0 0 方式0 同步移位寄存器 fosc/12,0 1 方式1 10位异步收发 由定时器控制,1 0 方式2 11位异步收发 fosc/32或fosc/64,1 1 方式3 11位异步收发 由定时器控制,5,2,电源控制寄存器PCON,SMOD:串行口,波特率加倍,位。,方式1,3波特率=定时器1溢出率/16;,方式2波特率=,fosc,/32。,0 方式1,3波特率=定时器1溢出率/32;,方式2波特率=fosc/64。,6,三、串行口的工作方式,串行口共有四种工作方式,方式110位异步通信方式,10位=1位起始位(0)+8位数据位+1位停止位(1),其中起始位和停止位在发送时是自动插入的。,7,发送,:SBUF=?;,SBUF=“abc”;,例子:SBUF=“a”; SBUF=0x61;,发送条件TI=0;(软件清0),发送完毕TI=1;(硬件置位),8,接收,:?=SBUF;,例子:serial_data=SBUF;,接收条件REN=1;(软件置位),收到数据RI=1; (硬件置位),读数完毕RI=0; (软件清0),9,波特率,=2,SMOD,*(定时器1的溢出率)/32,例子:波特率=9600,fosc=11.059M,则设置,PCON=0x00; /SMOD=0;,TMOD=0x20;,TH1=0xfd;,TL1=0xfd;,TR1=1; /启动定时器1,ES=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,#define uchar unsingned char,#define uint unsigned int,uchar idata trdata10=,M,C,S,-,5,1,0x0d,0x0a,0x00;,13,main(),uchar i;,uint j;,/*在11.0592MHz下,设置9600波特率,方式1*/,TMOD=0x20; /设置定时器1的方式,TH1=0xfd; /设置定时器1的初值,TL1=0xfd;,SCON=0x50; /设置串行口方式1,并允许接收,PCON=0x00;,TR1=1; /启动定时器1,14,while(1),i=0;,while(trdatai!=0x00) /发送字符串,SBUF=trdatai;,while(TI=0);,TI=0;,i+;,for(j=0;j12500;j+); /延时,15,例2:发送单字符子函数,void send_char(uchar hex),SBUF=hex;,while(TI=0);,TI=0;,16,例3:发送字符串子函数,void send_string(uchar *string),while(*string!=0),send_char(*string);,string+;,17,例4:发送字符串程序。例1的程序可以改写成调用子函数的方式。,main(),uint j;,while(1),send_string(trdata);,for(j=0;j12500;j+);,18,main(),uint j;,while(1),send_string(“MCS-51”);,send_char(0x0d);,send_char(0x0a);,for(j=0;j=buffer_size)comrxdwrite=0;,26,uchar string_compare(uchar *string,uchar number) /串口字符串比较,uchar b,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交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!