您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 基于RS232的双机通信实验程序和电路图
实验报告课程名称现场总线技术及其应用专业班级电信1012学号2010118504150学生姓名朱胜强指导教师范玉刚实训地点德行楼2013年5月10日实训成绩批阅教师日期基于RS232的双机通信实验一、实验目的1、理解串行通信的基本概念和51系列单片机的串行通信接口结构。2、理解现场仪表的通讯过程二、实验内容1、使用串口实现单片机1与单片机2的数据通信,实现互相控制。要求按下单片机1系统板上的按键,单片机2系统板上LED点亮。三、实验环境1、编程软件keil2、仿真软件proteus四、实验原理MAX232芯片用于电平转换,实现RS232电平与TTL电平(单片机)的互相转换。本次实验单片机之间通信不使用握手信号,只需3根信号线:TXD(发送线),RXD(接收线),GND(地线)。单片机之间通信的原理图如图1所示,当单片机1(主机)查询外接控制开关S3按下时,单片机1发送一个自定义信号给单片机2(从机),单片机2收到信号后点亮指示灯LED4。图1单片机之间通信的原理图五、实验过程单片机1的程序:#includereg52.h#defineucharunsignedchar//宏定义#defineunitunsignedint//宏定义sbitanjian=P1^0;//定义按键的位ucharnum;ucharcodetable[]={0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示数//延时函数voiddelay(unitz){unitx,y;for(x=z;x0;x--);for(y=110;y0;y--);}//主函数voidmain(){TMOD=0x20;//定时器1工作方式2TH1=0xFD;//11.0592Mhz9600bpsTL1=0xFD;TR1=1;//启动定时器1SCON=0x5;//模式1:8位数据可变波特率,允许接收EA=1;//打开总中断ES=1;//打开串口1中断while(1){if(anjian==0)//判断按键{delay(5);if(anjian==1)//按键消抖动{num=num+1;}if(num==11){num=0;}P0=table[num];//读数组中的值SBUF=table[num];//发送值}TI=0;//清除发送中断标志位}}单片机2的程序:#includereg52.h#defineucharunsignedchar//宏定义#defineunitunsignedint//宏定义unsignedcharrec_c;voidmain(){TMOD=0x20;//定时器1工作方式2TH1=0xFD;//11.0592Mhz9600bpsTL1=0xFD;TR1=1;//启动定时器1SCON=0x5;//模式1:8位数据可变波特率,允许接收EA=1;//打开总中断ES=1;//打开串口1中断}//中断接收函数voidrec()interrupt4{RI=0;//清除串口中断接收标志位rec_c=SBUF;//读串口缓冲区值P1=rec_c;//数码管显示}六、实验结论在单片机跟单片机之间通过MAX232通信的时候最重要的就是要设置好两个单片机的串口通信的初始化,只有确保了初始化的正确,后面的工作才能顺利的进行。在硬件的连接上,两片MAX232之间的连接要将TXD和RXD相连,这样才能实现两个单片机之间的通信。
本文标题:基于RS232的双机通信实验程序和电路图
链接地址:https://www.777doc.com/doc-4735346 .html