单片机实验报告多机通讯.docx

上传人:b****3 文档编号:27003523 上传时间:2023-06-25 格式:DOCX 页数:11 大小:107.49KB
下载 相关 举报
单片机实验报告多机通讯.docx_第1页
第1页 / 共11页
单片机实验报告多机通讯.docx_第2页
第2页 / 共11页
单片机实验报告多机通讯.docx_第3页
第3页 / 共11页
单片机实验报告多机通讯.docx_第4页
第4页 / 共11页
单片机实验报告多机通讯.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机实验报告多机通讯.docx

《单片机实验报告多机通讯.docx》由会员分享,可在线阅读,更多相关《单片机实验报告多机通讯.docx(11页珍藏版)》请在冰豆网上搜索。

单片机实验报告多机通讯.docx

单片机实验报告多机通讯

单片机系统设计及应用实验报告

 

第次实验

 

实验名称:

单片机串行口与PC机通讯实验

专业:

姓名:

学号:

同组人员:

学号:

实验地点:

实验时间:

2016.12.15

评定成绩:

审阅教师:

 

一.实验目的

(1)掌握串行口工作方式的程序设计,掌握单片机通讯的编制;

(2)了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议;

(3)了解PC机通讯的基本要求。

二.实验内容及要求

利用8051单片机串行口,实现与PC机通讯。

本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。

三.实验原理

89C51内部有一个可编程全双工串行通信接口。

该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。

本实验LED显示是在方式0下,串行口作为同步移位寄存器使用。

此时SM2、RB8、TB8均应设置为0。

发送数据:

TI=0时,执行“MOVSBUF,A”启动发送,8位数据由低位到高位从RXD引脚送出,TXD发送同步脉冲。

发送完后,由硬件置位TI。

方式0的波特率为fosc/12,即一个机器周期发送或接收一位数据。

与PC通讯是方式1:

一帧10位的异步串行通信方式,包括1个起始位,8个数据位和一个停止位。

当TI=0时,执行“MOVSBUF,A”指令后开始发送。

发送时的定时信号由定时器T1送来的溢出信号经过16分频或32分频得到的。

在接收到第9位数据(即停止位)时,必须同时满足以下两个条件:

RI=0和SM2=0或接收到的停止位为“1”,才把接收到的数据存入SBUF中,停止位送RB8,同时置位RI。

在方式1下,SM2应设定为0。

 

四.实验流程图

四.调试过程及相关数据记录

(1)编写单片机发送和接收程序,并进行汇编调试。

运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定为1200。

(2)运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符),检查PC机所接收的字符是否与发送的字符相同。

(3)最初,显示的不是数字而是符号,这是通讯软件的设置,HEX显示,没有勾选。

只能实现一次数据传输,原因是串口的工作方式改为0显示led后没有改回方式1。

(4)将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检查实验板LED数码管所显示的字符是否与PC机发送的字符相同。

调试之前,显示为乱码,修改相关代码后显示正常。

六.源代码

LED0EQU30H;预设数值缓存存储位置

ORG0000H

AJMPSTART

ORG0023H

AJMPINT_1

ORG0040H

START:

MOVSP,#30H

MOVTMOD,#20H;设置定时器工作模式2

MOVTL1,#0E6H;设置波特率

MOVTH1,#0E6H

MOVSCON,#50H;设置串口工作模式

MOVPCON,#00H

MOVLED0,#0BBH;初始化led

MOVR5,#03H

SETBEA

SETBES

SETBTR1

KEYBORD:

;键盘检测按键

MOVP1,#0FFH

MOVA,P1

CPLA

JZKEYBORD;是否全为0

LCALLLOOP

MOVA,P1

CPLA

JZKEYBORD

PUSHA

THEN:

MOVA,P1

CPLA

ANLA,#0FFH

JNZTHEN

LCALLLOOP

POPA

JZKEYBORD

JBACC.0,CH0

JBACC.1,CH1

JBACC.2,CH2

JBACC.3,CH3

JBACC.4,CH4

JBACC.5,CH5

JBACC.6,CH6

JBACC.7,CH7

CH0:

MOVA,#00H

SJMPMAIN

CH1:

MOVA,#01H

SJMPMAIN

CH2:

MOVA,#02H

SJMPMAIN

CH3:

MOVA,#03H

SJMPMAIN

CH4:

MOVA,#04H

SJMPMAIN

CH5:

MOVA,#05H

SJMPMAIN

CH6:

MOVA,#06H

SJMPMAIN

CH7:

MOVA,#07H

MAIN:

CLRACC.7

MOVSBUF,A

SJMPKEYBORD

INT_1:

;中断判断是发送还是接收

JNBRI,SEND

SJMPCEV

SEND:

CLRTI;发送子程序

MOVSCON,#00H

MOVLED0,#00H

LCALLSHOW

MOVSCON,#50H

SJMPBACK

CEV:

CLRRI;接收子程序

MOVA,SBUF;接收数据

MOVR3,A

MOVSCON,#00H;改变串口工作模式0

LCALLFIND

LCALLSHOW

MOVSCON,#50H;换回串口工作模式1

BACK:

RETI

SHOW:

;LED送显

MOVA,LED0

MOVSBUF,A

JNBTI,$

CLRTI

L:

MOVA,#00H

MOVSBUF,A

JNBTI,$

CLRTI

DJNZR5,L

MOVR5,#03H

RET

FIND:

;查找对应断码

MOVDPTR,#TABLE1

MOVA,R3

MOVCA,@A+DPTR

MOVLED0,A

RET

 

LOOP:

MOVR2,#9FH

MOVR7,#0FFH

MOVR6,#0FFH

LOOP1:

DJNZR6,$

LOOP2:

DJNZR7,LOOP2

DJNZR2,LOOP1

RET

TABLE1:

DB0BBH,09H,0EAH,6BH,59H,73H,

DB0F3H,0BH,0FBH,7BH,0DBH,0F1H,0B2H,0E9H,0F2H,0D2H

 

七.运行结果

实验结果如上图,可以看出,分别按键S1-S7对应00-07八个数值。

当PC发送数据给单片机时,可以在LED上显示对应数值。

上图分别为0F和09。

八.实验心得

本次实验实现的是单片机和PC的通讯,而单片机与单片机之间的通讯原理和本次实验也是类同的,我们可以举一反三掌握其通讯方法。

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

当前位置:首页 > 经管营销 > 经济市场

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

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