已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验六 串行通信实验报告班级: 学号: 姓名: 教师: 一、双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。我们U1为甲机,U2为乙机。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。 电路如图1所示。要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11.0592M。实验电路图:1、C源程序清单甲机(U1)代码:#includeSTC12C5A60s2.h#define uchar unsigned charvoid delay(uchar i);void send(uchar temp);void init(void);void main(void)init(); delay(200);while(1) send(); send(1); send(2); send(1); send(3); send(2); send(2);send(3); send(1);/*初始化*/void init(void) SCON=0x40; /串口模式1 只发送不接收 TMOD=0x20; /T1 工作模式2 TH1=0xf4; /波特率2400 TL1=0xf4; PCON=0x00; /不加倍 SMOD=0 TI=0; TR1=1; /开定时中断/*发送函数*/void send(uchar temp)SBUF=temp;while(TI=0); TI=0;delay(50);/*延时函数*/void delay(uchar i) unsigned int j; for(i;i0;i-) for(j=0;j100;j+);乙机(U2)代码:#includeSTC12C5A60s2.h#define uchar unsigned char#define uint unsigned intvoid init(void);void delay(uchar t);void xianshi(void);uchar code distable = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴数码管段码uchar code wi = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar tab9 = 0,0,0,0,0,0,0,0,0;uchar i=0,temp;uint a,b,c,d,e,f,g,h;void main()init();while(1)xianshi();/初始化/void init(void)PCON = 0x00; /不加倍SMOD=0SCON = 0x50; /设置串口方式1且允许串口接收 REN=1TMOD = 0x20; /设置T1为方式2TH1 = 0xf4;TL1 = 0xf4; /设置波特率2400TR1 = 1; /开启定时器1ES = 1; /允许串行口中断EA = 1; /允许全局中断/串口中断接收程序/void receive() interrupt 4temp=SBUF;while(RI=0);RI=0;if(temp=)temp=0;tabi=temp;i+;if(i =9)i=0;a=tab1;b=tab2;c=tab3;d=tab4;e=tab5;f=tab6;g=tab7;h=tab8;/数码管显示/void xianshi(void)uchar i,dm,wx;/m1:m0 00=标准; 01=推挽; 10=输入; 11=开漏输出P1M1 = 0X00;P1M0 = 0Xff;P2M1 = 0X00;P2M0 = 0Xff; /设定P1,P2推挽输出while(1) for(i=1;i9;i+) /rami=tabi; dm=distabletabi;/取显示段码 wx=wii-1; /取位选码 P1=0x00; /关显示 P2=dm; /段码赋给P2口 P1=wx; /点亮位选的那个数码管 delay(1); /延时/*uchar k,ram8;ram0 = a;ram1 = b;ram2 = c;ram3 = d;ram4 = e;ram5 = f;ram6 = g;ram7 = h;for(k=0;k8;k+)P2=distableramk;P1=wik;P2=0x00;delay(1);*/延时函数/void delay(uchar t )uchar x,y,z;for(x=t;x0;x-)for(y=25;y0;y-)for(z=100;z0;z-); 2、仿真结果3、问题分析在数码管显示这块,刚开始是这样写的在proteus上仿真的时候是没有任何问题的,但是后来在实验板上数码管显示特别暗,几乎看不出来有显示数字,想了想可能是没有加推挽输出,然后就将推挽输出代码加入,然后重新下载,但是结果和之前没什么不同。后来想既然这样的话,那就不是推挽的问题了,是这段显示代码有问题,于是将显示代码改为数码管的动态扫描。这样的话,在Proteus上仿真和实验板上都能出来结果了。二、单片机与PC机通信单片机向PC机发送数据。单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。Proteus仿真电路:由于是1200的波特率,需要注意的是:将这里要改为12001、C源程序清单#includereg51.h#define uchar unsigned charvoid delay(uchar i);void send(uchar temp);void init(void);void main(void)init(); /delay(50);while(1) send(0x31); send(0x32); send(0x31); send(0x33); send(0x32); send(0x32);send(0x33); send(0x31);send(0x20);/*初始化*/void init(void) SCON=0x40; /串口模式1 只发送不接收 TMOD=0x20; /T1 工作模式2 TH1=0xe8; /波特率1200 TL1=0xe8; PCON=0x00; /不加倍 SMOD=0 TI=0; TR1=1; /开定时中断/*发送函数*/void send(uchar temp)SBUF=temp;while(TI=0); TI=0;delay(50);/*延时函数*/void delay(uchar i) unsigned int j; for(i;i0;i-) for(j=0;j100;j+);2、运行结果Proteus仿真:PC机:3、问题分析这个程序其实和上一个的甲机程序大同小异,需要注意的是,发送的是ASCll码。三、问题解答1、在该实验中,单片机串行口工作在什么工作方式下?说明该工作方式的特点。答:串行口是工作在方式1。方式1特点:(1)、8位UART接口。(2)、帧结构为10位,包括起始位(为0),8位数据位,1位停止位。(3)、波特率由指令设定,由T1的溢出率决定。2、波特率是什么?怎样设置单片机串口通讯的波特率?如果实验要求通讯波特率为4800bps,怎样修改程序? 答:模拟线路信号的速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒偶尔会产生错误。在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示(也就是每秒调制的符号数),其单位是波特(Baud,symbol/s)。波特率是传输通道频宽的指标。波特率设置:串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =((2SMOD)/64) fosc 方式1的波特率 =((2SMOD)/32)(T1溢出率)方式3的波特率 =((2SMOD)/32)(T1溢出率)注意:SMOD为PCON寄存器的最高位(即PCOM7)。T1 溢出率 = fosc /12256 (TH1) -将该公式代人方式1或3 最后推出公式:TH1=256-(fosc*2SMOD)/(baudrate*12*32)如果你用方式2(波特率 =((2SMOD)/64) fosc )的话,12M的晶振就不能得到9600波特率了(除非你改变你的晶振),所以你只能选择方式1或3。而且12M的晶振在串口传输时会有误差,就如你上面算的那样结果会有小数点,TH1又只能是整数的,所以传输时会有误差。如果是4800的波特率,将初始化程序里的TH1、TL1的值改为0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学影像诊断思维的逻辑构建方法
- 区块链赋能药品全流程溯源体系建设
- 略论西汉太学
- 2025年动态交通管理系统项目可行性研究报告及总结分析
- 2025年新型环保洗涤剂生产项目可行性研究报告及总结分析
- 影视音乐赏析专题测试答案及深度解析集
- 2025年虚拟现实娱乐系统开发项目可行性研究报告及总结分析
- 2025年绿色建筑材料开发项目可行性研究报告及总结分析
- 2025年社区智能服务平台可行性研究报告及总结分析
- 2025年宅经济与家居市场发展研究项目可行性研究报告及总结分析
- 幕墙作业安全技术交底
- 雾化吸入知识宣教主题班会课件
- 管理评审报告-2020年ISO27001-信息安全管理体系
- DL∕T 1564-2016 垂线装置 标准
- 3.1机械运动培优练习浙教版科学七年级下册
- 综合性学习《走进小说天地》及教案(部编)课件
- 新能源电动车安全培训课件
- 2021高性能混凝土应用技术标准
- 保安公司战略合作协议
- 《横断面研究调查》课件
- 人物形象与社会现实的呼应-解读《东方快车谋杀案》
评论
0/150
提交评论