串行通信实验,南京理工大学紫金学院单片机实验报告

2018-12-09 17:18

单片机实验报告

实验名称:

姓 名: 学 号: 班 级: 时 间:

串行通信实验

通信 2013.11

南京理工大学紫金学院电光系

一、 实验目的

1、理解单片机串行口的工作原理。 2、学习使用单片机的TXD、RXD口。 3、了解MAX232芯片的作用。

二、 实验原理

MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送接收数据。它有两个互相独立的接受,发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号—(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器,SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF。串行接口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号作接收或发送移位寄存器的移位时钟。T1与R1分别为发送完数据与接收完数据的中断标志,用来向CPU发中断请求。

三、 实验内容

1、学会DPFlash软件的操作与使用,以及内部内嵌的一个串口调试软件的使用。 2、用串口连接PC机和DP-51PROC单片机综合仿真实验仪。RS232串行电路图如图:

RS232串口电路图

3、利用单片机的串行发送0x55,波特率为9600.程序设计流程图如下:

(1)代码

#include

#define uchar unsigned char uchar a,flag; void uartinit() {

TMOD=0X20; TH1=0XFD; TL1=0XFD; TR1=1; EA=1; ES=1;

SCON=0X50; }

void delay(uchar z) {

uchar m,n;

for(m=z;m<20;m++) for(n=0;n<20;n++); }

void send(uchar dat) {

SBUF=dat;

P1=dat; while(!TI); TI=0; }

void receive()interrupt 4 {

P1=SBUF; delay(10); a=SBUF; delay(10); flag=1; }

void main() {

uartinit(); while(1) {

if(flag==1) {

ES=0; RI=0; flag=0; send(a); ES=1; } } }

(2)电路图

4、在单片机接收到0X55时返回一个0x41。在PC机一端,已接收到0x41为完成,波特率 为9600。程序设计流程图如下:


串行通信实验,南京理工大学紫金学院单片机实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年中国餐饮O2O市场深度发展战略研究分析报告目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: