两个单片机之间数据通信的仿真实现.doc
《两个单片机之间数据通信的仿真实现.doc》由会员分享,可在线阅读,更多相关《两个单片机之间数据通信的仿真实现.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 晶振电路的设计 设计原理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,中断服务程序即从此地址开始执行。中断源:串行口中断 入口地址:0023H
11、。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,#10010
12、000B ;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 ;发送完毕否?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 两个 单片机 之间 数据通信 仿真 实现
限制150内