单片机串行通信实验报告
更新时间:2023-06-10 13:52:01 阅读量: 实用文档 文档下载
单片机实验报告(三)
实验名称:
姓 名:
学 号: 班 级: 时 间:
串行通信 张昊
110404247 通信2班 2013.11
南京理工大学紫金学院电光系
一、 实验目的
1、理解单片机串行口的工作原理;
2、学习使用单片机的TXD、RXD口; 3、了MAX232解芯片的作用。
二、 实验原理
计算机与其外部设备之间进行数据交换称为通信。通信的基本方式可分为并行通信和串行通信两种。并行通信中数据至少有8路,可以同时将一个字节的8位二进制代码发送到对方。串行通信用两根传输线进行数据的传输,一次只能发送一位二进制。
串行通信技术根据传送的编码格式不同,可分为同步通信和异步通信两种方式:
1、同步方式:数据以数据块为单位传送。在开始传送前用同步字符来指示,并由时钟来实现发送端和接收端同步。
2、异步方式:数据时不连续传送的。以字符为单位进行传送。被传送字节分为:起始位、数据位、校验位和停止位,称为一帧。
常用格式:
a、1bit起始位+8bit数据位+无校验位+1bit停止位 b、1bit起始位+8bit数据位+1位偶校验位+1bit停止位 串行通信技术根据数据流动方向分为三种方式:
1、单工通信:数据流动方向是固定的,数据只能由一方发送到另一方。
2、半双工通信:数据的流动方向是双向的,但一时刻,数据只能在一个方向流动。 3、全双工通信:允许数据在两个方向流动,即通信双方的数据发送和接收是同时的。
串行口控制寄存器SCON的格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
SM0、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,则允许接收,该位由软件置位或复位。
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也可供查询使用。
RI:接收中断标志位。在方式0时,当接收数据的第8位结束后,或在其它方式接收到停止位的中间由内部硬件使RI置位,向CPU请求中断。同样,在CPU响应中断后,也必须用软件清零。RI也可供查询使用。
电源控制寄存器PCON的格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
PCON的最高位SMOD是串行口波特率系数控制位。SMOD=1时,波特率增大一倍。其余各位与串行口无关。
波特率设置:
串行口的4种工作方式对应着三种波特率模式。 对于方式0,波特率是固定的,为fosc/12。
对于方式2,波特率由振荡频率fosc和SMOD(PCON.7)所决定。其对应公式为
波特率=2SMOD×fosc/64。当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。
对于方式1和方式3,波特率由定时器/计数器T1的溢出率和SMOD决定,即由下式确定:
波特率=2SMOD×定时器/计数器T1溢出率/32
三、 实验内容
#include"reg51.h"
#define uchar unsigned char uchar a,flag; void delay();
void init() //串行口初始化函数:实现9600b/s的波特率,只发送不接收 {
TMOD=0x20; //定时器1的方式2
TH1=0xfd; TL1=0xfd; //初值:0xfd PCON=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; //标志位清零,等待下次接收 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;m<200;m++) for(n=0;n<200;n++); }
void main() //主函数:实现数据发送
{
init(); //初始化串行口 while(1) {
//send(0xAA); //发送0x55给串行口清零 //P1=receive();
//delay(); //给系统一点响应时间 if (flag==1) {
flag=0; send(a); delay(); } } }
仿真图
四、 小结与体会
通过这次串行通信实验,有了上节课的简单了解,我对单片机串行口的工作原理有了更
为深入的了解,比如说发送缓冲器只可以写入不可读出、接收缓冲器只可以读出不可以写入、定时器T1作为波特率发生器,它的溢出信号作接收或发送移位寄存器的移位时钟、T1和R1分别为发送和接收完数据的中断标志等问题。
正在阅读:
单片机串行通信实验报告06-10
数据结构-第七章 图-考试题11-28
教师顶岗实习个人心得体会范文三篇03-23
Excel2013函数公式应用大全08-16
三级语法讲义02-26
高中生物 第3节 群落的结构 第2课时示范教案 新人教版03-13
电磁兼容标准与测试10-23
泰国经济发展论文 - 图文01-21
啄木鸟的启示作文600字07-10
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 串行
- 单片机
- 实验
- 通信
- 报告
- 中国民航总局关于限制携带液态物品乘坐民航飞机的公告
- 讲课稿:周围神经阻滞麻醉
- 立金银行培训中心之中国五矿与衡阳市政府签署战略合作协议
- 苏教版小学数学二年级下册期中试卷
- 10.招投标交易服务收费标准
- 麦粒肿诊断专家系统开发
- ABAQUS中Truss单元预应力的两种施加方法
- 南方电网-员工持证上岗工作指导意见
- 小学六年级奥数题集锦及答案
- 计量经济学试题3
- 第十六章 社会主义新中国时期的档案事业
- 连片教研活动主持词
- 扭摆法测物体的转动惯量(实验报告评分标准)
- 2014国家公务员政治常识习题精解(123)
- 2013年PMC工作总结及2014年工作计划
- 微型计算机与原理实验四 字符及字符串的输入和输出
- (宝中内部资料)高考理综化学知识点归纳整理
- 从英语发展史的角度看英语名词的发展
- 信息系统项目管理师考前模拟试题及参考答案十四
- 团组织生活主持稿