单片机双机串口通信_第1页
单片机双机串口通信_第2页
单片机双机串口通信_第3页
单片机双机串口通信_第4页
单片机双机串口通信_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...单片机原理及接口技术课程设计报告设计题目:两个单片机通信,甲乙可以相互控制学号:姓名:指导教师:信息与电气工程学院二零一四年六月单片机串口通信设计单片机行业已经有了很久的历史,随着科学技术的进步和社会的开展,单片机行业更加迅速的开展起来。不管在工业还是民也上都有很好的开展和应用,得到大家很好的认可和高度的评价。单片机的通信接口是各台仪表之间或仪表与计算机之间进展信息交换和传输的联络装置。主要有五种类型,串行通信接口、并行通信接口、USB接口、现场总线接口以及以太网接口。串行通信按同步方式可分为异步通信和同步通信两种根本通信方式。它是在数字化的根基上用微处理器装备起来,是计算机技术与电子仪器相结合的产物。它具有数据存储、运算、逻辑判断能力,能根据被测参数的变化自选量程,可自动校正,自动补偿,自寻故障等,可以做一些需要人类的智慧才能完成的工作,既具备了一定的智能,故称为智能仪器。人们习惯将这种内含微型计算机并带有GP-IB等通信接口的电子仪器称为智能仪器。1.设计任务结合实际情况,基于AT89C51单片机设计一个两个单片机通信系统。该系统应满足的功能要求为:(1)统一用Proteus软件进展仿真,统一用C语言编程,并且每段程序必须要有注解;硬件仿真图必须准确无误,作图标准;(2)单片机任意选择,但必须是51或者AVR中的一种;(3)甲机控制乙机的LED亮灭,同时乙机控制甲机的LED亮灭。主要硬件设备:AT89C51单片机、拨码开关、LED灯、11.0592M晶振、假设干电容和电阻。2.整体方案设计根本功能:两片单片机之间进展串行通信,发送端将0~f循环发送到接收端,并在接收端显示。复位电路复位电路原理图:单片机乙TXDRXD单片机甲RXDTXDP1口LED显示复位电路复位电路单片机乙TXDRXD单片机甲RXDTXDP1口LED显示P0口LED显示对P1口进展输入晶振电路晶振电路对P2口进展输入对P2口进展输入2.1.数据传输方案比拟与选择在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可采用三种方案。1〕方案一:单工制式单工制式是指甲乙双方通信只能单向传送数据。单工制式如图2发送器A发送器B发送器A发送器B图2-1-1单工制式2〕方案二:半双工制式半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进展,即发送时就不能接收,接收时就不能发送。半双工制式如图3B端发送B端发送接收A端发送接送图2-1-2半双工制式3〕方案三:全双工制式全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工制式如以下列图4:B端接收B端接收发送A端发送接送图2-1-3全双工制式因此,本课设采用方案三全双工制式3.系统硬件电路设计3.1.时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进展工作。在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反响电路,就构成了一个稳定的自激振荡器。此电路采用11.0592MHz的石英晶体。时钟电路如以下列图5图3-1时钟电路3.2.复位电路复位是单片机的初始化操作,进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期〔即2个机器周期〕以上,假设使用频率为12MHz的晶振,则复位信号持续时间应超过4s才能完成复位操作。复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。在本设计中采用了按键电平方式如以下列图6。图3-2按键电平的连接方式3.3单片机串行通信功能51单片机的串行接口是一个全双工的接口,它可以作为UART〔通用异步承受和发送器〕用,也可以作为同步移位存放器用。51单片机串行接口的构造如下:图3-351单片机串行接口的构造〔1〕数据缓冲器〔SBUF〕承受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个承受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。〔2〕串行控制存放器〔SCON〕SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,串行接口工作方式可有以下四种工作方式:SM0SM1工作方式功能波特率0008位同步移位存放器〔用于I/O扩展〕fORC/1201110位异步串行通信〔UART〕可变〔T1溢出率*2SMOD/32〕10211位异步串行通信〔UART〕fORC/64或fORC/3211311位异步串行通信〔UART〕可变〔T1溢出率*2SMOD/32〕定时器TI溢出率=(fosc/12)*(1/〔2^k-初值〕)式中T1计数率=fORC/12,〔2^k-初值〕为生溢产出所需机器周期数,K为定时器位数,与定时器设定工作方式有关:方式0时K=13;方式1时K=16;方式2时K=8。SM2:多机通信控制位。主要用于方式2,3.当SM2=1时可以利用收到的RB8来控制是否激活RI〔RB8=1时收到数据进入数据缓存器,并激活RI在中断服务中将数据读走;RB8=0时受到信息丢弃〕;当SM2=0时均可以将数据送入缓存器,并激活RI。REN:接收允许控制位。软件置1允许接收;软件置0制止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0,可以用作数据奇偶效验位,或在多机通信中作地址帧/数据帧标志位。RB8:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。〔3〕输入移位存放器接收的数据先串行进入输入移位存放器,8位数据全移入后,再并行送入接收SBUF中。〔4〕波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率是用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟调制信号变化的次数。〔5〕电源控制存放器PCON其最高位为SMOD即波特率倍增位,当SMOD=1时波特率提高一倍,复位时,SMOD=0。3.4输出接LED灯图3-43.5.由拨码开关控制输入图3-53.6.总体硬件图4.系统程序设计4.1主程序流程图〔1〕发送端程序流程图图4-1发送端程序流程图图4-1发送端程序流程图主程序开场从机是否答复BBH程序初始化主机发送AAHN主机发送数据,检验和输出完成N去除标志位(2)接收方程序流程图主程序开场主程序开场检验和相等程序初始化接收数据,计算检验和N发送00H至主机接收完成N去除标志位发送FFH,重新接收显示图4-2接收方程序流程图5.系统调试5.1Proteus软件仿真调试全高电平时输入时TXD与RXD波形单片机甲为01010101,单片机乙为1111000全为低电平输入时TXD与RXD波形5.2硬件调试6.程序清单#include"reg51.h"#defineuintunsignedint#defineucharunsignedcharucharstate_1;voidsend(ucharstate){ SBUF=state; //装进缓存区 while(TI==0); //TI=0执行空语句等待 TI=0; //发送软件清零}voidreceive(){while(RI==0); //RI=0时空语句 state_1=SBUF; //读数据 RI=0; //接送清零}voidSCON_init(void){SCON=0x50;//方式1双机串行通信SM0=0 SM1=1REN=1允许串行接送位TMOD=0x20;//T1定时/计数器1设置为工作方式2PCON=0x00;//波特率倍增位TH1=0xfd;//设置波特率//9600=11.0592*1000000/12/(0x100-0xfd)/32TL1=0xfd;//装初值时钟11.0592MTI=0; //TI:发送中断标志位,RI:接收中断标志位。TI=1表示帧发送完毕,RI=1表示帧接收完成RI=0;TR1=1; //启动定时器1ES=1; //串口中断允许位}voidmain(){ P1=0xff; SCON_init(); while(1){ send(P1); //发送P1 receive(); //发送数据 P0=state_1;//接收放入P0}}7.小结这次单片机课程设计是十分有意义的。我们在课堂上掌握的仅仅是理论知识,那么如何去锻炼我们的实践能力如何把我们所学的专业根基课理论知识运用到实践中去呢我想做课程设计就为我们提供了良好的实践平台,现在终于将它完成了,感到受益颇多。第一,这是一份考验我们自觉性、动手能力与协作意识的任务。这次单片机课程设计不仅稳固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进展一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的缺乏之处,例如对以前所学过的知识理解得不够深刻,掌握得不够结实,学习了单片机C语言。第二,未知并不可怕,可怕的是因未知而止步。我们在课堂上所学的知识是非常有限的,这次的课程设计就是个很好的表达。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了,无论是课本上的还是网上的都浏览了不少相关的程序,从中也借鉴了别人的思想,开阔了自己的思路。做单片机课程设计,对设计者对软硬件的理解和掌握的要求都比拟高。在设计程序之前,设计者必学对所用单片机的内部构造有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计

温馨提示

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

评论

0/150

提交评论