一、实验目的:

1、掌握 8251 的工作方式及应用。

2、了解有关串口通讯的知识。

二、实验内容与要求:

1. 数据信号的串行传输实验,循环向串口发送一个数,使用示波器测量 TXD 引脚上的波形,以了解串行传输的数据格式。

2.自收自发实验,将3000H起始的10个单元中的初始数据发送到串口,然后自接收并保存到4000H起始的内存单元中。

3. 双机通讯实验,本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将 3000H~3009H内存单元中共10个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。

三、实验步骤

1.数据信号的串行传输

(1)按图连接实验接线。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,用示波器观察波形

2.自收自发实验

通过自收自发实验,可以验证硬件及软件设计,常用于自测试。具体实验步骤如下:

(1)连接实验线路。

(2)编写实验程序,编译、链接无误后装入系统。

(3)使用E命令更改4000H起始的10 个单元中的数据。

(4)运行实验程序,待程序运行停止。

(5)查看3000H起始的10 个单元中的数据,与初始化的数据进行比较,验证程序功能

3.双机通讯实验

使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。实验步骤如下:

(1)连接实验线路。

(2)为两台机器分别编写实验程序,编译、链接后装入系统。

(3)为发送机初始化发送数据。在发送机3000H~3009H内存单元写入ASCII 值:30,31,32,33,34,35,36,37,38,39 共10个数。

(4)首先运行接收机上的程序,等待接收数据,然后运行发送机上的程序,将数据发送到串口。

(5)观察接收机端屏幕上的显示是否与发送机端初始的数据相同,验证程序功能。

四、电路连接

1.数据信号的串行传输

2.自收自发实验

3.双机通讯实验

五、代码设计

1.8254计数初值的计算

MOV AL, 0B6H            ; 8254, 设置通讯时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 1BHMOV DX, M8254_2OUT DX, ALMOV AL, 3AHOUT DX, AL

0B6H=10 11 011 0:计数器2,先读写低字节,后读写高字节,方式3,二进制计数

2.8251方式字

        MOV AL, 7EHMOV DX, M8251_CON       ; 写8251方式字OUT DX, AL

写入8251方式字7EH=01 11 11 1 0B

3.8251控制字

        MOV AL, 34HOUT DX, AL              ; 写8251控制字

写入8251控制字34H=00110110B

六、实验现象

1.数据信号的串行传输

起始位0,8位数据:10101010,由于发送的数据是从低到高,所以实际数据是01010101,即55H。无校验位。

2.自收自发实验

3.双机通讯实验

七、源代码

1.数据信号的串行传输

;==========================================================; 文件名: A82511.ASM; 功能描述: 研究了解串行传输的数据格式;==========================================================IOY0            EQU  0600H        ;IOY0起始地址IOY1            EQU  0640H        ;IOY1起始地址M8251_DATA  EQU IOY0+00H*2M8251_CON   EQU IOY0+01H*2M8254_2     EQU IOY1+02H*2M8254_CON   EQU IOY1+03H*2SSTACK  SEGMENT STACKDW 64 DUP(?)SSTACK  ENDSCODE    SEGMENTASSUME CS:CODESTART:  CALL INITA1:     CALL SENDMOV CX, 0001HA2:     MOV AX, 0F00HA3:     DEC AXJNZ A3LOOP A2JMP A1     INIT:   MOV AL, 0B6H            ; 8254, 设置通讯时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 1BHMOV DX, M8254_2OUT DX, ALMOV AL, 3AHOUT DX, ALCALL RESET              ; 对8251进行初始化CALL DALLYMOV AL, 7EHMOV DX, M8251_CON       ; 写8251方式字OUT DX, ALCALL DALLYMOV AL, 34HOUT DX, AL              ; 写8251控制字CALL DALLYRETRESET:  MOV AL, 00H             ; 初始化8251子程序MOV DX, M8251_CON       ; 控制寄存器OUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:  PUSH CXMOV CX, 5000HA4:     PUSH AXPOP AXLOOP A4POP CXRETSEND:   PUSH AXPUSH DXMOV AL, 31HMOV DX, M8251_CONOUT DX, ALMOV AL, 55HMOV DX, M8251_DATA          ; 发送数据55HOUT DX, ALPOP DXPOP AXRETCODE    ENDSEND START

2. 自收自发实验

;===========================================================
; 文件名: A82512.ASM
; 功能描述: 自收自发实验程序, 源地址4000H, 目的地址3000H
;===========================================================IOY0            EQU  0600H        ;IOY0起始地址
IOY1            EQU  0640H        ;IOY1起始地址
M8251_DATA      EQU IOY0+00H*2
M8251_CON       EQU IOY0+01H*2
M8254_2         EQU IOY1+02H*2
M8254_CON       EQU IOY1+03H*2SSTACK  SEGMENT STACKDW 64 DUP(?)
SSTACK  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV AX, 0000HMOV DS, AX;初始化8254,得到收发时钟MOV AL, 0B6HMOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, AL;复位8251CALL INITCALL DALLY;8251方式字MOV AL,7EHMOV DX, M8251_CON OUT DX, ALCALL DALLY;8251控制字 MOV AL, 34HOUT DX, ALCALL DALLYMOV DI, 3000HMOV SI, 4000HMOV CX, 000AH
A1:     MOV AL, [SI]PUSH AXMOV AL, 37HMOV DX, M8251_CONOUT DX, AL POP AX          MOV DX, M8251_DATAOUT DX, AL                  ;发送数据MOV DX, M8251_CON
A2:     IN AL, DX                   ;判断发送缓冲是否为空AND AL, 01HJZ A2CALL DALLY
A3:     IN AL, DX                   ;判断是否接收到数据AND AL, 02HJZ A3MOV DX, M8251_DATAIN AL, DX                   ;读取接收到的数据MOV [DI], ALINC DIINC SILOOP A1MOV AX,4C00HINT 21H                 ;程序终止
INIT:   MOV AL, 00H             ;复位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRET
DALLY:  PUSH CXMOV CX,3000H
A5:     PUSH AXPOP AXLOOP A5POP CXRET
CODE    ENDSEND START

3.双机通讯实验

;========================================================
; 文件名: A82513.ASM
; 功能描述: 接收机接收程序
;========================================================IOY0        EQU  0600H        ;IOY0起始地址
IOY1        EQU  0640H        ;IOY1起始地址
M8251_DATA  EQU IOY0+00H*2
M8251_CON   EQU IOY0+01H*2
M8254_2     EQU IOY1+02H*2
M8254_CON   EQU IOY1+03H*2SSTACK  SEGMENT STACKDW 64 DUP(?)
SSTACK  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV AL, 0B6H            ;初始化8254MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, AL;CLICALL INIT               ;复位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL CALL DALLYMOV AL, 34HOUT DX, AL CALL DALLYMOV AX, 0152H           ;输出显示字符RINT 10HMOV DI, 3000HMOV CX, 000AH
A1:     MOV DX,M8251_CONIN AL, DXAND AL, 02HJZ A1MOV DX, M8251_DATAIN AL, DXAND AL, 7FHMOV [DI],ALINC DILOOP A1MOV AL, 00HMOV SI, 300AHMOV [SI], ALMOV AH, 06HMOV BX, 3000HINT 10H             ;输出显示接收到的数据;STI
A2:     JMP A2
INIT:   MOV AL, 00H         ;复位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRET
DALLY:  PUSH CXMOV CX, 3000H
A3:     PUSH AXPOP AXLOOP A3POP CXRET
CODE    ENDSEND START;=========================================================
; 文件名: A82514.ASM
; 功能描述: 发送机的发送程序
;=========================================================IOY0        EQU  0600H        ;IOY0起始地址
IOY1        EQU  0640H        ;IOY1起始地址
M8251_DATA  EQU IOY0+00H*2
M8251_CON   EQU IOY0+01H*2
M8254_2     EQU IOY1+02H*2
M8254_CON   EQU IOY1+03H*2SSTACK  SEGMENT STACKDW 64 DUP(?)
SSTACK  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV AL, 0B6H            ;初始化8254, 得到收发时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCALL INIT               ;复位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL              ;8251方式字CALL DALLYMOV AL, 34HOUT DX, AL              ;8251控制字CALL DALLYMOV DI, 3000HMOV CX, 000AH
A1:     MOV AL, [DI]CALL SENDCALL DALLYINC DILOOP A1
A2:     JMP A2
INIT:   MOV AL, 00H             ;复位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRET
DALLY:  PUSH CXMOV CX, 3000H
A4:     PUSH AXPOP AXLOOP A4POP CXRET
SEND:   PUSH DX                 ;数据发送子程序PUSH AXMOV AL, 31HMOV DX, M8251_CONOUT DX, ALPOP AXMOV DX, M8251_DATAOUT DX, ALMOV DX, M8251_CON
A3:     IN AL, DXAND AL, 01HJZ A3POP DXRET
CODE    ENDSEND START

8251 串行接口应用实验相关推荐

  1. 汇编语言--8251串行接口应用试验

    题目 自发自收试验:将3000H起始的10个单元中的起始数据发送到串口,然后自接自收保存到4000H起始的内存单元中 实验电路图 实验代码 ;============================= ...

  2. 计算机组成原理STRA检测程序,计算机组成原理实验4-微程序控制器课件.ppt

    <计算机组成原理实验4-微程序控制器课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理实验4-微程序控制器课件.ppt>文档请在 ...

  3. mysql期末实验实训装置厂家_工业自动化综合实训装置

    3.变频器实训挂箱 配置西门子V20 0.37KW变频器,带有RS485通讯及BOP操作面板. 4.触摸屏实训组件:7英寸昆仑通态,256色,了解工业触摸屏的功能及使用方法.掌握与PLC之间的通信知识 ...

  4. 【Computer Organization笔记15】清华计组大作业布置:奋战二十天,做台计算机!

    本次笔记内容: P29 计算机组成原理(29):第25分钟起 P30 计算机组成原理(30) 我的计组笔记汇总:计算机组成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 108 ...

  5. 【Computer Organization笔记27】接口电路和外部设备

    本次笔记内容: P53 计算机组成原理(53) P54 计算机组成原理(54) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  6. 嵌入式学习笔记(一)嵌入式操作系统测试

    嵌入式操作系统产品在学习的过程中,了解产品特性能够有助于学习产品功能,并且能够从用户角度发掘产品需要满足的重要特征,从而提炼产品特点,并且化作产品亮点,转化为产品未来占领市场.提升竞争力的关键切入点. ...

  7. 计算机组成中sub,计算机组成第5章计算机系统概述

    <计算机组成第5章计算机系统概述>由会员分享,可在线阅读,更多相关<计算机组成第5章计算机系统概述(65页珍藏版)>请在人人文库网上搜索. 1.1,计算机组成原理教学课件 王 ...

  8. ht66f 单片机 c语言版,HT66Fxx Flash单片机原理与实践(附光盘C语言篇)

    导语 钟启仁编著的<HT66Fxx Flash单片机原理与实践(C语言篇)>主要针对HT66x0系列单片机的特性.功能及相关的外围模块,并以Holtek C语言编写应用程序,编辑成一系列的 ...

  9. 单片机(AT89C51)的串行接口及串行通信(包含实验)

    单片机(AT89C51)的串行接口及串行通信是非常重要的一项技术,我们需要有深度的解刨才可以理解透彻,既然进来了我肯定不会让你失望,点个小赞再走吧. 正式进入串口通信前我们需要了解什么是通信? 计算机 ...

最新文章

  1. Robert Hoekman,Jr 继《一目了然》后的又一经典力作
  2. 《Pro ASP.NET MVC 3 Framework》学习笔记之五【依赖注入及ninject工具使用】
  3. Jmeter教程 简单的压力测试
  4. python pip如何安装wheel文件?.whl(pip install [wheel])
  5. 关于unityengine.dll, unityengine.coremodule.dll
  6. Shiro-授权(RBAC)
  7. 9.11 strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数
  8. 图灵原版计算机科学系列,图灵原版计算科学系列
  9. PCL: 根据几何规则的曲面剖分-贪婪法表面重建三角网格
  10. SQL Server错误代码及解释(一)
  11. Linux 内核读写文件
  12. 服务器显示器无法调节分辨率,求救:分辨率调的太高,显示器无法显示怎么办?...
  13. Ping值和带宽之间关系
  14. 松香的用法(电烙铁焊接)
  15. 1000人 规模园区网设计
  16. 论文阅读Targetless Calibration of LiDAR-IMU System Based on Continuous-time Batch Optimization(含代码解读)
  17. ipad键盘符号少怎么办?
  18. Matlab面向对象的编程-类使用
  19. 制度化规范化标准化精细化_何为规范化、标准化、精细化管理
  20. mysql查看导入进度_查看MySQL LOAD DATA进度

热门文章

  1. Windows-快速预览文件-QuickLook
  2. 这套实时监控方案,真的太顶了!
  3. 虚拟驾驶环境搭建(二)
  4. 众筹在中国的四种模式
  5. 现在是不是投资指数基金的好时候?
  6. php编程三阶魔方,“老师!您辛苦啦!”2088块三阶魔方拼成对老师的爱
  7. File.renameTo()无效-解决
  8. 遇到百度系列网站打开后显示不全的情况
  9. [附源码]计算机毕业设计Python+uniapp基于Android的学生评教系统rfl6a(程序+源码+LW+远程部署)
  10. 多旋翼飞行器设计与控制(五)—— 坐标系和姿态表示