8251可编程通信实验
串行接口应用实验
![串行接口应用实验](https://img.taocdn.com/s3/m/ab1f2f29647d27284b735190.png)
(一)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排针引脚相连接。
串行接口实验报告
![串行接口实验报告](https://img.taocdn.com/s3/m/5a96464d33687e21af45a9e1.png)
课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (13)实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。
具体过程如下:1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。
2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。
3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。
控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。
另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。
2.8251方式指令(端口地址2B9H)3.8251工作指令(端口地址2B9H)4.8251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz波特率=1200波特率因=16计数初值= 1000000/1200*16=527.程序流程框图4.程序代码Fxc.asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz nextmov dl,0ffh ;有键盘输入,读入字符mov ah,06hint 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend startSend .asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址buf3 byte 0mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz next; mov dl,0ffh ;有键盘输入,读入字符;mov ah,06h; int 21hmov dx,28ahin al,dxcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend start步进电机:1.K0=0,逆时针转;K0=1,顺时针转2.K1=0,慢转;K1=1,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jnz kai ;转反转test al,01 ;测试K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,9jnz S1call change9_0S1: inc al ;数据加1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;数据完成加1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复C口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试K2=1?jnz T2call change0_9S2: dec al ;数据减1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转rol al,1 ;数据右移mov buf2,almov dx,288h ;A口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复C口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endpchange9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验需要用到两种芯片8253和8251,两种芯片的作用分别是8253提供串行通讯所需的特定频率的脉冲信号,8251提供输入输出控制,所以在实验的过程中需要熟悉这两种芯片的方式字等使用规范,在仔细阅读了书本以及书本的编程实例后,基本摘掉了程序的设计方法实验过程中,出现了程序编译通过了但是不能运行的情况,后来经过检查发现是程序没有设置好的原因,要设置为编译后运行状态,否知只编译不运行,经过这次实验,知道了8253和8251两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。
微机原理实验四实验报告
![微机原理实验四实验报告](https://img.taocdn.com/s3/m/e09caad98bd63186bcebbc73.png)
实验报告实验四 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](https://img.taocdn.com/s3/m/09c6f338a8956bec0975e3bf.png)
实验报告实验名称__8251A串行口实验____课程名称__微机原理与接口技术__院系部: 专业班级:学生姓名:学号:同组人: 实验台号:指导教师: 成绩:实验日期:华北电力大学一、实验目的及要求:(1)了解串行通信的一般原理和8251A的工作原理。
(2)掌握8251A的编程方法。
二、仪器用具:三、实验原理:1.串行通信的原理串行通信是通过一位一位地进行数据传输来实现通信。
具有传输线少,成本低等优点,适合远距离传送;缺点是速度慢。
完成串行通信任务的接口称为串行通信接口,简称串行接口。
串行接口作为输入时,完成串行到并行格式转换,作为输出时,完成并行到串行格式转换。
图1是串行通信的一般模型。
图1 串行通信的一般模型2.8251A的工作原理825lA是可编程的串行通信接口芯片,是Intel公司生产的一种通用同步/异步数据收发器(USART),可工作在同步方式,也可工作在异步方式,且能进行出错检测。
其内部结构框图如图2所示。
图2 8251A内部结构框图由图可知,8251A由数据总线缓冲器、读/写控制逻辑、调制/解调器控制逻辑、发送缓冲器、发送控制器、接收缓冲器、接收控制器等组成。
(1)在同步方式时,每个字符可定义为5、6、7或8位。
两种方法实现同步,由内部自动检测同步字符或由外部给出同步信号。
允许同步方式下增加奇/偶校验位进行校验。
(2)在异步方式下,每个字符可定义为5、6、7或8位,用1位作奇偶校验。
时钟速率可用软件定义为波特率的l、16或64倍。
另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位、1.5位或2位停止位。
(3)能进行出错检测。
带有奇偶、溢出和帧错误等检测电路,用户可通过输入状态寄存器的内容进行查询。
3.8251A的编程(1)8251A的编程地址:8251A只需要两个端口地址,一个用于数据端口,一个用于控制端口。
数据输入输出用读信号RD和写WR信号区分;状态端口只能读不能写,控制端口只能写不能读。
合工大 微机原理 实验报告
![合工大 微机原理 实验报告](https://img.taocdn.com/s3/m/ecad7b1f52ea551810a687c1.png)
EQU
0263H
;控制字
.STACK
100
.DATA
Receive_Buffer
DB
10 DUP(0)
;接受缓冲器
Send_Buffer
EQU
Receive_Buffer
;发送缓冲器
.CODE
START:
MOV
AX,@DATA
MOV
DS,AX
MOV
ES,AX
NOP
CALL
INIT_8253
MOV
CX,60000
DL500ms1:
LOOP
DL500ms1
POP
CX
RET
DL500ms
ENDP
DL3S
PROC
NEAR
PUSH
CX
MOV
CX,6
DL3S1:
CALL
DL500ms
LOOP
DL3S1
POP
CX
RET
ENDP
DL5S
PROC
NEAR
PUSH
CX
MOV
CX,10
DL5S1:
CALL
二、实验内容(包括实验步骤和代码)
(一)实验内容
1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。
2、连接线路验证8255的功能,熟悉它的使用方法。
(二)实验步骤
1、连线说明:
D3区:CS、A0、A1
——
A3区:CS1、A0、A1
D3区:JP23(PA口)
——
F4区:JP18
二、实验内容(包括实验步骤和代码)
(一)实验内容
实验十8251实验
![实验十8251实验](https://img.taocdn.com/s3/m/e4dc1509ce84b9d528ea81c758f5f61fb6362857.png)
实验十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串行通讯实验
![8251串行通讯实验](https://img.taocdn.com/s3/m/e05f16b090c69ec3d4bb7592.png)
师大学数计学院实验报告专业名称 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 上。
微机原理实验三
![微机原理实验三](https://img.taocdn.com/s3/m/d57482d1da38376baf1fae37.png)
实验三使用8251A的串行接口应用实验一、实验目的1) 掌握串行通信原理及半双工和全双工的编程方法。
2) 掌握用8251A 接口芯片实现微机间的同步和异步通信。
3) 掌握8251A 芯片与微机的接口技术和编程方法。
二、实验原理和内容8251A 是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。
1)8251A 内部结构8251A 通过引脚D0~D7 和系统数据总线直接接口,用于和CPU 传递命令、数据、状态信息。
读写控制逻辑用来接收CPU 的控制信号、控制数据传送方向。
CPU 对8251A 的读写操作控制表如表3-4 所示。
方式控制字确定8251A 的通信方式(同步/异步)、校验方式(奇校/偶校/不校)、字符长度及波特率等,格式如图3-10 所示。
命令控制字使8251A 处于规定的状态以准备收发数据,格式如图3-11 所示。
方式控制字和命令控制字无独立的端口地址,8251A 根据写入的次序来区分。
CPU 对8251A 初始化时先写方式控制字,后写命令控制字3)状态寄存器8251 状态寄存器用于寄存8251A 的状态信息,供CPU 查询,定义如图3-12 所示。
TXRDY位:当数据缓冲器空时置位,而TXRDY引脚只有当条件( 数据缓冲器空•/CTS•TXE)成立时才置位。
溢出错误:CPU 没读走前一个字符,下一个字符又接收到,称为溢出错误。
帧错误:在字符结尾没检测到停止位,称为帧错误。
4)PC 机寄存器的端口地址其中:线路控制寄存器第七位:DLAB=0;线路控制寄存器第七位:DLAB=1。
5)波特率和除数因子对照表232标准的机械、电气规范。
6)实验连接方法按图连接好电路,其中8254 计数器用于产生8251 的发送和接收时钟,TXD 和RXD 连在一起。
1) 8254/CLK0 连接时钟/1MHz;2) 8254/CS 连接I/O 译码/Y0(280H---287H);3) 8254/OUT0 连接8251/TX/RXCLK;4) 8254/GATE0 连接+5V;5) 8251/TXD 连接8251/RXD;6) 8251/CS 连接I/O 译码/Y7(2B8H---2BFH。
微机接口 8251串口实验报告
![微机接口 8251串口实验报告](https://img.taocdn.com/s3/m/99abd2816bec0975f465e2fb.png)
浙江工业大学计算机学院实验报告实验名称 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未及时提供新字符,则控制电路自动补上同步字符。
接收器:▲接收缓冲器+ 接收移位寄存器+ 接收控制电路。
8251串行通信实验
![8251串行通信实验](https://img.taocdn.com/s3/m/ee44ae216137ee06eef91837.png)
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信号上的数据传输格式。
8251可编程通讯接口与PC机通讯
![8251可编程通讯接口与PC机通讯](https://img.taocdn.com/s3/m/2bc45716d5bbfd0a795673dd.png)
8251可编程通讯接口与PC机通讯一、实验目的利用实验机内的8251芯片,实现与PC机通讯。
二、实验内容(1)利用实验机内的8253芯片的分频作为8251的收发时钟频率。
(2)利用实验机内小键盘,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。
三、实验接线图图6-13四、编程指南(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)8251单元:T/RXC→OUT1,TXD→EX-TXD,RXD→EX-RXD,JX20→JX17;(2)8253单元:GATE1→+5V,CLK1→1.8432MHZ;(3)CZ11用户通信口→PC机串口;(4)在P.态下,按SCAL键,输入1A00,按EXEC键;(5)数码管显示8251—1,等待按键,发送键值;(6)运行“串口调试助手”,按动小键盘数字键,在PC机屏幕上显示相应的数字,按MON键发送结束,按RST键,返回P.态。
六、实验程序清单CODE SEGMENT ;PC8251.ASM,8251TXD-->PCRXDASSUME CS: CODESECOPORT EQU 03F9HSEDAPORT EQU 03F8HPA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ORG 1A00HSTART: JMP START0BUF DB ?,?,?,?,?,?KZ DB ?lcntkz dw ?zp dw ?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: call for8251mov zp,offset bufCALL BUF1 ;DISP:8251-1redikey: call dispkeycmp KZ,10hjc wattxdjmp funckeyWATTXD: MOV DX,SECOPORTIN AL,DXTEST AL,01HJZ WATTXDMOV AL,KZMOV DX,SEDAPORTOUT DX,ALmov bx,zpmov [bx],alcmp bx,offset buf+5jz zp1inc bxmov zp,bxjmp redikeyzp1: mov zp,offset bufjmp redikeyfunckey: CMP KZ,1FHJNZ REDIKEYcall buf2 ;good monit: CALL DISPJMP monitdispkey: call dispcall keyXD: MOV BX,lcntkzMOV CX,[BX]MOV AH,ALCMP AL,CHJE XD1MOV CL,88HXD1: DEC CLCMP CL,82HJE XD3CMP CL,0EHJE XD3CMP CL,00HJE XD2MOV AL,20HJMP XD3XD2: MOV CL,0FHXD3: MOV BX,lcntkzMOV CH,AHMOV [BX],CXmov kz,alRETkey: mov al,0ffhmov dx,PBout dx,almov bl,00hmov ah,0fehmov cx,08h key1: mov al,ahmov dx,PAout dx,alrol al,01hmov ah,alnopnopnopnopnopnopmov dx,PCin al,dxnot alnopnopand al,0fhjnz key2inc blloop key1jmp nkeykey2: test al,01hje key3mov al,00hjmp key6key3: test al,02hje key4mov al,08hjmp key6key4: test al,04hje key5mov al,10hjmp key6key5: test al,08hje nkeymov al,18h key6: add al,blcmp al,10hjnc fkeymov bl,almov bh,0hmov si,offset data2mov al,[bx+si]retnkey: mov al,20hfkey: retdata2: db 07h,04h,08h,05h,09h,06h,0ah,0bhDB 01h,00h,02h,0fh,03h,0eh,0ch,0dhfor8251: call t8253mov al,65hout dx,almov dx,03f9hmov al,25hout dx,almov dx,03f9hmov al,65hout dx,almov dx,03f9hmov al,4ehout dx,almov dx,03f9hmov al,25hout dx,alretT8253: MOV DX,43H ;9600MOV AL,76Hout dx,alMOV DX,41HMOV AL,0CHout dx,alMOV DX,41HMOV AL,00Hout dx,almov dx,03F9Hmov dx,03f9hRETDISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,00A0HLOOP $POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08HMOV BUF+1,02HMOV BUF+2,05HMOV BUF+3,01HMOV BUF+4,17HMOV BUF+5,01HRETBUF2: MOV BUF,09HMOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0dHMOV BUF+4,10HMOV BUF+5,10HRETBUF3: MOV BUF,0eHMOV BUF+1,18HMOV BUF+2,18HMOV BUF+3,10HMOV BUF+4,10HMOV BUF+5,10HRETCODE ENDSEND START(注:可编辑下载,若有不当之处,请指正,谢谢!)。
微机原理_8251
![微机原理_8251](https://img.taocdn.com/s3/m/f6ddb3bd0c22590103029d5e.png)
8251 串行接口应用实验PB07210249 马运聪PB07210267 李嘉浩实验目的1.掌握8251 的工作方式及应用;2.了解有关串口通讯的知识。
实验设备1. PC机两台2. TD-PITE 实验装置两套实验内容1.数据信号的串行传输实验,循环向串口发送一个数,使用示波器测量TXD 引脚上的波形,以了解串行传输的数据格式。
2.自收自发实验,将3000H 起始的10 个单元中的初始数据发送到串口,然后自接收并保存到4000H 起始的内存单元中。
实验原理1.8251 的基本性能8251 是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。
有下列基本性能:1)通过编程,可以工作在同步方式,也可以工作在异步方式;2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K;3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符;4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1 个、1.5 个或2 个停止位;5)具有奇偶、溢出和帧错误检测能力;6)全双工,双缓冲器发送和接收器。
注意:8251 尽管通过了RS-232 规定的基本控制信号,但并没有提供规定的全部信号。
2.8251的编程对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。
(1)方式控制字方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如下图所示:(2)命令控制字命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。
下图所示的是8251 命令控制字各位的定义。
(3)状态字CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如下图:实验步骤1.数据信号的串行传输发送往串口的数据会以串行格式从TXD 引脚输出,编写程序,观察串行输出的格式。
8251可编程串行接口实验
![8251可编程串行接口实验](https://img.taocdn.com/s3/m/f438c2080740be1e650e9a41.png)
集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验四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可编程通信实验报告](https://img.taocdn.com/s3/m/d11423ad2af90242a895e59e.png)
一、实验目的与要求(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)了解8251的内部结构、工作原理;了解8251与8088的接口逻辑;掌握8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
复习本节实验内容,可自行尝试编写程序,做好实验准备,填写实验报告。
二、实验逻辑原理图与分析(汇编—流程图)2.1 画实验逻辑原理图实验原理图如下:2.2 逻辑原理图分析(所应用单板机内部资源及外围接口芯片的核心分析)8251内部主要由五个部分组成:总线接口I/O缓冲器、读/写控制逻辑、发送器部分、接收器部分和调制解调器部分。
I/O缓冲器:主要包括发送数据/命令缓冲器、接收数据缓冲器、状态缓冲器三部分。
I/O缓冲器是与CPU交换数据信息的通道。
读/写控制逻辑:用来接受CPU的地址及控制信号,对数据在8251A的内部总线上传送的方向进行控制。
发送器:包含发送缓冲器、发送移位寄存器,发送控制电路三部分。
8251A从数据总线上接收到CPU发送出的数据,暂存发送数据缓冲器中,接着送到发送器部分中的发送移位寄存器,再将并行数据一位一位的从TxD引脚中串行发送出去。
接收器:接收器从RxD引脚接收串行数据,按指定的方式把它变成并行数据。
调制解调器:调制解调器控制部分提供4个通用的控制信号:#DTR、#DSR、#RTS、#CTS,在近距离串行通信时作为与外设联络的应答信号。
三、程序分析INIT_8251 PROC NEARCALL RESET_8251 ;进入8251的复位程序MOV DX,CTL_ADDR ;控制字的地址送DXMOV AL,7EH ;波特率系数为16,8个数据位,异步OUT DX,AL ;一个停止位,偶校验CALL DLTIME ;延时MOV AL,15H ;允许接收和发送发送数据,清错误标志OUT DX,ALCALL DLTIMERETINIT_8251 ENDP8251A初始化流程图:四、实验数据和结果分析4.1 实验结果数据接收到的数据和发送的数据一致。
8251串口实验:自发自收
![8251串口实验:自发自收](https://img.taocdn.com/s3/m/2e7d1053be23482fb4da4caa.png)
(三) 串口自发自收实验一、实验目的掌握8251串行通讯方式的硬件接口电路以及软件编程。
二、实验设备TDN88教学实验系统一台三、实验内容及步骤实验规定串行通讯的数据格式如下:一个字有一个逻辑“0”起始位,8位ASCII码数据位,一位逻辑“1”停止位,传输波特率为9600baut。
实验接线如图所示:实验用8251 TxD_______RxD实验程序如下:见14-3.ASMSTACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL,76HOUT 43H,ALMOV AL,0CHOUT 41H,ALMOV AL,00HOUT 41H,ALCALL INITCALL DALLYMOV AL,7EHOUT 81H,ALCALL DALLYMOV AL,34HOUT 81H,ALCALL DALLYMOV DI,3000HMOV SI,4000HMOV CX,000AHA1: MOV AL,[SI]PUSH AXMOV AL,37HOUT 81H,ALPOP AXOUT 80H,ALA2: IN AL,81HAND AL,01HJZ A2CALL DALLYA3: IN AL,81HAND AL,02HJZ A3IN AL,80HMOV [DI],ALINC DIINC SILOOP A1A4: JMP A4INIT: MOV AL,00HOUT 81H,ALCALL DALLYOUT 81H,ALCALL DALLYOUT 81H,ALCALL DALLYOUT 81H,ALCALL DALLYOUT 80H,ALCALL DALLYMOV AL,40HOUT 81H,ALRETDALLY: PUSH CXMOV CX,3000HA5: PUSH AXPOP AXLOOP A5POP CXRETCODE ENDSEND START四、实验步骤(1)按图将TxD和RxD短接。
实验十四串行通讯
![实验十四串行通讯](https://img.taocdn.com/s3/m/9a86cf06482fb4daa48d4b04.png)
实验十四串行通讯--04(3)班唐冬子(11号)一、实验目的1、了解串行通讯的基本原理。
2、掌握串行接口芯片8251的工作原理和编程方法。
二、实验内容1、按图43连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。
2、编程:从键盘输入一个字符,将其ASCII码加 1 后发送出去,再接收回来在屏幕上显示,实现自发自收。
三、算法、流程图与源代码算法:初始化8253和8251 ,读8251状态字,键入字符ASC码加1通过8251数据端口发送到8251,从8251读数据,将字符显示在屏幕。
流程图与源代码:DATA SEGMENTIOPORT EQU 0C800H-280HIO8253A EQU IOPORT+280HIO8253B EQU IOPORT+283HIO8251A EQU IOPORT+2b8HIO8251B EQU IOPORT+2B9HMES DB 'PLEASE INPUT A CHARACTOR:',0DH,0AH,24HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,IO8253B ;设置8253计数器0工作方式 MOV AL,00010110BOUT DX,ALMOV DX,IO8253AMOV AL,60 ;给8253计数器0送初值OUT DX,ALMOV DX,IO8251B ;复位之前先给两次控制字 MOV AL,01001110BOUT DX,ALMOV AL,00100111BOUT DX,ALMOV DX,IO8251B ;初始化8251MOV AL,01000000B ;复位OUT DX,ALMOV AL,01001110B ;设置控制方式OUT DX,ALMOV AL,00100111B ;向8251送控制字OUT DX,ALMOV SI,OFFSET MESAGAIN: MOV DL,[SI] ;显示提示信息INC SIMOV AH,2INT 21HCMP AL,24HJNZ AGAINWAIT0: MOV DX,IO8251BIN AL,DXTEST AL,01H ;发送是否准备好JZ WAIT0MOV AH,1 ;是,从键盘上读一字符INT 21HCMP AL,1BH ;若为ESC,结束JZ EXITMOV DX,IO8251BINC ALOUT DX,AL ;发送WAIT1: MOV DX,IO8251BIN AL,DXTEST AL,02H ;检查接收是否准备好JZ WAIT1 ;没有,等待MOV DX,IO8251AIN AL,DX ;准备好,接收MOV DL,ALMOV AH,2 ;将接收到的字符显示在屏幕上INT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HJMP WAIT0EXIT: MOV AH,4CH ;退出INT 21HCODE ENDSEND START四、调试过程按照实验要求接线,连接硬件电路图,在DOS环境下做这个实验,编辑文件+编译ASM+连接OBJ+执行EXE,然后屏幕出现提示符:PLEASE INPUT A CHARACTOR:在键盘上输入任何字符(除ESC)都会在屏幕上显示这个字符和比这个字符对应的ASCII 码值大1的字符。
微机接口原理--实验四 8251串行收发实验
![微机接口原理--实验四 8251串行收发实验](https://img.taocdn.com/s3/m/e4c66fdeb9f3f90f76c61bd4.png)
已置位,即已准备好)在屏幕上显示字符。若是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实验报告](https://img.taocdn.com/s3/m/a507365b2379168884868762caaedd3382c4b570.png)
8251实验报告8251实验报告引言:在计算机科学领域,串行通信是一种常见的数据传输方式。
为了实现串行通信,我们需要使用串行通信接口芯片。
8251是一种常用的串行通信接口芯片,本实验旨在通过对8251的实验研究,深入了解串行通信的原理和应用。
一、实验目的本实验的主要目的是掌握8251的工作原理和使用方法,了解串行通信的基本概念和应用场景。
二、实验原理8251是一种通用的串行通信接口芯片,它可以实现计算机与外部设备之间的串行数据传输。
该芯片具有发送和接收两个功能模块,通过与计算机的接口进行数据交换,实现串行通信的功能。
三、实验步骤1. 连接实验所需设备:将8251芯片与计算机、外部设备进行连接,确保电路连接正确无误。
2. 配置8251芯片:通过设置芯片的控制寄存器,配置芯片的工作模式和参数。
3. 编写测试程序:使用汇编语言编写测试程序,通过向8251芯片发送数据,观察数据的接收情况。
4. 运行测试程序:将编写好的测试程序加载到计算机中,运行程序并观察结果。
5. 分析实验结果:根据实验结果,分析8251芯片的工作状态和数据传输情况。
四、实验结果与分析经过实验测试,我们可以观察到数据的发送和接收情况。
通过分析实验结果,我们可以了解到8251芯片的工作状态和数据传输的效果。
如果数据能够正确发送和接收,说明8251芯片的工作正常;如果数据发送或接收出现错误,可能是芯片配置错误或者电路连接有问题。
五、实验总结通过本次实验,我们深入了解了8251芯片的工作原理和使用方法,掌握了串行通信的基本概念和应用场景。
实验过程中,我们遇到了一些问题,但通过分析和解决,最终成功完成了实验目标。
通过实验,我们不仅提高了对8251芯片的理解,还加深了对串行通信的认识。
六、实验改进在实验过程中,我们发现一些可以改进的地方。
首先,我们可以尝试使用不同的测试程序,测试不同的数据传输情况,以获得更全面的实验结果。
其次,我们可以进一步研究8251芯片的高级功能和应用,拓展实验的深度和广度。
单片机与pc机通讯课程设计--8251A可编程通讯接口与PC机通讯
![单片机与pc机通讯课程设计--8251A可编程通讯接口与PC机通讯](https://img.taocdn.com/s3/m/cd276c3276eeaeaad0f330be.png)
摘要设计了一个8251可编程通讯接口与PC机通信,8251是一种可编程的通用同步/异步接收发送器,被广泛应用于Intel80X86为CPU的微型计算机中。
本设计采用8253芯片的分频作为8251的收发时钟频率,实现8251可编程通信接口与PC机的通讯。
关键词:异步;串行通信;8251目录1课题描述 (1)2课题分析 (2)2.1 8251基本功能 (2)2.2 8251的内部结构 (2)2.3 8251编程字 (2)3.设计过程 (4)3.1 电路图设计 (4)3.2 硬件设计 (4)3.3 软件设计 (4)4验证测试 (12)5总结 (13)参考文献 (14)利用8253芯片的分频作为8251的收发时钟频率,8251异步串行通信,实现8251可编程通信接口与PC机的通讯。
采用查询 I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发 l个字节,每按动一次任一数字键,就把该键值通过8251发送给PC机接收,并在PC机屏幕上显示出该键值。
2.1 8251基本功能8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的微型计算机中。
其基本功能为:(1)它是全双工、双缓冲器的接收/发送器。
(2)可工作在同步或异步工作方式。
同步方式工作时,波特率在0~64K范围内;异步方式时,波特率在0~ 9.2K范围内。
(3)同步方式时,字符可选择为5~8bit,可加奇偶校验位,可自动检测同步字符。
(4)异步方式时,字符可选择为5~8bit,可加奇偶校验位,自动为每个字符添加一个启动位,并允许通过编程选择1、2.5、或2位停止位。
2.2 8251内部结构本设计采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。
图 2.1 8251内部结构2.3 8251编程字(1)工作方式控制字D1D0确定是工作于同步方式还是异步方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的与要求
了解8251的内部结构,工作原理;了解8251与8088的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。
二、实验逻辑原理图与分析
2.1 画实验逻辑原理图
AD0~AD15
ALE
WR#
RD#数据锁
存器
地址锁
存器
地址译
码器
8086
8253
D0~D7
OUT0
GATE0
CLK0
CS#
A0
A1
WR#
RD#
A0
A1
VCC
2M
D0~D7
C/D# TxC#
CS# RxC#
WR# TXD
RD# RXD
8251
RS-
232C
COM1
PC
RXD
TXD
2.2 逻辑原理图分析
8251A是可编程的串行通信接口芯片,它的主要特点如下:
①可用于串行异步通信,也可用于串行同步通信。
②对于异步通信,可设定停止位为1位、 1位半或2位,数据位可在5-8位之间选择。
③对于同步通信,可设为单同步、双同步或者外同步,同步
字符可由用户自己设定。
④异步通信的时钟频率可设为波特率的1倍、16倍或64倍。
⑤可以设定奇偶校验的方式,也可以不校验。
校验位的插入、检出及检错都由芯片本身完成。
⑥在异步通信时,波特率的可选范围为0~19.2千波特;在同步通信时,波特率的可选范围为0~64千波特。
⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。
⑧接收、发送数据分别有各自的缓冲器,可以进行全双工通信。
8251A内除具有可读可写的数据寄存器外,还具有只可写的控制字寄存器和只可读的状态寄存器。
控制字寄存器寄存方式控制字和命令控制字。
三、程序分析
3.1程序功能
实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。
3.2程序分析
INIT_8253 PROC NEAR
MOV DX,W_8253_C
MOV AL,37H
OUT DX,AL
MOV DX,W_8253_T0
MOV AL,26H
OUT DX,AL
MOV AL,0
OUT DX,AL
上述程序段的功能:初始化8251,初始化控制字,起分频作用,波特率为4800,BCD码计数。
MOV DX,CTL_ADDR
MOV AL,7EH
OUT DX,AL
上述程序段的功能:初始化8251,进行异步传输,波特率系数为16,8个数据位,一个停止位,偶校验。
Receive_Group PROC NEAR
LEA DI,Receive_Buffer
Receive_Group1:CALL Receive_Byte
STOSB
LOOP Receive_Group1
RET
Receive_Group ENDP
上述程序段的功能:接受一组数据,CX--接受数目,应用存串指令STOSB,从“接受一个字节”AL寄存器中的内容存到DI所指向的接受缓冲寄存器中。
DLTIME PROC NEAR
MOV CX,10
LOOP $
RET
DLTIME ENDP
上述程序段的功能:延时,由于8251工作速度慢,所以每送一个控制字,得等待一会。
四、实验数据和结果分析
4.1 实验结果数据
发送缓冲区的数据:fsds13
接收缓冲区:fsds13
4.2 结果数据分析
向8251发送数据fsds13,接收一批数据fsds13,由程序代码Receive_Buffer DB 10 DUP(0),Send_Buffer EQU Receive_Buffer可知,在8251通信正确下,发送缓冲区和接受缓冲区的内容一致。
五、实验问题分析、思考题与小结
5.1实验问题分析、思考题
在实验课上,老师向我们提出是如何接收一组数据的,通过查阅书籍和同学们一起讨论,发现是先接受一个字节,并存入AL 寄存器中,再查看其是否接受完毕,若接受完毕,则AX/AL中数
存入内存单元。
5.2实验小结
通过分支实验,使我了解了8251的内部结构,工作原理;
还了解了8251与8088的接口逻辑;并掌握对8251的初始化编程方法,和学会使用8251实现设备之间的串行通信。
得分(百分制)。