文档库 最新最全的文档下载
当前位置:文档库 › 串行接口应用

串行接口应用

串行接口应用
串行接口应用

Overview

The MCS?-51 family contains a flexible set of microcontrollers. These 8-bit embedded controllers have different features such as on-chip program memory, data RAM and some even have integrated A/D converters. One feature that all of the microcontrollers in the

MCS?-51 family have in common is an integrated UART (Universal Asynchronous Receiver Transmitter).

This guide has been designed so that any programmer with basic microcontroller experience can learn how to use the general features of the on-chip UART in a MCS?-51 microcontroller. This document has been created and designed in response to repeated inquires on the usage of the serial port. Working examples have been included and explained to ease the learning process.

The serial port can operate in 4 modes:

Mode 0: TXD outputs the shift clock. In this mode, 8 bits are transmitted and received by the same pin, RXD. The data is transmitted starting with the least significant bit first, and ending with the most significant bit. The baud rate is fixed at 1/12 the oscillator frequency.

Mode 1: Serial data enters through the RXD pin and exits through the TXD pin. In this mode, a start bit of logic level 0 is transmitted then 8 bits are transmitted with the least significant bits first up to the most significant bit; following the most significant bit is the stop bit which is a logic 1. When receiving data in this mode, the stop bit is placed into RB8 in the SFR (Special Function Register) SCON. The baud rate is variable and is controlled by either timer 1 or timer 2 reload values.

Mode 2: Serial data enters through the RXD pin and exits through the TXD pin. In this mode, a total of 11 bits are transmitted or received starting with a start bit of logic level 0, 8 bits of data with the least significant bit first, a user programmable ninth data bit, and a stop bit of logic level 1. The ninth data bit is the value of the TB8 bit inside the SCON register. This programmable bit is often used for parity information. The baud rate is programmable to either 1/32 or 1/64 of the oscillator frequency.

Mode 3: Mode three is identical to mode 2 except that the baud rate is variable and is controlled by either timer 1 or timer 2 reload values.

For more detailed information on each serial port mode, refer to the "Hardware Description of the 8051, 8052, and 80c51." in the 1993 Embedded Microcontrollers and Processors (270645).

Baud Rate Generation Using Timer Two

RCAP2L and RCAP2H are 8-bit registers combined as a 16-bit entity that timer 2 uses as a reload value. Each time timer 2 overflows (goes one past FFFFH), this 16-bit reload value is placed back into the timer, and the timer begins to count up from there until it overflows again. Each time the timer overflows, it signals the processor to send a data bit out the serial port. The larger the reload value (RCAP2H, RCAP2L), the more frequently the data bits are transmitted out the serial port. This frequency of data bits transmitted or received is known as the baud rate.

Table One

Baud Rate Generation Using Timer One

Similar to timer 2, TH1 is an 8-bit register that timer 1 uses as it's reload value. The larger the number placed in TH1, the faster the baud rate. SMOD1 is bit position 7 in the PCON register. This bit is called the "Double Baud Rate Bit". When the serial port is in mode 1, 2 or 3 and timer 1 is being used as the baud rate generator, the baud rate can be doubled by setting SMOD1. For example; TH1 equals DDH and the oscillator frequency equals 16Mhz, then the baud rate equals 2400 baud if SMOD1 is set. If SMOD1 is cleared, for the same example, then the baud rate would be 1200.

Table Two

Baud Rates Missing

Why are some baud rates missing from the table?

If you look at the table carefully, you will notice that some common baud rates are missing in certain scenarios. The reason is, certain microcontroller operating frequencies will only support specific baud rates. Just because a baud rate reload value can be calculated by the previous equations, doesn't mean that the microcontroller can accurately generate that specific baud rate. If you would like to calculate a baud rate that is not in the previous tables, or if you want to find out if a specific baud rate can be accurately generated at a specific operating frequency, follow these steps:

1. Use the appropriate equation to calculate the reload value.

2. Round off the calculated reload value to the nearest whole number.

3. Recalculate the baud rate using the rounded off reload value.

4. Calculate the percent error between the two baud rates by using the following formula:

5. If the percent error is less that 2%, then the rounded reload value is adequate to

generate the specified baud rate. If the error is greater than 2%, this means the baud rate generated by the microcontroller would be different from the baud rate that you

expect to be transmitting and there may be a loss of data in the process.

Common Questions

The intention of this section is to provide quick answers to common problems and questions when trying to set up the serial port in the MCS?-51 family. This has been compiled by Intel employees who technically support the MCS?-51 family of microcontrollers.

1. What is the purpose of using interrupts and/or polling in serial applications? In serial applications, it is necessary to know when data has completed transmission or has completed reception. Whenever data has completed transmission or completed reception, there is a specific bit (flag) that is set when the process has been completed. These two specific bits are located in the SCON register and determine when an interrupt will occur or when the polling sequence should be complete. The bits are RI and TI.

RI is the receive interrupt flag. When operating in mode 0 of the UART, this bit is set

by hardware when the 8th bit is received. In all other UART operating modes, the RI

bit is set by hardware upon reception halfway through the stop bit. RI bit must be

cleared by software at the end of the interrupt service routine or at the end of the

polling sequence.

?TI is the transmit interrupt flag. This bit operates in the same manner as RI except it is valid for transmission of data, not reception. By using either interrupts or polling, it is

necessary to check to see if either of the two bits are set.

?For the case of transmitting data, it is necessary to "watch" to see if the TI bit is set. A set bit has a logic level of 1 and a cleared bit has a logic level of 0. If you try to transmit more data and your previous data has not yet fully been transmitted, you will overwrite on top of it and have data corruption. Therefore, you must only transmit the next piece of data after the transmission of the current data has been completed.

?For the case of receiving data, it is necessary to watch and see if the RI bit is set. This bit serves a similar purpose as the TI bit. Upon reception of data, it is necessary to

know when data has been completely received so it can be read before more data

comes and overwrites the existing data in the register.

2. How does the serial interrupt and polling work?

A serial interrupt will occur whenever the RI or the TI bit has been set and the serial interrupts have been enabled in the IE and SCON register. When TI or RI is set, the processor will vector to location 23H. A common serial interrupt routine would be the following:

...

org 23h

JMP label

...

...

label: subroutine code

...

RETI

After the processor vectors to 23H, it will then vector off to location label which has a physical location defined by the assembler. Label is the start of your serial interrupt subroutine which should do the following:

?Find out which bit caused the interrupt RI or TI.

?Move data into or out of the SBUF register if necessary.

?Clear the corresponding bit that caused the interrupt.

The last line of your serial interrupt subroutine should be RETI. This makes the processor

vector back to the next line of code to be executed before the processor was interrupted.

Polling is easier to implement than interrupt driven routines. The technique of polling is simply to continuously check a specified bit without doing anything else. When that bit changes state, the loop should end. For the case of serial transmission, a section of sample code would be the following:

...

JNB TI, $ ;this code will jump onto itself until TI is set

CLR TI ;clear the TI bit

...

For receive polling, just replace the TI in the previous code with RI. In either case, make sure that after polling has completed, clear the bit that you were polling.

3. When should I choose polling or interrupts?

Polling is the simplest to use but it has a drawback; high CPU overhead. This means that while the processor is polling, it is not doing anything else, this is a waste of the CPU's time and tends to make programs slow.

Interrupts are a little more complex to use but allows the processor to do other functions. Thus, serial communication functions are executed only when needed. This makes programs run faster than programs that use polling.

Common Problems

I am viewing data on an oscilloscope and I am not seeing the data I transmitted; I see other data instead. Why?

You are not waiting for the data to be completely transmitted before you send more data out. The new data is being written on top of the old data before it exits to the serial port. See "What is the purpose of using interrupts and/or polling in serial applications" on page 6.

I am moving data into SBUF, all my registers are configured for serial communications, and nothing is being transmitted. Why?

Chances are that the timer you chose for your baud rate generator was never started or "turned on."

All of the registers are set up correctly, but when I receive data, the microcontroller never vectors to the interrupt routine. Why?

The global interrupt enable bit has not been set or the serial interrupt bit has not been set. The

address of the first line of the serial interrupt routine was not at location 23H.

I am trying to transmit data and all I see on the oscilloscope is a square wave coming out of the Txd pin. Why?

The microcontroller serial port is in mode 0. In mode 0, the Txd pin outputs the shift clock (a square wave). Data is actually transmitted and received through the Rxd pin.

I am receiving data and I move it to another register and read it. The value that I am reading is not the data that I received. Why?

The data that was received was not moved out of the buffer (SBUF) fast enough before the new data arrived. Therefore, part of the old data got overwritten before you transferred it to another register. To avoid this, see "What is the purpose of using interrupts and/or polling in serial applications?" on page 6.

Sample Programs

The following programs have been designed to aid in the understanding of the general setup and transmission of serial applications.

8086接口实验

接口实验部分 实验1 简单I/O口扩展实验 一、实验目的 1、熟悉74LS273,74LS244的应用接口方法。 2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。 五、实验步骤 1、实验接线:(?表示相互连接) CS0 ?CS244; CS1?CS273;平推开关的输出K1~K8 ? IN0~IN7(对应连接); O0~O7?LED1~LED8。 2、编辑程序,单步运行,调试程序 3、调试通过后,全速运行程序,观看实验结果。 4、编写实验报告。 六、实验提示 74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如: K2置于L位置,则对应的LED2应该点亮。 八、程序框图(实验程序名: T244273.ASM)

九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start

实验2 存储器读写实验 一、实验目的 1.掌握PC机外存扩展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8086十六位数据存储的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。 四、实验原理介绍 本实验用到存储器电路 五、实验步骤 1、实验接线:本实验无需接线。 2、编写调试程序 3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。 六、实验提示 1、RAM区的地址为02000H,编程时可将地址设为01000H,则偏移地址为1000H。 2、如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。 3、626 4、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。本实验所进行的内存置数在程序中经常用到。计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。 七、实验结果 在断点1处内存区02000H~020FFH单元为00H;在断点2处偶地址为AAH,奇地址为55H 八、程序框图(实验程序名:RAM.ASM)

8251串行通讯实验

安徽师范大学数计学院实验报告 专业名称11计科 课程微机原理 实验名称串行通信实验姓名 学号110704012

8251 可编程串行口与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 同一控制口,在初始化编程时必须按一定的顺序。如 下面的流程图:

串行接口简介

串行接口简介 串行接口(Serial port)简称串口,是计算机在与外围设备或者其他计算机连接进行数据传送时的一种常用接口方式。 串口通信的特点在于数据和控制信息室一位接一位地传送出去的,若出错则重新发送该位数据,由于每次只发送一位数据,其传输速度较慢,但因为干扰少,所以更适用于长距离传送。 串口已成为大多数计算机的标准配置之一,在许多普通计算机的接口中都能找到。用户只需增加一根连接线即可进行串口通信,不需要增添其他额外设备,所以在工业控制盒通信中得到了广泛的应用,但是一个串口只能与一个设备进行连接和通信,对于某些应用需求这是一个限制。 协议: 串口有多种通信标准和接口形式,如RS-232、RS-422、RS485等,各种形式接口的管脚数量和定义也不尽相同。其中最常用的修订版本是RS-232C。RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。RS-232C是一个已制定很久的标准(RS表示推荐标准;232表示标识符;C表示修改次数),它描述了计算机及相关设备间较低速率的串行数据通信的物理接口及协议。 硬件: EIA RS-232C标准串口常用于连接计算机、打印机和调制解调器等设备。在许多PC机的主板接口上都能找到他们的身影,这是一种D形接口,分别为25针和9针两种形式,如下图所示。 9针串口的9条连接线中包括2条数据线(TD和RD)、5条握手线(RTS、CTS、DSR、CD)、1条信号地线(SG)和1条振铃指示线(RI),这些引线足以包含大多数RS-232接口中使用的核心引线。25针串口是标准的RS-232接口,其引线除了包括RS-232的核心引线集外,还可覆盖标准中规定的所有信号。

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

学生实验报告

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信号,

8251串行通讯实验

8251串行通讯实验 一.基本实验内容: 实现二台PC机之间的双机通讯。即甲机输入的键值发送到乙机CRT上显示,反之亦然。二原理图及连线: 1.8251CS连208~20FH (波特率2400) 2.9芯电缆对接二机的RS-232口 三.参考程序 D8251 EQU 208H Z8251 EQU 20aH DATA SEGMENT MESS DB '按下!后返回DOS.',0DH,0AH,'$' DATA ENDS STACK SEGMENT STA DW 32 DUP() TOP DW STACK ENDS

CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV DX,Z8251 ;初始化8251 MOV AL,40H OUT DX,AL MOV CX,1000h LOOP $ MOV AL,0CEH ;设置为8个数据位,两个停止位波特率因子为16 OUT DX,AL ;无奇偶校验位 MOV CX,1000h LOOP $ MOV AL,25H ;设为请求发送,允许发送,允许接收状态 OUT DX,AL MOV CX,1000h LOOP $ ;NIT 8251 END REC: MOV DX,Z8251 MOV AH,02H WAIT9: IN AL,DX ;有数据送到吗 AND AL,AH JZ SEND ;没有数据送到则跳转至发送 MOV DX,D8251 ;有数据送到则从数据缓冲区读入 IN AL,DX MOV DL,AL

MOV AH,02H ;显示在屏幕上 INT 21H CMP AL,'!' JE ED ;接收到结束符则返回DOS JMP REC ;不是结束符则继续接收 ED: MOV AX,4C00H INT 21H SEND: MOV CX,1000h LOOP $ MOV DX,Z8251 MOV AH,01H WAIT8: IN AL,DX AND AL,AH JZ WAIT8 ;发送缓冲器不空则等待 MOV DL,0FFH MOV AH,06H INT 21H JZ REC ;无键按下则跳回"接收"处 MOV DX,D8251 ;有键按下则发送相应字符 OUT DX,AL CMP AL,'!' ;是结束字符则返回DOS JE ED1 JMP REC ;不是结束字符则跳回"接收"处ED1: MOV AX,4C00H INT 21H MAIN ENDP CODE ENDS

硬件接口应用实验

微机原理与接口技术 实验报告 实验内容:硬件接口应用实验 组别:x 姓名:xxx 班级:xxxxxx 学号:xxxxxx

实验一 8259中断控制器实验 一、实验目的 1、掌握8259的工作原理。 2、掌握编写中断服务程序的方法。 3、掌握初始化中断向量的方法。 二、实验内容 用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。 1、实验设备 微机实验教学系统实验箱、8086CPU模块 2、连接线路 3、编辑程序,编译链接后,调试程序。 4、调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序 停在中断服务程序内的断点处。 三、实验方法 1、设计思路 连线图:

2、程序流程图 图1 8259初始化流程图 四、实验源程序 CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H ;程序初始化 MOV AX,13H OUT DX,AX ;写ICW1 :上升沿触发,单片8259,要写ICW4 MOV DX,4A2H MOV AX,80H OUT DX,AX ;写ICW2 MOV AX,01 OUT DX,AX ;写ICW4 MOV AX,0 OUT DX,AX ;写OCW1 MOV AX,0 MOV DS,AX MOV SI,200H MOV AX,OFFSET HINT

MOV DS:[SI],AX ADD SI,2 MOV AX,CS MOV DS:[SI],AX STI ;开中断,设置IF=1 JMP $ HINT: ;中断服务程序 XOR CX,0FFH MOV DX,4B0H MOV AX,CX OUT DX,AX ;输出高低电平控制LED等的亮灭 MOV DX,4A0H MOV AX,20H OUT DX,AX IRET ;中断返回 CODE ENDS END START 五、实验结果 每按一次单脉冲发生器,发光二极管点亮、熄灭交替进行。 六、思考题 1、将P+连线连接到IR1—IR7任意一个;重新编写程序。 思路:将P+接在IR1上,只要在源程序的基础上,把写ICW2的控制字改为81H,再把向量的入口地址改为0204H即可。 实验现象:每按一次单脉冲发生器,发光二极管点亮、熄灭交替进行。 2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。 思路:将IR0重新接入LED0,设置OCW1为01H,屏蔽中断IR0,则IR0的中断 无法得到响应。 CODE SEGMENT PUBLIC ASSUME CS:CODE ORG 100H START: MOV DX,4A0H ;写ICW1 MOV AX,13H ;上升沿触发,单片8259,要写ICW4 OUT DX,AX MOV DX,4A2H ;写ICW2 MOV AX,80H ;IR0的中断向量码为80H OUT DX,AX MOV AX,01 OUT DX,AX ;一般嵌套,非缓冲方式,非自动EOI MOV AX,01H ;写中断屏蔽字OCW1 OUT DX,AX ;屏蔽IR0中断中断向量存放在(0000H:0204H)

8251可编程通信实验

一、实验目的与要求 了解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

RS232接口是标准串行接口

RS232接口是标准串行接口,其通讯距离小于15 m,传输速率小于20 kb/s。RS232标准是按负逻辑定义的,他的“1”电平在-5~-15 V之间,“0”电平在+5~+15 V之间。虽然RS232应用很广,但由于数据传输速率慢,通讯距离短,特别是在100 m以上的远程通讯中难以让人满意,因此通常采用RS422,RS449,RS423及RS485等接口标准来实现远程通讯。RS485標準的通信最長距離是1200米(4000英呎),或是最多並聯32個通信單元, RS-232、RS-422与RS-485标准及应用 一、RS-232、RS-422与RS-485的由来 RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制 订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品 之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232 通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s, 传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接 收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标 准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向 通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保 护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是 以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或 协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建 立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的 RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公 开的,而ProLINK则是基于Profile上的。 二、RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低 速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯 图1 收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2 脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间 摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无 数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为 2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱 动器负载为3~7kù。所以RS-232适合本地设备之间的通信。其有关电气参数参见表1。 规定RS232 RS422 R485 工作方式单端差分差分 节点数1收、1发1发10收1发32收 最大传输电缆长度50英尺400英尺400英尺 最大传输速率20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压+/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 负载+/-5V~+/-15V +/-2.0V +/-1.5V 表1

8250串口

一、实验目的 1、熟悉串行通信的一般原理和8250的工原理。 2、了解RS--232串行接口标准及连接方法。 3、掌握8250芯片的编程方法。 二、实验内容 在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,如通讯正确则下位机返回一个同样的字符,如果不正确,则无返回或不相同。 三、实验原理介绍 实验原理图见8250串行接口电路。由MAX232完成RS232电平和TTL 电平的转换,由8250完成数据的收发。8250内部有10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。 四、实验步骤 1、实验接线 利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2) 2、编写程序。 3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。 4、实验箱退出86编译系统,启动实验六的上位机驱动程序 T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。欲退出T6UP.EXE,按回车键。 五、实验提示 实验中,通讯波特率选用9600bps。上下位机均采用查询方式。8250的端口地址为0480起始的偶地址单元。 实验中,上位机向下位机发送一个字符,下位机将接收到的字符返回。事实上这就实现了串口通信的基本过程。掌握了此实验中的编程方法再编制复杂的串行通信程序也就不难了。 串行通信和并行通信是计算机与外围设备进行信息交换的基本方法,二者有不同的特点。简而言之,前者电路及连线简单,最少用三根线就可以实现串口通信,但通信速率慢,适用于长距离慢速通信;后者电路及连线复杂,成本较高,但通信速率快,适用于短距离高速通信。 六、程序框图8250.ASM

串行通信接口标准详解

几种串行通信接口标准详解 在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。远距离串行通信必须使用Modem,增加了成本。在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m=和远距离(>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。 1977年EIA制定了RS-449。它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。另外,还有RS-485,它是RS-422的变形。RS-422、RS-423是全双工的,而RS-485是半双工的。 RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。 RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。 因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。 串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样 一.RS-232-C详解 串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C 标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都

电脑串口介绍_DB9_DB25

串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。 RS-422:为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。 RS-485:为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。 Universal Serial Bus(通用串行总线)简称USB,是目前电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,

北理工微机原理实验三 使用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没读走前一个字符,下一个字符又接收到,称为溢出错误。

I2C串行接口介绍

I2C串行总线通信原理

采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。 常用的串行扩展总线有:I2C (Inter IC BUS)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线等。本章仅讨论I2C串行总线。

一、IIC概述 IIC(Inter-Integrated Circuit)总线,许多文献写作I2C,主要用于同一电路板内各集成电路模块(IC)之间的连接。IIC采用双向2线制串行数据传输方式,简化IC之间的通信连接。IIC协议是PHILIPS公司于二十世纪八十年代初提出,其后,PHILIPS和其他厂商提供了种类丰富的IIC兼容芯片。目前,IIC总线标准已经成为世界性的工业标准。各大半导体公司推出了大量的带有IIC接口的芯片,如RAM、EEPROM、Flash ROM、A/D、D/A转换、 LED/LCD驱动、I/O接口、实时时钟等。

二、IIC总线特点 在硬件结构上,它采用数据(SDA)和时钟(SCL)两根线来完成数据的传输及外围器件的扩展,任何一个具有IIC总线接口的外围器件,不论其功能差别有多大,都具有相同的电气接口,因 此都可以挂接在总线上,使其连接方式变得十分 简单。 对各器件的寻址是软寻址方式,因此节点上没有必须的片选线,器件地址给定完全取决于器件 类型与单元结构,这也简化了IIC系统的硬件连接。

另外IIC总线能在总线竞争过程中进行总线控制权的仲裁和时钟同步,并且不会造成数据丢失,因此由IIC总线连接的多机系统可以是一个多主机系统,支持多主控。 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

实验五:串行接口输入输出实验

实验五串行接口输入/输出实验 一、实验目的 1、学习TEC-XP+教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口芯片的设置和使用方法。 二、实验说明 1、TEC-XP+教学计算机的I/O结构 TEC-XP+教学计算机配置有COM1和COM2两个串行接口,其中COM1是TEC-XP+默认的标准接口,与PC终端相连接,监控程序负责对COM1进行初始化和使用管理。COM2预留给用户扩展使用,监控程序不能识别COM2,也不对COM2进行任何操作,用户需要对COM2进行初始化和使用管理。COM1和COM2均由可编程串行通信接口芯片intel8251芯片构成。 2、Intel8251的组成及控制和使用方法 可编程串行通信接口芯片Intel8251支持同步和异步两种通信方式。在异步方式下,波特率为0~19.2Kbps,数据位可为5、6、7或8位,可设1个奇偶校验位,1个起始位,1个、1.5个或2个停止位。Intel8251内部有7个功能模块负责实现与CPU的数据交换以及与I/O设备的数据通信功能,内部有6个寄存器,其中与异步通信方式的有关的寄存器有5个,即模式寄存器、控制寄存器、状态寄存器、数据发送寄存器和数据接收寄存器。 模式寄存器的功能是设定intel8251的工作模式,控制寄存器的功能是控制intel8251的数据发送和接收等工作过程,状态寄存器的功能是反映intel8251数据发送和接收等工作的状态,各寄存器的格式如图5-1、图5-2和图5-3所示。当CPU把需发送的数据写入数据发送寄存器后,intel8251将自动把数据组成帧并逐位发送出去。Intel8251能自动完成数据接收操作,并把接收到的数据存放在数据接收寄存器中,CPU 从中读取即可。 图5-1模式寄存器格式图5-2 控制寄存器格式 图5-3 状态寄存器格式 CPU对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。对状态寄存器和数据接收寄存器只能读出,不能写入。Intel8251使用2个地址来访问内部的寄存器,其中用偶地址访问数据发送寄存

串口详细介绍

1、串口的应用 它是一个数据通信的协议,在实际应用中:对设备运行日志的数据采集,另一个就是程序的调试。 这里所说的串口是RS232电平的。 2、通信的相关概念 1)全双工:在同一时刻,既能接收数据同时还可以发送数据 半双工:在同一时刻,只能接收数据或者发送数据 2)同步:在物理连接上是有一条时钟线的,用这种通信方式就必须有一个主机,因为时钟是由主机控制的

这个只是一个简单的串口应用,实际的串口是有9条线连接的 TTL:直接是有MCU输出的 ‘1’:电压范围——2.5~3.3V(主要是指ARM芯片),4~5V(主要是指51内核的芯片) ‘0’:电压范围——0.5~0V(这个是包含所有的芯片) 这里所说的电压范围是在实际的硬件设计中要保证的。 232:这个是经过232芯片之后的电平 ‘1’:-3~-15V ‘0’:3~15V 在实际中测试得到的电平电压是9V和-9V

5,数据传输的协议:(是保证数据发送和接收一致,但是对数据的含义没有规定)起始位数据位奇偶校验位停止位 所占位数15~811/2电平00/10/11 常用协议格式 1+8+0+1=10位 起始位:表示一帧数据的开始 数据位:发送的有效数据 奇偶校验位:检验有效数据是否传输正确,可靠性不高 停止位:表示一帧数据的结束 总线空闲:总线上没有数据传输(高电平) 开始位:0--低电平(空闲态检测到下降沿) 数据位:(用户所要发送的数据)5~8(7/8)--ASCII码(8位)--字节(8位)奇偶校验位:判断数据位中1+奇偶校验位中的1必须为奇数/偶数。 奇校验:数据位中1+奇偶校验位中的1必须为奇数。 偶校验:数据位中1+奇偶校验位中的1必须为偶数 停止位:1--高电平 6,波特率 相当于串口发送的速率 串口每秒钟发送的位数 常见:48009600115200 注意:两个设备的波特率必须相同

实验六 双PC机串口通信

实验六双PC机串口通信 一、实验目的和要求: 1、熟悉串口通信的基本原理,掌握RS-232接口标准以及DB9的主要引脚功能。 2、初步掌握可编程串行接口芯片的使用方法。 3、掌握用汇编语言进行串口编程的方法。 4、熟悉汇编语言程序的上机过程。 二、实验环境 1、硬件:PC机和RS-232接口连线。 2、软件:(1)汇编语言程序开发平台:Win2000/WinXP+集成开发工具VisualASM 1.0。 (2)汇编语言程序测试平台:Win98/DOS。 三、实验内容 甲机:接收键盘上输入的字符并通过串口发送到乙机。 乙机:接收甲机发送来的字符并显示到屏幕上。 四、实验原理 1、异步串行通信 串行通信是CPU与外部设备之间进行信息交换的基本方法。采用串行通信时,构成一个字符或数据的各位按时间先后,从低位到高位一位一位地传送,与并行通信相比,它占用较少的通信线,因而使成本降低,而且适合较远距离的传输。串行通信常作为计算机与低速外设或计算机之间传输信息用。当传输距离较远时,可采用通信线路(如电话线、无线电台等)。由于它占用的通信线路较少,所以应用较广泛。在使用时,发送及接收端必须具备并行-串行转换电路。图1是串行通信的示意图。 图1 串行通信示意图 串行通信包括异步通信和同步通信两种通信方式。一般情况下使用串行异步通信,本实验采用的就是这种通信方式。在异步串行通信中,每个字符作为一个独立的整体进行发送,字符之间的时间间隔可以是任意的。为了实现同步,需要在每个字符的第一位前加1位起始位(逻辑1),并在字符的最后一位后加1位、1.5位或2位停止位(逻辑0)。异步通信格式如图2所示。 图2 异步通信格式 2、RS-232-C接口标准 EIA RS-232-C是一种串行异步通信接口标准,其常用的连接器有两种:DB-25型和DB-9

(仅供参考)微机原理实验三

实验三使用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 连在一起。

RS-485串行接口标准

RS-485串行接口标准 1、平衡传输 RS-485数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。 2、RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。 RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑 鳵S-422是4k健; 旧峡梢运礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。 RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 在MCU之间中长距离通信的诸多方案中、RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域、但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷、一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障、因此提高RS-485总线的运行可靠性至关重要、 1 RS-485接口电路的硬件设计

8250串口实验

实验七 8250串口实验 一、实验目的 1、熟悉串行通信的一般原理和8250的工原理。 2、了解RS--232串行接口标准及连接方法。 3、掌握8250芯片的编程方法。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块。 三、实验原理介绍 1.实验原理图见8250串行接口电路。由MAX232完成RS232 电平和TTL电平的转换,由8250完成数据的收发。8250内部有 10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进 行初始化或读出写入操作就可以完成与计算机的通信。由于不能 同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。 8250串行接口电路 (1)电路原理:该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。原理图如下: (2)电路测试:见整机测试 2.程序框图(8250.ASM)

3.程序代码 ;******************************************* code segment ;define data segment assume cs:code org 0100h start: mov bx,0480h mov dx,bx add dx,6 mov ax,80h out dx,ax mov dx,bx mov ax,0ch ;000ch---9600 ,clk=4.77MHZ/4 ; AL=4770000/16/9600/4=8 out dx,ax add dx,2 mov ax,0h out dx,ax add dx,4 mov ax,07 ;no pe,8 bit, 1 stop out dx,ax mov dx,bx add dx,2 ;no interupt mov ax,0 out dx,ax add dx,8h in ax,dx mov dx,bx in ax,dx crd: call recv call send jmp crd send: push ax mov bx,0480h mov dx,bx

相关文档
相关文档 最新文档