微机原理实验四实验报告.docx

上传人:b****6 文档编号:14115572 上传时间:2023-06-20 格式:DOCX 页数:16 大小:359.38KB
下载 相关 举报
微机原理实验四实验报告.docx_第1页
第1页 / 共16页
微机原理实验四实验报告.docx_第2页
第2页 / 共16页
微机原理实验四实验报告.docx_第3页
第3页 / 共16页
微机原理实验四实验报告.docx_第4页
第4页 / 共16页
微机原理实验四实验报告.docx_第5页
第5页 / 共16页
微机原理实验四实验报告.docx_第6页
第6页 / 共16页
微机原理实验四实验报告.docx_第7页
第7页 / 共16页
微机原理实验四实验报告.docx_第8页
第8页 / 共16页
微机原理实验四实验报告.docx_第9页
第9页 / 共16页
微机原理实验四实验报告.docx_第10页
第10页 / 共16页
微机原理实验四实验报告.docx_第11页
第11页 / 共16页
微机原理实验四实验报告.docx_第12页
第12页 / 共16页
微机原理实验四实验报告.docx_第13页
第13页 / 共16页
微机原理实验四实验报告.docx_第14页
第14页 / 共16页
微机原理实验四实验报告.docx_第15页
第15页 / 共16页
微机原理实验四实验报告.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理实验四实验报告.docx

《微机原理实验四实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理实验四实验报告.docx(16页珍藏版)》请在冰点文库上搜索。

微机原理实验四实验报告.docx

微机原理实验四实验报告

实验报告

 

课程名称

微机原理与接口技术

实验项目名称

实验四8251可编程串口与PC机通信实验

实验类型

综合与设计性实验

实验学时

2

班级

学号

姓名

指导教师

实验室名称

实验时间

实验成绩

预习部分

实验过程

表现

实验报告

部分

总成绩

教师签字

日期

 

实验四8251可编程串行口与PC机通信实验

一、实验要求

利用实验箱内的8251A芯片,实现与PC机的通信。

二、实验目的

1.掌握8251A芯片结构和编程方法;

2.了解实现串行通信的硬件环境,数据格式和数据交换协议;

3.了解PC机通信的基本要求。

三、实验原理

(一)8251A芯片工作方式配置:

1.8个数据位;

2.无奇偶校验位;

3.1个停止位;

4.波特率因子设为16;

5.波特率设为9600。

(二)8251A主要寄存器说明

图4-1模式字

图4-2命令字

图4-3状态字

(三)8251编程

对8251的编程就是对8251的寄存器的操作,下面分别给出8251的几个寄存器的格式。

(1)方式控制字

方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。

图4-4方式控制字说明

(2)命令控制字

命令控制字用于指定8251进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。

图4-5所示的是8251命令控制字各位的定义。

图4-5命令控制字说明

(3)状态字

CPU通过状态字来了解8251当前的工作状态,以决定下一步的操作,8251的状态字如

图4-6所示。

图4-6状态字说明

四、实验电路连接:

1.CS8251接228H,CS8279已固定接至238H;

2.扩展通信口18中的232RXD连8251RXD,232TXD连8251TXD;

3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。

注意:

RS232通信口必须在设备断电状态下插拔!

图4-7连线图

五、实验内容及要求

1.将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。

使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。

将结果截图保存,贴入实验报告。

2.剔除例程中冗余部分,实现对例程的精简和优化。

将精简内容与相应理由写入实验报告。

3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。

使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。

将结果截图保存,贴入实验报告。

4.通过读状态寄存器的方法,获得发送移位寄存器是否为空的信息,实现学号后三位数字的循环发送。

将结果截图保存,贴入实验报告。

5.给每帧数据间添加固定的时间间隔,时间间隔为10000个指令周期。

将结果截图保存,贴入实验报告。

六、实验程序及结果

1.

起始位0,8位数据:

10101010,由于发送的数据是从低到高,所以实际数据是01010101,即55H。

无校验位。

2.精简化程序

M8251_DATAEQU0600H;端口定义

M8251_CONEQU0602H

M8254_2EQU0644H

M8254_CONEQU0646H

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CALLINIT

A1:

CALLSEND

MOVCX,0001H

A2:

MOVAX,0F00H

A3:

DECAX

JNZA3

LOOPA2

JMPA1

INIT:

MOVAL,0B6H;8254,设臵通讯时钟

MOVDX,M8254_CON

OUTDX,AL

MOVAL,1BH

MOVDX,M8254_2

OUTDX,AL

MOVAL,3AH

OUTDX,AL

CALLRESET;对8251进行初始化

CALLDALLY

MOVAL,6EH

MOVDX,M8251_CON;写8251方式字,有奇偶校验

OUTDX,AL

CALLDALLY

MOVAL,34H

OUTDX,AL;写8251控制字

CALLDALLY

RET

RESET:

MOVAL,00H;初始化8251子程序

MOVDX,M8251_CON;控制寄存器

OUTDX,AL

CALLDALLY

OUTDX,AL

CALLDALLY

OUTDX,AL

CALLDALLY

MOVAL,40H

OUTDX,AL

RET

DALLY:

PUSHCX

MOVCX,5000H

A4:

PUSHAX

POPAX

LOOPA4

POPCX

RET

SEND:

PUSHAX

PUSHDX

MOVAL,31H

MOVDX,M8251_CON

OUTDX,AL

MOVAL,55H

MOVDX,M8251_DATA;发送数据55H

OUTDX,AL

CALLDALLY

POPDX

POPAX

RET

CODEENDS

ENDSTART

发送55H:

01010101B,接收时从低位开始接收,接收到的二进制数为:

10101010B,实际接收到的二进制数为:

0(起始位)10101010(8位数据位)(无奇偶校验位)1(停止位)

3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。

使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。

将结果截图保存,贴入实验报告。

(1)发送415:

M8251_DATAEQU0600H;端口定义

M8251_CONEQU0602H

M8254_2EQU0644H

M8254_CONEQU0646H

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CALLINIT

A1:

CALLSEND

MOVCX,0001H

A2:

MOVAX,0F00H

A3:

DECAX

JNZA3

LOOPA2

JMPA1

INIT:

MOVAL,0B6H;8254,设臵通讯时钟

MOVDX,M8254_CON

OUTDX,AL

MOVAL,1BH

MOVDX,M8254_2

OUTDX,AL

MOVAL,3AH

OUTDX,AL

CALLRESET;对8251进行初始化

CALLDALLY

MOVAL,6EH

MOVDX,M8251_CON;写8251方式字

OUTDX,AL

CALLDALLY

MOVAL,34H

OUTDX,AL;写8251控制字

CALLDALLY

RET

RESET:

MOVAL,00H;初始化8251子程序

MOVDX,M8251_CON;控制寄存器

OUTDX,AL

CALLDALLY

OUTDX,AL

CALLDALLY

OUTDX,AL

CALLDALLY

MOVAL,40H

OUTDX,AL

RET

DALLY:

PUSHCX

MOVCX,5000H

A4:

PUSHAX

POPAX

LOOPA4

POPCX

RET

SEND:

PUSHAX

PUSHDX

MOVAL,31H

MOVDX,M8251_CON

OUTDX,AL

MOVAL,04H

MOVDX,M8251_DATA;发送数据55H

OUTDX,AL

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

MOVAL,01H

MOVDX,M8251_DATA;发送数据55H

OUTDX,AL

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

MOVAL,05H

MOVDX,M8251_DATA;

OUTDX,AL

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

CALLDALLY

POPDX

POPAX

RET

CODEENDS

ENDSTART

分三次分别发送04H,01H,05H

该程序发送数据时,是通过延时来让数据全部发送出去,不是通过状态字来进行判断。

通过延时,给寄存器足够的时间,将数据发送出去,然后再发送下一帧数据。

七、实验体会与心得

通过本次实验,我掌握了8251的基本应用,熟悉了其典型电路连接方法,以及他的数据传送程序。

本次实验,我切实的认识了数据帧的相关内容,以及数据是如何发送的。

数据帧是将数据加上首部和尾部所构成的数据段,首部包含起始位,尾部包含奇偶校验位和停止位等,具体的位数需要通过设定方式控制字来进行设定。

数据帧传送时,需要一定的时间,如果传送还没完成就发送下一帧,数据就会丢失。

为防止数据丢失,可以通过两种方法发送数据:

1.等待足够长的时间让数据发送出去;2.查询状态字判断数据是否发送。

后者比较精准,前者可能有误差。

数据的发送是先送高位再送低位,所以在传送学号的程序中出现了一些错误,应以5,1,4的顺序发送。

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2