串行通信实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串行通信实验报告

班级姓名学号日期

一、实验目的:

1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

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

3、学习串口通讯的程序编写方法。

二、实验要求

1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。

2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。

三、实验说明

通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。

连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。

在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。

四、程序

甲方发送程序如下:

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP COM_INT

ORG 1000H

MAIN: MOV SP,#53H

MOV 78H,#20H

— MOV 77H,00H

MOV 76H,20H

MOV 75H,40H

ACALL TRANS

HERE: SJMP HERE

TRANS: MOV TMOD,#20H

MOV TH1,#0F3H

MOV TL1,#0F3H

MOV PCON,#80H

SETB TR1

MOV SCON,#40H

MOV IE,#00H

CLR F0

MOV SBUF,78H

WAIT1: JNB TI,WAIT1

CLR TI

MOV SBUF,77H

WAIT2: JNB TI,WAIT2

CLR TI

MOV SBUF,76H

WAIT3: JNB TI,WAIT3

CLR TI

— MOV SBUF,75H

WAIT4: JNB TI,WAIT4

CLR TI

MOV IE,#90H

MOV DPH,78H

MOV DPL,77H

MOVX A,@DPTR

MOV SBUF,A

WAIT: JNB F0,WAIT

RET

COM_INT: CLR TI

INC DPTR

MOV A,DPH

CJNE A,76H,END1

MOV A,DPL

CJNE A,75H,END1

SETB F0

CLR ES

CLR EA

RET

END1: MOVX A,@DPTR

MOV SBUF,A

END

乙方发送程序如下:

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP COM_INT

ORG 1000H MAIN: MOV SP,#53H

ACALL RECEI HERE: SJMP HERE RECEI: MOV R0,#78H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1

MOV SCON,#50H MOV IE,#90H CLR F0

CLR 7FH WAIT: JNB 7FH,WAIT

COM_INT: PUSH DPL

PUSH DPH

PUSH Acc

CLR RI

JB F0,R_DATA

MOV A,SBUF

MOV @R0,A

DEC R0

CJNE R0,#74H,RETN SETB F0

RETN: POP Acc

POP DPH

POP DPL

RETI

R_DATA: MOV DPH,78H

MOV DPL,77H

MOV A,SBUF

MOVX @DPTR,A

INC 77H

MOV A,77H

JNZ END2

— INC 78H

END2: MOV A,76H

CJNE A,78H,RETN

MOV A,75H

CJNE A,77H,RETN

CLR ES

CLR EA

SETB 7FH

SJMP RETN

END

五、实验过程中遇到的主要问题

OUTBIT equ 08002h ; 位控制口

OUTSEG equ 08004h ; 段控制口

IN equ 08001h ; 键盘读入口

HasRcv equ 20h.0 ; 接收标志位

LEDBuf equ 40h ; 显示缓冲

RCVBuf equ 50H ; 接收缓冲

ORG 0000H

LJMP START

; 串行口中断程序

ORG 0023H

JNB TI,S0_R

CLR TI

NOP

SJMP S0_RET

S0_R: ; 接收数据

CLR RI

MOV RCVBUF,SBUF ; 保存数据

SETB HasRcv ; 提示收到数据

NOP

S0_RET:

相关文档
最新文档