双机通信系统的设计.docx

上传人:b****3 文档编号:1845276 上传时间:2022-10-24 格式:DOCX 页数:12 大小:62.46KB
下载 相关 举报
双机通信系统的设计.docx_第1页
第1页 / 共12页
双机通信系统的设计.docx_第2页
第2页 / 共12页
双机通信系统的设计.docx_第3页
第3页 / 共12页
双机通信系统的设计.docx_第4页
第4页 / 共12页
双机通信系统的设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

双机通信系统的设计.docx

《双机通信系统的设计.docx》由会员分享,可在线阅读,更多相关《双机通信系统的设计.docx(12页珍藏版)》请在冰豆网上搜索。

双机通信系统的设计.docx

双机通信系统的设计

双机通信系统的设计

一、课程设计的目的与要求

1、课程设计目的:

(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。

(2)通过课程设计提高应用能力,分析问题和解决问题的能力。

(3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。

2、课程设计要求

双机通信系统的设计

1)掌握串行口工作方式的程序设计。

2)掌握单片机通讯程序的编制。

3)了解实现串行通讯的硬件环境,数据格式、数据交换的协议。

4)掌握在8031系统中扩展8279键盘显示接口的方法。

5)了解键盘电路工作原理及编程方法。

从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:

(1)能够正确理解课程设计的题目和意义,全面思考问题。

(2)运用科学合理的方法,认真按时完成。

二、课程设计课题的分析

MCS—51单片机内穿行口的SBUF有两个:

接收SBUF和发送SBUF,二者在物理结构上是独立的,单片机用它们来接收和发送数据。

专用寄存器SCON和PCON控制串行口的工作方式和波特率。

定时器1作为波特率发生器。

编程时注意两点:

一时初始化,设置波特率和数据格式。

二是确定数据传送方式。

数据传送方式有两种:

查询方式和中断方式。

为确保通讯成功,甲机和乙机必须有一个一致的通讯协议,例程的通讯协议如下:

通讯双方均采用2400波特的速率传送,甲机发送数据,乙机接收数据。

双机开始通讯时,甲机发送一个呼叫信号“06”,询问乙机是否可以接收数据;乙机受到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“F0”表示暂不能接收数据;甲机只有受到乙机的应答信号“00”后才可把要发送的数据发送给乙机,否则继续向乙机呼叫,直到乙机同意接受。

其发送数据格式为:

字节数n:

甲机将向乙机发送的数据个数

数据1~数据n:

甲机将向乙机发送的n个数据

乙机接收到数据后,向甲机回发“0F”信号。

甲机只有接到信号“0F”才算完成发送任务,否则继续呼叫,重发数据。

电路及程序的设计

8031串行口显示电路

原理图,硬件电路图,较详细的程序流程图。

流程图:

A机流程图:

 

B机流程图:

三、课程设计的结果

1基本功能

利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口74LS273输出到发光二极管显示,结合延时来模拟一个循环彩灯。

彩灯变化花样可自行设计。

例:

①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。

各时序间隔为0.5秒。

让发光二极管按以上规律循环显示下去。

;8031的TXD接RXD;74LS273的CS273接CS0;SO0~SO7接发光二极管的L1~L8;

CSEGAT0000H

LJMPSTART

CSEGAT4100H

PORTEQU0CFA0H

START:

MOVTMOD,#20H;

MOVTL1,#0F2H;

MOVTH1,#0F2H

MOV87H,#00H;

SETBTR1;

MOVSCON,#50H;

MOVR1,#12H;

MOVDPTR,#TABLE

MOVA,DPL

MOVDPTR,#L1

CLRC

SUBBA,DPL;

MOVR5,A;

MOVR0,A

SEND:

MOVA,R0

MOVCA,@A+PC;

L1:

MOVSBUF,A;

WAIT:

JBCRI,L2;

SJMPWAIT

L2:

CLRRI

CLRTI

MOVA,SBUF

MOVDPTR,#PORT

MOVX@DPTR,A

ACALLDELAY

INCR0

DJNZR1,SEND

MOVR1,#12H

MOVA,R5

MOVR0,A

JMPSEND

TABLE:

DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH

DB0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H

DELAY:

MOVR4,#05H

DEL1:

MOVR3,#200

DEL2:

MOVR2,#126

DEL3:

DJNZR2,DEL3

DJNZR3,DEL2

DJNZR4,DEL1

RET

END

现象:

8个LED小灯按表中取出的指令顺序点亮

2、双机通信系统的设计

(1)发送机

NAMET13F;双机通讯实验(发送程序)

CSEGAT0000H

LJMPSTART

CSEGAT4100H

PORTEQU0CFE8H

START:

MOVDPTR,#PORT+1;8279命令字

MOVA,#0D1H;清除

MOVX@DPTR,A

WAIT:

MOVXA,@DPTR

JBACC.7,WAIT;等待清除完毕

MOVTMOD,#20H

MOVTH1,#0F2H

MOVTL1,#0F2H

SETBTR1

MOVSCON,#50H

MOV87H,#80H

MOV50H,#00H

MOV51H,#00H

MOV52H,#00H

MOV53H,#00H

MOV54H,#00H

MOV55H,#00H

LOOP1:

MOVXA,@DPTR

ANLA,#0FH

JZLOOP1;有键按下?

MOVA,#0A0H;显示消隐命令

MOVX@DPTR,A

MOVDPTR,#PORT;读键值

MOVXA,@DPTR

ANLA,#3FH

MOVR7,A;状态保存

MOV50H,51H

MOV51H,52H

MOV52H,53H

MOV53H,54H

MOV54H,55H

LOP:

MOVA,R7

MOVDPTR,#TAB1

MOVCA,@A+DPTR;查取数字键的字型码

MOV55H,A

mov40h,a

SUBBA,#80H

JZERROR;非数字键则跳转

ACALLDISP

SJMPTXACK

DISP:

MOVDPTR,#PORT+1

MOVA,#90H

MOVX@DPTR,A

MOVR6,#06H

MOVR1,#50H

MOVDPTR,#PORT

DL0:

MOVA,@R1

MOVX@DPTR,A

INCR1

DJNZR6,DL0

RET

TXACK:

MOVA,#06H;发呼叫信号"06"

MOVSBUF,A

WAIT1:

JBCTI,RXYES;等待发送完一个字节

SJMPWAIT1

RXYES:

JBCRI,NEXT1;等待乙机回答

SJMPRXYES

NEXT1:

MOVA,SBUF;判断乙机是否同意接收,不同意继续呼叫

CJNEA,#00H,TXACK

MOVA,40H

MOVSBUF,A

WAIT2:

JBCTI,TXNEWS

SJMPWAIT2

TXNEWS:

JBCRI,IF0DDH

SJMPTXNEWS

IF0DDH:

MOVA,SBUF

CJNEA,#0FH,TXACK;判断乙机是否接收正确,不正确继续呼叫

MOVDPTR,#0CFE9H

LJMPLOOP1

ERROR:

MOV50H,#79H

MOV51H,#31H

MOV52H,#31H

MOV53H,#5CH

MOV54H,#31H

MOV55H,#80H

LCALLDISP

DD:

MOVDPTR,#PORT+1

MOVXA,@DPTR

ANLA,#0FH

JZDD;有键按下?

MOVA,#0A0H;显示消隐命令

MOVX@DPTR,A

MOVDPTR,#0CFE8H;读键值

MOVXA,@DPTR

ANLA,#3FH

MOVR7,A;状态保存

MOV50H,#00H

MOV51H,#00H

MOV52H,#00H

MOV53H,#00H

MOV54H,#00H

LJMPLOP

TAB1:

DB3FH,06H,5BH,4FH,80H,80H;键值字型码表

DB66H,6DH,7DH,07H,80H,80H

DB7FH,6FH,77H,7CH,80H,80H

DB39H,5EH,79H,71H,80H,80H

DB80H,80H,80H,80H

END

(2)接收机

NAMET13J;双机通讯实验

CSEGAT0000H

LJMPSTART

CSEGAT4100H

PORTEQU0CFE8H

START:

MOVDPTR,#PORT+1;8279命令字

MOVA,#0D1H;清除

MOVX@DPTR,A

WAIT:

MOVXA,@DPTR

JBACC.7,WAIT;等待清除完毕

MOVTMOD,#20H

MOVTH1,#0F2H;初始化定时器

MOVTL1,#0F2H

SETBTR1

MOVSCON,#50H;初始化串行口

MOV87H,#80H

MOV50H,#00H

MOV51H,#00H

MOV52H,#00H

MOV53H,#00H

MOV54H,#00H

MOV55H,#00H

SJMPRXACK

DISP:

MOVDPTR,#PORT+1

MOVA,#90H

MOVX@DPTR,A

MOVR6,#06H

MOVR1,#50H

MOVDPTR,#PORT

DL0:

MOVA,@R1

MOVX@DPTR,A

INCR1

DJNZR6,DL0

RET

RXACK:

JBCRI,IF06H;接收呼叫信号

SJMPRXACK

IF06H:

MOVA,SBUF;判断呼叫是否有误

CJNEA,#06H,TX15H

TX00H:

MOVA,#00H

MOVSBUF,A

WAIT1:

JBCTI,RXBYTES;等待应答信号发送完

SJMPWAIT1

TX15H:

MOVA,#0F0H;向甲机报告接收的呼叫信号不正确

MOVSBUF,A

WAIT2:

JBCTI,HAVE1

SJMPWAIT2

HAVE1:

SJMPRXACK

RXBYTES:

JBCRI,HAVE2

SJMPRXBYTES

HAVE2:

MOVA,SBUF

MOVR7,A

MOVA,#0FH

MOVSBUF,A

WAIT3:

JBCTI,LOOP1

SJMPWAIT3

LOOP1:

MOVDPTR,#PORT+1

MOVA,#0A0H;显示消隐命令

MOVX@DPTR,A

MOV50H,51H

MOV51H,52H

MOV52H,53H

MOV53H,54H

MOV54H,55H

MOVA,R7

MOV55H,A

LCALLDISP

LJMPRXACK

END

四、课程设计的心得与体会

单片机的课程设计是这学期的最后一个课设了,主要是把学习的课本知识运用到实践中。

我选择的是第三个题目,双机通信系统设计,选择这个课题的同学比较少,本来想好好的发挥一下,结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1