ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:545.74KB ,
资源ID:17628504      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17628504.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机80c51的串行口Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机80c51的串行口Word下载.docx

1、信息流中的字符与字符间和字符内部位与位之间都 需要一个同步时钟。,可以把许多字符组成一个信息组,也称 为一帧。串行通信数据传输速率:意义是每秒钟传送多少个二进制数。一般异步通信在:509600bit/s 同步通信在:1002Mbit/s我们称之为比特率,但在二进制的情况下,比特率和波特率数值相同,故而一般称作“波特率”。串行口简介: 组成:两个数据缓冲寄存器SBUF一个串行口控制寄存器SCON一个输入移位寄存器串行口波特率发生器用于控制串行通信的速率(由内部的分频器 和控制开关电路组成),它的振荡源可以来自单片机的振荡频率 fOSC,也可以来自定时/计数器的时钟输出。外界数据通过引脚RXD(P

2、3.0)输入。数据先逐位进入输入移位寄存器,在进入接收寄存器(SBUF),在接收器中采用了双缓冲结构,避免数据重叠(因为CPU是被动的)。要发送的数据通过发送控制器控制逻辑门电路经输出移位寄存器一位一位输出到TXD(P3.1)。串行口控制寄存器SCON:SM0,SM1为串行方式选择位,可以有四种方式;SM2为多机通信控制位,在方式2、3中配合发送/接收数据的第九位(TB8/RB8)对主机发来的数据识别并处理。REN为允许串行接收位,要由软件控制置1为允许接收。TI、RI为发送/接收中断标志位。注意:在发送完数据后硬件会自动置TI为1,若要继续发送,必 须用软件清零。准备接收时,首先要清零RI,

3、接收完8位数据后 硬件会自动置RI为1,然后执行读数据指令MOV A,SBUF,然后一 定要清RI为0。波特率的设置:方式0:时钟频率的1/12,不受 SMOD位影响。方式2: (2SMOD/64)*fosc方式1和3:(2SMOD/32)*T1溢出率T1溢出周期:(12/fosc)*(256-X)和定时器有关了我们一般是根据波特率计算溢出初值X。串行口工作方式:由于我们最常用的是方式1,故重点介绍如下:执行MOV SBUF,A指令时,CPU将一个数据写入发送缓冲寄存器,就启动发送器发送。发送完一帧数据后,TI置1,通知CPU可以发送下一个数据了。接收时,首先置RI为0,REN为1;CPU开始

4、从RXD采样,当发现1至0的负跳变时,确定是起始位0。当停止位到来之后送入RB8,RI=1,申请中断,通知CPU取走SBUF中数据。计算机仿真可以看出,方式一下的波特率误差最小,数据最稳定。总的来说,方式2,3均为11位异步通信方式,只是波特率的设置方法不同。发送或接收时和数据的第九位相关,联系到一个应用领域即多机通信。多机通信:80C51的串行通信方式2、3有一个专门的应用领域:多机通信TXDRXD主机TXD RXD从机0从机1从机2从机3主要靠主从机之间正确的设置与判断多机通信控制位SM2和发送/接收数据的第九位(D8)。主机发送地址帧数据: MOV SCON,#0D8H /1101100

5、0置TB8为以表示1地址帧所有从机初始化SM2=1,处于接收地址帧的状态MOV SCON,#0F0H /11110000当从机接收到主机发来的信息后,若RB8=1,则置RI=1, 中断后判断发来的地址与自己是否相符。若相符,SM2=0;准备接收数据帧;并向主机返回地址核对;主机发送数据时,置TB8=0,此时各个从机都处于接收状态,但 只有SM2=0的那个从机才可以接收到数据。这里都是方式3;下面举例示范:#include#define uchar unsigned charuchar i;sbit D0=P10;sbit D1=P11;sbit D2=P12;sbit D3=P13;sbit

6、D4=P14;sbit D5=P15;sbit D6=P16;sbit D7=P17;void chuankou(void) /串口初始化函数 TMOD=0X20; /设置中断工作方式寄存器为00100000: /方式2(自动重载) /在方式2下,16位的定时/计数器被拆 /成两个:寄存器THI用以保持初值,TL0/计数,若溢出,则置/位中断。 TH1=0Xfd; TL1=0xfd; /以11.0592MHZ为晶振,波特率为9600时的初值; TR1=1; SCON=0X50; /01010000:串口方式1,REN置1; EA=1; /总中断打开 ES=1;void main(void) v

7、oid chaunkou(); while(1) /大循环 while(!RI); /等待RI置1 ,通知CPU从SBUF中取走数据 RI=0; /软件清0,继续循环采样 i=SBUF; switch(i) case 0x01:D0=D0;break; /取反 case 0x02:D1=D1; case 0x03:D2=D2; case 0x04:D3=D3; case 0x05:D4=D4; case 0x06:D5=D5; case 0x07:D6=D6; case 0x08:D7=D7; /使用串口调试助手发送数据,CPU根据SBUF接收到的数据使对应的LED亮; 编译:keilc中在target中设置频率:11.0592MHZ,并生成hex文件;利用USB转串口芯片,启动串口调试助手。在STC中下载时要把串口助手中的端口关闭,否则串口复用会报错。在串口助手中选择端口(不同的计算机不一样,我的是COM5)选择十六进制数发送(不然发送的是ASCII码),输入01并点击手动发送,会看到LED1被点亮。即完成了单片机接收电脑发送数据的实验。以上是学习中的总结,参考了相关书籍和文档,也经过实验验证叙述不清晰不到位的地方望见谅,或者和我交流。微信号:yr0868

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1