单片机实验报告串行口.docVIP

  • 14
  • 0
  • 约1.83千字
  • 约 6页
  • 2023-09-13 发布于江苏
  • 举报
单片机实验报告 实验名称: 串行通信实验 姓 名: 魏 冶 学 号: 090402105 班 级: 光电一班 实验时间: 2011-11-29 南京理工大学紫金学院电光系 实验目的 理解单片机串行口的工作原理; 学习使用单片机的TXD、RXD口; 了解MAX232芯片的使用。 实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。它有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器,SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行接口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号做接收或发送移位寄存器的移位时钟。TI和RI分别发送完数据和接收完数据的中断标志,用来向CPU发中断请求。 实验内容 1、 学会DPFlash软件的操作与使用,以及内部内嵌的一个串口调试软件的使用。 2、 用串口连接PC机和DP-51PROC单片机综合仿真实验仪。 3、 编写一个程序,利用单片机的串行口发送0x55,波特率为9600。 程序设计流程图 程序下载运行后,可在PC机上的串口调试软件上(内嵌在DPFlash软件的串口调试器,设置通信口为COM1口,波特率为9600,数据位8,停止位1)看到接收到“UUUUUU……”,出现这样的结果就基本达到要求。 代码: #includereg51.h void main() { long int i; SCON=0x40; PCON=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; TI=1; TR1=1; star:for(i=0;i5000;i++); SBUF=0x55; goto star; } 电路图; 5、 在单片机接收到0x55时返回一个0x41,在PC机一端,以接收到0x41完成,波特率2400。 程序设计流程图 (1)代码 #includereg51.h void main() { SCON=0x40; REN=1; TMOD=0x20; TH1=0xf4; TL1=0xf4; TR1=1; while(1) { start:while(!RI); RI=0; if(SBUF!=0x55) goto start; else SBUF=0x41; }} (3)电路图 7、 单片机与单片机之间进行串口通信,实现基于方式1的单工通信,发送方以一定波特率发一串有效数据,接收方接收后送P1口通过LED灯显示。 (1)单片机发送代码: #includereg51.h Code unsigned char temp[9]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f,0xff}; long int i; void delay() { int i,j; for(i=0;i200;i++) for(j=0;j210;j++); } void main() { SCON=0x40; TMOD=0x20; TH1=0xf4; TL1=0xf4; TR1=1; P1=0xff; while(1){for(i=0;i9;i++) { SBUF=temp[i]; while(!TI); TI=0; delay(); } i=0; } } 单片机接受代码 #includereg51.h void main() { SCON=0x40; REN=1; TMOD=0x20; TH1=0xf4; TL1=0xf4; TR1=1; while(!RI) { RI=0; P1=SBUF;}} 电路图 小结与体会 通过上课听老师讲解,和自己的操作,理解了单片机串行口的工作原理,学会了使用单片机的TXD、RXD口、MAX232芯片的使用,学会了DPFlash下载。 更好的了解单片机的发送和接受。

文档评论(0)

1亿VIP精品文档

相关文档