下载此文档

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


文档分类:高等教育 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
单片机串行通信实验报告————————————————————————————————作者:————————————————————————————————日期: 实验六串行通信实验报告班级:学号:姓名:教师:一、双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。我们U1为甲机,U2为乙机。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。电路如图1所示。要求串行通信方式为方式1,波特率为2400bit/s,不加倍,。实验电路图:1、C源程序清单甲机(U1)代码:#include<>#defineucharunsignedcharvoiddelay(uchari);voidsend(uchartemp);voidinit(void);voidmain(void){ init();delay(200); while(1) { send('^');send(1); send(2); send(1); send(3); send(2); send(2); send(3); send(1); }}/***********初始化***********/voidinit(void){ SCON=0x40;//串口模式1 只发送不接收TMOD=0x20;//T1工作模式2TH1=0xf4;//波特率2400TL1=0xf4;PCON=0x00;//不加倍SMOD=0TI=0;TR1=1; //开定时中断}/*********发送函数**********/voidsend(uchartemp){ SBUF=temp; while(TI==0);TI=0; delay(50);}/**********延时函数**********/voiddelay(uchari){unsignedintj; for(i;i>0;i--)for(j=0;j<100;j++);}乙机(U2)代码:#include<>#defineucharunsignedchar#defineuintunsignedintvoidinit(void);voiddelay(uchart);voidxianshi(void);ucharcodedistable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管段码ucharcodewi[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchartab[9]={0,0,0,0,0,0,0,0,0};uchari=0,temp;uinta,b,c,d,e,f,g,h;voidmain(){ init(); while(1) { xianshi(); }}/////////////初始化///////////////voidinit(void){ PCON=0x00;//不加倍SMOD=0 SCON=0x50;//设置串口方式1且允许串口接收REN=1 TMOD=0x20;//设置T1为方式2 TH1=0xf4; TL1=0xf4;//设置波特率2400 TR1=1;//开启定时器1 ES=1;//允许串行口中断 EA=1;//允许全局中断}////////////串口中断接收程序////////////voidreceive()interrupt4{ temp=SBUF; while(RI==0); RI=0; if(temp=='^') temp=0; tab[i]=temp; i++; if(i==9) { i=0; a=tab[1]; b=tab[2]; c=tab[3]; d=tab[4]; e=tab[5]; f=tab[6]; g=tab[7]; h=tab[8]; }}/////////////数码管显示/////////////voidxianshi(void){ uchari,dm,wx; //m1:m000=标准;01=推挽;10=输入;11=开漏输出 P1M1=0X00; P1M0=0Xff; P2M1=0X00; P2M0=0Xff;//设定P1,P2推挽输出 while(1) { for(i=1;i<9;i++) { //ram[i]=tab[i]; dm=distable[tab[i]]; //取显示段码 wx=wi[i-1]; //取位选码 P1=0x00; //关显示 P2=dm; //段码赋给P2口 P1=wx; //点亮位选的那个数码管 delay(1) ; //延时} } /*uchark,ram[8]; ram[0]=a; ram[1]=b; ram[2

单片机串行通信实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人jianjian401
  • 文件大小378 KB
  • 时间2019-10-02
最近更新