单片机串行通信实验报告_第1页
单片机串行通信实验报告_第2页
单片机串行通信实验报告_第3页
单片机串行通信实验报告_第4页
单片机串行通信实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Scm实验报告(3)实验名称:串行通信姓氏:张浩学号:类级别:通信2班时间之间:2013.11南京工业大学紫金大学电光一、实验目的1、了解单片机串口的工作原理;2、学习使用单片机TXD端口;3、最大232解决方案芯片角色。二、实验原理计算机与其外部设备之间的数据交换称为通信。通信的基本方式可以分为并行通信和串行通信两种。在并行通信中,数据可以同时向对方发送至少8个方向、一个字节的8位二进制代码。串行通信使用两条传输线来传输数据,一次只能发送一个二进制文件。串行通信技术可以分为同步通信和异步通信两种方式,具体取决于发送的编码格式1,同步:数据以块为单位传递。发送开始前,显示为同步字符,发送和接收端同步由时钟执行。2、异步方法:数据不连续传递。以字符为单位传递。传输字节分为开始位、数据位、奇偶位和停止位,称为帧。通用格式:a,1位开始位1位无数据位奇偶校验位1位停止位b,1位元开始位元1bit资料位元1位元同位位元1位元停止位元串行通信技术根据数据流的方向分为三种方法:1,单个通信:数据流方向是固定的,数据可以从一侧传输到另一侧。2,半双工通信:数据的流向是双向的,但数据在一瞬间只能向一个方向流动。3、全双工通信:允许数据双向流动。也就是说,通信双方同时发送和接收数据。串行端口控制寄存器SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2蕾妮TB8RB8T1李SM0,SM1:位设置或0,由用于选择4种串行端口工作方式的软件决定。SM2:多机通信控制位。在方法2和方法3中,例如,如果SM2=1,则接收的第九数据(RB8)为0,则不启动接收中断标志RI(即RI=0),并且丢弃接收的前八位数据。仅当RB8为1时,发送接收到SBUF的前8位数据,并放置RI以生成中断请求。如果SM2=0,则第八个数据将加载到SBUF中,无论第九个数据是0还是1,都会发出中断请求。方法0中的SM2必须为0。REN:允许串行接收控制位。如果REN=0,则禁止接收。如果REN=1,则允许接收,此位由软件设置或重置。TB8:传输数据D8位。方法2和3中,TB8是传输的第九数据。多系统通信以TB8位状态指示主机是发送地址还是发送数据。TB8=0是数据,TB8=1是地址。也可以用作数据的奇偶校验位。此位由软件部署或重置。RB8:接收数据D8位。模式2和3中接收的第九数据用作奇偶位或地址帧或数据帧的标志。方法1中,如果SM2=0,则RB8是接收的停止位。方法0不使用RB8位。TI:发送中断标志位。在模式0中,传输数据以第8位结束,或停止位以其他方式传输,然后由内部硬件放置TI,并向CPU请求中断。CPU停止响应后,必须用软件清理0。TI还可以用作查询。RI:接收中断标志位。在模式0中,在接收到的数据的第8位终止或接收到停止位的中间,由内部硬件放置RI,并向CPU请求中断。同样,在CPU响应停止后,也必须使用软件清除0。RI也可以用于查询。电源控制寄存器PCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMOD-CF1CF0PDIDLPCON的最高位SMOD是串行端口波特率系数控制位。SMOD=1时,传输速度增加一倍。其他与串行端口无关。设置波特率:串行端口的四种工作方式对应于三种波特率模式。方法0,波特率固定为fosc/12。方法2的情况下,波特率由振荡频率fosc和SMOD(PCON.7)确定。公式为波特率=2SMODfosc/64。SMOD=0时,波特率为fosc/64;是。如果SMOD=1,则波特率为fosc/32。方法1和方法3的情况下,波特率确定为计时器/计数器T1的溢出率和SMOD,即:波特率=2SMOD计时器/计数器T1溢出速率/32三、实验内容#includereg51.h #define uchar unsigned charUchar a,flagvoid delay();Void init() /串行端口初始化函数:实现波特率9600b/s,但不监听TMOD=0x20/计时器1方法2TH1=0xfdTL1=0xfd/初始值:0xfdPCON=0x00/传输速率未加倍TR1=1;/启动计时器1SCON=0x50/接收串行端口设置,REN=0TI=0;/发送标志位最初为0RI=1;/接收标志位初始化为0ES=1;EA=1;flag=0;Void send(uchar dat) /发送函数:发送8位数据SBUF=dat/将发送的数据加载到SBUFwhile(TI=0);/等待发送完成TI=0;/发送已完成,且标记位必须为软件0Uchar receive() /接收函数:接收一帧中的数据Uchar dat/保存收到的数据while(RI=0);/等待接收完成RI=0;/标志位0,等待下一个接收Dat=SBUF/将接收的数据删除为datReturn dat在主函数处理中返回/dat */Void receive() interrupt 4 using 1RI=0;P1=SBUFdelay();A=SBUFflag=1;Void delay() /延迟函数:实现约15毫秒的时间Uchar m、n;for(m=0);M200m)for(n=0);N200n);Void main() /主函数:实施数据传输init();/初始化串行端口While(1)/send(0xAA);/0x55发送到串行端口0/P1=receive();/delay();/为系统提供一些响应时间If (flag=1)flag=0;send(a);del

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论