ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:251.52KB ,
资源ID:18124274      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18124274.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机串行通信实验报告Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机串行通信实验报告Word文件下载.docx

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

2、ne 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

3、,g,h;void main() xianshi();/初始化/ 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; /允许全局中断/串口中断接收程序/void receive() interrupt 4 temp=SBUF; while(RI=0); RI=0; if(temp=) temp=0; tabi=temp; i+; i

4、f(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推挽输出 for(i=1;i9;i+) /rami=tabi; dm=distabletabi; /取显示段码 wx=wii-1; /取位选码 P1=0x00; /关显示 P

5、2=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;kx-) for(y=25;yy-) for(z=100;zz-); 2、仿真结果3、问题分析在数码管显示这块,刚开始是这样写的在proteus上仿真的时候是没有任何问题的,但是后来在实验板上数码管显示特别暗,几乎看不出来有显示数字,想了想可能是没有加推挽输出,然后就将推挽输出代码加入,然后重

6、新下载,但是结果和之前没什么不同。后来想既然这样的话,那就不是推挽的问题了,是这段显示代码有问题,于是将显示代码改为数码管的动态扫描。这样的话,在Proteus上仿真和实验板上都能出来结果了。二、单片机与PC机通信单片机向PC机发送数据。单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。Proteus仿真电路:由于是1200的波特率,需要注意的是:将这里要改为12001、C源程序清单reg51.hvoid delay(uchar i);void send(uchar temp);void main(void) /delay(50

7、); send(0x31); send(0x32); send(0x31); send(0x33); send(0x20); TH1=0xe8; /波特率1200 TL1=0xe8;2、运行结果Proteus仿真:PC机:这个程序其实和上一个的甲机程序大同小异,需要注意的是,发送的是ASCll码。三、问题解答1、在该实验中,单片机串行口工作在什么工作方式下?说明该工作方式的特点。答:串行口是工作在方式1。方式1特点:(1)、8位UART接口。(2)、帧结构为10位,包括起始位(为0),8位数据位,1位停止位。(3)、波特率由指令设定,由T1的溢出率决定。2、波特率是什么?怎样设置单片机串口通讯

8、的波特率?如果实验要求通讯波特率为4800bps,怎样修改程序?模拟线路信号的速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒偶尔会产生错误。在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示(也就是每秒调制的符号数),其单位是波特(Baud,symbol/s)。波特率是传输通道频宽的指标。波特率设置:串行口的四种工作方式对应三种波特率。由于输入

9、的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD)/64) fosc 方式1的波特率 =(2SMOD)/32)(T1溢出率)方式3的波特率 =(2SMOD)/32)(T1溢出率)注意:SMOD为PCON寄存器的最高位(即PCOM)。T1 溢出率 = fosc /12256 (TH1) -将该公式代人方式1或3 最后推出公式:TH1=256-(fosc*2SMOD)/(baudrate*12*32)如果你用方式2(波特率 =(2SMOD)/64) fosc )的话,12M的晶振就不能得到9600波特率了(除非你改变你的

10、晶振),所以你只能选择方式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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1