两个单片机之间数据通信的仿真实现_第1页
两个单片机之间数据通信的仿真实现_第2页
两个单片机之间数据通信的仿真实现_第3页
两个单片机之间数据通信的仿真实现_第4页
两个单片机之间数据通信的仿真实现_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录一、课程设计内容要求 4二、方案设计 5三、电路原理图设计 63.1电路原理图 63.2 硬件系统简介 63.3 AT89C51 单片机简介 73.4 晶振电路的设计 7 四、软件的设计 84.1 软件流程图 84.2 程序的设计 10五、仿真与调试 14六、结论与心得 18七、参考文献 19摘 要80C51是最常见的一种8位单片机,具有多机通信的功能,可以很好完成基本的数据数据通信的功能。借助PROTEUS等仿真软件强大的仿真功能,可以从工程的角度直接能够看到仿真程序的运行电路工作的结果。因此弥补实验和实际单片机之间数据通信的脱节环节,因而具有一定的研究意义。本次设计在了解一定数据通信

2、有关知识的基础上,利用单片机串口进行多个单片机的数据通信的仿真基本上达到了与实际多个单片机之间的数据通信的相同一致的效果。一课程设计内容要求 单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用非常广泛。单片机之所以能在通信设备的测控领域中广泛应用的一个重要的基础就是它具有数据通信的能力。而串行数据通信又是数据通信中最基本的也是最重要的一种。80C51是最常见的一种8位单片机,具有多机通信的功能,可以很好完成基本的数据数据通信的功能。借助PROTEUS等仿真软件强大的仿真功能,可以从工程的角度直接能够看到仿真程序的运行电路工作的结果。因此弥补实验和实际单片机之间数据通信的

3、脱节环节,因而具有一定的研究意义。本次设计在了解一定数据通信有关知识的基础上,利用单片机串口进行多个单片机的数据通信的仿真基本上达到了与实际多个单片机之间的数据通信的相同一致的效果。具体应完成以下任务 1分析设计任务,搜集参考文献,根据设计任务要求进行分析与论证,认真完成开题报告。 2熟悉了解并掌握8051单片机工作原理和结构及接口技术、串行通信工作原理、熟练掌握8051汇编语言或单片机C语言的运用 ,熟练掌握PROTEUS仿真软件的使用,了解并掌握串行通信的种类及学会如何利用单片机的来实现相关功能。 3根据要求,完成(仿真)硬件电路的设计,并再理解和掌握一定相关数据串行通信的与概念的基础上用

4、8051单片机汇编语言或C语言,完成数据串行通信的数据发送与接受。利用仿真软件完成多个单片机之间数据通信功能的软件设计。 4通过调试或(仿真)多个单片机之间的通信功能。 5总结设计过程,完成课程设计。二、方案设计本设计的题目要求是一个8951(主)与两个8951(副)做串行多工发送数据,但是串行通信分同步异步两种方式。1 异步通信ASYNC(Asynvhronous Data Communication)在异步通讯中数据或字符是一帧(frame)一帧地传送的。帧定义为一个字符的完整的通讯格式,通常也称为帧格式。最常见德的帧格式一般是先用一个起始位“0”表示字符的开始;然后是58位的数据,规定低

5、位在前,高位在后;其后是奇偶效验位,此位通过对数据奇偶性的检查,可用于判别字符传送的正确性,其有三种可能的选择,即奇,偶,无效验,用户可根据需要选择(在有的格式中这个位可省略);最后是停止位,用以表示字符的结束,停止位可以是1位,1.5位,2位,不同的计算机规定有所不同。从起始位开始就停止位结束构成完整的一帧。下图是一种11位的帧格式。由于异步通信每传送一帧有固定格式,通讯双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通讯方式简单。此外,他还能利用校验位检测错误,所以这种通信方式应用较广泛。2 同步通信SYNC(Synchronous Data Communication)在同步通

6、信中,数据或字符开始处是用一同步字符在指示(一般约定为12个字符),以现发送端和接收端同步,一旦检测到约定同步字符,下面就连续按顺序接收数据。同步传送个数如下图因为同步通信数据块传送时去掉了字符的开始和结束的标志,所以其速度高于异步传送,但这种方式对硬件结构要求较高。在单片机主要是采用异步通讯方式,我们也采用这种通讯方式。串行通信制式的确定在串行通讯中,数据是在两机之间传送的。按照数据传送方向,串行通信可分为半双工(half duplex)制式和全双工(dull duplex)制式。所以我们的设计采取全双工的制式 为了使仿真效果,一目了然我们设计时用LED灯接收信号,用它的亮灭代表信号的传递效

7、果。三、电路设计3.1 电路原理图 图1 两单片机间数据通信原理图3.2 硬件系统的简介1). 主CPU为8751-A:P1接指拨开关,P2接指拨开关。2). 副CPU8751B:片接8个LED.3). 副CPU8751C:片接8个LED.4). 当主CPU8751A,P1的指拨开关切换时,此数据会发送给副CPU8951-B并控制其P2口8个LED的亮灭。同理,当主CPU 8951-A,P1的指拨开关切换时,此数据会发送给5). 副CPU8751C并控制其P2口8个LED的亮灭。当副CPU8951-B,P1的指拨开关切换时,此数据会发送给主CPU8751A并控制其P0口低四位的四个LED的亮灭

8、。同理,当副CPU8951-C, P1的指拨开关切换时,则此数据会发送给主CPU8951-A,并控制其P0口高四位的四个LED亮灭。3.3 AT89C51 单片机简介振荡器及定时电路CPU4K字节ROM128字节RAMSFR(26)8位并行口串行口2个16位定时器/计数器 图2 单片机内部结构图(1) 一个8位的CPU(2) 一个片内振荡器及时钟电路(3) 4KB的FLAShROM(4) 128的内部RAM(5) 可扩展64KB外部ROM和外部RAM的控制电路;(6) 2个16位的定时/计数器(7) 26个特殊功能寄存器(8) 4个8位的并行口(9) 一个全双工的串行口(10) 5个中断源,2

9、个外部中断,3内部中断(11) 内部硬件看门狗电路(12) 一个SPI串行接口,用于芯片的在系统编程3.4 晶振电路的设计1 设计原理8051片内有一由高增益反相放大器构成的振荡器。反相放大器的输入端为xTALl,输出端为xTAL2,两端踌接石英晶体及两个电容形成稳定的自激振荡器。电容通常取30PF左右。具体电路设计这部分在两个方案中是相同的,电路图如下 图3 晶振电路原理图四软件设计4.1软件流程图 中断地址符合否?发回地址接受下一帧是命令帧吗命令分类从接受准备就绪否?从接受准备就绪否?RRDY=1送主机TRDY=1送主机发送数据帧接受数据帧RRDY=0送主机TRDY=0送主机接收完否?发送

10、完否?SM2=1恢复现场 返回N N 非法命令 0100N N Y N NY Y图4 多机通讯从机中断服务程序框图子程序入口 串行口初始化 发送地址帧从机应答否?发送命令帧从机应答复否命令正确否命令分类从机接收 准备就绪否发送数据块从机发送 准备就绪否接受数据块返回N Y应答地址相符否?Y 命令从机复位 NNY NY01 NYY 4.2 程序的设计RI或TI串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。当某中断源的中断申请被CPU响应后,CPU将把此中断源的入口地址装入PC,中断服务程序即从此地址开始执行。中断源:串行口中断 入口地址:0023

11、H。TMOD为T0,T1的工作方式寄存器,当为工作方式2,功能为自动再装入8位计数器51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。主机程序A:ORG 00H JMP START ;UART中断起始地址 ORG 23H JMP UARTISTART: MOV TMOD,#00100000B ;TIMER1 工作在MODE2 ANL PCON,#01111111B ;SMOD=0 MOV TH1,#0F3H ;波特率为2400 SETB TR1 ;启动TIMER1 MOV SCON,#11010000B ;UART工作MODE3 MOV IE,#1001

12、0000B ;UART中断使能 SETB SM2 ;SM2=1 MOV 30H,#0FFH ;P1指拨开关的初值 MOV 31H,#OFFH MOV 32H,#0FFHLOOP: MOV A,P1 ;读入P1指拨开关值 CJNE A,30H,UART1 ;判断有否变化? JMP LOOP1LOOP1: MOV A,P2 ;读入P2指拨开关值 CJNE A,31H,UART2 ;判断有否变化? JMP LOOPUART1: MOV 30H,A ;P1指拨开关存入新值 SETB TB8 ;设TB8=1 MOV SBUF,#01H ;发送8951b的地址WAIT1: JBC TI,L1 ;发送完毕否

13、? JMP WAIT1L1: CLR TB8 ;清楚TB8=0 MOV SBUF,30H ;把P1指拨开关值发送给8951bWAIT2: JBC TI,LOOP ;发送完毕否 JMP WAIT2UART2: MOV 31H,A SETB TB8 MOV SBUF,#02HWAIT3: JBC TI,L3 JMP WAIT3L3: CLR TB8 MOV SBUF,31HWAIT4: JBC TI,LOOP JMP WAIT4UARTI: PUSH ACC ;压入堆栈 PUSH PSW JBC RI,L5 ;是否接受中断?RI=1? JMP RETURNL5: JB SM2,6 ; SM2=1接

14、收地址,SM2=0接收数据 MOV A,SBUF ; 接收数据载入累加器 MOV 33H,A ;暂存入(33H)RAM MOV A,32H ; 判断接收8951-B或8951-C的数据? CJNE A,#01H,L8 ;接到收8951-B的数据? MOV A,33H ;是则输出至P0显示(低4位) MOV P0,A SETB SM2 ;设SM2=1,准备接收下一个地址 MOV 32H,#0FFH ;清楚地址(32H)RAM JMP RETURNL8: CJNE A,#02H,RETURN MOV A,33H SWAP A MOV P0,A SETB SM2 MOV 32H,#0FFH JMP

15、RETURNL6: MOV A,SBUF ;载入接收到的地址 CJNE A,#01H,L7 ;是8951-B的地址? MOV 32H,A ;是则此将8951B的地址存入(32H)RAM CLR SM2 ;设SM2=0,准备接收数据 JMP RETURNL7: CJNE A,#02H,RETURN MOV 32H,A CLR SM2RETURN: POP PSW ;取回PSW POP ACC RETI END从机程序B: ORG 00H JMP START ORG 23H ;UART中断起始地址 JMP UARTI START: MOV TMOD,#00100000B ;TIMER1 工作在MO

16、DE2 ANL PCON,#01111111B ;SMOD=0 MOV TH1,#0F3H ;波特率为2400 SETB TR1 ;启动TIMER1 MOV SCON,#11010000B MOV IE,#10010000B SETB SM2 MOV 30H,#0FFHLOOP: MOV A,P1 CJNE A,30H,UART1 JMP LOOPUART1: ORL A,#0F0H ;有变化取低4位 MOV 30H,A ;存入P1指拨开关的新值 SETB TB8 ;设TB8=1 MOV SBUF,#01 ;发送本身地址(01H)给8951AWAIT1: JBC TI,L1 ;发送完毕否 JM

17、P WAIT1L1: CLR TB8 ;是则清楚TB8=0 MOV SBUF,30H ;将指拨开关的值发送给8951AWAIT2: JBC TI,LOOP ;发送完毕否 JMP WAIT2UARTI: PUSH ACC ;压入堆栈 PUSH PSW JBC RI,L5 ;是否为接收中断? JMP RETURNL5: JB SM2,L6 MOV A,SBUF MOV P2,A SETB SM2 JMP RETURNL6: MOV A,SBUF CJNE A,#01H,RETURN CLR SM2RETURN: POP PSW POP ACC RETI END从机程序C ORG 00H JMP S

18、TART ORG 23H JMP UARTISTART: MOV TMOD,#00100000B ANL PCON,#01111111B MOV TH1,#0F3H SETB TR1 MOV SCON,#11010000B MOV IE,#10010000B SETB SM2 MOV 30H,#0FFHLOOP: MOV A,P1 CJNE A,30H,UART1 JMP LOOPUART1: ORL A,#0FH SWAP A MOV 30H,A SETB TB8 MOV SBUF,#02WAIT1: JBC TI,L1 JMP WAIT1L1: CLR TB8 MOV SBUF,30HWA

19、IT2: JBC TI,LOOP JMP WAIT2UARTI: PUSH ACC PUSH PSW JBC RI,L5 JMP RETURNL5: JB SM2,L6 ;SM2=1接收地址,SM2=0接收数据 MOV A,SBUF ;SM=0,则接收数据并输出至P2 MOV P2,A SETB SM2 ;设SM2=1,准备接收下一个地址 JMP RETURNL6: MOV A,SBUF ;SM2=1,载入地址 CJNE A,#02H,RETURN ;是否(02H)地址? CLR SM2 ;是则清除SM2=0,准备接收数据RETURN: POP PSW POP ACC RETI END五仿真与

20、调试单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。如图6.14所示。 图5 完整电路图点击DSW1开关使它指向ON,U3的灯将熄灭,如图6所示 图 6 运行结果点击DSW1开关使它指向ON,U6的灯将熄灭,如图7所示 图 7 运行结果点击DSW4开关使它指向ON,灯A0,A1,A2,A3将亮起来如图8所示 图 8 运行结果点击DSW3开关使它指向ON,灯A4,A5,A6,A7将亮起来,如图9所示 图 9 运行结果经测试,该系统性能优越。六.结论与心得1、通过这次课程设计,加强了我们动手、思考和解决问题的能力。2、我沉得做课程设计同时也是对课本知识

21、的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,对知识使用有了更多的认识。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个课程设计对我们以后找工作的作用是非常大的。3、两个星期的课程设计,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过做课程设计,我才真正领略到“艰苦奋斗”这一词的真正含义。我想说,设计确实有些辛苦,但苦

22、中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论