单片机应用与设计实验报告-串口收发综合设计_第1页
单片机应用与设计实验报告-串口收发综合设计_第2页
单片机应用与设计实验报告-串口收发综合设计_第3页
单片机应用与设计实验报告-串口收发综合设计_第4页
单片机应用与设计实验报告-串口收发综合设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、 课程名称: 单片机应用与设计 实验项目名称: 串口收发综合设计 学院: 信息工程学院 专业: 电子信息专业 指导教师: 报告人: 学号:班级: 电3 实验时间: 2015.12 实验报告提交时间: 2015.12 教务部制实验目的与要求: 1、 了解I2C总线的控制原理; 2、 学习运用I2C总线主控软件包;3、I2C总线是一种双向二线制同步串行总线,由数据总线SDA和时钟SCL构成,数据线上信号完全与时钟同步。数据传送采用主从方式,即主器件(主控制器)寻址从器件(被控器),启动启动总线,产生时钟,传送数据及结束数据的传送。I2C总线上的数据传送严格按照一定时序完成,同步时钟允许通过总线以不

2、同的波特率进行通信,也是停止和重新启动串行发送握手信号。方法、步骤:从PC串口助手发送“0-9”中5个数字到单片机。单片机将收到的5个数字做一次运算后,回送到PC,并保存到24C02。单片机关机后再开机。从PC串口助手发送“r”,单片机将24C02保存的内容送回到PC。实验过程及内容:PC串口单片机I2C24C02从PC串口助手发送“0-9”中5个数字到单片机后,单片机将收到的5个数字做一次加法运算后,并将所得到的和保存到24C02。单片机关机后再开机,从PC串口助手发送“r”,单片机将24C02保存的内容送回到PC。数据处理分析:程序代码:#include#define uchar unsi

3、gned char#define uint unsigned intsbit sda=P20; sbit scl=P21;uint i,a5,flag1,flag2,b;void delay() ; void start() /开始信号sda=1;delay();scl=1;delay();sda=0;delay();void stop() /停止sda=0;delay();scl=1;delay();sda=1;delay();void respons() /应答uchar i;scl=1;delay();while(sda=1)&(i250)i+;scl=0;delay();void in

4、it()sda=1;delay();scl=1;delay();void write_byte(uchar date)uchar i,temp;temp=date;for(i=0;i8;i+)temp=temp1;scl=0; delay();sda=CY;delay();scl=1;delay();scl=0;delay();sda=1;delay();uchar read_byte()uchar i,k;scl=0;delay();sda=1;delay();for(i=0;i8;i+)scl=1;delay();k=(k1)|sda;scl=0;delay();return k;void

5、 write_add(uchar address,uchar date)start();write_byte(0 xa0);respons();write_byte(address);respons();write_byte(date);respons();stop();uchar read_add(uchar address)uchar date;start();write_byte(0 xa0);respons();write_byte(address);respons();start();write_byte(0 xa1);respons();date=read_byte();stop(

6、);return date;void init2()TMOD=0 x20;TH1=0 xfd;TL1=0XFD;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;void main() uint j;uchar sum,sum2;init(); /初始化24C02init2(); / 初始化串口 while(1) if(i=5) for(j=0;ji;j+) sum+=aj; write_add(3,sum); i=0; if(flag1=1) ES=0; SBUF=b; while(!TI); TI=0; ES=1; flag1=0; if(flag2=1) sum2=re

7、ad_add(3); ES=0; SBUF=sum2; while(!TI); TI=0; ES=1; flag2=0; void ser() interrupt 4 RI=0; if(SBUF=0) ai=SBUF; /用数组a储存五个数 b=SBUF; /输入一个值后立刻显示 i+; flag1=1; if(SBUF=r) flag2=1; 运行结果(截图):依次从串口输入五个数(单片机将数值相加后保存到24C02):断电重开后输入字符“r”:然后单片机将相加后的数值通过串口返回数据:实验结论:本次实验,我了解了I2C总线的控制原理,及对串口中断与通信有了更深刻的理解,收获挺多的,如下:1. I2C总线有2条双向串行线,一条数据线SDA,一条时钟线SCL。SDA传输数据是大端传输,每次传输8bit,即一字节,除此,我也更加了解了它的数据传输格式,应答方式等。2.关于外部中断的内容,在这个实验中也体现了出来,使我对外部中断也有了更深的理解。3.通过这个实验,我了解了24C02这个器件的作用以及它的特点。总而言之,在这个综合性强的实

温馨提示

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

评论

0/150

提交评论