文档详情

实验五-单片机多点串行通信系统设计实验.docx

发布:2017-12-21约4.9千字共15页下载文档
文本预览下载声明
实验五 单片机多点串行通信系统设计实验一、实验目的1、了解单片机串口结构;2、掌握单片机串口通信方法;3、掌握单片机多机通信系统硬件设计与编程方法。二、实验仪器和设备PC系统机、Proteus软件、KeilC51软件。实验要求和实验步骤1、实验要求利用单片机串口通信技术设计多机通信系统。系统包含一个主机和三个从机。三个从机能将温度传感器采集信息通过串口将信息传送给主机并显示。要求给出电路原理图,编写程序,给出仿真结果。2、实验步骤(1)画出仿真电路图;(2)根据控制要求,编写源程序;程序清单:主机的程序://********************************************//包含文件,程序开始//********************************************#includereg52.h#includeLCD1602.h#define uchar unsigned char#define uint unsigned intuchar a,b,fh;uint t,t1;//显示数据数组uchar displaytemp1[15]=WenDu A: ;//uchar displaytemp2[8]=B: ;//uchar displaytemp3[8]=C: ;////*********************************************//延时函数//********************************************* void delays (unsigned int us) { while(us--);}//*********************************************//********************************************//显示内容处理函数//********************************************//A点温度显示void DISPLAY1(){ displaytemp1[8]= fh; displaytemp1[9]= t/100+0x30; displaytemp1[10]= (t%100)/10+0x30; displaytemp1[11]= (t%100)%10+0x30; displaytemp1[12]= 0xdf; displaytemp1[13]= 0x43; LCD_Write_String(0,0,displaytemp1);}//B点温度显示void DISPLAY2() { displaytemp2[2]= fh; displaytemp2[3]= t/100+0x30; displaytemp2[4]= (t%100)/10+0x30; displaytemp2[5]= (t%100)%10+0x30; displaytemp2[6]= 0xdf; displaytemp2[7]= 0x43; LCD_Write_String(0,1,displaytemp2);}//C点温度显示void DISPLAY3(){ displaytemp3[2]= fh; displaytemp3[3]= t/100+0x30; displaytemp3[4]= (t%100)/10+0x30; displaytemp3[5]= (t%100)%10+0x30; displaytemp3[6]= 0xdf; displaytemp3[7]= 0x43; LCD_Write_String(8,1,displaytemp3);}//通信函数*************************************void tongxin(){while(TI==0);//如果TI=0,未发送完,循环等待 TI=0; while(RI==0);// 若RI为0,未接收到数据 RI=0;// 接收到数据,则把RI清0 a=SBUF; while(RI==0);// 若RI为0,未接收到数据 RI=0;// 接收到数据,则把RI清0 b=SBUF; t=b;t=8;t=t|a;t1=t;if(t10xf000) { fh=-; t=~t; t+=1; } else { fh=+; }t=t*0.0625;}//主函数//*******************************************void main(){ TMOD=0x2
显示全部
相似文档