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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机串行通信实验报告.doc

1、单片机实验报告(三) 实验名称:串行通信姓 名:张昊学 号:110404247班 级:通信2班时 间:2013.11南京理工大学紫金学院电光系一、 实验目的1、理解单片机串行口的工作原理;2、学习使用单片机的TXD、RXD口;3、了MAX232解芯片的作用。二、 实验原理计算机与其外部设备之间进行数据交换称为通信。通信的基本方式可分为并行通信和串行通信两种。并行通信中数据至少有8路,可以同时将一个字节的8位二进制代码发送到对方。串行通信用两根传输线进行数据的传输,一次只能发送一位二进制。串行通信技术根据传送的编码格式不同,可分为同步通信和异步通信两种方式:1、同步方式:数据以数据块为单位传送。

2、在开始传送前用同步字符来指示,并由时钟来实现发送端和接收端同步。2、异步方式:数据时不连续传送的。以字符为单位进行传送。被传送字节分为:起始位、数据位、校验位和停止位,称为一帧。常用格式:a、1bit起始位+8bit数据位+无校验位+1bit停止位 b、1bit起始位+8bit数据位+1位偶校验位+1bit停止位 串行通信技术根据数据流动方向分为三种方式:1、单工通信:数据流动方向是固定的,数据只能由一方发送到另一方。2、半双工通信:数据的流动方向是双向的,但一时刻,数据只能在一个方向流动。3、全双工通信:允许数据在两个方向流动,即通信双方的数据发送和接收是同时的。串行口控制寄存器SCON的格

3、式如下:D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 T1 RISM0、SM1:由软件置位或清零,用于选择串行口四种工作方式。SM2:多机通信控制位。在方式2和方式3中,如SM2=1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI,产生中断请求。当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。REN:允许串行接收控制位。若REN=0,则禁止接收;REN=1,则允

4、许接收,该位由软件置位或复位。TB8:发送数据D8位。在方式2和方式3时,TB8为所要发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0为数据,TB8=1为地址;也可用作数据的奇偶校验位。该位由软件置位或复位。RB8:接收数据D8位。在方式2和方式3时,接收到的第9位数据,可作为奇偶校验位或地址帧或数据帧的标志。方式1时,若SM2=0,则RB8是接收到的停止位。在方式0时,不使用RB8位。TI:发送中断标志位。在方式0时,当发送数据第8位结束后,或在其它方式发送停止位后,由内部硬件使TI置位,向CPU请求中断。CPU在响应中断后,必须用软件清零。此外,TI

5、也可供查询使用。RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。同样,在CPU响应中断后,也必须用软件清零。RI也可供查询使用。电源控制寄存器PCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMOD-CF1CF0PDIDLPCON的最高位SMOD是串行口波特率系数控制位。SMOD=1时,波特率增大一倍。其余各位与串行口无关。波特率设置:串行口的4种工作方式对应着三种波特率模式。对于方式0,波特率是固定的,为fosc/12。对于方式2,波特率由振荡频率fosc和SMOD(PCON.7)所决定。其对

6、应公式为波特率=2SMODfosc/64。当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。对于方式1和方式3,波特率由定时器/计数器T1的溢出率和SMOD决定,即由下式确定:波特率=2SMOD定时器/计数器T1溢出率/32三、 实验内容#includereg51.h#define uchar unsigned charuchar a,flag;void delay();void init() /串行口初始化函数:实现9600b/s的波特率,只发送不接收 TMOD=0x20; /定时器1的方式2 TH1=0xfd; TL1=0xfd; /初值:0xfd PCO

7、N=0x00; /波特率不倍频 TR1=1; /启动定时器1 SCON=0x50; /设置串行口为接收,REN=0 TI=0; /发送标志位初始为0 RI=1; /接收标志位初始化为0 ES=1; EA=1; flag=0; void send(uchar dat) /发送函数:发送一个8位的数据 SBUF=dat; /把发送的数据装载入SBUF中 while(TI=0);/等待发送完成 TI=0; /发送完成,标志位必须软件清零uchar receive() /接收函数:接收一帧数据 uchar dat; /保存接收到的数据 while(RI=0);/等待接收完成 RI=0; /标志位清零,

8、等待下次接收 dat=SBUF; /接收到的数据取出给dat return dat; /返回dat给主函数处理*/void receive() interrupt 4 using 1 RI=0; P1=SBUF; delay(); a=SBUF; flag=1; void delay( ) /延时函数:实现约15ms的时间 uchar m,n; for(m=0;m200;m+) for(n=0;n200;n+);void main() /主函数:实现数据发送 init(); /初始化串行口 while(1) /send(0xAA); /发送0x55给串行口清零 /P1=receive(); /delay(); /给系统一点响应时间if (flag=1) flag=0; send(a); delay(); 仿真图 四、 小结与体会通过这次串行通信实验,有了上节课的简单了解,我对单片机串行口的工作原理有了更为深入的了解,比如说发送缓冲器只可以写入不可读出、接收缓冲器只可以读出不可以写入、定时器T1作为波特率发生器,它的溢出信号作接收或发送移位寄存器的移位时钟、T1和R1分别为发送和接收完数据的中断标志等问题。

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

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