基于AT89C51的双机双向通信设计_第1页
基于AT89C51的双机双向通信设计_第2页
基于AT89C51的双机双向通信设计_第3页
基于AT89C51的双机双向通信设计_第4页
基于AT89C51的双机双向通信设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机原理及应用课程设计题 目: 基于AT89C51的双机双向通信 学 院: 信息工程学院 专 业: 计算机科学与技术 班 级: 微软二班 姓 名: 学 号: 指导老师: 目录1、系统分析1111功能描述111.2功能模块111.3功能模块图112、总体设计113、详细设计133.1硬件设计133.1.1AT89C51的介绍133.1.2电路图设计153.2软件设计.16总结17附录18基于AT89C51的双机双向通信设计摘要:现在的社会是信息化的社会,通信技术对于人们的生活越来越重要。串行通信是单片机的一个重要应用,我们生活中很多信息交流的方式都是串行通信。本次课程设计就是利用利用AT89

2、C51芯片实现一个简单地双机双向串行通信。1、系统分析11功能描述主机的发送器发送数据到从机接收器,从机的接受器接收到数据后发送到从机的发送器,从机的发送器将数据加一后再发送给主机的发送器,如此循环。1.2功能模块(1)发送器:发送器包括两个,一个是主机的发送器,一个是从机的发送器(这里的发送器接收器都是我们模拟的称呼,其实它们的功能都是主从机的数据引脚实现的)。(2)接收器:接收器也包括两个,一个是主机的接收器,另一个是从机的接收器。 1.3功能模块图双机双向通信主接收器主发送器从接收器从发送器加12、总体设计本课程设计的硬件设计主要元件有两片AT89C51芯片、四个BCD数码管、电阻等。电

3、路部分主要由三部分组成:时钟电路、复位电路、通信电路。时钟电路和复位电路的作用顾名思义,不用多说。通信部分是通过AT89C51芯片的P0口,P2口,TXD,和RXD的作用实现向两个单片机之间的通信,最后通过数码管显示出发送和接收的数据。本课程设计软件设计包括主要包括三部分,有定时计数器设计 、判断接收和发送是否完成的处理部分和延时部分。这些设计与串行口的内部结构关系紧密。串行口内部结构:CPU发送SBUF定时器T1接收SBUF门接收移位寄存器发送控制器接收控制器串行控制寄存器SCON串行口内部结构(1)两个SUBF是相互独立的,一个用于发送数据,一个用于接收数据,SUBF发只能写入数据不能读出

4、数据,SUBF接只能读出数据,不能写入数据。(2)发送控制器的作用是在门电路和定时器的作用下将发送缓冲中的并行数据转换成串行数据,并自动添加起始位、可编程位和停止位。(3)接收控制器的作用是在门电路和定时器的作用下将接收缓冲中的串行数据转换成并行数据,并自动过滤掉起始位、可编程位和停止位。(4)定时器的作用除了串并转换之外,另一个作用就是产生用以收发过程中节拍控制的通信时钟。3、详细设计3.1硬件设计3.1.1AT89C51的介绍AT89C51计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是

5、传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为号回路)即可完成通信,成本低,传输的距离远。51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:(1)数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,用同一直接地址,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。(2)串行控制寄存器(PCON)SCON用于串行通信方式的选择,收发控制及状态指示,各位含

6、义如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1串行接口工作方式特点见下表SM0SM1工作方式功能波特率 0008位同步移位寄存器(用于I/O扩展)fORC/1201110位异步串行通信(UART)可变(T1溢出率*2SMOD/32)10211位异步串行通信(UART)fORC/64或fORC/3211311位异步串行通信(UART)可变(T1溢出率*2SMOD/32)SM2:多机通信控制位。REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数

7、据,根据需要由软件置1或清0。RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,、使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率

8、时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器PCON其最高位为SMOD。(6)波特率计算当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率= fORC/12。产生溢出所需机器周期数=模M-计数初值X。3.1.2电路图设计在下面的电路图中,我们根据各个数码管的显示的内容从左到右数第一个数码显示管我们称为主机的接收器,第二个称为主机的发送器,第三个称为从机的接收器,第四个称为从机的发送器。主接收器从P0口读入数据,主发送器从P2口接收到数据通过TXD输出到从机中,从接收器接收到数据

9、后,从发送器从P1口接收数据并加一,从发送器从TXD输出数据到主机的缓冲寄存器中,主接收器接收到数据,主发送器按原数据发送,由此循环。 3.2软件设计串行通信软件实现(1)串行口工作于方式1,用定时器1产生888bit/s的波特率,工作于方式1。(2)功能:将主机中的数据发送到从机中,从机加一后再发送到主机中,由此循环。主机程序流程图:主程序开始检查SUBF是否满?程序初始化主机发送数据Y主机发送数据检查是否接收?N显示数据中断检查是否发送N 标志位清零从机程序流程图主机发送数据主程序开始程序初始化从机接收数据检查是否接收?Y显示数据SUBF是否为满WEIMANN标志位清零将数据存到SUBF中

10、中断总结经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的汇编语言程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益处。附录:1. 主机代码ORG 0000HJMP STARTSTART: MOV SP,#50HMOV SCON,#50HANL POCN,#00HMOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB EASETB ET1SETB TR1MOV A,#00HLOOP: MOV P0,ALCALL

11、DELAYMOV SBUF,AWAIT:JBC R1,LOOP1JBC T1,IOOPJMP WAITLOOP1:MOV A,SBUFANL A,#0FHMOV P2,ALCALL DELAYCLR R1JMP WAITDELAY:MOV R7,#3D1:MOV R6,#256D2:MOV R5,#255DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETEND2.从机代码:ORG 0000HJMP STARTSTART: MOV SP,#50HMOV SCON,#50HANL POCN,#00HMOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB EASETB ET1SETB TR1WAIT:JBC R1,LOOP1JMP WAITLOOP1:MOV A,SBUFMOV P2,ALCALL DE

温馨提示

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

评论

0/150

提交评论