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

上传人:知****量 文档编号:43240723 上传时间:2022-09-17 格式:DOC 页数:13 大小:319.50KB
返回 下载 相关 举报
单片机串行通信实验报告.doc_第1页
第1页 / 共13页
单片机串行通信实验报告.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《单片机串行通信实验报告.doc》由会员分享,可在线阅读,更多相关《单片机串行通信实验报告.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验六 串行通信实验报告班级: 学号: 姓名: 教师: 一、双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。我们U1为甲机,U2为乙机。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。 电路如图1所示。要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11.0592M。实验电路图:1、C源程序清单甲机(U1)代码:#include#define uchar unsigned charvoid delay(uchar i);void send(uchar temp);void init(void);void main

2、(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=

3、0); TI=0;delay(50);/*延时函数*/void delay(uchar i) unsigned int j; for(i;i0;i-) for(j=0;j100;j+);乙机(U2)代码:#include#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;/共阴数码管段码uch

4、ar 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; /开启

5、定时器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 =

6、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;k0;x-)for(y=25;y0;y-)for(z=100;z0;z-);

7、 2、仿真结果3、问题分析在数码管显示这块,刚开始是这样写的在proteus上仿真的时候是没有任何问题的,但是后来在实验板上数码管显示特别暗,几乎看不出来有显示数字,想了想可能是没有加推挽输出,然后就将推挽输出代码加入,然后重新下载,但是结果和之前没什么不同。后来想既然这样的话,那就不是推挽的问题了,是这段显示代码有问题,于是将显示代码改为数码管的动态扫描。这样的话,在Proteus上仿真和实验板上都能出来结果了。二、单片机与PC机通信单片机向PC机发送数据。单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。Proteus仿真电

8、路:由于是1200的波特率,需要注意的是:将这里要改为12001、C源程序清单#include#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(voi

9、d) 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、问题分析这个程序其实和上一个的甲机

10、程序大同小异,需要注意的是,发送的是ASCll码。三、问题解答1、在该实验中,单片机串行口工作在什么工作方式下?说明该工作方式的特点。答:串行口是工作在方式1。方式1特点:(1)、8位UART接口。(2)、帧结构为10位,包括起始位(为0),8位数据位,1位停止位。(3)、波特率由指令设定,由T1的溢出率决定。2、波特率是什么?怎样设置单片机串口通讯的波特率?如果实验要求通讯波特率为4800bps,怎样修改程序? 答:模拟线路信号的速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特

11、/秒偶尔会产生错误。在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示(也就是每秒调制的符号数),其单位是波特(Baud,symbol/s)。波特率是传输通道频宽的指标。波特率设置:串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =((2SMOD)/64) fosc 方式1的波特率 =((2SMOD)/32)(T1溢出率)方式3的波特率 =((2SMOD)/

12、32)(T1溢出率)注意:SMOD为PCON寄存器的最高位(即PCOM)。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的值改为0xfa即可11.0592MHZ的晶振标准波特率 实际波特率 定时器预置数150 150 0X41 200 200 0X70 300 300 0XA0 600 600 0XD0 1200 1200 0XE8 2400 2400 0XF4 4800 4800 0XFA 7200 7200 0XFC 9600 9600 0XFD 14400 14400 0XFE 28800 28800 0XFF

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁