版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
延时符项目7串行通信接口技术单片机应用技术知识点:1、串行通信基本知识;2、C51串口结构;
3、c51串口基本通信模式;能力要求:能够编写程序完成串行通信功能。目录7.1:串行通信基础知识7.2:c51串口概述7.3:c51串口基本通信模式7.4:
串口通信实例分析
7.1:串行通信基础知识延时符延时符串行通信基础知识基本通信模式延时符串行通信基础知识7.1.1串行通信基本方式:(1)单工:数据只能从一个方向传输;(2)半双工:数据可以双向传输,但是由于只有一个物理传输通道,因而不能同时收发;(3)全双工:采用两个独立的物理通道,可实现数据的实时双向传输;51单片机的串行口,采用的是全双工通讯方式延时符串行通信基础知识7.1.2异步通信和同步通信:(1)异步通讯:用一个起始位表示通讯的开始,用一个停止字符表示结束,之间的数据为一帧数据。异步通讯收发两端需要约定一个共同的通讯速率,以便解调、恢复数据。延时符串行通信基础知识(2)同步通讯:通讯中,每个数据占用时间相等,发送端每个基本时间单位发送一位数据,接收端与发送端时钟必须严格同步,以便恢复数据。51单片机串口一般采用的是异步方式延时符串行通信基础知识7.1.3RS232标准:RS-232为常用串口传输标准,它是由美国电子工业协会(EIA)于1969年与Bell等公司共同制定,主要用于定义计算机系统终端设备和数据通信终端设备之间的电气性能。(采用专用芯片,改变信号的电压范围,以便于远距离传输)延时符串行通信基础知识串行通信基本结构延时符串行通信基础知识TTL低电平(0电平)对应的RS232电平为+3V~+15V;TTL高电平(1电平)对应的RS232电平为-3V~-15V;RS232接口由于电平提高,传输距离可达30m左右。延时符串行通信基础知识RS232芯片基本资料7.2:c51单片机串口基本结构延时符延时符c51串口基本结构51单片机串口结构图延时符c51串口基本结构7.2.2相关寄存器:1、SCON(98H):用于设置串口工作模式及状态,可位寻址。位地址9FH9EH9DH9CH9BH9AH99H98H位名SM0SM1SM2RENTB8RB8TIRI延时符c51串口基本结构SM0,SM1:用于设置工作模式。SM0SM1工作方式功能说明通信速率00模式08位同步移位寄存器fosc/1201模式110位异步收发(8位数据)波特率可变,由定时器1提供10模式211位异步收发(9位数据)fosc/32或fosc/6411模式311位异步收发(9位数据)波特率可变,由定时器1提供延时符c51串口基本结构SM2:多机通讯控制位。REN:接收允许位。当REN=1时,允许接收数据;当REN=0时,禁止接收数据。TB8:发送数据的第9位。(模式2、3中使用)RB8:接收数据的第9位。(模式2、3中使用)TI:发送完成中断标志位。RI:接收完成中断标志位。注意:RI,TI标志位由串口模块置1,通知CPU发送或接收完成,由程序手动清零。延时符c51串口基本结构电源控制寄存器PCON(87H)该寄存器最高位SMOD=1时,串口模式1,2,3中的通讯波特率将加倍。
PCON不可以位寻址。延时符c51串口基本结构接收数据寄存器SBUF(99H)发送数据寄存器SBUF(99H)这两个寄存器用于发送和接收数据的缓冲注意:两者地址一样,CPU通过读写信号来区分。延时符c51串口基本结构7.2.3波特率的设定:模式0:fosc/12;模式2:当SMOD=1时,fosc/32;当SMOD=0时,fosc/64;模式1、3:由定时1提供;延时符c51串口基本结构模式1,3:若定时器1信号频率为ft1;当SMOD=0时,波特率为ft1/32;当SMOD=1时,波特率为ft1/16;定时器T1通常工作在模式2(8位自动加载模式),这样,一旦初始化完成,即可自动工作,不再占用CPU资源了延时符c51串口基本结构
T1模式2时,其输出信号周期T为(256-X)×12/fosc,X为初始值;这样其频率就为:fT1=1/T=fosc/(12×(256-X))由上可得,定时器的波特率为:2SMOD×fosc/(32×12×(256-X))注意:串行通讯时,收发两端设定的波特率必须一致,否者无法正确恢复数据。c51串口基本结构单击此处添加页面的标题波特率(模式1,3)(/bps)fosc(MHz)SMOD定时器1C/T模式初始值62.5k12102FFH19.2k11.059102FFH9.6k11.059002FDH4.8k11.059002FAH2.4k11.059002F4H1.2k11.059002E8H110k12001FEEBH常用波特率设定参数表fosc选用11.059是为了准确实现19.2kbps-1.2kbps这几个常用的串行通信数率。延时符7.3:c51串口基本通信模式延时符延时符基本通信模式7.3.1模式0:同步移位模式TXD作为同步时钟信号,速率为fosc/12;RXD作为数据信号;传输时,把SBUF中的数据,串行发送出去(低位在前)。延时符基本通信模式7.3.2模式1:8位异步传输模式延时符基本通信模式发送数据:把数据写入SBUF就可以启动发送;SBUF=0x30;发送完成,标志位TI会被置1;延时符基本通信模式接收数据:当REN=1时,串口可以接收数据;当串口接收到一帧数据,若条件满足,会将该数据写入SBUF,并把标志位RI置1;这时,CPU可通过查询方式或中断方式来读取数据;intr_data;r_data=SBUF;延时符基本通信模式接收数据的条件:(1)、RI=0;(RI若不是0,则表明前一帧数据还未被CPU读取,这时串口选择放弃这一帧数据)(2)、SM2=0或接收到的停止位为1。(在多机通讯中会用到)注意:发送或接收操作,都要及时手动清除TI和RI标志位延时符基本通信模式7.3.3模式2:9位异步通信模式延时符基本通信模式每一帧有11比特数据;发送时,D8为TB8的值;接收时,D8存入RB8;其余,总体与模式1相似。延时符基本通信模式7.3.4模式3:9为异步传输模式总体与模式2相同,只是波特率由定时器1提供,可调。延时符基本通信模式该示例采用查询方式发送数据模式0:对外存储扩展//初始化//00000000,SM0=0,SM1=0,SM2=0,REN=0(不接收数据),SCON=0;//数据更新SBUF=a1;//发送a1数据while(!TI);//等待发送完成,发送完成后TI由串口置1,这时退出循环TI=0;//手动清0SBUF=a2;//发送数据a2while(!TI);//等待发送完成TI=0;SBUF=a3;//发送数据a3While(!TI);//等待发送完成TI=0;延时符基本通信模式模式1:双机点对点通讯//初始化//01010000:sm0=0,sm1=1,(模式1),sm2=0,REN=1(可接收数据)//RB8=0,TB8=0,TI=0,RI=0SCON=0x50;//波特率设置9.6Kbpsfosc=11.0592MHz//根据表7-2,SMOD=0,T1定时器:模式2,C/T=0,初始值0xFD//T1定时器设置TMOD=0x20;//T1为模式2,C/T为0TH1=0xFD;TL1=0xFD;//初始值TR1=1;//启动定时器1,为串口提供时钟信号延时符基本通信模式//数据发送:a0,a1,a2SBUF=a0;//a为待发送数据while(!TI);//等待发送完成TI=0;//手动清0SBUF=a1;//a为待发送数据while(!TI);//等待发送完成TI=0;SBUF=a2;//a为待发送数据while(!TI);//等待发送完成TI=0;采用查询方式延时符基本通信模式//数据接收if(RI){
a=SBUF;//读取接收的数据,放入内存变量a中
RI=0;//手动清0,以便接收下一帧数据}查询方式延时符基本通信模式//中断初始化ES=1;//允许串口中断EA=1;//开中断//中断处理程序VoidS_port()interrupt4//串行通讯中断号为4{
If(RI)//接收数据,由于RI,TI均会触发中断,所以需先判断
{
a=SBUF;//数据存入内存
RI=0;//手动清0
}}中断方式延时符基本通信模式模式2:多级通讯(一主多从)延时符基本通信模式
通讯基本流程如下:主机先发送一帧地址信息(TB8=1,所有从机均可接收),从机接收后与自身地址数据比较,若相符,则把自身SM2置为0,反之则置为1。然后主机发送数据帧,这时TB8=0,这次,只有SM2=0的从机才接收这次的数据。若根据相关协议,该从机也可发送相关数据给主机,完成双向通讯。延时符基本通信模式//主机//初始化 PCON=0;//SMOD=0SCON=0x90;//SM0=1,SM1=0;方式2;REN=1,可接收//发送数据//地址帧TB8=1;SBUF=add1;//发送从机地址信息while(!TI);//数据帧TB8=0;SBUF=data1;//发送数据While(!TI);延时符基本通信模式//从机//初始化PCON=0;//SMOD=0,通讯波特率必须一种SCON=0xB0;/SM0=1,SM1=0模式2,SM2=1,当RB8=0时接收数据,REN=1允许接收R_status=0;//该变量用于表示接收状态,0为接收地址帧,1为接收数据帧延时符基本通信模式VoidS_Port_R()interrupt4{ if(RI)
{ if(RB8==1)//接收地址帧状态
{ if(SBUF==C_ADD)//C_ADD为预设的该从机的址
{
SM2=0;//RB8=0时可接收数据
}else{
SM2=1;//当RB8=0时,不接收该数据帧}}else//接收数据帧状态{R_data=SBUF;}RI=0;//手动清0}}若需要传输较多数据,则接收端数据的缓冲和存储方案需另行设计7.4:案例分析延时符延时符案例远程控制:近端按键输入控制信号,通过单片机串口把信息传递给另一端单片机,由远端单片机实现相应控制功能。近端按k1~k4键,远端数码管显示1~4数字。延时符案
例延时符案例U1发送端程序#include<reg51.h>//输入按键定义sbitK1=P2^0;sbitK2=P2^1;sbitK3=P2^2;sbitK4=P2^3;//ms延时voiddelay(unsignedchari);//串口发送数据;voidsend_data(unsignedchar);//串口初始化voidInit();//按键扫描unsignedcharkey_get();U1端程序:系统主频为11.0592MHz;发送端:接收按键输入,把输入信息通过串口发送到接收端;本机也通过LED二极管显示按键信息;串口模式为模式1(10位模式),通信波特率为9600baud;延时符案例//主函数voidmain(){unsignedcharkey=0;P1=0;//上电初始化,所有LED均不显示Init();//硬件初始化while(1)
{
key=key_get();
switch(key)
{
case1:P1=1;send_data(1);break;//LED1亮,发送1到U2
case2:P1=2;send_data(2);break;//LED2亮,发送2到U2
case3:P1=4;send_data(3);break;//LED3亮,发送3到U2
case4:P1=8;send_data(4);break;//LED4亮,发送4到U2
}
}}延时符案例//串口发送数据voidsend_data(unsignedchari){SBUF=i;//发送数据while(!TI);//等待发送完成TI=0;//清楚标志位}//硬件初始化voidInit(){TMOD=0x20;//采用定时器1作为波特率发生器,8位自动重载模式SCON=0x50;//串口为工作模式1TH1=0xFD;//波特率9600baudTL1=0xFD;PCON=0x00;TR1=1;//启动定时器1}采用查询方式延时符案例//按键扫描程序unsignedcharkey_get(){Unsignedcharinput,i=0;input=P2&0x0f;if(input!=0x0f){delay(10);//延迟消除抖动input=P2&0x0f;Swith(input){Case0x0E:i=1;beark;//按键1Case0x0D:i=2;break;//按键2Case0x0B:i=3;break;//按键3Case0x07:i=4;break;//按键4Default:i=0;//没有按键}while(input!=0x0f)Input=P2&0x0f;//等待按键释放}retruni;}//ms延时voiddelay(unsignedchari){unsingedcharj,k;for(j=0;j<i;j++)for(k=0;k<122;k++);}延时符案例U2接收端程序U2机程序:工作主频为11.0592MHz接收端:通过串口接收数据,并把接收到的数据通过LED数码管显示串口模式1(10位),通信波特率9600baud#include<reg51.h>//共阳极码表Unsignedcharcodedisp[]={0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年能源储备管理专干考试题库及答案
- 2026年内分泌科诊疗规范考试试题及答案
- 具体考勤制度通知模板
- 工程队考勤制度管理办法
- 保洁员考勤制度管理规定
- 医药公司销售员考勤制度
- 为何制定行政考勤制度
- 工厂上班考勤制度范本
- 关家沟中心小学考勤制度
- 学生宿管工作考勤制度
- 中国电力储能行业市场竞争态势及未来趋势研判报告
- 毕业设计(论文)-水稻盘育秧起苗机设计
- 2025年bilibili·B站营销通案
- 新人教版小学数学教材解读
- 累积损伤理论在电气设备寿命评估中的应用-全面剖析
- 易混淆药品培训
- 开学第一课开学立规矩课件64
- 《智能制造单元集成应用》课件-智能制造单元概述
- 中学-学年第二学期教科室工作计划
- 2024年贵州省公务员考试《行测》真题及答案解析
- DB34T 3267-2024 公路养护工程设计文件编制规范
评论
0/150
提交评论