微机实验_可编程串行通信(8250)

合集下载

南邮通达微机系统串行口的测试实验三

南邮通达微机系统串行口的测试实验三
一、实验目的和要求
学习串行接口8250的工作原理及编程和中断程序的设计,运用微机系统串行通信知识,进行微机系统串行口的测试。
预习相关知识点,给出设计方案和程序框图,提前编制源程序。要求字符发送采用查询方式,字符的接收采用中断方式。
二、实验环境
PC,Windows系统,TPC-486EM_32位微机原理及接口技术实验系统
实验报告
(2016/ 2017学年第一学期)
课程名称
微型计算机原理与接口技术
实验名称
微机系统串行口的测试
实验时间
2016

11

17

指导单位
南京邮电大学
指导教师
学生姓名
班级学号
学院(系)
通信工程
专业
信息工程
实验报告
实验名称
微机系统串行口的测试
指导教师
实验类型
综合
实验学时
2
实验时间
2016/11/17
JZSCANR
MOVDL,AL
MOVAH,2
INT21H
MOVDL,ODH
INT21H
INCBX
LOOPSCANS
MOVAH,4CH
INT21H
I8250PROC
MOVDX,3FBH
MOVAL,80H
OUTDX,ALMOVDX,3F9H
MOVAL,0
OUTDX,AL
MOVDX,3F8H
MOVAL,60H五、指导教师评分成绩批阅人日期
2016.12
BEG:MOVAX,DATA
MOVDS,AX
CALLI8250
MOVBX,OFFSETMESG
MOVCX,COUNT

9.2 可编程串行接口8250

9.2  可编程串行接口8250

常用的可编程串行接口芯片有Intel的8250、8251, 常用的可编程串行接口芯片有Intel的8250、8251, 美国国家半导体公司的16550等 8250与16550完全 美国国家半导体公司的16550等。8250与16550完全 兼容。 兼容。
电子科技大学
微机系统原理及接口技术应用
异步串行数ቤተ መጻሕፍቲ ባይዱ发送格式
电子科技大学
微机系统原理及接口技术应用
(2)发送部分
1.CPU送来的并行数据存放在发送保持寄存器中 1.CPU送来的并行数据存放在发送保持寄存器中 2.数据经过发送移位寄存器进行并串转换 2.数据经过发送移位寄存器进行并串转换 3.按规定格式加上起始位、奇偶校验位和停止位,构成完整 3.按规定格式加上起始位 奇偶校验位和停止位, 按规定格式加上起始位、 的串行数据帧 4.数据由Sout发出 4.数据由Sout发出 数据由Sout 另外,当数据进入到发送移位寄存器后,发送保持寄存器 另外,当数据进入到发送移位寄存器后, 自动变空,以接收下一个待发送的数据。 自动变空,以接收下一个待发送的数据。
状态时,若允许Modem状态中断,就会产生一次中断 状态中断, 状态时,若允许Modem状态中断 接收线路信号检测输入, =0,表明Modem已 . RLSD :接收线路信号检测输入, RLSD =0,表明Modem已 收到数据载波,8250/16550应立即开始接收解调 收到数据载波,8250/16550应立即开始接收解调 后的数据
电子科技大学
微机系统原理及接口技术应用
同步通信: 同步通信: 1.通信开始后,发送设备连续发送字符, 1.通信开始后 发送设备连续发送字符, 通信开始后, 接收设备首先搜索同步字符, 接收设备首先搜索同步字符,在得到同 步字符后开始接收数据。 步字符后开始接收数据。 2. 传送过程中,发送设备和接收设备必须 传送过程中, 要保持完全同步,即使用同一个时钟。 要保持完全同步,即使用同一个时钟。

微机原理课件 8250

微机原理课件 8250
第二节 可编程串行接口 8250
一、8250的组成及引脚 的组成及引脚
数 据 总 线 D0 ~ D7 冲 器 部 数 据
CS0 CS1 CS2 A2 A1 A0 ADS DISTR DISTR DOSTR DOSTR DDIS MR
数据发送寄存器 数据接收寄存器 缓 内 线路控制寄存器 线路状态寄存器 除数寄存器高位 总 线 除数寄存器 位
4、调制解调控制寄存器MCR(100B 3FCH) 、调制解调控制寄存器 ( )
D7 0 D6
0
D5
0
D4
D3
D2
D1
D0 DTR
LOOP OUT2 OUT1 RTS
其中D0 ~ D3位对应8250的四个引脚,当该位为1时,相应的引脚输出有效的低电平。 当D4 = 1时,8250工作循环回送状态。(此时8250发送的数据被自身接收。用于自检)
PC机串口端口地址表 机串口端口地址表
PC机串口硬件连接图 机串口硬件连接图
再写高分频值到DLH(3F9H) ( 再写高分频值到 )
2、设置通信数据格式(对通信控制寄存器写入命令字) 、设置通信数据格式(对通信控制寄存器写入命令字) 假定7个数据位 个停止位 偶校验。 个数据位, 个停止位, 假定 个数据位,1个停止位,偶校验。 MOV DX ,3FBH MOV AL ,1AH OUT DX ,AL
3、设置操作方式 (对MODEM控制寄存器写控制字) 、 控制寄存器写控制字) 控制寄存器写控制字
MOV DX ,3FCH MOV AL ,03 OUT DX ,AL 4、设置中断允许寄存器 、 MOV DX ,3F9H MOV AL ,0 OUT DX ,AL DTR = 0,RTS = 0,OUT2 = 0,不自检 , , ,

实验单机串行通信

实验单机串行通信

实验六、单机串行通信一、实验目的1、熟悉微机接口实验装置的结构及使用方法2、掌握通信接口芯片8251和8250的功能和使用方法3、学会串行通信程序的编制方法二、实验仪器1、PC实验箱及连接线2、9针接头串行电缆三、芯片介绍本实验中用PC机中的8250和实验装置上的8251芯片作数据的传送和接收。

8250是一种通用的异步串行通信收发器(UART),而8251同时支持同步通信(USART),它们都是可编程的接口芯片。

1、UART-8250简介PC机自带两个串口,分为COM1和COM2,地址分别在3F8-3FFH和2F8-2FFH,接口芯片选用8250。

8250片内有10个寄存器,其中有几个是共用地址的,其识别由线路控制寄存器(LCR)的最高位DLAB来决定。

各寄存器的地址和格式如下所示:.表 4.9 8250寄存器地址DLAB A2 A1 A0 I/O口地址对应寄存器0 0 0 0 3F8H(2F8H)发送端数据寄存器0 0 0 0 3F8H(2F8H)接受端数据寄存器1 0 0 0 3F8H(2F8H)波特率因子寄存器(低8位)1 0 0 1 3F9H(2F9H)波特率因子寄存器(高8位)0 0 0 1 3F9H(2F9H)中断允许寄存器(IER)X 0 1 0 3FAH(2FAH)中断识别寄存器(IIR)X 0 1 1 3FBH(2FBH)线路控制寄存器(LCR)X 1 0 0 3FCH(2FCH)MODEM控制寄存器(MCR)X 1 0 1 3FDH(2FDH)线路状态寄存器(LSR)X 1 1 0 3FEH(2FEH)MODEM状态寄存器X 1 1 1 3FFH(2FFH)保留IER: D7 D0IIR: D7 D00:有中断中断识别 1:无中断 00:MODEM状态变化 01:发送缓冲器空10:接收器数据就绪 11:接收字符错或接收中止状态LCR: D7 D00:该位无效校验时附加位 1:偶 1:有 1:2位 10:7 11:81:强迫8250连 0:该位无效续输出低电平 1:奇偶校验位恒为0(对偶校验)或恒为1(对奇校验)LSR: D7 D0发送器保持寄存器空奇偶错[注:上面在各位为1时状态存在]MCR: D7 D0该位为可由用户指定的输出信号MSR: D7 D08250在正常通信之前,需要先设定波特率因子寄存器,它决定传输数据的速率。

可编程串行通信接口芯片16550与8250

可编程串行通信接口芯片16550与8250
DSR CTS △RLSD △RI
D1
△DSR
D0
△CTS
△表示变化的状态
△允许发送(CTS) △ 数据装置就绪(DSR) △ 响铃指示 △ 数据载波检测(DCD)
2023年5月4日星期四
7.中断允许寄存器IER
反映了接收器和发送器以及Modem是否允许中 断的情况,通过设置可以指定其中的某些部件 允许中断。它是一个可读可写的寄存器。
其它引脚
1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入) 4. 选通信号:
地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号
读/写操作 OUT (写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读)或 OUT(写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读) IN(读)
2023年5月4日星期四
2.串行接口初始化
串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式 (4)设定是否使用中断、是否自测试操作等
D7 D6 D5 D4
IEE 0 0
0
0
1 允许中断 0 禁止中断 1 允许中断 0 禁止中断
Modem状态中断 接收字符代码错 或接收中止状态中断

可编程串行通信接口8250A自发自收实验

可编程串行通信接口8250A自发自收实验

可编程串行通信接口8250A自发自收实验一、实验目的和要求1.了解并行通信的工作原理;2.掌握8250的编程方法。

二、实验内容和原理1.实验内容:对8250编程,实现下列功能:(1)主机键盘输入一个字符,并将字符的ASCⅡ码加1,指向ASCⅡ表中的下一个字符,通过SOUT引脚发送出去;(2)通过SIN引脚接受字符;(3)在屏幕上显示键盘输入的字符和接收到的字符。

这样就实现了CPU自发自收的功能。

线路连接:8250的D7~D0、A2~A0和DISTR、DOSTR引脚与系统数据线、地址线和读写控制线对应连接;片选线CS2接地址译码器输出端;INTRPT引脚与中断请求输入IRQ2端相连;2MHz的时钟信号送到XTIL1;BAUDOUT与RCLK连接;8250数据接收线SIN 与输出线SOUT相连接,是先自发自收。

线路连接如图1所示。

编程提示:8250采用查询方式进行数据通信,一桢数据格式为7位数据位位数据位,一位停止位,奇校验,波特率为2400bps,输入的基准时钟频率为2MHz。

流程图程序:DA TA SEGMENTMES1 DB 'IT WILL DISPLAY ON THE TERMINAL_SCREEN!!',0AH,0DH DB 'PLAY Q KEY EXIT TO DOS',0AH,0DH,0AH,0DH,'$'IOPORT EQU 0D880H-0280HIO8250CS EQU IOPORT+290H ;8250地址IO8250ZD EQU IOPORT+291HIO8250ZS EQU IOPORT+292HIO8250XK EQU IOPORT+293HIO8250MO EQU IOPORT+294HIO8250XZ EQU IOPORT+295HDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES1 ;显示提示信息MOV AH,09INT 21HMOV AL,80H ;使DLAB=1,允许写除数寄存器MOV DX,IO8250XK ;线路控制寄存器OUT DX,ALMOV AX,30H ;除数值MOV DX,IO8250CS ;除数寄存器低8位OUT DX,ALMOV AL,AHINC DX ;除数寄存器高8位OUT DX,ALMOV AL,0AH ;7位数据、1位停止位,奇校验MOV DX,IO8250XK ;线路控制寄存器OUT DX,ALMOV AL,10H ;使自检控制位LOOP=1,自检MOV DX,IO8250MO ;MODEM控制寄存器OUT DX,ALMOV AL,00H ;屏蔽中断MOV DX,IO8250ZD ;写中断允许寄存器OUT DX,ALWA T: MOV DX,IO8250XZ ;读线路状态寄存器IN AL,DXTEST AL,00011110B ;出错否?JNZ ERROR ;转到ERRORTEST AL,00000001B ;接受数据就绪否?JNZ RCEVE ;转接收TEST AL,00100000B ;发送寄存器空否?JZ WAT ;不空,返回等待MOV AH,01H ;读键盘INT 21HMOV DX,IO8250CS ;发送下一个字符INC ALOUT DX,ALJMP WAT ;返回RCEVE: MOV DX,IO8250CS ;读接收数据IN AL,DXAND AL,01111111B ;保留7位CHAR: MOV DL,AL ;显示MOV AH,02HINT 21HDEC DLCMP DL,51H ;键入字符是吗‘Q’?JZ QUITCMP DL,71HJZ QUIT ;是,退出JMP WAT ;不是,继续QUIT: MOV AX,4C00H ;退出INT 21HERROR: MOV DX,IO8250XZ ;清除线路状态寄存器IN AL,DXMOV DL,'?' ;显示字符'?'MOV AH,02HINT 21HJMP WAT ;返回继续CODE ENDSEND START2.实验原理8250内部有三种寄存器,8250初始化编程为:a、将80H写入通信线路控制寄存器使最高位为1,建立寄存器和中断允许寄存器的标志。

8250串行接口

8250串行接口
mov dx,bx
add dx,0ah
in ax,dx ;读入线路状态寄存器(LSR)内容
test ax,20h ;检测发送保持寄存器状态
jnz recv2
pop ax
jmp send
recv2: pop ax
mov dx,bx
out dx,ax
ret
recv: mov bx,0480h
mov dx,bx
三、实验原理介绍
实验原理图见8250串行接口电路。由MAX232完成RS232电平和TTL电平的转换,由8250完成数据的收发。8250内部有10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。
六、程序框图
上位机程序框图下位机程序框图
程序框图
七、实验程序
code segment ;define data segment
assume cs:code
org 0100h
start: md dx,6;信线路控制寄存器端口地址PORT+6
mov ax,80h ; DLAB=1
8250串行接口电路
四、实验步骤
1、实验接线
利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2)
2、编写程序。
3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。
4、实验箱退出86编译系统,启动实验六的上位机驱动程序T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。欲退出T6UP.EXE,按回车键。

微机实验_可编程串行通信(8250)

微机实验_可编程串行通信(8250)
三、实验步骤
微型计算机本身配置了两个串行通信接口,分别为串行口1(COM1)和串行口2(COM2),I/O端口地址分别为3F8H~3FFH和2F8H~2FFH,对外接口采用9针插座。串行通信接口采用8250。
8250寄存器的端口地址如表10-1所示。
表10-1
I/O端口
IN/OUT
DLAB
寄存器名称
60H
1200
00H
30H
2400
00H
18H
4800
00H
0CH
9600
3.中断允许寄存器IER(3F9H)如图10-2所示。
图10-2
4.MODEM控制寄存器MCR(3FCH)如图10-3所示。
图10-3
5.9针串口插座(DB-9)外形如图10-4所示,引脚说明如表10-3所示。
图10-4
表10-3
EXIT:MOVAH,4CH;返回DOS
INT21H
STARTENDP
CODEENDS
ENDSTART
五、实验结论与心得
成绩
教师签名
批改时间
年月日
;内部输出输入反接,中断禁止
MOVAL,13H
OUTDX,AL
MOVDX,3F9H;设中断允许寄存器为0,使4种中断被屏蔽
MOVAL,0H
OUTDX,AL;把接收到的字符显示出来,把键盘输入的字符发
;送出去
FOREVER:MOVDX,3FDH;输入线状态寄存器内容,测试接收是否出错
INAL,DX
TESTAL,1EH
3F8H
OUT
0
数据发送寄存器
3F8H
IN
0
数据接收寄存器
3F8H

接口的技术08-2串行通信接口8250

接口的技术08-2串行通信接口8250
1.8432MHZ基准时钟,进行1 ~ 65535次分频后由BAUDOUT引脚输出的频率为 16×b/s的时钟。8250初始化时,必须将16位的分频次数分两次写入高低两个8位 分频次数锁存器DLH和DLL 分频次数 = 1843200HZ / 16×波特率 (基准时钟)
4、调制解调控制寄存器MCR(100B 3FCH)
MR:主复位输入信号,高电平有效 ADS-:地址选通信号=AEN DISTR、DISTR-:数据输入选通信号 DOSTR、DOSTR-:数据输出选通信号 DDIS:驱动器禁止信号,在CPU从 8250读取数据时为低电平,其他时 间为高电平禁止外部收发器对系统 总线的驱动 CSOUT:片选输出信号 XTAL1、XTAL2:外部时钟端 中断控制逻辑: INTR:中断请求输出信号 MODEM控制逻辑: CTS-:清除发送信号 RTS-:请求发送信号 DTR-:数据终端准备好信号 DSR-:数据装置准备好信号 RLSD-:接收线路信号检测信号 RI-:振铃指示信号 OUT1-:由用户编程指定的输出端 OUT2-:与OUT1一样,可以由用户 编程指定(PC用)
第二部分
PC 微机异步通信适配器的分析和使用
一、PC中的UART
1.INS8250
2.PC16450/PC16550 带16字节的发送缓冲器和14字节的接收缓冲器 FIFO
我 的 电 脑 中 串 口 配 置
3.端口基地址,硬件中断请求号,中断向量: COM1: 3F8H,4,0C COM2: 2F8H, 3, 0B 当加入其他的串口卡后,其地址一般为


ERROR:

MOV DX,3F8H
IN AL,DX ;接收一个字节
2. 中断方式
以查询方式发送数据,以中断方式接收数据, INISIR:MOV DX,3FBH MOV AL,80H OUT DX,AL ;置DLAB=1 MOV DX,3F8H MOV AL,0CH OUT DX,AL MOV DX,3F9H MOV AL,0 ;置除数为000CH,规定波特 率为9600波特 OUT DX,AL

北理工微机原理与接口技术之AD,8250实验报告

北理工微机原理与接口技术之AD,8250实验报告

微机原理与接口技术实验报告———8250串行接口ADC0809A/D转换器实验四8250串行接口实验一,实验目的(1)熟悉串行通信的一般原理和8250的工作原理。

(2)了解RS—232串行接口标准及连接方法。

(3)掌握8250芯片的编程方法。

二,实验设备微机实验教学系统实验箱,8086CPU模块三、实验内容在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。

四,实验步骤(1)无须接线,内部已经连好。

8250的端口地址为0480H起始的偶地址单元。

(2)编写下位机程序,编译链接后,全速运行。

(3)退出“8086实验系统”,运行“串口调试助手”上位机程序。

(4)将“串口调试助手”程序输入和输出都调整为16进制格式,发送一个16进制数,观察返回的是否是同样一个16进制数。

五,实验程序程序流程图:实验源程序:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,486H ;写通信线路控制寄存器D7=1MOV AX,80HOUT DX,AXMOV DX,480H ;设置波特率低字节MOV AX,12OUT DX,AXMOV DX,482H ;设置波特率高字节MOV AX,0OUT DX,AXMOV DX,486HMOV AX,3OUT DX,AXMOV DX,482H ;中断允许寄存器MOV AX,0OUT DX,AXMOV DX,48AH ;清除原始错误状态IN AX,DXMOV DX,480H ;清除原始状态IN AX,DXLOOP1:CALL RECVCALL SENDJMP LOOP1 ;循环发送SEND: ; 发送子函数PUSH AXMOV DX,48AHIN AX,DXTEST AX,20HJNZ SEND2 ;发送数据寄存器空,则跳转至SEND2,发送字符POP AX ;发送数据寄存器不是空,不可发送JMP SENDSEND2:POP AXMOV DX,480H ;指向发送接收数据寄存器,发送字符OUT DX,AXRETRECV: ;接收子函数MOV DX,48AHIN AX,DXTEST AX,1JZ RECV ;未接到到一个字符,则跳转至RECV,若接收到字符,则顺序往下执行。

微机接口与编程第五章数字量输入输出6(8250)

微机接口与编程第五章数字量输入输出6(8250)
DLAB=1,拟访问除数寄存器的高8位及低8位 DLAB=0 ,拟访问其他控制或状态寄存器
№ 28
(二) 寄存器及寻址 P289 表5.10
A9A8A7A6 A5A4A3A2A1A0 DLAB(标志位) 寄存器
000 000 001 001 010 011 100 101 110 1111111 1011111
№ 18
4、 8250的引脚
连接CPU的部分 连接外设的部分 注意:8250不是
Intel公司的产品, 所以该芯片引脚 名称与前面学习 的8253、8255等 Intel产品有所不 同,但是引脚功 能却是类似的
№ 19
处理器接口引脚(1) 数据线D0-D7:在CPU与8250之间交换信息 地址线A0-A2:寻址8250内部寄存器 片选线:包括
– 若接收到的字符的“1”的个数不符合奇偶校验要求
帧错误FE(Frame Error)
– 若接收到的字符格式不符合规定(如缺少停止位)
溢出错误OE(Overrun Error)
– 若接收移位寄存器接收到一个数据,并送至输入缓冲
器时,CPU还未取走前一个数据,就会出现数据溢出 – 若接收缓冲器的级数多,则溢出错误的几率就少
№ 24
串行异步接口引脚
发送数据SOUT 接收数据SIN
请求发送RTS
允许发送CTS
8250
数据装置准备好DSR 数据终端准备好DTR 信号地GND 载波检测RLSD
9个最常 用的信号
振铃指示RI
8250 9个信号的名称与RS232-C信号的名称稍有不同
№ 25
输出线
OUT1和OUT2:
– 两个可由用户定义用途的输出信号 – 由调制解调器控制寄存器的D2和D3位控制其输出 – 使用时,一般低电平有效,复位时恢复为高

09-2串行通信接口8250

09-2串行通信接口8250
数据总线缓冲器:D0~D7:双向数 据线 选择与控制逻辑: CS0、CS1、CS2-:输入片选信号 A0、A1、A2:8250内部寄存器选择 信号 MR:主复位输入信号,高电平有效 ADS-:地址选通信号=AEN DISTR、DISTR-:数据输入选通信号 DOSTR、DOSTR-:数据输出选通信号 DDIS:驱动器禁止信号,在CPU从 8250读取数据时为低电平,其他时 间为高电平禁止外部收发器对系统 总线的驱动 CSOUT:片选输出信号 XTAL1、XTAL2:外部时钟端 中断控制逻辑: INTR:中断请求输出信号 MODEM控制逻辑: CTS-:清除发送信号 RTS-:请求发送信号 DTR-:数据终端准备好信号 DSR-:数据装置准备好信号 RLSD-:接收线路信号检测信号 RI-:振铃指示信号 OUT1-:由用户编程指定的输出端 OUT2-:与OUT1一样,可以由用户 编程指定(PC用) 发送移位寄存器 SOUT:串行输出信号 接收移位寄存器 SIN:串行输入信号 RCLK:接收时钟信号 波特率发生器 BAUDOUT:波特率输出 6
2.内部结构
D0 ~ D7 数 据 总 线 缓 冲 器 内 部 数 据 总 线
接收器控制逻辑 RCLK
数据接收寄存器
数据发送寄存器 线路控制寄存器 线路状态寄存器 除数寄存器高位
接收移位寄存器 发送移位寄存器
SIN SOUT
发送器控制逻辑
XTAL1 XTAL2 BAUD OUT RTS CTS DTR DSR RLSD RI OUT1 OUT2
将数据自动并行传送到RBR。RBR(接收缓冲)收到
RSR 的数据后,就立即在状态寄存器中建立"接收到数 据准备好"的状态,而且也可以用此状态位来触发中断。
因此,查询状态位或者利用该状态触发的中断即可实现

北理工微机原理硬件实验课件

北理工微机原理硬件实验课件

实验程序
MOV DX,482H CODE SEGMENT PUBLIC MOV AX,0 ASSUME CS:CODE OUT DX,AX ORG 100H MOV DX,48AH START: IN AX,DX MOV DX,486H MOV DX,480H 线路状态寄存器 MOV AX,80H IN AX,DX OUT DX,AX LOOP1: MOV DX,480H CALL RECV 设置波特率为:9600 MOV AX,12 CALL SEND JMP LOOP1 OUT DX,AX 9600——12 SEND: MOV DX,482H 4800——24 PUSH AX MOV AX,0 2400——48 MOV DX,48AH 1200——96 OUT DX,AX IN AX,DX MOV DX,486H TEST AX,20H MOV AX,3 JNZ SEND2 OUT DX,AX POP AX JMP SEND SEND2: POP AX MOV DX,480H OUT DX,AX RET RECV: MOV DX,48AH IN AX,DX TEST AX,1 没有接收到 JZ RECV MOV DX,480H 接收到字符 IN AX,DX RET CODE ENDS 指向接收缓冲器 , END START 接收一个字符
8250串行接口实验
8250的内部结构
RBR RSR
THR TSR
实验目的
1.熟悉串行通信的一般原理和8250的工作原理。 2.了解RS—232串行接口标准及连接方法。 3.掌握8250芯片的编程方法。
实验设备
微机实验教学系统实验箱、8086CPU模块。
实验内容
在实验箱与PC机(上位机)之间 实现串行通信,主机每下传一个字符, 若通讯正确,则下位机返回一个同样 的字符;若不正确,则无返回值或者 返回值不同。

串行通信8250

串行通信8250
当cpu读走数据后该位为0为1使dtr引脚为低否则为高调制解调器控制寄存器mcr设置8250与数据通信设备之间联络应答的输出信号loopout2out1rtsdtr为1使rts引脚为低否则为高为1使out1引脚为低否则为高为1使out2引脚为低否则为高为1使8250为循环工作方式否则为正常工作方式msr高4位中某位为1说明相应输入信号当前为低有效否则为高电平msr低4位中某位为1则说明从上次cpu读取该状态字后相应输入信号已发生改变从高变低或反之mcr低4位任一位置1均产生调制解调器状态中断当cpu读取该寄存器或复位后低4位被清零4级中断接收线路信号检测状态改变优先权高优先权高优先权低4级中断的优先权是按照串行通信过程中事件的紧迫程度安排的是固定不变的中断允许寄存器的低4位控制8250这4级中断是否被允许中断识别iir保存正在请求中断的优先权最高的中断级别编码id1id0ip无中断id1id0优先权中断类型接收线路状态接收数据准备好发送保持寄存器空调制解调器状态114异步通信适配器ibmpcxt机的串行异步通信适配器完成发送时的并转串和接收时的串转并以及相应的控制工作软件编程rclkbaudoutirq4irq3reset5va8aena3a7a9ioriowa0a2mrxtal1out1out2intrptdistrdostra0a2cs28250ls245d0d7d0d7j9j10j11j12dir18432mhzcs0cs1adsdistrdostr5v1141异步通信适配器的接口电路注意

8250的内部寄存器
中断允许寄存器(3F9H/2F9H)
0 0 0 0 D3 D2 D1 D0 Ô Ê Ê Ô Ê Ô Ê Ô Ð í í Ð í Ð í Ð ¼ Ê Ó Õ º ¹ ³ å Æ ÷ú Â ¢ Ë · Í ± £ ³ Ö Æ ÷Õ ¾ Ó Ê ¼ Õ Ê ý ½ Ý ³ ö ´ í MODEM× ´ Ì ¬ Ö Ð Ð Ö Ð Ö Ä · ¶ Ï Ï ¶ Ï ¶ ä Ö ± Ð ¶ Ï

微机原理实验+PC机串行通讯(8250)

微机原理实验+PC机串行通讯(8250)

PC机串行通讯实验一、实验目的1.进一步了解串行通信的基本原理。

2.掌握串行接口芯片8250的工作原理和编程方法。

3.熟悉PC机串行口的基本连接方法。

二、实验内容1.PC机RS-232串口自发自收。

按照PC机串口自发自收的连接方法连线。

编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由次串口将字符接收回来并在屏幕上显示,实现自发自收。

要求:键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。

2.两台PC机间RS-232串口通信按照PC机RS-232串口直接互连的方法连接两台PC机。

编写PC机直接互联串行通信程序。

要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示再屏幕上。

当键入感叹号“!”,结束收发过程。

要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。

当键入感叹号“!”,结束收发过程。

三、实验电路自发自收只需要将本机的2和3号端口短路即可。

以下是双机近距离通信连接图:四、程序设计及实验调试首先是8250芯片的初始化,初始化流图如下:按照书上的通信程序,采用查询方式编自发自收程序。

初始化之后,先读线路状态寄存器,再检测发送寄存器是否为空,出错则清除线路状态寄存器,接收就绪否,接收数据等。

若自发自收未做好准备,则显示’?’。

除数=1.8432M/(2400*16)=48=30H实验1 自发自收:CODE SEGMENTASSUME CS:CODESTART: MOV AL,10000000B ;8250初始化,设DLAB=1MOV DX,3FBHOUT DX,ALMOV AX,30H ;波特率为2400,基准时钟频率为1.8432MHz,除数为30HMOV DX,3F8HOUT DX,AL ;写入除数低字节MOV AL,AHMOV DX,3F9HOUT DX,AL ;写入除数高字节MOV AL,0AH ;7位数据,1位停止,奇校验MOV DX,3FBHOUT DX,AL ;写入线路控制寄存器MOV AL,00001111BMOV DX,3FCHOUT DX,AL ;写入Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL ;写入中断允许寄存器,屏蔽中断WAIT_FOR: MOV DX,3FDH ;读线路状态寄存器,屏蔽中断IN AL,DXTEST AL,00011110B ;出错否JNZ ERRORTEST AL,00000001B ;接收数据就绪否JNZ RECEIVE ;转接收TEST AL,01000000B ;发送寄存器空否,不空,返回等待JZ W AIT_FORMOV AH,1INT 21H ;读键盘MOV DX,3F8H ;发送OUT DX,ALJMP W AIT_FORRECEIVE: MOV DX,3F8H ;读接收数据IN AL,DXAND AL,01111111B ;保留7位数据CMP AL,21H ;是”!”?JNZ CHARMOV AH,4CH ;返回DOSINT 21HCHAR: PUSH AXMOV DL,ALMOV AH,02H ;显示接收字符INT 21HPOP AXJMP W AIT_FORERROR: MOV DX,3FDH ;出错则清除线路状态寄存器IN AL,DXMOV DL,'?' ;显示’?’MOV AH,02HINT 21HJMP W AIT_FORCODE ENDSEND START实验中遇到问题及分析:在软件编程的过程中,因为是参考书上的程序,所以没有报错。

第十章 串行通信及串行通信接口8250

第十章  串行通信及串行通信接口8250

School of Engineering & Automation · Tianjin Polytechnic University
微机原理课程
§10.2 串行通信接口的基本结构
①接收移位寄存器:靠移位脉冲将数据串行传进来。
②接收数据缓冲寄存器:将移位寄存器中的数→缓冲 寄存器,实现串-并的转换过程,向CPU申请中断后, 等待CPU取走数据 ③接收脉冲发生器:产生接收的移位脉冲 (RXC) ④发送数据缓冲寄存器:接收CPU送来的并行数据 ⑤发送移位寄存器:接收发送缓冲寄存器的数据,完 成并-串的转换,在移位脉冲的作用下,将数据移出去。
School of Engineering & Automation · Tianjin Polytechnic University
微机原理课程
②.检测脉冲 接收方需对发送方发来的数据位进行检测,以决定 是”0“还是”1“。 通常检测脉冲是移位脉冲的16和64倍(常选16)。
RXD 16TC 启动位 TC RXC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10
8250最高波特率为9600bps82508250由数据总线缓冲器地址选择和控制逻辑接收器发送移位寄存器modem控制逻辑和可编程寄存器等组成接收缓冲寄存器传输线控制寄存器接收移位寄存器接收同步控制发送同步控制sinrclk传输线状态寄存器csdistrdistrdostrdostrxatlmrxatlddircsout发送缓冲寄存器发送移位寄存器baudoutsoutmodem控制寄存器调制解调控制逻辑modem状态寄存器rtsctsdtrdsrrlsdriout中断允许寄存器中断识别寄存器中断控制逻辑intrpt5vgnd数据总线缓冲器一个位双向三态缓冲器它是8250同微机系统数据总线连接的接口

串行通信8250(补充)

串行通信8250(补充)

第9个仍为 0
24
异步通信的一般格式
每个字符由起始位、数据位、校验位、停止位构成。 起始位和停止位用于字符的同步。
从图中可看出,这种格式是靠起始位和停止位来实现字符 的界定或同步的,故称为起止式协议。
25
异步通信的信息格式如下边的表所示 注:表中位数的本质含义是信号出现的时间,故可有分 数位,如1.5。 例:传送8位数据45H(0100,0101B),奇校验,1个 停止位,则信号线上的波形象图所示那样:异步通信的 速率:若9600bps,每字符8位,1起始,1停止,无奇偶 ,则实际每字符传送10位,则960字符/秒。
1.全双工(Full Duplex)
数据的发送和接收分别由两根可以在两个不同的站点同 时发送和接收的传输线进行传送,通信双方都能在同一时刻 进行发送和接收操作,选择的传送方式称为全双工制。
A站 发送器 接收器
B站
接收器 发送器
图6.3.1
全双工方式示意图
特点:①每一端都有发送器和接收器 ②有二条传送线 应用:交互式应用,远程监测控制
ISO(Inter national Standard Organization)国际标准化组织。 OSI(Open System Interconnection)开放系统互连参考模型。
面向字符(character Oriented)
同步协议 分类 异步协议 面向比特(Bit) 面向字节计数
一、起止式异步通信数据格式
同步传输用一个时钟脉冲确定一个数据位, 异步 传输用多个时钟脉冲确定一个数据位(如16个) 同步传输以数据块(当作“位流”看待)为单位传 输,异步传输以字符为单位传输,但都称为帧 (Frame)
21
同步通信的时钟定时方法

实验八 8250可编程通信实验

实验八  8250可编程通信实验

实验八8250可编程通信实验(与微机)一、实验目的了解8250的内部结构、工作原理;了解8250与PCI9052的接口逻辑;掌握对8250的初始化编程方法,学会使用8250实现设备之间的串行通信。

二、实验内容及要求1、编写程序:通过初始化8250,设置波特率为4800bps(或其它,但与微机部分一致),数据格式为8数据位,1停止位,偶校验;然后打开PC机的串行通信测试软件,向8250发送一批数据,8250接收完数据之后,再将数据依次发送回去。

MSR DW00f6H ;MODEM状态寄存器DLL DW 00f0H;波特率除数锁存器低位DLM DW00f1H;波特率除数锁存器高位ADR DW 00E0H ;用于清除PCI9052上一次写操作产生的地址IO_Bit8_BaseAddress DW?msg0 DB ‘BIOS不支持访问PCI $’msg1 DB ‘找不到Star PCI9052板卡 $’msg2 DB ‘读8位I/O空间基地址时出错$’.CODESTART: MOV AX,@DATAMOV DS,AXNOPCALL InitPCICALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址CALL INIT8250START2: MOV CX,10 ;接收数据(接收完设定的数据个数) CALL RECEIVE_GROUPMOV CX,10 ;发送数据(发完设定的数据个数)CALL SEND_GROUPJC WARNING1CALL IfExitJZ START2JMP ExitWARNING1: JMP Exit;*************发送一组字符子程序,个数在CX中***********Send_Group PROC NEARLEA SI,Send_BufferSend_Group1: LODSBCALL Send_ByteJC Send_Group2LOOP Send_Group1CLCSend_Group2: RETSend_Group ENDP;*************接收一组字符子程序,存放首地址在DPTR中,个数在R6R7中*********** Receive_Group PROC NEARMOV DX,ADROUT DX,AL ;用于清除PCI9052上一次写操作产生的地址LEA DI,Receive_BufferReceive_Group1: CALL Receive_ByteSTOSBLOOP Receive_Group1CLCRETReceive_Group ENDPINIT8250 PROC NEARMOV DX,ISRMOV AL,06HOUT DX,ALMOV DX,LCRMOV AL,83H ;允许访问波特率因子寄存器OUT DX,ALMOV DX,DLLMOV AL,40 ;除法除数低位寄存器,波特率设为;4800=(3.072*1000000/16)/DLMDLLOUT DX,ALMOV DX,DLM ;00H送高字节寄存器MOV AL,00HOUT DX,ALMOV DX,LCR ;不允许访问波特率因子寄存器MOV AL,1BH ;数据格式为8数据位,1停止位,偶校验OUT DX,ALRETINIT8250 ENDP;*********发送一个字节子程序,发送A中的数,失败置1CY*********Send_Byte PROC NEARPUSH CXPUSH AXMOV CX,1000MOV DX,LSRREP11: IN AL,DXTEST AL,20HJNZ OUTPORT1LOOP REP11POP AXSTCJMP EXIT8250OUTPORT1: POP AXMOV DX,RHROUT DX,ALMOV DX,ADROUT DX,AL ;清除PCI9052产生的RHR地址CLCEXIT8250: POP CXRETSend_Byte ENDP;*********接收一个字节子程序,接收字节在A中,接收失败置1CY*********Receive_Byte PROC NEAR MOV DX,LSR Receive1: IN AL,DX TEST AL,1 JZ Receive1 Receive2: MOV DX,RHR IN AL,DX Receive3: RET Receive_Byte ENDP Exit: MOV AH,4CH INT 21H; IfExit 、InitPCI 、ModifyAddress 子程序请参阅实验二 END START五、实验过程 12、运行程序3、运行“串口助手(ComPort.EXE)”,设置串口(波特率4800,8个数据位,一个停止位,偶校验),打开串口,选择“HEX发送”、“HEX显示”,向8250发送10个字节数据(输入数据之间用空格分隔),是否能接收到10个字节数据,接收到的数据是否与发送数据一致。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生实验报告
3FFH ×不用1.传输线路控制寄存器LCR(3FBH)如图10-1所示。

图10-1
2.除数寄存器DLL、DLH(3F8H,3F9H)
常用波特率及除数对照表如表10-2所示。

表10-2
除数寄存器
波特率(BIT/S)
高字节低字节
04H 17H 110
03H 00H 150
01H 80H 300
00H C0H 600
00H 60H 1200
00H 30H 2400
00H 18H 4800
00H 0CH 9600 3.中断允许寄存器IER(3F9H)如图10-2所示。

图10-2
4.MODEM控制寄存器MCR(3FCH)如图10-3所示。

图10-3
5.9针串口插座(DB-9)外形如图10-4所示,引脚说明如表10-3所示。

图10-4
表10-3
RS-232C信号说
9芯引脚号引脚名称

1 空
2 RXD 接收数据
3 TXD 发送数据
4 DTR 数据终端就绪
5 GND 信号地
6 DSR 数据装置就绪
7 RTS 发送请求
8 CTS 发送允许
9 保护地6.编程提示
(1)程序流程图如图10-5所示。

图10-5 程序流程图
四、实验参考程序
STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
STACK ENDS
CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE
START PROC FAR
PUSH DS ;保存PSP 地址
XOR AX,AX
PUSH AX ;初始化8250为7位数据位,1位停止位,奇校
;验,波特率1200,并设定为内部连接方式MOV DX,3FBH
MOV AL,80H
OUT DX,AL ;设传输线控制寄存器D7为1
MOV DX,3F8H ;设波特率为1200
MOV AL,60H
OUT DX,AL
MOV DX,3F9H
MOV AL,0
OUT DX,AL
MOV DX,3FBH ;设奇校验,1位停止位,7位数据位
MOV AL,0AH
OUT DX,AL
MOV DX,3FCH ;设MODEM控制寄存器发DTR和RTS信号,
MOV AH,14 ;显示“?”
INT 10H
JMP FOREVER
EXIT:MOV AH,4CH ;返回DOS
INT 21H
START ENDP
CODE ENDS
END START
五、实验结论与心得
成绩教师签名批改时间年月日。

相关文档
最新文档