




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 课程设计报告课程 单片机技术 题目 串口通信多机通信系统 系 别 年 级 07级 专 业 电子科学与技术 班 级 学 号 学生姓名 指导教师 职 称 设计时间 目 录专心-专注-专业1 题设要求分析本小组的试验题目如下:一、任务:设计实现多台单片机系统之间的串行通信二、基本要求(难度系数0.8):(1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机;(2)选择合适总线接口芯片,正确连接主机和从机;(3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示。三、发挥部分:(1)完善通信功能。(根据完成情况加分,上限+0.2
2、)经过本小组成员对本课题认真讨论先做出如下分析:对课题分析后本小组认为本次实验的目的是就是应用单片的串口通信功能实现一个分布式采集系统。整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD转换结果的采集并在数码管上显示之。这样从硬件的角度上将整个系统分为两个模块主机模块和从机模块。主机模块中包含单片机模块、led数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块。就本次试验而言硬件电路的设计难点在于串口电平转换芯片的选择及其连接,而软件的设计难点在于串口通信协议的制定及相关程序的编写。实现多机通信方案的实现。不同于双机通信多机通信
3、系统中需要识别通信信息发出者或是接受者是谁。经过查阅资料发现在大多数的多机通信系统中都是才采用地址识别的方法实现的。所谓地址识别方法就是在发送或接受信息前先发送和校验地址帧。就本题目而言,先要对通信系统中的每台机器分配一个唯一的地址作为识别信息。具体的识别过程如下:n 首先,从机处于只接收地址帧的状态;n 主机发送一帧地址信息;n 从机接受到地址帧后,将本机地址与地址帧中的地址进行比较,如果地址相同准备接受数据,否则丢弃当前帧,依然处于只接受地址帧的状态;n 主机发送数据帧,相应的从机接受数据,数据传送完毕后,从机继续回到只接受地址帧的状态,在这个过程中其他从机不受影响;n 当主机需要与其他从
4、机进行数据传输时,可以再次发送地址帧呼叫从机,重复这一过程1。对于本题而言可通过此过程实现主机对从机的绝对控制。这样在主机中编写一个循环程序就可以实现对三台从机的AD转换结果的不停采集。至于地址帧与数据帧的区别则可通过串口工作方式三下的第九位的置1或置0来实现。在完成通信的基础上,再将采集到的三路结果分别用两个led数码管显示即可试验预期目的。2 硬件电路的设计2.1 系统的组成根据题目分析可知硬件电分为主机模块和从机模块。主机模块中包含单片机子模块、led数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块。在主模块中由AT89S51单片机担任
5、主机,六个led数码管担任显示设备和一片MAX485担任串口的电平转换。在整个主机系统中有三个从机模块三个从机模块结构一样,有一片AT89S51单片机担任从机外接一片ADC0809转换芯片和一片MAX485担任串口的电平转换。串口采用单工及异步通信方式。整个硬件结构原如图1所示。图 1 系统结构原理图2.2 系统的工作原理主机AT89S51编程可实现循环访问个从机,当从机接受主机访问后启动AD转换设备ADC0809对外部模拟信号进行转换。当从机获得转换结果后通过串口将其发送到主机,主机接受到转换结果后再将其发送到相应的led数码管显示。2.3 硬件电路原理图设计(1)led数码管显示电路led
6、数码管显示电路如图2所示显示子模块由六个数码管和相应的启动芯片构成。其中每路通道的采集值用量为数码管显示。为了节约单片机的I/O口本题的数码管采用MAX7219芯片。给芯片的优点在于可完成电路的刷新。MAX7219芯片的SEG A-SEG DP为数码管段码接口,DIG0-DIG7为位码接口,CLK、DIN、LOAD分别与单片机P1.0、P1.1、P1.2连接。单片机通过串行的方式将要显示的数据通过CLK、DIN、LOAD三个接口送入相应的显示寄存器内,MAX7219将自动完成对数码管的刷新工作。具体的电路如图2所示。图 2 led显示电路(2)串口电平转换电路 串口电平转换电路的电路图如图3所
7、示:本实验中采用MAX485的电平转换芯片。MAX485是一种RS-485标准接口的电平转换芯片。RS-485采用差分式半双工通信方式,真正实现多点总线连接,具有传输距离远可靠性高的特点。基于以上原因本小组选择该芯片实现电平转换。MAX485的1号引脚RO为接收端接单片RXD, 4号引脚DI为发送端接单片TXD, 2、3号引脚分别为发送接收使能端端接单片P1.3引脚。6、7号引脚总线接线口。图 3 电平转换电路(3)主机模块电路 根据设计要求绘制主机模块电路图如图4所示。图 4 主机模块电路图(4)从机模块电路根据设计要求绘制从机模块电路图如图5所示。图 5 从机模块电路图2.4 硬件电路的实
8、现首先是主从机电路的实现。主机的电路的搭建采用主CPU板、键盘显示接口板各一块。照实验原理图将主CPU板的P0口接到键盘显示接口板的位码接口,P1口接到键盘显示接口板的段码的接口。从机的电路由CPU板和ADDA转换板构成。其次是电平转换电路的焊接。电平转换的路的实现是通过自己搭建电路完成。电平转换的电路主要有四块MAX485和两个100电阻构成。四块MAX485采用总线方式连接,每个芯片分别引出三个引脚用于单片的连接。最后将各个模块的按照原理图连接起来。图 6 硬件电路的连接3 软件电路的设计3.1 通信协议的设计通信协议的设计的设计是本题的重点难点,本题通信协议主要是区别主机和从机。由于串口
9、的方式2、3发送和接收都是11位其第九为可编程置位可以此作为区分地址帧与数据帧从而实现主机与从机,从机与从机的区别。通信协议同样要规定相同通信速率。参考相关资料后编写如下的通信协议。n 数据传输的双方均使用9600kb/s的速率传送数据,使用主从式通信,主机发送数据,从机接受数据,双方在发送数据时使用查询方式。n 双机开始数据传输时,主机发送地址帧呼叫从机。n 各从机开始都处于只收地址帧状态。接收到地址帧后,将接收到的地址内容和本机地址比较,如果地址相同,则向主机返回本机地址作为确认信息,并开始接收数据;如果不同,则继续等待。n 主机在发送地址帧后等待,如果接收到的应答信息中的内容和所发地址帧
10、的内容相同,就开始发送数据,如果不一致,主机将继续发送地址帧。如多次应答仍无回应则认为出错则主机跳出本次通信。n 从机在接收完数据后,将根据最后的校验结果判断数据接收是否正确,若校验真确,则向主机发送2AH信号,同时点亮led灯半秒钟,表示本次通信成功;若校验错误,则发送F0H信号,表示接收数据错误,并请求从发。n 主机接收到2AH信号,则通信结束,否则主机将重新发送这组数据。3.2 主机程序设计依据试验要求及相应的通信协议现绘制如下的主机程序流程图:图 7 主机程序流程图主机程序:#include<stdio.h>#include<reg51.h>unsigned c
11、har LED_seg10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char LED_bit6=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char LED_buf6=0x00,0x00,0x00,0x00,0x00,0x00;void delay(unsigned long n) /延时子程序 unsigned int i; for(i=1;i<n;i+) ; void convert(unsigned char a ,unsigned char j) /电压转换子程序 un
12、signed char m,n,i; unsigned char b=0; for(i=0;i<51;i+) b=i*5; if(b<a)i+;elsebreak; m=i/10; n=i%10; j=j*2; LED_bufj=LED_segn; LED_bufj+1=LED_segm+0x80; void sbuf_init(void) /串口初始化子程序SCON=0xd0; /工作方式3PCON=0x00;TMOD=(TMOD&0xf)|0x20;TH1=0xfd;TL1=0xfd;TR1=1;void flash_led(void) /led显示子程序 unsign
13、ed char i; for(i=0;i<6;i+) P2=LED_bufi; P0=LED_biti; delay(200); P0=0x00; void main(void) /主函数unsigned char ADDR=0x00;unsigned char tmp;unsigned char a=0;unsigned char i=0;unsigned char j=0;sbuf_init();while(1)tmp = ADDR+1;while(tmp!=ADDR)/* 发送从机地址 */TI = 0;TB8 = 1; / 发送地址帧P1 = 0xff; /发送使能delay(2
14、0);SBUF = ADDR;while(!TI);TI = 0;delay(20);/* 接收从机应答 */P1 = 0x00; /接受使能delay(50);while(!RI);tmp = SBUF;RI = 0;delay(20);P1 = 0x00; /接受使能delay(10);while(!RI);a = SBUF;RI = 0;delay(10);j=ADDR;i+;ADDR+;if (i>=3)i=0;ADDR=0x00; convert(a,j);flash_led();3.3 从机程序设计从程序流程图如下:图 8 从机模块流程图从机程序:#include<re
15、g51.h>#include<absacc.h>#include<stdio.h>#define INO XBYTE0x0000#define ADDR 0x02 /从机地址0x00、ox01、0x02sbit AD_BUSY=P33;void delay(unsigned long n) /延时子程序 unsigned int i; for(i=1;i<n;i+) ; void sbuf_init(void) /串口初始换子程序SCON=0xd0; /工作方式3PCON=0x00;TMOD=(TMOD&0xf)|0x20;TH1=0xfd;TL1=
16、0xfd;TR1=1;void main(void) /主程序unsigned char a;unsigned char tmp=0xff;sbuf_init();while(1)SM2=1; / 只接收地址帧 /* 如果接收到的地址帧不是本机地址,则继续等待 */tmp=ADDR+1;P1=0x00; /接受使能while(tmp!=ADDR) while(!RI);tmp=SBUF;RI=0;delay(20);/* 发送本机地址作为应答信号,准备接收数据 */ P1=0xff; /发送使能delay(40);TI=0;TB8=0; / 主机不检测该位SBUF = ADDR;delay(1
17、0);while(!TI);TI = 0;/SM2 = 0; /允许接收数据/* 数据发送 */delay(40);/*INO=0;i=i;i=i;while(AD_BUSY=0);a=INO;*/a=0x88;SBUF=a;while(TI=0);TI=0;delay(60);4 系统的调试与实现对本课题的设计思路清晰之后,我们接下来所需要做的工作就是依据我们的方案编程实现功能。本过程可以分为五个部分:从机模块调试、 LED显示模块调试、电平转换模块功能调试、主机模块功能调试、整体设计功能调试。4.1 从机模块调试从机部分实现的功能是针对主机发送来的地址进行对照,如果是自己的从机地址,就会发
18、送AD转换结果。为了检测此部分的功能是否能够实现,我们借助串口测试软件,发送预设的从机地址看看该从机是否会把AD转换的结果发送来。此从机调试模块分为两个层次:1、用一个简单的程序测试从机硬件部分是否能正常运行;2、在硬件良好的情况下测试编写的从机部分代码能否顺利实现功能。4.2 LED显示模块调试该部分相比较而言简单一点,其实也可以归为主机模块调试的一部分。LED功能就是用来显示DA转换的结果。连接好电路之后,用个小程序测试LED显示功能良好的情况下显示从机发送来的数据。此部分在主机模块功能调试具体介绍。4.3电平转换模块功能调试此部分硬件电路多为我们自己焊接。包括4片MAX485转换芯片组成
19、的电平转换电路。它们完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号
20、控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻。由于经验知识不足,我们匹配电阻选择了一个阻值为10K的电阻,造成芯片烧坏,此处应引起注意。4.4主机模块功能调试当主机发送地址帧呼叫从机时从机将接收到的内容与自己的地址比较,如若相同从机会向主机发送主机所需要的数据。而主机接收到正确的数据,便会通过LED数码管显示出来,这样便会实现我们预想的主机模块功能。当然主机部分程序包含上面调试好的LED显示模块程序。此处将从机送来的数值通过调用LED显示模块子程序显示出来。LED显示模块分为三个区域,从机0、从机1、从机2分别占用2个显示管。4.5整体设计功能调试各个模块程序功能调试好之后,将他们各就各位。但此时我们又遇到一个难题:从机送给主机的数据在经MAX485传递给主机时读出来的不是理想的结果,后经过示波器查看输出波形,经多次调试,将主机与从机时序调整一致才得以在主机收到从机发送来的数据。5 总结与体会为期一个礼拜的单片机课程设计就这么快的结束了,在这短暂的一个星期里我们学到了很多很多。我们在课堂上掌握的仅仅是书面的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做此类的课程设计就为我们提供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《会计信息系统应用》课件 学习情境4 报表系统应用
- 《电子商务基础》课件-话题1 电子商务概述
- 软件开发项目居间协议模板
- 商业零售实体店数字化转型与升级策略设计
- 洗衣店垃圾清运协议
- 中医护理学(第5版)课件 望诊2+闻诊
- 能源行业智能电网故障诊断与修复技术研究方案
- 股份转让协议及法律事务指南
- 餐饮业食品安全管理与后厨设备升级方案
- 项目可行性研究报告-范文
- 【上市公司的财务风险的分析和防范:以三只松鼠为例10000字(论文)】
- 部编版小学语文四年级下册教师教学用书(教学参考)完整版
- 小学教师专业发展与教学质量提升
- 大跨度空间网架结构分阶段整体提升安装技术研究与应用
- 注射用头孢比罗酯钠-临床药品应用解读
- 农业领域的服务礼仪
- 大学生心理健康教育教程 课件 第二章 大学生自我意识
- 公证知识宣传材料
- 聚酯生产技术 聚酯主要设备介绍
- 钣金结构件点检表
- 医疗安全(不良)事件汇总登记表(科室)
评论
0/150
提交评论