万里学院-单片机原理与应用-任务六报告-单片机与PC机的串口通信.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:23KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

万里学院-单片机原理与应用-任务六报告-单片机与PC机的串口通信.doc

万里学院-单片机原理与应用-任务六报告-单片机与PC机的串口通信.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PAGE\*MERGEFORMAT1浙江万里学院实验报告成绩:教师:课程名称:单片机原理及应用实验名称:任务六:单片机与PC机的串口通信专业班级:姓名:学号:实验日期:一、实验目的1.掌握单片机串行通信接口的结构;2.掌握单片机串行通信接口的工作方式0和工作方式1;3.掌握C51串口中断服务函数的编写。二、实验内容编程实现单片机与PC机的串口通信,单片机发送10个字节的数据,PC机接收并显示(利用串口调试助手软件),波特率为9600bps。2.编程实现实现单片机与PC机的串行通信,波特率为4800bps,具体要求为:(1)单片机中断接收PC机的数据并回传给PC机;(2)如果接收的数据是01H,则LED闪烁;如果接收的是02H,则LED熄灭;如果接收的是03H,则LED点亮。三、实验结果1.实验内容1的程序#include<reg51.h>unsignedchardataSenddata,Sendcnt,Recvdata;voidmain(){TMOD=0x20;TL1=0xfd;TH1=0xfd;TR1=1;//初始化T1SCON=0x40;PCON=0x00;//初始化串口Senddata=1;Sendcnt=10;//发送数据为1,字节数为10EA=1;ES=1;//开串口中断REN=1;//允许串口接收SBUF=Senddata;//发送数据给SBUFwhile(1){;}//等待串口中断}voidser_int()interrupt4//串口中断服务子程序{if(RI==1)//是接收中断{RI=0;P1=SBUF;//读取SBUF数据送P1口显示}elseif(TI==1)//是发送中断{TI=0;//清发送中断标志位Sendcnt--;//发送字节数减1if(Sendcnt!=0)//没有发送完10个字节{Senddata++;//发送数据加1SBUF=Senddata;//发送数据送SBUF}}}实验内容2的程序#include<reg51.h>sbitled=P1^0;unsignedchardataSenddata,Sendcnt,Recvdata;unsignedchara;voiddelay500ms(void)//误差-0.000000000114us{unsignedchari,j,k;for(k=98;k>0;k--)for(j=127;j>0;j--)for(i=17;i>0;i--);}voidmain(){TMOD=0x20;TL1=0xfa;TH1=0xfa;TR1=1;//初始化T1SCON=0x40;PCON=0x00;//初始化串口//Senddata=1;Sendcnt=10;//发送数据为1,字节数为10EA=1;ES=1;//开串口中断REN=1;//允许串口接收//SBUF=Senddata;//发送数据给SBUFwhile(1){//if(a<=3&&a!=0)switch(a){case0:break;case1:led=!led;break;case2:led=0;break;case3:led=1;break;}delay500ms();}//等待串口中断}voidser_int()interrupt4//串口中断服务子程序{if(RI==1)//是接收中断{a=SBUF;RI=0;//SBUF=a;//读取SBUF数据送P1口显示}elseif(TI==1)//是发送中断{TI=0;//清发送中断标志位}}四、实验总结调试过程中遇到的问题,分析原因,如何解决?心得体会