8250A的串行异步通信实验(自发自收)实验二
第九章可编程串行异步通信接口芯片8250
数据传送效率低.与并行通信比,这也这是显而易见的.这也是串行 通信的主要缺点.
如果一组数据的各数据位在多条线上同时被传输,这种传输方式 称为并行通信.并行通信时数据的各个位同时传送,可以字或字 节为单位并行进行. 其特点是:
间为高电平禁止外部收发器对系统 ❖ 接收移位寄存器
总线的驱动
❖ SIN:串行输入信号
❖ CSOUT:片选输出信号
❖ RCLK:接收时钟信号
❖ XTAL1、XTAL2:外部时钟端
❖ 波特率发生器
❖ BAUDOUT:波特率输出
2.内部结构
数
D0 ~ D7
据 总
线
缓
冲
器
内
部
CS0
数
CS1
据
CS2 O
总
A2 A1
0 TSRE THRE Байду номын сангаасI FE PE OE DR
1:接收数据就绪 1:溢出错 1:奇偶较验错 1:幀错误
1:正在传输中止符 1:发送缓冲器空 发送移位寄存器空
3、分频次数锁存器DLH和DLL 〔3F9H,3F8H 1.8432MHZ基准时钟,进行1 ~ 65535次分频后由BAUDOUT引脚输出的
三、8250的管脚与结构 1.管脚
D0
1
D1
2
D2
3
D3
4
D4
5
D5
6
D6
7
D7
8
R CLK
9
SIN
10
SO UT
11
C S0
12
C S1
13
接口实验报告8251
实验报告实验名称__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信号区分;状态端口只能读不能写,控制端口只能写不能读。
第十九讲 可编程接口芯片及应用(8250A)(2)
第八章 可编程接口芯片及应用技术
4)具有独立的接收时钟输入引脚。 )具有独立的接收时钟输入引脚。 5)有CPU发向调制解调器的信号,还有能接收 ) 发向调制解调器的信号, 发向调制解调器的信号 并记录由调制解调器发送到计算机的状态信息。 并记录由调制解调器发送到计算机的状态信息 。 可方便地与MODEM相连。 相连。 可方便地与 相连 6)具有带优先级排序的中断系统,有多种中断 )具有带优先级排序的中断系统, 源。 7)具有可记录所有状态信息的状态寄存器和检 ) 查起始位出错的能力。 查起始位出错的能力。
图 6 33 传 输 线 控 制 寄 存 器 LCR LCR
的 0= 1= 0= 1= 00=5 01=6 10=7 11=8 1 (D4=1,D3=1, 0 , 0=1 1= 6~8 SOUT 2 的 5 1.5
的 控 制 字 格
, D4=0,D3=1, 1) 0= 1=
(DLAB) 0= RBR TBR IER 1= 存器 DLL DLH
第八章 可编程接口芯片及应用技术
第十九讲 7.3 可编程串行输入 输出接口芯片 可编程串行输入/输出接口芯片 输出接口芯片8250A
7.3.2 Intel 8250A
返回本章首页
第八章 可编程接口芯片及应用技术
7.3.2 Intel 8250A
1.主要功能 . INS 8250的主要功能有: 的主要功能有: 的主要功能有 1)8250支持异步通信规程。 ) 支持异步通信规程。 支持异步通信规程 2)8250的异步通信的数据格式可由 ) 的异步通信的数据格式可由 用户编程选择。 用户编程选择。 3)内部具有可编程时钟产生电路。 )内部具有可编程时钟产生电路。
AL,0EH ;7位字符,1位停止位,奇校验 , 位字符, 位停止位 位停止位, 位字符 DX,AL ;写入 , 写入LCR控制字 控制字 DX,2FCH , AL,03H , DX,AL , DX,2F9H ;设定 , 设定IER口地址 口地址 ;禁止一切中断 ;设定MCR口地址 设定 口地址 ;置MCR控制字 控制字
试验一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一致。
串行口自发自收实验 单片机程序
图3波形脉冲宽度测试原理
评分表
序号
评分项目
分值
评分
备注
1
按键的读取
20
1、电路图的理解
2、读键准确性
2
静态显示
20
1、电路图的理解
2、显示的准确性
3、显示数据的处理
3
串行口
20
1、串行口的设置
2、串行口的发送
3、串行口的接收
#include<reg51.h>
unsigned char code led_code[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,
{
unsigned int i;
unsigned char j;
for(i=x;i>0; i--)
for(j=110;j>0;j--);}void mai Nhomakorabea(void)
{
TMOD=0x20;
SCON=0x50;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
EA=1;
ES=1;
TR1=1;
dis_buf[0]=led_code[16];
串行口自发自收实验
实验内容:
根据电路如图1所示编写程序。实现当键1按下,单片机串行口应用方式1连续向外发送“0、1、2、3”四字节数据,通过串行口单片机自发自收改信号,将接受的数据显示出来;当键2按下,单片机串行口应用方式1连续向外发送“4、5、6、7”四字节数据,通过串行口单片机自发自收改信号,将接受的数据显示出来;当键3按下单片机串行口应用方式1连续向外发送“8、9、a、b”四字节数据,通过串行口单片机自发自收改信号,将接受的数据显示出来;当键4按下,单片机串行口应用方式1连续向外发送“c、d、e、f”四字节数据,通过串行口单片机自发自收改信号,将接受的数据显示出来。
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的串行接口应用实验
北理工微机原理实验三--使用8251A的串行接口应用实验本科实验报告实验名称:实验三使用8251A的串行接口应用实验课程名称:计算机原理与应用实验实验时间:任课教师:实验地点:实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:1. 实验目的1) 掌握串行通信原理及半双工和全双工的编程方法;2) 掌握用8251A接口芯片实现微机间的同步和异步通信;3) 掌握8251A芯片与微机的接口技术和编程方法。
2. 实验原理和内容8251A是一种可编程的同步/异步串行通信接口芯片,具有独立的接收器和发送器,能实现单工、半双工、双工通信。
1) 8251A内部结构8251A通过引脚D0~D7和系统数据总线直接接口,用于和CPU传递命令、数据、状态信息。
读写控制逻辑用来接收CPU的控制信号、控制数据传送方向。
CPU对8251A的读写操作控制表如表3-4所示。
表3-4 CPU对8251A的读写操作控制表2) 8251A的方式控制字和命令控制字方式控制字确定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。
可编程串行通信接口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)
微型计算机本身配置了两个串行通信接口,分别为串行口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
微机接口实验8251 北工大
8251A 基础实验:一.实验目的:1.了解串行通信的基本原理。
2.掌握可编程串行通信接口芯片8251A的工作原理和编程方法。
二、实验内容:1.异步串行自发自收实验:(1)使用8251A发送固定二进制数在接收回来,将收到的数加1后显示在LED上。
(2)通信协议:异步,波特率为4800bps,波特因子为16,8位数据位,1位停止位,无奇偶校验;(3)采用查询方式实现。
2.RS-232通信实验:(1)PC机与试验箱通过串行进行通信,PC机向实验箱发送字符,实验箱上的8521A接收到字符后再原样发回PC机;(2)通讯协议自定;(3)采用中断方式实现。
三.实验环境1.硬件:GX-8000实验箱,USB电缆,自锁紧导线;2.软件:icode集成开发环境。
四:实验提示1.按键中断实验(1)8251A是一个28管脚的双列直插芯片,插在实验箱的40脚自锁紧通用插座上,实验中需用导线手动连接包括电源、地、数据总线、时钟信号、发送线、接收线在内的所需要的所有线路。
参考连线如图3.18所示。
(2)参考程序流程图如图3.19所示:(3)在对8251A进行初始化操作前必须确保其可靠复位,方法是:向8251A控制口连续写入三个0,然后再写入复位命令字40H。
注意:对8251A的控制口进行一次写操作,需要16个时钟信号的写恢复时间。
参考代码如下:其中,DELAY用于实现延时,其定义如下:(4)在程序设计过程中,可以使用单步调试,通过观察程序运行过程中寄存器值的变化调试程序错误,也可以进一步理解8251A 的控制原理。
(5)程序如下:DATA SEGMENT ;数据段DATA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DATA START:MOV DX,28BH ;初始化8253MOV AL,00010110BOUT DX,ALMOV DX,288HMOV AX,13OUT DX,ALMOV AL,80H ;初始化8255 MOV DX,283HOUT DX,ALMOV DX,299H;8251A的控制口地址MOV AL,0OUT DX,AL ;想8251A的控制口写0 CALL DELAY;延时MOV AL,0OUT DX,AL;想8251A的控制口写0 CALL DELAYMOV AL,0OUT DX,AL;向8251A的控制口写0 CALL DELAYMOV AL,40H;写复位命令OUT DX,ALCALL DELAYMOV DX,299H ;初始化8251MOV AL,01001110BOUT DX,ALCALL DELAYMOV DX,299HMOV AL,00010111BOUT DX,ALCALL DELAYMOV DI,3000H ;指针初值MOV CX,000AH ;接收数据个数A1:MOV DX,299HIN AL,DX ;TxRDY=1?TEST AL,01HJZ A1MOV DX,298HIN AL,DX ;8251数据口读入数据MOV DX,CXMOV CL,9 ;发送数MOV AL,CLOUT DX,ALMOV DX,299HA2:IN AL,DX ;RxRDY=1?TEST AL,02HJZ A2MOV DX,298HIN AL,DXINC CLMOV DX,280HMOV AL,CLOUT DX,ALJMP A1DELAY PROCMOV CX,02HLOOP $RETDELAY ENDPCODE ENDSEND START2.RS-232通信试验(1)8251A要实现与PC通信,需要通过RS-232模块将TTL电平信号转换为RS-232电平信号。
电子科技大学中山学院学生实验报告
电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验班级:姓名:学号:组别:实验名称:实验四可编程并行接口8255(方式0)实验时间:成绩:教师签名:批改时间:一、实验目的和任务掌握8255方式0的工作原理及使用方法。
二、实验内容1.实验电路如图4-1,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2. 编程从8255C口输入数据,再从A口输出。
图4-1 图4-2编程提示:1)8255控制寄存器端口地址28BHA口的地址288HC口的地址28AH2)参考流程图(见图4-2)三、实验过程和数据记录1.源程序:电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:微机原理与应用实验班级:姓名:学号:组别:实验名称:实验五七段数码管实验时间:成绩:教师签名:批改时间:一、实验目的和任务掌握数码管显示数字的原理。
二、实验内容1.静态显示:按图5-1连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
2.动态显示:按图5-2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。
编程在两个数码管上显示“56”。
3.动态显示:使用图5-2的电路,编程在两个数码管上循环显示“00-99”。
图5-1 图5-2编程提示:1)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
北京交通大学微机原理实验报告
微机原理实验报告隋伟08212013自动化0801目录一、I/O地址译码与交通灯控制实验 (3)二、可编程定时器/计数器(8253) (6)三、中断实验(纯DOS) (11)四、模/数转换器…………………………………………………………18五、串行通讯……………………………………………………………16六、课程综合实验(抢答器) ……………………………………………28七、自主设计实验——LED显示 (32)八、参考文献 (35)一、I/O地址译码与交通灯控制实验一.实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验内容如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
8255动态分配地址: 控制寄存器: 0C40BHA口地址: 0C408HC口地址: 0C40AH三.程序流程图和程序清单DATA SEGMENTX DB ?DATA ENDSSTACK1 SEGMENT STACKDW 100H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATAMOV DS,AX;---------------INIT---------------- MOV DX,0ce0BH ;写控制字MOV AL,80HOUT DX,ALL3: MOV DX,0ce0AHMOV AL,24H ;南北绿灯,东西红灯亮OUT DX,ALCALL DELAYCALL DELAY ;长延时,3s左右CALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAYMOV BL,8MOV AL,04HL0: XOR AL,40H ;南北黄灯闪,东西红灯亮OUT DX,ALCALL DELAY ;延时CALL DELAYDEC BL ;闪烁几次JNZ L0CALL DELAYMOV AL,81H ;南北红灯亮,东西绿灯亮OUT DX,ALCALL DELAYCALL DELAYCALL DELAY ;长延时,3s左右CALL DELAYCALL DELAYCALL DELAYCALL DELAYMOV BL,9MOV AL,80HL1: XOR AL,02H ;南北红灯亮,东西黄灯闪OUT DX,ALCALL DELAY ;延时CALL DELAYDEC BLJNZ L1 ;闪烁几次CALL DELAYMOV DL,0FFHMOV AH,06HINT 21HJZ L3 ;六号功能判断若无字符输入ZF=1继续循环;------------------------------MOV AH,4CHINT 21H;-----------延时函数------------DELAY : PUSH CXPUSH DXMOV CX,1FFFHLOP1: MOV DX,0FFFFHLOP2: DEC DXJNZ LOP2LOOP LOP1POP DXPOP CXRETCODE ENDSEND START四.实验遇到的问题和解决方法问题:绿灯灭后黄灯没有出现闪烁的效果,一直保持常亮解决方法:修改程序,通过利用异或和循环指令使绿灯灭、红灯亮后,黄灯口的状态从0到1循环变换,并通过调用延迟子程序,从而实现人眼可辨的黄灯闪的效果。
双机串行通信的设计与实现
双机串行通信的设计与实现一、设计要求1.单机自发自收串行通信。
接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。
2.双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的8251A的接收端接收,然后在屏幕上显示出来。
二、所用设备IBM-PC机两台(串行通信接口8251A两片,串行发送器MC1488和串行接收器MC1489各两片,定时器/计数器8253,终端控制器8259等),串口线一根串行直连电缆用于两台台电脑通过串行口直接相连,电缆两端的插头都是9 针的母插头:三、硬件方案1.设计思想计算机传输数据有并行和串行两种模式。
在并行数据传输方式中,使用8条或更多的导线来传送数据,虽然并行传送方式的速度很快,但由于信号的衰减或失真等原因,并行传输的距离不能太长,在串行通信方式中,通信接口每次由CPU得到8位的数据,然后串行的通过一条线路,每次发送一位将该数据放送出去。
串行通信采用两种方式:同步方式和异步方式。
同步传输数据时,一次传送一个字节,而异步传输数据是一次传送一个数据块。
串口是计算机上一种非常通用设备串行通信的协议。
大多数计算机包含两个基于RS232的串口。
串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
8251串口实验:自发自收
(三) 串口自发自收实验一、实验目的掌握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短接。
北理工微机原理与接口技术之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,若接收到字符,则顺序往下执行。
串行通信8250
8250的内部寄存器
中断允许寄存器(3F9H/2F9H)
0 0 0 0 D3 D2 D1 D0 Ô Ê Ê Ô Ê Ô Ê Ô Ð í í Ð í Ð í Ð ¼ Ê Ó Õ º ¹ ³ å Æ ÷ú Â ¢ Ë · Í ± £ ³ Ö Æ ÷Õ ¾ Ó Ê ¼ Õ Ê ý ½ Ý ³ ö ´ í MODEM× ´ Ì ¬ Ö Ð Ð Ö Ð Ö Ä · ¶ Ï Ï ¶ Ï ¶ ä Ö ± Ð ¶ Ï
微机原理实验+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实验中遇到问题及分析:在软件编程的过程中,因为是参考书上的程序,所以没有报错。
接口实验教程--教师
第一章验证性实验实验一串行接口(Ins8250)通信实验一、实验目的了解RS-232-C通信标准;进一步熟悉Ins8250芯片工作原理;掌握其接口电路设计和编程方法。
二、实验内容利用实验系统上的8250,通过自发自收方式,将接收到的ASCII 码(A~F、0~9)在LED数码管上显示出来。
三、实验电路原理图译码单元:译码器输入A、B、C与系统地址线A3、A4、A5相连;译码器控制端G与系统地址总线A0下方的G相连。
8250单元:输入SIN与输出SOUT相连;片选CS与译码单元的Y4相连;时钟输入XTAL1与393分频单元的T2(2MHz)相连;地址A2与系统地址线A2相连;写信号IWR与控制总线IOWR相连;读信号IRD与控制总线IORD相连;复位信号RESET与LED数码管上方的RESET相连;数据线D0~7与数据总线单元中的任一8芯插座相连;四、实验程序PORT EQU 0FFE0H;8250的端口地址ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H BUF DB 08H,02H,05H,09H,10H,10HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3DA9H;8250初始化程序S1:LCR7←1除数因子低8位/高8位;波特率4800,CLK=49125MHz/8数据格式→LCR ;8个数据位,1个停止位,无校验AL→ IER ;禁止中断AL→ MCR ;DTR=1,RTS=1,自环;8250发送程序SENDA5:MOV DX,PORT+5;LSRIN AL,DXAND AL,20HTEST AL,20H ;THR是否为空IZ SENDA5MOV DX,PORT;THR/RBRMOV AL,0A5H;待发送数据OUT DX,AL;发送数据;8250接收程序RECEA5:MOV DX,PORT+5;LSRIN AL,DXAND 81HTEST AL,01H ;RBR是否满IZ RECEA5MOV DX,PORT;RHR/RBRIN AL,DX;接收数据CMP AL,0A5HJNZ ERRORMOV BUF,09HMOV BUF+1,00HMOV BUF+2,00HMOV BUF+3,0DHMOV BUF+4,0AHMOV BUF+5,05hL0:CALL DISJMP L0ERROR:MOV BUF,0EHMOV BUF+1,10HMOV BUF+2,10HMOV BUF+3,10HJMP L0;显示子程序DIS:MOV CL,20HMOV BX,OFFSET BUFDIS1:MOV AL,[BX]PUSH BXMOV BX,OFFSET LEDXLATPOP BXMOV DX,ZXKOUT DX,ALMOV AL,CLMOV DX,ZWKOUT DX,ALMOV CX,0100HDELAY:LOOP $POP BXCMP CL,01HJZ EXITINC BXSHR CL,1JMP DIS1EXIT: MOV AL,00HMOV DX,ZWKOUT DX,ALRETCODE ENDSEND S1assume cs:codecode segment publicpad equ 04a0hpbd equ 04a2hpcd equ 04a4hpcc equ 04a6horg 100hstart: mov dx,pcc ;控制寄存器地址mov ax,80h ;设置为A口输出,C口输出out dx,axmov bh,01hlp2: mov bl, 00hmov cx,08hlp1: mov dx, pcdmov al, blout dx, almov dx, padmov al, bhout dx, alpush cxcall delaypop cxinc blloop lp1sal bh, 1cmp bh, 0jne lp2jmp startdelay: mov cx,8235h ;500ms delaydelay1: nopnop六、思考与习题1.分析握手信号的作用,不用握手信号时结果如何?2.如果不判断THR、RBR的状态,可能会出现什么结果?3.如果通信双方的数据格式或波特率不一致,结果如何?实验二并行接口(Intel8255A)实验一、实验目的熟悉8255A的工作原理及应用方法;掌握其接口电路设计及编程方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV BUF+1,00H
MOV BUF+2,00H
MOV BUF+3,0DH
MOV BUF+3,10H
CALL DIS
POP CX
LOOP CJG
;=================================
MOV AL,80H ;写线控制寄存器
INC AX ;调整显示指针
MOV BX,OFFSET BUF+6
CMP AX,BX
JC SERI3
MOV AX,OFFSET BUF
PORT EQU 0ffe0H ;定义8250端口地址
ZXK EQU 0FFDCH ;定义字形端口地址
ZWK EQU 0FFDDH ;定义字位/键扫端口地址
zjk equ 0ffdeh ;定义键入端口地址
MOV BUF+1,10H
MOV BUF+2,10H
MOV BUF+3,10H
MOV BUF+4,10H
MOV BUF+5,10H
;===================================
SERI3: MOV BUF +6,AL
MOV BUF+7,AH
JMP REDIKEY
FUNCKEY: CMP CL,1FH ;判是MON功能键否?
JNZ REDIKEY ;不是MON键循环回去
IN AL,DX
AND AL,01H
TEST AL,01H
JZ NEXT ;若“空”继续读取状态
;====读串行口数据====
;======================================================
STARS: MOV BUF,08H ;DISPLAY 8250-1
MOV BUF+1,02H ;送串行收发启动标志
WATTXD: MOV DX,PORT+5 ;指向发送保持器
IN AL,DX
AND AL,20H
TEST AL,20H
JZ WATTXD ;若“忙”继续读取状态
MOV BUF+3,10H
MONIT: CALL DIS ;退出当前操作
JMP MONIT ;循环显示“good”
;==================================================
MOV DX,PORT ;读串行口数据
IN AL,DX
CMP AL,CL
JZ SERI2 ;发送与接收相等转
MOV BUF,0EH ;不相等则显示ERR
; 2.译码输入B端引入孔与地址线A4引出孔相连
; 3.译码输入C端引入孔与地址线A5引出孔相连
; 4.译码控制端G引入孔与位于系统地址线A0下方的使能控制端G引出孔相连
; 二、8250串行通信单元
; 用若干双头实验导线对8250串行通信单元作如下连接:
MOV AH,88H
DISK4: DEC AH
CMP AH,82H
JZ DISK6
CMP AH,0EH
JZ DISK6
CMP AH,00H
MOV AL,00H ;写线控制寄存器
MOV DX,PORT+1
OUT DX,AL
MOV AL,03H ;定义8个数据位,1个停止位
MOV DX,PORT+3
DISPKEY: CALL DIS;调显示子程序
CALL KEY ;调键扫子程序
MOV AH,AL ;键消抖处理
MOV BX,OFFSET buF+8
MOV CX,[BX]
DISK7: mov buF+8,bL
MOV CX,0FFFFH ;发送等待
S50: LOOP S50
POP CX
;====读取状态=====
NEXT: MOV DX,PORT+5 ;判接收保持器
;====发送键值===
MOV AL,CL
MOV DX,PORT
OUT DX,AL
;=====发送等待===
PUSH CX
MOV BX,OFFSET BUF ;置显示缓冲区指针
MOV BUF+6,BL
MOV BUF+7,BH
;==================================
MOV BUF,11H ;显示8250-1
MOV BUF+2,05H
MOV BUF+3,00H
MOV BUF+4,14H
MOV BUF+5,01H
MOV CX,0088H
CJG: PUSH CX
JMP SERERR ;循环显示“ERR”
SERI2: MOV BX,OFFSET BUF+6
MOV AX,[BX]
MOV BX,AX
MOV [BX],CL ;接收值送显示缓冲区
;======================================================
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 1000H
START: JMP STARS
MOV DX,PORT+3
OUT DX,AL
MOV AL,18H ;寄存器波特率4800
MOV DX,PORT
OUT DX,AL
MOV BUF+1,0AH
MOV BUF+2,0AH
MOV BUF+3,10H
MOV BUF+4,10H
MOV BUF+5,10H
SERERR: CALL DIS ;退出当前操作
; 5.8250 IWR 控制信号引入孔与控制控制总线IOWR引出孔相连
; 6.825250 RESET 复位端引入孔与与位于地址线A8下方的/CLR引出孔相连
; 8.用一8芯扁平线把8250通信单元总线接口与系统总线单元任一8芯座相连
OUT DX,AL
MOV AL,00H ;关中断
MOV DX,PORT+1
OUT DX,AL
;==================================
MOV BL,CL
MOV BH,CH
CMP AH,BH
MOV BH,AH
MOV AH,BL
JZ DISK4
MOV BL,88H
;8250A的串行异步通信实验(自发自收)
;======================================================
; 实验连线:
; 一、译码单元
; 用若干双头实验导线对译码器输入与控制端作如下连接:
; 1.译码输入A端引入孔与地址线A3引出孔相连
; 1.串行接收端引入孔SIN与串行发送端SOUT引出孔相连
; 2.8250片选端引入孔/CS与译码单元输出端Y4引出孔相连
; 3.8250 时钟输入端XTAL引入孔与393分频单元T2引出孔相连
; 4.8250 A2 地址输入端引入孔与系统地址线A2引出孔相连
REDIKEY: CALL DISPKEY ;调显示键扫
CMP CL,10H ;判数字键还是功能键
JNC FUNCKEY ;转功能键处理
;===读取状态===
JZ DISK5
MOV AH,20H
DEC BL
JMP DISK7
DISK5: MOV AH,0FH
DISK6: MOV BL,AH
MOV AH,BH