版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书课程设计名称:单片机课程设计课程设计题目:单片机与单片机之间的串行通讯学院名称:信息工程学院专业:电子信息科学与技术班级:090431班学号:xxx姓名:xxx评分:教师:xxx2021年6月25日电子信息工程专业课程设计任务书2010-2011学年第2学期第17周-20周题目单片机与单片机之间的串行通讯内容及要求用RS232串行芯片实现双向通讯。传送的数据在显示器上〔数码管和发光二极管〕显示。进度安排第17周收集单片机双机通讯的资料,思考双机通讯传送形式,如何显示,了解RS232的作用。第18周用proteus设计原理图,用Keil编写程序,实现仿真后,调试好程序。第十九周把编译成功的程序下载到开发板上,进展实际操作。第二十周完成课程报告总结和归纳双机通讯的知识要点。学生姓名:xxxxxxx指导时间指导地点:E楼404室任务下达2021年06月日任务完成20年月日考核方式1.评阅□2.辩论□EQ\o\ac(□,√)□指导教师xxx系〔部〕主任注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。课程设计完毕后与“课程设计小结〞、“学生成绩单〞一并交院教务存档摘要串行通讯是单片机的一个重要应用。本设计就是利用两块单片机来完成一个系统,实现单片机之间的串行通讯。随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。于是利用单片机串行口实现不同计算机之间的相互通信,以到达信息或程序的共享是非常有用的。从智能家用电器到工业上的控制系统都采用了上位机与下位机基于串行通信的主从工作方式,这样就充分利用了微机分析处理能力强、速度快的特点及下位机〔单片机〕面向控制、使用灵活方便的优势。由于AT09C52系列单片机具有性能稳定、工作可靠、价格低廉等可特点,因此其应用相当广泛。AT09C52单片机中有异步通信串行接口,能方便的构成双机,多机通讯接口。随着测量向自动化,智能化,网络化方向的开展。利用多机通讯构成的分布式系统逐渐普及。本实验就点对点的双机通信进展训练。学习串口的工作方式,初始化编程,和单片机与单片机点对点通信的编程方法以及硬件电路的设计方法。在此根底上可以进一步提高,实现多机通信以及单片机与PC机的通讯,手机通过蓝牙与单片机通讯,电脑通过蓝牙与单片机通讯等一系列功能扩展。【关键字】双机串行通讯AT89C52异步通讯功能扩展目录前言 1第一章、系统功能 21.1设计要求和系统的组成及工作原理 2第二章、系统设计方案 3硬件设计 32.1.1AT89C52和RS232说明 32..12双机通讯的方案选择 7软件设计 82.2.1甲机程序的编写说明 82.2.2甲机程序的编写说明 12第三章、调试与操作 19开发板调试 19测试结果与分析 20第四章、结论 21附录一、参考文献 22附录二、元器件清单 23附录三、电路总图 24附录四、实物图 25 前言电子科学技术是人类在生产斗争和科学实验中开展起来的。随着科学技术的开展和人类的进步,电子技术已经成了各种工程技术的核心,特别是进入信息时代以来,电子技术更是成了根本技术,其具体应用领域涵盖了通信领域、控制系统、测试系统、计算机等等各行各业。单片机之间的数据通讯在当今社会应用相当广泛,单片机之间的数据通讯。由于52系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。一个52系列的单片机〔如At89c52〕内部包含有RAM、FLASHROM、三个16位的定时器/计数器、一个通用异步串行通信控制器〔UART〕等多种资源。但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的,因此而常常需要扩大I/O接口、定时器/计数器、串行通信接口、RAM、ROM等。采用通用的标准器件进展扩大是通常的做法,但将单片机本身作为一个通用的扩大器件来使用,也不失为一个好的方法。在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进展数据通信。52系列的单片机〔以下简称单片机〕都带有串口,利用串口进展互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。但如果系统要求扩大的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。所幸的是,单片机的并行端口也能相互连接来进展数据通信。根据单片机端口内部构造的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。本文就是关于用单片机与单片机之间的串行通讯的过程及根本原理。第一章系统功能1.1设计要求和系统的组成及工作原理一.设计要求1.用RS232串行芯片实现双向通讯。2.传送的数据在显示器上〔数码管和发光二极管〕显示。图1总体框图三.工作原理双机通信系统通过甲乙单片机的串行口来实现数据的收发。甲单片机通过开关电路来启动发送程序,甲机当开关按下时向乙机发送一个数据,乙机上蜂咛器发出声音提示有数据发送过来,乙机通过接收中断来接收和开关判断是否接收甲机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示主机发送过来的数据。乙单片机通过开关电路来启动发送程序,乙机给甲机发送一数据,甲机上蜂咛器发出声音提示有数据发送过来,甲机通过接收中断来接收和开关判断是否接收乙机发送过来的数据,并通过编写好的数据代码在8个发光二极管上显示乙机发送过来的数据。第二章系统设计方案2.1硬件设计2.1.1AT89C52和RS23说明一.At89c52单片机内部有1个功能很强大的全双工串行口,可以同时发送和接收数据。串行口的内部有数据接收缓冲器和数据发送缓冲器,数据接收缓冲器只能读出不能写入,数据发送缓冲器只能写入不能读出,这两个数据缓冲器都是用SBUF来表示,地址都是99H,CPU对特殊功能存放器SBUF执行写操作就将数据写入发送缓冲器,对SBUF执行度操作就是读出接收缓冲器中的内容。特殊功能存放器SCON参访串行口的控制状态信号,串行口用T1或者T2作为波特率发生器〔发送和接收时钟〕,特殊功能存放器PCON的最高位SMOD为串行口波特率的倍率控制位。SCON:串行口控制存放器存放器地址98H,位寻址9FH~98H。位地址9F9E9D9C9B9A9998位符号SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位SM2:多机通信控制位REN:允许/制止串行口接收的控制位TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停顿位。RB8:在方式2和方式3中,是被接收的第9位数据〔来自第TB8位〕;在方式中,RB8收到的是停顿位,在方式0中不用。TI——串行口发送中断请求标志位:当发送完一帧串行数据后,由硬件置1;在转向中断效劳程序后,用软件清0。RI——串行口接收中断请求标志位:当接收完一帧串行数据后,由硬件置1;在转向中断效劳程序后,用软件清0。SM0、SM1:串行口工作方式选择位,其组合含义如下所示:PCON的D7位作为串行波特率系数SMOD控制位,PCON不可位寻址,其地址为87H,当SMOD=1时,波特率加倍。SMOD在PCON中的位置如下所示:RS232近程通讯总线适合于数据传输速率在0~20000b/s范围内的通信,由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。如图2所示:图2DB91.电气特性EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上:逻辑1(MARK)=-3V~-15V逻辑0(SPACE)=+3~+15V在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效〔接通,ON状态,正电压〕=+3V~+15V信号无效〔断开,OFF状态,负电压〕=-3V~-15VRS232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以上下电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进展电平和逻辑关系的变换。最大直接传输距离说明:RS-232C标准规定,假设不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m〔50英尺。2.DB-9连接器使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此,假设与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。最大直接传输距离说明:RS-232C标准规定,假设不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m〔50英尺〕。用RS-232总线连接系统有近程通讯方式和远程通讯方式两种,近程通讯是指传输距离小于15米的通讯,可以用RS-232电缆直接连接。15米以上的长距离通讯,需要采用调制调解器。当计算机与终端之间利用RS-232作近程连接时,有几根线实现交换连接。本次实验不需要检测数据等信号状态的RS-232是异步通讯中最广泛的标准总线,适用于数据中端设备〔DTE〕和数据通讯设备〔DCE〕之间的接口。在微机通讯中,通常使用的RS-232接口信号是九根引脚。如图3:各引脚功能如下:引脚号符号方向功能1DCD输入载波检测2RXD输入接收数据3TXD输出发送数据4DTR输出数据终端就绪5GND信号地6DSR输入数据装置就绪7RTS输出请求发送8CTS输入去除发送9RI输入振铃指示图3DB9管脚说明用RS-232总线连接系统有近程通讯方式和远程通讯方式两种,近程通讯是指传输距离小于15米的通讯,可以用RS-232电缆直接连接。15米以上的长距离通讯,需要采用调制调解器。计算机和终端用RS-232连接的穿插图4如下,图中“发送数据〞与“接收数据〞是穿插相连的,是得两台设备都能正常的发送和接收。图4通讯连接数据发送与接收线:发送数据(TxD)——通过TxD终端将串行数据发送到MODEM。接收数据(RxD)——通过RxD线终端接收从MODEM发来的串行数据。2.1.2双机通讯的方案选择设计方案:该系统采用主从共两片AT89C52单片机来实现上位机对下位机的控制,由于是近距离的双机通信,我们采用单片机直接穿插连接的方式,上位机发送的数据由串行口TXD端输出,直接由下位机的串行口数据接收端RXD接收。需要注意的是一定要保证主从机一样的数据传输速率,即要求设置一样的波特率。电路分为数码管显示模块,指示模块、以及单片机工作的根本复位、晶振模块。甲机由3个数码管,4个独立键盘开关,1个蜂咛器组成。乙机由8个发光二极管,一个蜂咛器,1个数字温度传感器DS18B20组成。单片机上最根本的两个电路:复位电路〔图5〕和晶振电路〔图6〕图5复位电路图6晶振电路2.2软件设计本系统的软件设计流程图。系统设计代码分为以下几个局部:初始化串行、发送数据、接收数据、键盘输入、数值转换、LED显示,数码管显示,用keil编译。甲机程序设计框图〔图7〕:开场等待按键初始化开场等待按键初始化乙机查询接收输出完成?N乙机回送应答Y甲机发送甲机中断接收应答Y完毕LED闪烁图7甲程序设计框图程序名称:双机通信甲机程序实验地点: 信工学院E404#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitk1=P3^4;sbitk2=P3^5;sbitk3=P3^6;sbitk4=P3^7;//四个独立键盘sbitdula=P2^6;//段选sbitwela=P2^7;//位选sbitbeep=P2^3; //蜂鸣器ucharwendu,temp;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //不带小数点显示0到9unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点显示0到9延时程序x〔ms〕 voiddelay(uintx) chari; while(x--) for(i=0;i<120;i++);数码管显示温度值 voiddisplay(uinttemp) ucharA1,A2,A3; if(wendu>=110) //温度大于31度蜂鸣器发声 beep=0; delay(50); beep=1; temp=temp+200; A1=temp/100; A2=temp%100/10; A3=temp%100%10; dula=1; P0=table[A1];//显示百位 dula=0; wela=1; P0=0x7f;//01111111选中第一个数码管 wela=0; delay(5); dula=1; P0=table1[A2];//显示十位 dula=0; wela=1; P0=0x7e; //01111111选中第一个数码管 wela=0; delay(5); dula=1; P0=table[A3];//显示个位 dula=0;wela=1; P0=0x7b; //01111111选中第一个数码管 wela=0; delay(5);甲机向乙机发送程序 voidcom(ucharcom) SBUF=com; while(!TI);//是否发送完 TI=0;voidmain()ucharb;SCON=0x50;//SM0=1,SM1=1,SEN=1TMOD=0X20;//定时器工作于方式一TH1=0XFD;TL1=0XFD;//波特率9600TR1=1;//启动定时器IE=0X90;//开中断beep=1;//蜂鸣器初始状态不响while(1)if(k1==0) //接收乙机温度值显示while(k4==1) display(wendu); delay(10);if(k2==0) //发送流水灯指令 b=2; com(b);if(k3==0) //发送摇摆灯指令 b=3; com(b);if(k4==0) //关闭甲乙机所有显示 P0=0XFF; delay(1); wela=1; delay(1); wela=0; b=4; com(b);delay(5);甲机从乙机接收程序 voidert()interrupt4 RI=0; wendu=SBUF;乙机程序设计框图〔图8〕:开场等待按键开场等待按键初始化甲机查询接收输出完成?N甲机回送应答Y乙机发送乙机中断接收应答Y完毕数码管显示图8乙机设计框图程序名称:双机通信乙机程序实验地点: 信工学院E404#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDS=P2^2;//ds18b20片选信号uinttemp;//记录ds18b20的温度值sbitk1=P3^4;sbitk2=P3^5;sbitk3=P3^6;sbitk4=P3^7; //四个独立键盘sbitbeep=P2^3;uchark;延时程序x〔ms〕 voiddelay(uintx)chari;while(x--)for(i=0;i<120;i++);sendresetandinitializationcommand voiddsreset(void)uinti;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;readabit bittmpreadbit(void)uinti;bitdat;DS=0;i++;//i++fordelayDS=1;i++;i++;dat=DS;i=8;while(i>0)i--;return(dat);readabytedate uchartmpread(void)uchari,j,dat;dat=0;for(i=1;i<=8;i++)j=tmpreadbit();dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里return(dat);writeabytetods18b20 voidtmpwritebyte(uchardat)uinti;ucharj;bittestb;for(j=1;j<=8;j++)testb=dat&0x01;dat=dat>>1;if(testb)//write1DS=0;i++;i++;DS=1;i=8;while(i>0)i--;elseDS=0;//write0i=8;while(i>0)i--;DS=1;i++;i++;DS18B20beginchange voidtmpchange(void)dsreset();delay(1);tmpwritebyte(0xcc);//addressalldriversonbustmpwritebyte(0x44);//initiatesasingletemperatureconversiongetthetemperature uinttmp()floattt;uchara,b;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;temp<<=8;//twobytecomposeaintvariabletemp=temp|a;tt=temp*0.0625;temp=tt*10+0.5;return(temp-200);乙机向甲机发送程序 voidcom(ucharcom)SBUF=com;while(!TI);TI=0;voidmain()uchartemp,a,i;SCON=0x50;//SM0=1,SM1=1,SEN=1TMOD=0X20; //定时器工作于方式一TH1=0XFD; //波特率9600TL1=0XFD;TR1=1; //启动定时器IE=0X90; //开中断beep=1; //蜂鸣器初始状态不响while(1) if(k1==0) //采集当前温度值并向甲机发送while(k2==1&&k3==1&&k4==1)tmpchange();delay(5);for(a=10;a>0;a--)com(tmp());delay(1);if(k==2) //接收甲机流水灯指令并用蜂鸣器提示while(1)beep=0;if(k1==0) //决定接收流水灯指令并关闭蜂鸣器beep=1;break;while(1) //显示流水灯现象 temp=0x7f;P1=temp; for(i=1;i<8;i++)a=temp>>i;P1=a;delay(50);if(k==4) //关闭所有显示P1=0x0ff;beep=0;delay(50);beep=1;break;if(k==3) //接收甲机摇摆灯指令并用蜂鸣器提示while(1)beep=0;if(k1==0) //决定接收摇摆灯指令并关闭蜂鸣器beep=1;break;while(1) //显示摇摆灯现象delay(50);P1=0x55; delay(50);P1=0x0aa;if(k==4) //关闭所有显示P1=0x0ff;beep=0;delay(50);beep=1;break;乙机从甲机接收程序 voidert()interrupt4RI=0;k=SBUF;最后用Proteus画好原理图,把编译好的甲乙机程序HEX文件,下载到原理图里,点击运行仿真,查看效果!第三章调试与操作通过Proteus仿真〔附录三〕得出甲乙程序在理论上已经通过,接下来通过下载软件STC-ISP把甲乙机程序分别下载到两块单片机里,上电调试。首先进展甲机向乙机发送数据,按下流水灯按钮,这时乙机蜂咛器发出声音提示有数据传送过来,按下乙机接收按钮,这是可以看到乙机上的八个发光二极管显示流水灯的现象〔图9所示〕。图9流水灯现象按下甲机上的关闭所有显示按钮,再发送要摇摆灯按钮这时乙机蜂咛器发出声音提示有数据传送过来,按下乙机接收按钮,这是可以看到乙机上的八个发光二极管显示摇摆灯的现象〔图10所示〕。图10摇摆灯现象甲机向乙机发送的数据可以在乙机上显示出来的,然后进展乙机向甲机发送乙机通过DS18B20采集到的温度值传输到甲机上显示。按下乙机发送温度值按钮,这时甲机蜂咛器发出声音提示有数据传送过来,按下甲机接收按钮,这是可以看到甲机上的数码管上显示温度值的现象〔图11所示〕。图11温度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年屯留教师招聘考试试题及答案
- 2026年广东珠海斗门区西湖学校中考一模化学试题及答案
- 2026年广东省深圳市龙岗区48校中考一模物理试题及答案
- 2026学年广西壮族自治区百色市二年级数学期末提升历年考试题详细参考解析详细答案和解析
- 2026学年新疆维吾尔自治区奎屯市六年级数学期末提升精准押题卷(详细参考解析)详细答案和解析
- 2026年建筑施工现场临时用电试题(附答案)
- 2026年山东省青岛市住房和城乡建设局人员招聘笔试参考试题及答案详解
- 2026年贵州酱酒集团有限公司第一次社会公开招聘考试模拟试题及答案详解
- 2026年省直辖行政单位神农架林区住房和城乡建设局人员招聘笔试备考试题及答案详解
- 2026年驻马店汝南县卫健体委所属事业单位乡镇医疗卫生单位招聘编外人事代理专业技术人员69名考试模拟试题及答案详解
- 侍茄师初级专项能力职业技能专业能力考卷
- 2025年中国移动通信集团新疆有限公司巴州分公司社会招聘笔试参考题库附带答案详解
- 2026年纪检监察室主任选拔面试题
- DBJ33-T 1106-2025 建筑光伏系统应用技术规程
- 桥梁人行道钢格栅铺设施工方案
- DB13∕T 6058-2025 深浅层地下水划分规范
- 投资项目财务测算课件
- 小型工厂安全生产管理制度
- 婴幼儿肥胖管理专家共识解读
- 一分钟客户成交技巧与话术训练
- 河南天一大联考2025-2026学年(上)高一上学期9月检测英语试卷
评论
0/150
提交评论