8251串行通讯实验
串行接口应用实验
(一)8251 串行接口应用实验一、实验目的1、掌握8251的工作方式。
2、学习串行通讯的有关知识。
二、实验设备1、TDN86/88教学实验系统一台。
2、示波器一台。
3、一组排线。
三、实验内容及步骤1、系统中的8251芯片系统装有一片8251芯片,并和标准RS-232C接口连接好,如下图所示。
该电路用来完成同PC微机的联机以及串行监控操作的实现,其端口地址为:数据口:C0H 控制口:C1H2、实验单元中的8251这片8251芯片用于各种串行口实验,连线见下图,其端口地址为:数据口:80H 控制口:81H3、8251串行接口应用实验本实验中,串行传输的数据格式规定如下:(1)一位逻辑‘0’的起始位,8位数据位(由低位开始传输),1位逻辑‘1’停止位。
(2)传输波特率9600baut。
数据信号的串行输出送示波器,可观察数据波形。
与示波器连线如下:8251 示波器TxD _____________ +GND_____________ -4、实验程序,见13-1.ASMCODE SEGMENTASSUME CS:CODESTART: CALL INIT ;初始化8253和8251A1: CALL SEND ;向串口送55HA2: MOV CX,0200H ;定时时间到,再发送下一个数据LOOP A2JMP A1 ;重复送数INIT: MOV AL,76H ;8253的计数器1工作在方式3,送出方波信号,作为8251收发时钟OUT 43H,ALMOV AL,0CH ;方波频率为153.6KHzOUT 41H,ALMOV AL,00HOUT 41H,ALCALL RESET ;复位8251,即向控制口送3个0,一个40HCALL DELAY ;8251工作速度慢,每送一个控制字,等待一会儿MOV AL,7EH ;置异步方式:1个停止位,偶校验,字符长为8位,波特率因子为16OUT 81H,AL ;控制口CALL DELAYMOV AL,31H ;RTS输出0,使CTS输入0OUT 81H,AL ;清除错误标志,并使TxEN置1,允许发送CALL DELAYRETRESET: MOV AL,00H ;复位8251OUT 81H,ALCALL DELAYOUT 80H,ALCALL DELAYOUT 80H,ALCALL DELAYMOV AL,40HOUT 81H,ALRETDELAY: PUSH CX ;延时子程序MOV CX,6000HA3: LOOP A3POP CXRETSEND: PUSH AX ;发送55HMOV AL,31HOUT 81H,ALPOP AXMOV AL,55HOUT 80H,ALRETCODE ENDSEND START5、实验步骤(1)将示波器与8251的TxD、GND排针引脚相连接。
微机原理实验四实验报告
实验报告实验四 8251可编程串行口与PC机通信实验一、实验要求利用实验箱内的8251A芯片,实现与PC机的通信。
二、实验目的1.掌握8251A芯片结构和编程方法;2.了解实现串行通信的硬件环境,数据格式和数据交换协议;3.了解PC机通信的基本要求。
三、实验原理(一)8251A芯片工作方式配置:1. 8个数据位;2.无奇偶校验位;3.1个停止位;4.波特率因子设为16;5. 波特率设为9600。
(二)8251A主要寄存器说明图4-1 模式字图4-2 命令字CO MMAN D I NSTR UCT ION FO RMA T图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管脚的输出,验证结果的正确性。
将结果截图保存,贴入实验报告。
深圳大学8251串行接口应用实验
深圳大学实验报告课程名称:微型计算机技术及应用实验名称:8251串行接口应用实验学院:信息工程学院专业:班级:组号:指导教师:报告人:学号:实验地点实验时间:2010 年12 月23 日星期五实验报告提交时间:2011.01.07D2D3RxDGNDD4D5D6D7 TxC# WR#CS# C/D#RD# RxRDYD0D1VccRxC#DTR#RTS#DSR#RESETCLKTxDTxECTS#SYNDET/BDTxRDY11428158251图4.37 8251外部引脚图3. 8251在异步方式下的TXD信号上的数据传输格式图4.38示意了8251工作在异步方式下的TXD信号上的数据传输格式。
数据位与停止位的位数可以由编程指定。
TXD 发送器输出启动位数据位校验位停止位由8251产生D0D1···Dn图4.38 8251工作在异步方式下TXD信号的数据传输格式4. 8251的编程对8251的编程就是对8251的寄存器的操作,下面分别给出8251的几个寄存器的格式。
(1)方式控制字方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4.39所示。
(2)命令控制字命令控制字用于指定8251进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。
图4.40所示的是8251命令控制字各位的定义。
图4.40 8251命令控制字格式(3)状态字CPU 通过状态字来了解8251当前的工作状态,以决定下一步的操作,8251的状态字如图4.41所示。
图4.41 8251状态字格式(4)系统初始化8251的初始化和操作流程如图4.42所示。
系统RESET 初始化输入方式指令异步?输入第1个同步字符1个同步字符?输入第2个同步字符输入命令指令复位?传送数据完成?YYYYNN NN图4.42 8251初始化流程图5. 8251实验单元电路图11。
实验十8251实验
实验十8251实验实验十8251串口实验一、实验目的1.了解串行通讯的基本原理。
2.掌握串行接口芯片8251的工作原理和编程方法。
二、实验内容双机通讯实验,使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯,实验步骤如下:1.按图1连接好电路,其中8254计数器如图2,用于产生8251的发送和接收时钟,TXD 和RXD连在一起。
图1 双机通讯连接图图2 发送、接收时钟连接图波特率因子若选16,计数器2初值为12。
则波特率=1.8432MHZ/12/16=9600bps2.编程:在发送机3000H~3009H 内存单元写入ASCII 值:30,31,32,33,34,35,36,37,38,39 共10 个数。
将这10个数发送给接收机后显示在屏幕上,收发采用查询方式。
三、程序流程8251的初始化流程图四、程序代接收机的代码:M8251_DATA E QU 0600HM8251_CON EQU 0602HM8254_2 EQU 06C4HM8254_CON EQU 06C6HSSTACK SEGMENT STACKDW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL, 0B6H ;初始化8254 MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCLIMOV AL, 00H ;复位8251子程序MOV DX, M8251_CONOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 7EH ;方式字MOV DX, M8251_CONOUT DX, ALMOV AL, 34HOUT DX, ALMOV AX, 0152H ;输出显示字符'R' INT 10HMOV DI, 3000HMOV CX, 000AHA1: IN AL, DXAND AL, 02HJZ A1MOV DX, M8251_DA TAIN AL, DXAND AL, 7FH ;数据是否出错MOV [DI],ALINC DILOOP A1MOV AL, 00HMOV SI, 300AHMOV [SI], ALMOV AH, 06HMOV BX, 3000HINT 10H ;输出显示接收到的数据STIA2: JMP A2A3: PUSH AXPOP AXLOOP A3POP CXRETCODE ENDSEND START发送机的代码:;发送机M8251_DATA E QU 0600HM8251_CON EQU 0602HM8254_2 EQU 06C4HM8254_CON EQU 06C6H SSTACK SEGMENT STACK DW 64 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL, 0B6H ;初始化8254, 得到收发时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00H ;复位8251子程序MOV DX, M8251_CONOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 07EH ;01111110 (波特率x16)MOV DX, M8251_CONOUT DX, AL ;8251方式字MOV AL, 34H ;31HOUT DX, AL ;8251控制字MOV DI, 3000HMOV CX, 000AHA1: MOV AL, [DI] ;给地址PUSH DXPUSH AXMOV AL, 31H ;操作MOV DX, M8251_CONOUT DX, AL ;发送MOV DX, M8251_DA TAPOP AXOUT DX, ALMOV DX, M8251_CONINC DILOOP A1A2: JMP A2A4: PUSH AXPOP AXLOOP A4POP CXRETA3: IN AL, DXAND AL, 01H ;测试TxE TxRDYJZ A3 ;等待POP DXRETCODE ENDSEND START在此次实验中,实验箱的连线经反复检查后并没有出现问题,后排除可能是远距离连线的接触不良造成了实验中,接收机已知在等待,发送机的数据一直无法传送的问题。
8251串行通讯实验
师大学数计学院实验报告专业名称 11计科课程微机原理实验名称串行通信实验姓名学号 1107040128251 可编程串行口与PC 机通讯实验一、实验目的(1) 掌握8251 芯片的结构和编程,掌握微机通讯的编制。
(2) 学习有关串行通讯的知识。
(3) 学习 PC 机串口的操作方法。
二、实验说明1、8251 信号线8251 是CPU 与外设或Mode 之间的接口芯片,所以它的信号线分为两组:一组是用于与CPU 接口的信号线,另一组用于与外设或Mode 接口。
(1)与CPU 相连的信号线:除了双向三态数据总线(D7~D0)、读(RD)、写(WR)、片选(CS)之外,还有:RESET:复位。
通常与系统复位相连。
CLK:时钟。
由外部时钟发生器提供。
C/D:控制/数据引脚。
TxRDY:发送器准备好,高电平有效。
TxE:发送器空,高电平有效。
RxRDY:接收器准备好,高电平有效。
SYNDET/BRKDET:同步/中止检测,双功能引脚。
(2)与外设或Mode 相连的信号线:DTR:数据终端准备好,输出,低电平有效。
DSR:数据装置准备好,输入,低电平有效。
RTS:请求发送,输出,低电平有效。
CTS:准许传送,输入,低电平有效。
TxD:发送数据线。
RxD:接收数据线。
TxC:发送时钟,控制发送数据的速率。
RxC:接收时钟,控制接收数据的速率。
2、8251 的初始化编程和状态字8251 是一个可编程的多功能串行通信接口芯片,在使用前必须对它进行初始化编程。
初始化编程包括CPU 写方式控制字和操作命令字到8251 同一控制口,在初始化编程时必须按一定的顺序。
如下面的流程图:三、实验原理图四、实验容本实验由实验器发送一串字符0~9,PC 机串口接收并在超级终端上显示。
五、实验步骤与PC 机通讯应用实验(1)实验连线:a.用串口线把实验机 8251 模块的RS232 通讯口与PC 机相连,把串口旁边的短路块SW1 短路在2-2/3-3 上,SW2 短路在RS232 上。
试验一8251串行通信试验一自发自收
实验一8251串行通信实验㈠:自发自收一、实验目的了解串行通信的实现原理,掌握8251的工作方式和编程方法。
二、实验内容利用本实验系统内的8251接口芯片,采用自发自收的方法,实现数据收发通信实验。
发送的数据为4000H开始的16个源RAM区单元内容,接收到的数据放在5000H开始的RAM单元中,核对接收的数据是否和发送的数据一致。
三、编程提示⑴数据发送与接收字节均采用查询方式;⑵8251接口芯片的端口地址:命令状态口=FFE1h,数据口=FFE0h;⑶设置方式字:异步方式,8个数据位,1位起始位,1个停止位,波特率因子为16。
⑷TXC、RXC时钟速率一致,可选速率F:38.4KHz、76.8KHz、153.6KHz、307.2KHz,波特率bps=TXC÷16,相应可选bps:2400、4800、9600、19200。
四、程序流程五、实验电路六、实验步骤1、实验连线⑴连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。
⑵将8251串行通信单元的T/RXC与分频单元的T6相连,CLK与分频单元的T0相连,8251CS与译码单元的Y0相连,将8251串行通信单元RXD与TXD相连。
⑶用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。
2、LED环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在4000~400Fh内存单元中填入16个数据。
⑶在“P.”状态下键入35C0,然后按“EXEC”进入实验项目的运行。
3、PC环境在与PC联机状态下,编译、连接、下载PH88\he11.asm,用连续方式运行程序。
4、观察运行结果在连续运行下,8251开始将4000~400Fh内存单元的数据发送串行口,再从串行口接收数据并存到5000~500Fh内存单元,当LED显示“P.”则表示操作完成。
用复位命令结束程序,检查5000~500Fh内存单元的数据,应与4000~400Fh一致。
8251串行通信实验
8251 串行通信实验一、实验目的1.掌握 8251 串行通讯方式的硬件接口电路及软件编程设计二、实验设备PC机器一台, TDN86/88+教学实验系统一台。
三、实验原理 :本实验需用两台 TDN-86/51(TDN86/88)教学实验系统,并通过排线将两台仪器相连,其中 1 号机用做接收机, 2 号机用做发送机。
实验目的是将 2 号机中的3000-3009H 十个单元中的代码传送到 1 号机的 3000-3009H 单元中。
硬件连接线路图1.8251 的基本性能8251 是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。
有下列基本性能 :(1)通过编程,可以工作在同步方式,也可以工作在异步方式。
(2)同步方式下,波特率为 0,64K,异步方式下,波特率为 0,19.2K 。
(3)在同步方式时,可以用 5,8 位来代表字符,内部或外部同步,可自动插入同步字符。
(4) 在异步方式时,也使用5,8位来代表字符,自动为每个数据增加 1 个启动位,并能够根据编程为每个数据增加 1 个、 1.5个或2 个停止位。
(5)具有奇偶、溢出和帧错误检测能力。
(6)全双工,双缓冲器发送和接收器。
2.8251 的内部结构及外部引脚8251 的内部结构图如图1-1 所示,可以看出, 8251 有 7 个主要部分,即数据总线缓冲器、读 / 写控制逻辑电路、调制 / 解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。
8251 的外部引脚如图1-2 所示,共 28 个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。
D7,D0 数据总线发送并 ?串 TxD缓冲器缓冲器转换TxRDRESETY发送控制电路 TxECLK读/ 写控制 TxCC/D#逻辑电路 RD#WR#接收串 ?并 RxD内部总线缓冲器转换CS#DSR#RxRDYDTR#调制 / 解调 RxC接收控制电路控制电路CTS#SYNDETRTS#图 1-1 8251 内部结构图D2128D0D3D1RxDVccGNDRxC#D4DTR#D5RTS#8251D6DSR#D7RESETTxC#CLKWR#TxDCS #TxEC/D#CTS#RD#SYNDET/BD1RxRDY14TxRDY5图 1-2 8251 外部引脚图3.8251 在异步方式下的 TXD信号上的数据传输格式图 1-3 示意了 8251 工作在异步方式下的 TXD信号上的数据传输格式。
硬件实验报告 串行通信 8251A
串行通信18027412 杨滢齐一、实验目的1.了解串行通信的基本原理;2.掌握串行接口芯片8251 或8250 的工作原理和编程方法。
二、实验仪器与材料1.Proteus 仿真软件2.PC 微机1 台三、实验内容根据上面提供的实验电路,补画U6,U8 两片电路缺少的连线。
然后根据自己画的连线图,为8086 编写汇编程序,实现利用8251 向超级终端(标号为GET)发送字符串,实现串行通讯。
字符串不少于20 个字符,内容自定。
四、实验提示1.8251初始化为异步通讯方式,1位停止位,无校验,8位数据,波特率因子为1。
2.超级终端也要设置的与8251相同(在超级终端图标上右击鼠标,选Edit……),其中的波特率可以自己设定,比如9600。
3.图上的时钟发生器用来为8251 提供发送/接收时钟,根据波特率,波特率因子,发送/接收时钟三者之间的关系,当波特率因子为1时,发送/接收时钟与波特率是相同的,因此,如果在第2步,你设置波特率为9600,那么时钟也要设定为9600Hz(图标上右击鼠标,选Edit……)。
4.U6(74HC138)和U8(8251A )的连线决定了8251占用的地址,请自己设定。
5.建议的程序流程图如下: 异步,1位停止位i ,无校验,8位数据,波特率因子为18251操作字 清除错误,能收能发 N五、实验预习要求 1.复习串行通信的特点和 8251 或 8250 的编程方法。
2.根据实验内容和实验提示编写实验程序。
六、实验习题与思考1. 若发送的字符进行偶校验,程序如何编写?;====================================================================; Main.asm file generated by New Project wizard;; Created: 周日 5月 24 2020; Processor: 8086; Compiler: MASM32;; Before starting simulation set Internal Memory Size; in the 8086 model properties to 0x10000;====================================================================开始 发完结束设定字符串指针设定计数初值 读 8251 状态字8251 控制字计数减一循环发送一个字符是否能发送YDATA SEGMENTDA1 DW 20HTABEL1 DB 'beijing university of technology' PTCON EQU 26HPTDATA EQU 24HDATA ENDSCODE SEGMENT PUBLIC 'CODE'ASSUME CS:CODE, DS:DATASTART:MOV AL, 00HMOV DX, PTCONOUT DX, ALOUT DX, ALOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 7DH ; 模式控制字MOV DX, PTCONOUT DX, ALMOV AL, 37H ; 操作控制字OUT DX, ALMOV AX, DATAMOV DS, AXMOV DI, OFFSET TABEL1MOV CX, DA1NEXT:MOV DX, PTCON ; 查询TxRDY是否有效IN AL, DXAND AL, 01HJZ NEXT ; TXRDY=0,发送没准备好MOV DX, PTDATAMOV AL, [DI]OUT DX, ALINC DILOOP NEXTENDLESS:JMP ENDLESSCODE ENDSEND START2.若从超级终端接收一个字符(在超级终端的窗口键入一个字符),将接收到的字符的ASCII码加1,再发送回超级终端显示。
微机接口原理--实验四 8251串行收发实验报告要求
实验四 8251串行收发实验一、实验目的1. 掌握8251芯片结构、工作原理和编程方法2. 了解实现串行通讯的硬件环境,数据格式的协议,数据交换的协议3. 了解PC机通讯的编程方法二、实验原理1. 8251芯片的工作原理2. 同步通信与异步通信的特点3. 串行通信接口的基本任务三、实验内容与要求1. 根据空间配置的原理,掌握获得PCI 设备配置的方法,并获得当前PCI卡扩展I/O 的起始地址;2. 理解8251串行收发原理,在 Borland C3.1环境下输入附录中的程序,程序运行结果为8251将“123456”以9600 波特率发送出去,同时8251 自己收回,PC 机屏幕上显示“123456”,按‘Esc’键时退出,按键盘其他键显示“123456”;3. 将扩展通讯口的8251TXD(发送口)和8251RXD(接收口)和相邻实验箱上的扩展通讯口的8251RXD(接收口)和8251TXD(发送口)交叉连接,并连接信号地(GND)。
修改源程序,按PC 机键盘的键,将其键码以9600 波特率发送出去,在与相邻实验箱连接的PC机上显示。
即在相邻的A、B两PC机之间进行串行通信,A、B两机可同时发送或接收对方的用PC机键盘输入的信息。
当用户按‘Esc’键时退出;4. 带着讲义中的思考题,在Borland C 3.1 环境下调试程序,观察运行结果。
四、实验步骤1.根据实验原理中的实验连线,将扩展通讯口移去XC28 上的4个短路套,扩展通讯口的8251TXD和扩展通讯口的8251RXD相连接;2. 在Borland C3.1环境下输入程序,观察PC机上的显示,调试修改程序,得到结果;3. 关闭实验箱和PC机电源,将实验箱连线整理好。
五、实验报告1. 画出所编程序的流程图;2. 给出实验内容3中程序修改部分的源代码;3. 认真回答思考题,并附在实验报告里。
六、思考题1. 程序中波特率为9600 bit/s是怎么得到的?波特率的大小说明什么?2. 简述8251芯片工作原理。
8251串行接口应用实验
① 同步或异步方式下,字符位数5-8个; ② 同步传输率0-64K,异步传输率为0-19.2K; ③ 异步传输时,自动产生1个起始位,编程可产生1个或1个半
或2个停止位; ④ 具有奇偶错、数据丢失和帧错误检测能力; ⑤ 同步方式时,可自动检测,插入同步字符。
1、硬件连线设计 2、分析源程序
注意模式字和控制字的书写流程。
3、波形图各控制位和数据位(波形图1、波形图2)
注意数据位的低位在前,高位在后。
18
六、思考题
1. 8251有几种工作方式,其数据格式如何? 2. 8251对收发时钟有何特殊要求?
19
+5V
系
统 总 OPCLK 线 (1.19MHZ)
5
图1 8251A的内部工作原理 6
图2 8251A 模式寄存器的格式
7
图3 8251A 控制寄存器的格式
8
图4 8251A 状态寄存器的格式
9
图5 8251A 初始化流程
10
三、实验原理介绍
2、系统中的8251芯片介绍 系统中装有一片8251芯片,并和标准RS-232C接
口相连好。在系统中该电路用来完成同PC微机的 联机以及串行监控操作的实现。 端口地址为:
四、实验要求及实验步骤
2、 8251串行接口应用实验步骤:
1)按照实验要求自行设计硬件电路并连线,将8251的输出接 到模拟示波器上;
2)编写实验程序并检查无误,经汇编、连接后装入系统; 3)运行程序,在示波器上观察数据波形并进行分析; 4)改变发送的数据,运行程序,观察相应的波形。
8251可编程串行接口实验
集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验四8251可编程串行接口实验实验类型设计型姓名学号日期地点成绩教师第1页共8页1. 实验目的及内容 1.1实验目的1、了解8251的内部结构、工作原理及与8086的接口逻辑;2、掌握8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
1.2实验内容1)设计8251与8086CPU 的硬件连接图,分配8251的基地址为0FF00H 。
8251的CLK 引脚需接4MHZ 的时钟。
2)设计8251的硬件连接及编写程序,实现自发自收。
把内存中的字符串,依次传送出去,并接收回来,然后把接收回来的字符显示在LED 上。
使用8253作分频器提供8251的收发时钟,并给出程序流程图。
3)计算你所设计的串行通信的波特率为多少?本次设计实验中,我所设计的通信的波特率为19200,波特率因子为16。
4)设计8251的硬件连接及编写程序,实现从PC 机的串行通信测试软件向8251发送一批数据,8251接收完数据之后,再将数据依次发送回去。
使用8253作分频器提供8251的收发时钟,并给出程序流程图。
2. 实验环境星研电子软件,STAR 系列实验仪一套、PC 机一台、导线若干3. 实验方法8251是通用同步/异步接收发送器,可用作CPU 和串行外设的接口电路,它的工作各种工作方式及工作进程都是用初始化及实时控制实现的,编程时,方式指令紧接在复位后由CPU 写入,用来定义8251A 的一般工作特性;在写入方式指令的前提下由CPU 写入同步字符和命令指令用来指定芯片的实际操作。
根据实验要求,需完成一下两个方面的问题:(1)8253对收发时钟的分频。
8253的CLK 接频率发生器的2MHZ ,初值赋给104,得到收发时钟为19200HZ 。
(2)利用8251实现自发自收。
8251的方式命令字:停止位为1,产生偶校验,字符长度为8位,波特率因子为16位;命令指令字:出错标志复位,允许发送,允许接收。
实验四 8251 串行通信实验
实验四8251串行通信实验一、实验目的1.了解串行通信的一般原理和8251A的工作原理。
2.初步了解RS-232串行接口标准与TTL电路的连接方法。
3.掌握8251A编程方法。
二、实验内容(1)利用实验机内的8253芯片的分频作为8251的收发时钟频率。
(2)利用实验机内小键盘,每按动一次任意一个数字键,就把该键值通过8251发送给PC 机接收,并在PC机屏幕上显示出该键值。
三、实验接线图(1) TxCLK 和RxCLK 是8251 的发送时钟和接收时钟,由8253 的OUT1提供。
(2) 8251 片选信号CS 由GAL2译码器输出,地址为3F8~3FFH。
(3) CTS 端必须接“0”电平,8251 才可对外发送数据。
(4) RxRDY 和TxRDY 是收、发就绪信号,采用中断方式时可作中断申请信号,本系统采用查询方式通信,这两个信号不用。
四、编程指南本程序是串行发送程序,采用查询方式通信,要完成收发通信实验,需要两台实验仪器,其中1台为串行发送,即运行8251串行通信实验一程序,另一台为串行接收,即运行8251串行通信实验二程序。
实验时,发送机把由键盘输入的数字显示于接收机的显示器上。
(只允许0~F这些数字)仪器对8251的初始化工作在监控程序中已先行完成。
(1)8251状态口地址:03F9H,8251数据口地址:03F8H;(2)8253控制口地址:43H,8253计数器#1口地址:41H;(3)8255控制口地址:0FF23H,字位口:0FF20H,键入口PC:0FF22H,字形口PB:0FF21H;(4)通讯约定:异步方式,字符8位,一个起始位,一个停止位,波特率因子为16,波特率为9600;(5)计算T/RXC,收发时钟fc,fc=16*9600=153.6K;(6)8253分频系数:1843.2K / 153.6K=12。
五、实验步骤1.准备好2 台实验仪器,确定1#机发送,2#机接收。
微机接口原理--实验四 8251串行收发实验
已置位,即已准备好)在屏幕上显示字符。若是ESC键,
(0x1b),退出。
提示:在程序中涉及的函数,getch(),putch()。
读/写控制信号— RD ,读信号为低电平时,通知 8251,CPU当前正从8251读取数据或者状态信息。WR 写信 号,为低电平时,通知8251,CPU当前正在往8251写入数 据或者控制信息。 C / D 控制/数据信号, 也是CPU送往 8251的信号,用来区分当前读写的是数据还是控制信息或状 态信息。
② 8251与外部设备之间的信号连接
DTR (Data Terminal Ready )数据终端准备好信号, 是由8251送往外设的,CPU通过命令可以使它变为低电平,从 而通知外部设备,CPU当前已经准备就绪。
DSR (Data Set Ready )数据设备准备好信号,是由外设 送往8251的,低电平时有效,表示当前外设已经准备好。当它出 现低电平时,会在8251的状态寄存器第7位上反映出来,所以, CPU通过对状态寄存器的读取操作,便可以实现对/DSR信号的 检测。 RTS (Request To Send )请求发送信号,是8251送往外 设,低电平时有效,CPU可以通过编程命令使之变为有效电平, 以表示CPU已经准备好发送。 CTS (Clear To Send)清除请求发送信号,是对RTS的 响应信号,它是由外设送往8251的,为低电平时,8251才能执 行发送操作。
② 波特率
串行通信的信号常常通过调制解调器进行传输, 在调制器、通信线路、解调器之间,用单位时 间内电信号变化的数目来描述传输的速度称之 为波特率。一般串行异步通行的传送速度为 50~19200波特,串行同步通信的传送速度可 达500千波特。 波特率与数字信号传输率的关系:
8251实验报告
8251实验报告8251实验报告引言:在计算机科学领域,串行通信是一种常见的数据传输方式。
为了实现串行通信,我们需要使用串行通信接口芯片。
8251是一种常用的串行通信接口芯片,本实验旨在通过对8251的实验研究,深入了解串行通信的原理和应用。
一、实验目的本实验的主要目的是掌握8251的工作原理和使用方法,了解串行通信的基本概念和应用场景。
二、实验原理8251是一种通用的串行通信接口芯片,它可以实现计算机与外部设备之间的串行数据传输。
该芯片具有发送和接收两个功能模块,通过与计算机的接口进行数据交换,实现串行通信的功能。
三、实验步骤1. 连接实验所需设备:将8251芯片与计算机、外部设备进行连接,确保电路连接正确无误。
2. 配置8251芯片:通过设置芯片的控制寄存器,配置芯片的工作模式和参数。
3. 编写测试程序:使用汇编语言编写测试程序,通过向8251芯片发送数据,观察数据的接收情况。
4. 运行测试程序:将编写好的测试程序加载到计算机中,运行程序并观察结果。
5. 分析实验结果:根据实验结果,分析8251芯片的工作状态和数据传输情况。
四、实验结果与分析经过实验测试,我们可以观察到数据的发送和接收情况。
通过分析实验结果,我们可以了解到8251芯片的工作状态和数据传输的效果。
如果数据能够正确发送和接收,说明8251芯片的工作正常;如果数据发送或接收出现错误,可能是芯片配置错误或者电路连接有问题。
五、实验总结通过本次实验,我们深入了解了8251芯片的工作原理和使用方法,掌握了串行通信的基本概念和应用场景。
实验过程中,我们遇到了一些问题,但通过分析和解决,最终成功完成了实验目标。
通过实验,我们不仅提高了对8251芯片的理解,还加深了对串行通信的认识。
六、实验改进在实验过程中,我们发现一些可以改进的地方。
首先,我们可以尝试使用不同的测试程序,测试不同的数据传输情况,以获得更全面的实验结果。
其次,我们可以进一步研究8251芯片的高级功能和应用,拓展实验的深度和广度。
最新8251串行通讯实验
8251串行通讯实验一.基本实验内容:实现二台PC机之间的双机通讯。
即甲机输入的键值发送到乙机CRT上显示,反之亦然。
二原理图及连线:1.8251CS连208~20FH (波特率2400)2.9芯电缆对接二机的RS-232口三.参考程序D8251 EQU 208HZ8251 EQU 20aHDATA SEGMENTMESS DB '按下!后返回DOS.',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV DX,Z8251 ;初始化8251MOV AL,40HOUT DX,ALMOV CX,1000hLOOP $MOV AL,0CEH ;设置为8个数据位,两个停止位波特率因子为16 OUT DX,AL ;无奇偶校验位MOV CX,1000hLOOP $MOV AL,25H ;设为请求发送,允许发送,允许接收状态OUT DX,ALMOV CX,1000hLOOP $;NIT 8251 ENDREC: MOV DX,Z8251MOV AH,02HWAIT9: IN AL,DX ;有数据送到吗?AND AL,AHJZ SEND ;没有数据送到则跳转至发送MOV DX,D8251 ;有数据送到则从数据缓冲区读入IN AL,DXMOV DL,ALMOV AH,02H ;显示在屏幕上INT 21HCMP AL,'!'JE ED ;接收到结束符则返回DOSJMP REC ;不是结束符则继续接收ED: MOV AX,4C00HINT 21HSEND: MOV CX,1000hLOOP $MOV DX,Z8251MOV AH,01HWAIT8: IN AL,DXAND AL,AHJZ WAIT8 ;发送缓冲器不空则等待MOV DL,0FFHMOV AH,06HINT 21HJZ REC ;无键按下则跳回"接收"处MOV DX,D8251 ;有键按下则发送相应字符OUT DX,ALCMP AL,'!' ;是结束字符则返回DOSJE ED1JMP REC ;不是结束字符则跳回"接收"处ED1: MOV AX,4C00HINT 21HMAIN ENDPCODE ENDSEND START四.思考内容:如何用8253产生串行通讯所需的波特率。
北工大微机原理 实验六 8251串行通信实验
实验六串行通信实验8251一、实验目的:1、进一步了解串行通信的基本原理2、掌握串行接口芯片8251的工作原理和编程方法二、实验内容:1、按图连接线路。
2、从键盘输入一个字符,将其ASCLL码加1后发送出去,再接收回来在屏幕上加1 后的字符显示出来,实现自发自收。
三、实验设备:8251芯片 8253芯片试验箱若干导线四、实验原理:根据引脚号按下图在试验箱上正确连接好电路五.程序代码:data segmentioport equ 5400h-280hio8253a equ ioport+280hio8253b equ ioport+283hio8251a equ ioport+2b8hio8251b equ ioport+2b9hap1 db 'you can play a key on the keybord!',0dh,0ah,24hap2 dd ap1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16hout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251xor al,almov cx,03 ;向8251控制端口送3个0delay: call outloop delaymov al,40h ;向8251控制端口送40H,使其复位call outmov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call outmov al,27h ;向8251送控制字允许其发送和接收call outlds dx,ap2 ;显示提示信息mov ah,09int 21hwait: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitmov ah,01 ;是,从键盘上读一字符int 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251ainc alout dx,al ;发送mov cx,0F00hkd1: loop kd1 ;延时next:mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz next ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上 int 21hjmp waitexit: mov ah,4ch ;退出int 21hout proc near ;向外发送一字节的子程序 out dx,alpush cxmov cx,0F00hkd2: loop kd2 ;延时pop cxretout endpcode endsend start六、实验结果:将程序进行汇编,连接,运行后,从键盘输入字母或者数字,屏幕上显示这个字母或数字和这个数字的ASCⅡ加一后的字母或数字。
微机接口 8251串口实验报告
浙江工业大学计算机学院实验报告实验名称 8251串行接口姓名学号班级教师日期一、实验内容与要求1.1 实验内容了解串行通信接口的工作原理和工作过程,掌握编写初始化程序和通信程序的方法。
设计实验电路,编写实验程序,使实现从键盘输入“a”到“z”范围的字母,将其ASCII码加四后串行发送出去,再从串行口接收回来在屏幕上显示(若输入“w”、“x”、“y”、“z”,则分别显示“a”、“b”、“c”、“d”),实现自发自收。
1.2 实验要求(1)具有一定的汇编编程的基础,实验前能根据实验要求画出实验流程图,同时写出其所对应代码;(2)要了解8251A中断控制器的内部结构和外部引脚,理解芯片的工作原理和工作过程。
熟悉8251A芯片的命令字,能对其进行编程;(3)了解8253A定时/计数器,知道如何通过其计数器产生发送和接收时钟;(4)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(5)连接PC与TPC-USB平台,用微机实验软件运行程序。
在屏幕上显示提示信息“Pleaseinput a letter!”,从键盘输入“a”到“z”范围的字母,将其ASCII码加四后串行发送出去,再从串行口接收回来在屏幕上显示。
若输入“w”“x”、“y”、“z”,则分别显示“a”、“b”、“c”、“d”;若输入Esc,则退出程序。
二、实验原理与硬件连线2.1 实验原理(1)8251A的内部结构:图1 8251的内部结构图发送器:▲发送缓冲器+ 发送移位寄存器+ 发送控制电路。
发送控制电路用来控制和管理发送过程。
在其控制下,发送缓冲器将来自CPU的并行数据串行化,通过TxD发送出去。
▲异步方式:控制电路在数据帧中加上起始、校验和停止位。
▲同步方式:控制电路在数据帧中插入同步字符和校验位。
同步方式发送过程中,两字符间不允许有间隔。
若CPU未及时提供新字符,则控制电路自动补上同步字符。
接收器:▲接收缓冲器+ 接收移位寄存器+ 接收控制电路。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽师范大学数计学院实验报告专业名称11计科课程微机原理实验名称串行通信实验姓名学号1107040128251 可编程串行口与PC 机通讯实验一、实验目的(1) 掌握8251 芯片的结构和编程,掌握微机通讯的编制。
(2) 学习有关串行通讯的知识。
(3) 学习PC 机串口的操作方法。
二、实验说明1、8251 信号线8251 是CPU 与外设或Mode 之间的接口芯片,所以它的信号线分为两组:一组是用于与CPU 接口的信号线,另一组用于与外设或Mode 接口。
(1)与CPU 相连的信号线:除了双向三态数据总线(D7~D0)、读(RD)、写(WR)、片选(CS)之外,还有:RESET:复位。
通常与系统复位相连。
CLK:时钟。
由外部时钟发生器提供。
C/D:控制/数据引脚。
TxRDY:发送器准备好,高电平有效。
TxE:发送器空,高电平有效。
RxRDY:接收器准备好,高电平有效。
SYNDET/BRKDET:同步/中止检测,双功能引脚。
(2)与外设或Mode 相连的信号线:DTR:数据终端准备好,输出,低电平有效。
DSR:数据装置准备好,输入,低电平有效。
RTS:请求发送,输出,低电平有效。
CTS:准许传送,输入,低电平有效。
TxD:发送数据线。
RxD:接收数据线。
TxC:发送时钟,控制发送数据的速率。
RxC:接收时钟,控制接收数据的速率。
2、8251 的初始化编程和状态字8251 是一个可编程的多功能串行通信接口芯片,在使用前必须对它进行初始化编程。
初始化编程包括CPU 写方式控制字和操作命令字到8251 同一控制口,在初始化编程时必须按一定的顺序。
如下面的流程图:三、实验原理图四、实验内容本实验由实验器发送一串字符0~9,PC 机串口接收并在超级终端上显示。
五、实验步骤与PC 机通讯应用实验(1)实验连线:a.用串口线把实验机8251 模块的RS232 通讯口与PC 机相连,把串口旁边的短路块SW1 短路在2-2/3-3 上,SW2 短路在RS232 上。
b. 把8251 实验区TxD、RxD 分别与RS232 实验区中的TxD、RxD 相连。
c. 8254 定时器电路的CLK0 和8251 的CLOCK 连到信号源CLK1(短路在1.5MHz)。
d. 8254 定时器电路的OUT0 接8251 的TxC 和RxC,8254 定时器电路的GATE 接+5Ve. 8251 选通线CS 与ISA 总线接口模块的0000H 相连,8254 选通线CS 与ISA 总线接口模块的0020H 相连。
f. 8251 及8254 的WR 连到8086 主模块的,8251 及格8254 的RD 连8086 主模块的RD。
g. 8251 及8254 模块的数据(D0~D7)、地址线(A0~A7)分别连到主模块的数据(AD0~AD7)、地址线(A0~A7)。
(2)PC 机设置:进入WINDOWS 附件——>通讯——>超级终端。
进入终端后在“连接时使用”下拉框选择你所使用的COM 口,波特率设置为4800,数据位8 位,奇偶校验位无,停止位1 位,流量控制无。
等待接收数据。
(3)编译、运行程序(8251xp.asm),运行程序前先按硬件复位,正常运行后应在PC 机屏幕上循环显示“Qingdong Microcomputer Institute ”六、实验代码MY_STACK SEGMENT PARA 'STACK'DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA 'DATA'IO_9054base_address DB 4 DUP(0) ;PCI卡9054芯片I/O基地址暂存空间IO_base_address DB 4 DUP(0)pcicardnotfind DB 0DH,0AH,'pci card not find or address/interrupt error !!!',0DH,0AH,'$'GOOD DB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'D8251_0 DW 0000H ;DLAB=0:接收数据寄存器,发送保持寄存器;DLAB=1:波特率除数寄存器低位D8251_1 DW 0001H ;DLAB=0:中断允许寄存器;DLAB=1:波特率除数寄存器高位P8254_T0 DW 0020HP8254_MODE DW 0023HPC16550_0 EQU 03F8H ;DLAB=0:接收数据寄存器,发送保持寄存器;DLAB=1:波特率除数寄存器低位PC16550_1 EQU 03F9H ;DLAB=0:中断允许寄存器;DLAB=1:波特率除数寄存器高位PC16550_3 EQU 03FBH ;线路控制寄存器LCRPC16550_4 EQU 03FCH ;MODEM控制寄存器MCR PC16550_5 EQU 03FAH ;线路状态寄存器LSR DELAY_SET EQU 01FFH ;延时参数MES DB ' PCI CARD NOT FOUND! $'MES0 DB '***********************PCI CONFIG INFO*****************************',13,10,'$'MES1 DB 'PCI BIOS NOT FOUND!',10,13,'$'MES2 DB ' PCI CONFIG READ ERROR! $'DIS1 DB 'PCI ADDRESS 0 $';DIS5 DB 'BIOS NOT SUPPER!$'DIS6 DB 'READ PCI BOARD FAIL!$';-------PCI Configuration Space Registers-------------------------------BN DB ? ;BUS NUMBERDN_FN DB ? ;Device Number and Function NumberMY_DATA ENDsMY_CODE SEGMENT PARA 'CODE'MY_PROC PROC FARASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK.386 ;386模式编译START: MOV AX,MY_DATAMOV DS,AXMOV ES,AXMOV AX,MY_STACKMOV SS,AXCALL FINDPCI ;查找PCI卡资源并显示MOV CX,word ptr IO_base_addressAND CX,0FFFCHADD D8251_0,CXADD D8251_1,CXADD P8254_T0,CXADD P8254_MODE,CXMOV DX,PC16550_3 ;DLAB为1允许访问波特率寄存器MOV AL,82HOUT DX,ALMOV DX,PC16550_0 ;波特率除数寄存器低位MOV AL,18HOUT DX,ALMOV DX,PC16550_1 ;波特率除数寄存器高位MOV AL,00HOUT DX,ALMOV DX,PC16550_3 ;DLAB为0MOV AL,03H ;附加奇偶标志位选择,无校验,1位停止位,8位字符03OUT DX,ALMOV DX,PC16550_4 ;RTS、DTR置0:请求发送、数据终端就绪MOV AL,03HOUT DX,ALMOV DX,PC16550_1 ;中断允许寄存器IER,屏蔽中断MOV AL,00HOUT DX,ALMOV DX,P8254_MODEMOV AL,36H ;计时器0,先低后高,方式3,二进制计数OUT DX,ALMOV DX,P8254_T0MOV AL,13H ;计数初值晶振6MHz 波特率4800BIT,分频频率为(6000/76.8=4EH)OUT DX,ALMOV AL,00HOUT DX,ALMOV DX,D8251_1MOV AL,4EH ;异步1个停止位,无奇偶校验,8位字符,波特率为=发送(接收)时钟/16OUT DX,ALMOV AL,37H ;不搜索,不内复位,请求发送,错误标志复位,正常通信,允许接收,数据准备好,允许发送OUT DX,ALAGAIN: MOV AH,30H ;发送初值NEXT: MOV DX,D8251_1NEXT1: IN AL,DXRCR AL,1 ;检测TXRDY是否为0,即判断发送是否准备好JNC NEXT1CALL DELAYMOV DX,D8251_0MOV AL,AHOUT DX,ALINC AHCALL RECEIVECMP AH,39H ;为9赋初值JBE NEXTJMP AGAIN;ERROR: MOV DX,OFFSET MES2 ;显示读错误信息MOV AH,09HINT 21HEXIT: MOV AX,4C00HINT 21HMY_PROC ENDpDELAY PROC NEAR ;延时程序PUSHFPUSH AXPUSH DXPUSH CXMOV CX,-1LOOP $ ;延时POP CXPOP DXPOPFRETDELAY ENDpRECEIVE PROC NEARPUSHFPUSH AXPUSH DXPUSH CXRECEIVE1: MOV DX,PC16550_5 ;接收缓冲区是否满IN AL,DXAND AL,01HJZ RECEIVE1 ;为0未满,继续CALL DELAYMOV DX,PC16550_0 ;PC机接收数据IN AL,DXMOV DL,ALMOV AH,02HINT 21HPOP CXPOP DXPOPFRETRECEIVE ENDp;BREAK PROC NEAR ;按任意键退出PUSHFPUSH AXPUSH DXMOV AH,06HMOV DL,0FFHINT 21HJE RETURNMOV AX,4C00HINT 21HRETURN: POP DXPOP AXPOPFRETBREAK ENDP;;**************************************************** *************************; /* 找卡子程序 */;**************************************************** *************************;;FUNCTION CODEIO_port_addre EQU 0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置数据端口IO_PLX_ID EQU 200810B5H ;PCI卡设备及厂商IDBADR0 = 10H ;基地址寄存器0 BADR1 = 14H ;基地址寄存器1 BADR2 = 18H ;基地址寄存器2 BADR3 = 1CH ;基地址寄存器3FINDPCI PROC NEAR ;查找PCI卡资源并显示PUSHADPUSHFDMOV EBX,080000000HFINDPCI_next:ADD EBX,100HCMP EBX,081000000HJNZ findpci_continueMOV DX,offset pcicardnotfind ;显示未找到PCI卡提示信息MOV AH,09HINT 21HMOV AH,4CHINT 21H ;退出findpci_continue:MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口CMP EAX,IO_PLX_IDJNZ findpci_next ;检查是否发现PCI卡MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR1OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword ptr IO_9054base_address,EAXAND EAX,1JZ findPCI_next ;检查是否为i/o基址信息MOV EAX,dword ptr IO_9054base_address AND EAX,0fffffffehMOV dword ptr IO_9054base_address,EAX ;去除i/o指示位并保存MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR2OUT DX,EAX ;写地址口MOV DX,IO_port_dataIN EAX,DX ;读数据口MOV dword ptr IO_base_address,EAXAND EAX,1JZ findPCI_next ;检查是否为i/o基址信息MOV EAX,dword ptr IO_base_addressAND EAX,0fffffffehMOV dword ptr IO_base_address,EAX ;去除i/o指示位并保存MOV DX,offset good ;显示开始执行程序信息MOV AH,09HINT 21HPOPfdPOPadRETfindPCI ENDPMY_CODE ENDSEND START七、实验心得通过实验,进一步了解了串行通信的原理以及通过串行方式发送和接收数据的过程。