版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言与接口技术,主讲教师 张玉琢,8.2,8.3,可编程并行接口8255A,可编程计数器/定时器8253,串行通信与异步通信控制器8250的应用,第八章 常用可编程接口芯片,8.1,8. 1可编程计数器/定时器8253,Intel系列的计数器/定时器电路为可编程序间隔定时器PIT(programmable interval timer),型号为8253,改进型为8254。8253具有3个独立的功能完全相同的16位计数器,每个计数器都有6种工作方式,这6种工作方式都可以由其控制字设定,因而能以6种不同的工作方式满足不同的接口要求。CPU还可以随时更改它们的方式和计数值,并读取它们的计数状态。
2、,8253的内部结构:,8.1.1 8253的组成与接口信号, 数据总线缓冲器是三态、双向、8位的缓冲器,用作系统总线和8253的接口,根据CPU的输入或输出指令实现数据传送。数据总线缓冲器具有下面3个基本功能。 (1) CPU向8253所写的控制字写入控制字寄存器。 (2) CPU向某计数器所写的计数初值送到指定的计数器 (3) CPU可读取某个计数器的现行值时,,8.1 8253的组成与接口信号,读/写逻辑接收系统总线的5个输入信号,根据这5个信号产生8253操作的控制信号。 片选信号CS来控制读/写逻辑的工作. 根据A1A0的输入选择3个计数器和控制字寄存器. 通过RD或WR完成指定的读
3、或写操作。,8.1 8253的组成与接口信号,CS、RD、WR、A1和A0组合起来所产生的选择与操作功能:,8.1 8253的组成与接口信号,控制字寄存器存放数据总线缓冲器传送来的控制字。控制字由CPU经过数据总线缓冲器写入 控制字寄存器有3个,都是8位的寄存器,分别对应于3个计数器。 不同的控制字寄存器决定不同计数器的工作方式和所执行的操作。 控制字寄存器只能写入,其值不能读出。,8.1 8253的组成与接口信号,计数器0、计数器1和计数器2是3个独立的计数器,它们的内部结构相同。,8.1 8253的组成与接口信号,计数初值寄存器保存写入计数器的初始值 减1计数器在CLK脉冲和GATE作用下
4、,每来一个CLK就进行递减计数,直至计数值为0,输出OUT信号。 输出寄存器的值跟随减1计数器变化,仅当写入锁存控制字时,减1计数器的当前计数值被锁存(减1计数器可继续计数),CPU读取后,它自动解除锁存状态。在计数过程中,CPU随时可用指令读取任一计数器的当前计数值,这一操作对计数没有影响。,8.1 8253的组成与接口信号,计数器的输入CLK与输出OUT以及门控信号GATE之间的关系,取决于计数器的工作方式。,8253的计数器有6种工作方式:由方式控制字决定 (1)方式0-计数结束中断 (2)方式1-硬件触发单拍脉冲 (3)方式2-频率发生器 (4)方式3-方波发生器 (5)方式4-软件触
5、发选通 (6)方式5-硬件触发选通,8.2计数器的工作方式及其与输入输出的关系,6种工作方式的输出信号,8.2计数器的工作方式及其与输入输出的关系, 只有方式0在写入控制字后,out为低,其他5种方式下,out为高。 方式2、4、5的输出波形是相同的,都是宽度为一个CLK周期的负脉冲。但方式2是连续工作,方式4由软件(设置计数值)触发启动,而方式5由门控脉冲触发启动。 方式5与方式1的工作方式基本相同,但输出波形不同,方式1的输出为宽度是N个CLK脉冲的低电平脉冲(计数过程中输出为低),而方式5的输出为宽度是1个CLK脉冲的负脉冲(计数过程中输出为高)。,8.2计数器的工作方式及其与输入输出的
6、关系,任一种方式,只有写入计数初值后才能开始计数,方式0、2、3和4都是在写入计数值后,计数过程就开始了,而方式1和5需要外部触发启动,才开始计数。 6种方式中,只有方式2和3是连续计数,其他4种方式都是一次计数,要继续计数需要再次编程输入初始值;方式0、4由写入计数值(软件)启动,方式1、5要由外部信号(硬件)启动。,8.2计数器的工作方式及其与输入输出的关系, 在方式0和方式4中,GATE是电平起作用。计数过程受GATE信号的控制,GATE为高电平计数,低电平停止计数。 在方式1和方式5中,GATE是上升沿起作用。在计数过程中,只要GATE出现由低到高的跳变,计数的初值就被装入减1 计数器
7、,并从初值起继续计数。 在方式2和方式3中,GATE信号的上升沿和电平均起作用。高电平计数,低电平停止计数。上升沿则重新装入计数初值,继续计数。,8.2计数器的工作方式及其与输入输出的关系,门控信号GATE的作用,方式0,1,4,5的计数值无自动加载功能,要再次输入初始值才开始新的计数方式0、4是立即有效(即新的计数值写入减1计数器),方式1、5是外部触发后有效,方式2、3具有计数器自动加载功能,输出连续的波形。,8.2计数器的工作方式及其与输入输出的关系,8253的控制字,8.38253的控制字和初始化编程,(1)计数器选择(D7、D6)。 控制字的最高两位决定这个控制字是哪一个计数器的控制
8、字。 三个控制字都由同一地址(控制字寄存器地址)写入,因而由控制字的D7、D6两位来指定该控制字是哪个计数器的控制字。,8.1.38253的控制字和初始化编程,(2)数据读/写格式(D5、D4)。 CPU向计数器写入初值和读取它们的当前值时,有几种不同的格式。读/写数据时, 令D5D4=01,只读/写低8位,则高8位自动置0; D5D4=10,只读/写高8位,低8位就自动为0; D5D4=11时,就先读/写低8位,后读/写高8位。 D5D4=00,则把计数器当前计数值锁存,以后再读取。,8.1.38253的控制字和初始化编程,(3)工作方式(D3、D2、D1)。 8253的每个计数器的6种不同
9、的工作方式,由这3位决定。 (4)数制选择(D0)。 8253的每个计数器有两种计数制:二进制(D0为0)和十进制(D1为1),。在二进制计数时,写入的初值的范围为0000HFFFFH,其中0000H是最大值,代表65536。在十进制计数时,写入的初值的范围为0000H9999H,其中0000H是最大值,代表10000。,8.1.38253的控制字和初始化编程,8253必须首先进行初始化编程。 初始化编程的步骤:先写入控制字,再把计数初值写入计数器的。 控制字和计数初值,通过两个不同的端口地址写入的任一计数器的控制字都是写入控制字寄存器的端口地址,由控制字中的D7、D6来确定是哪一个计数器的控
10、制字; 而计数初值是由各个计数器的端口地址写入的。 问题:一片8253具有多少个端口地址?是哪几个端口地址?用什么来区分?,8.1.38253的控制字和初始化编程,例如1:用计数器0,工作在方式1,按十进制计数,计数值为5080。若该片8253的端口地址为388H38BH,则初始化程序段为:,MOV DX,38BH ;控制端口地址送到DX MOV AL,33H ;控制字 OUT DX,AL;对8253的控制字进行设置 MOV DX,388H MOV AL,80H OUT DX,AL;低8位写入计数器的端口地址 MOV AL,50H OUT DX,AL ;高8位写入计数器的端口地址,8.3825
11、3的控制字和初始化编程,8253任一计数器的计数值,CPU可用指令读取。CPU读到的是执行读取指令瞬间计数器的现行值。但8253的计数器是16位的,所以要分两次读至CPU,因此,若不设法锁存的话,则在读数过程中,计数值可能已变化了。要锁存有两种办法: (1)利用GATE信号使计数过程暂停。 (2)向8253输送一个控制字,令8253的计数值在输出寄存器时锁存。,8.38253的控制字和初始化编程,例如2:读取计数器1的16位计数值,方式,存入CX中,其程序段为:,MOV DX,38BH MOV AL,40H ;计数器1的锁存命令 OUT DX,AL MOV DX,389H IN AL,DX M
12、OV CL,AL IN AL,DX MOV CH,AL,8.38253的控制字和初始化编程,例8.4 8253在IBM PC XT中的应用。,8.48253的应用,IBM PC XT微型计算机中8253的部分线路,由译码电路可知计数器和控制字寄存器的端口地址为40H5FH,BIOS取为计数器040H,计数器141H,计数器242H,控制字寄存器43H。 3个计数器的输入时钟频率均为1.19MHz。 计数器0产生基本时钟 计数器0输出作为18.2Hz方波发生器。用来输出方波作为中断控制器8259的第0号中断信号线(IRQ0)的输入。提供系统计时器的基本时钟,计数器0的计数值为: 1.19M/18
13、.2=65384=216 即写入16位的0,故其控制字为36H。,8.48253的应用,对计数器0初始化的程序段如下: MOV AL,36H OUT 43H,AL ;控制字送端口地址36H. MOV AL,0 OUT 40H,AL ;计数值送计数器 OUT 40H,AL,计数器输出间隔为15S的负脉冲。该脉冲的上升沿触发D触发器。使它对DMA控制器8237的第0号DMA请求信号线DRQ0发出DMA请求信号,8237则依据这个请求信号对动态RAM进行刷新。计数器1的计数值为: 1.191061510-6 =18 故其控制字为54H。对计数器1的初始化程序段为: MOV AL,54H OUT 43
14、H,AL MOV AL,18 OUT 41H,AL,2.计数器控制DRAM刷新,计数器2输出不同频率的方波,经电流驱动器75477放大,推动扬声器发出不同频率的声响。作为机器的报警信号或者伴音信号。计数器2的计数值为可变值。随蜂鸣器声响频率的高低而变,程序设计中让它的取值范围由1到65535,即16位二进制数,故其控制字为B6H。OUT端还和8255A的端口输出PB1相与。所以要使扬声器工作,要求8255A的PB1和PB0同时为。,、计数器控制扬声器,计数器2的鸣响子程序: beep procfar MOV AL,0B6H ;计数器2的控制字 OUT 43H,AL MOV AX,1190H ;
15、设初值为1190,则1000Hz分频值。 OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H ;读取8255A的B端口的状态 MOV AH,AL ;保存AL原来的值 OR AL,3,OUT 61H,AL ;将8255A的PB1和PB0修改为1,打开 ; 蜂鸣器,原来的值保存在AH中, SUB CX,CX ;设置等待500ms的常数值 G7: LOOP G7 DEC BL ;等0.5sBL JNZ G7 MOV AL,AH ;恢复8255B端口的原来值,关蜂鸣器 OUT 61H,AL RET beep endp,8. 可编程并行接口8255A,8255是Intel
16、公司生产的具有可编程能力的并行I/O接口芯片。片内有A、B、C三个位数据端口,口和口为两个数据端口,口可作数据端口,也可作控制端口。,8255的内部组成如图所示,8.2.1 8255的组成与接口信号,端口A(Port A)、端口B(Port B)和端口C(Port C)都是8位的输入或输出端口。 这三个端口分别受A组、B组控制,端口C被分成两部份。 端口C可用来与端口A和B配合工作,用作控制信号输出或状态信号输入。,8.2.1 8255的组成与接口信号,其中的控制寄存器,接收CPU输出的方式命令字,从而控制8255的工作方式。 根据CPU的命令对端口C的每一位实现按位复位或置位。 A组控制电路
17、控制端口A和端口C的上半部(PC7PC4)。 B组控制电路控制端口B和端口C的下半部(PC3PC0)。,8.2.1 8255的组成与接口信号,是一个三态、双向的8位缓冲器,它是8255与系统数据总线的接口。输入输出的数据以及CPU发出的命令控制字和外设的状态信息,都是通过这个缓冲器传送的。,8.2.1 8255的组成与接口信号,控制把CPU的控制命令或输出数据送至相应的端口, 控制把外设的状态信息或输入数据通过相应的端口送至CPU。,8.1 8255的组成与接口信号,(1)A1、A0 端口选择:用来选择A、B、C 3个端口和控制字寄存器。通常,它们与PC微机的地址线A1和A0相连。 (2)CS
18、选片信号:低电平有效,由它启动CPU与8255之间的通信。通常,它与PC微机地址线的译码电路的输出线相连,并由该译码电路的输出线来确定8255的端口地址。,8.1 8255的组成与接口信号,(3)RD读信号:低电平有效,它控制8255送出数据或状态信息至系统数据总线。通常,它与PC微机的IOR相连。 (4)WR写信号:低电平有效,它控制把CPU输出到系统数据总线上的数据或命令写到8255。通常,它与PC微机的IOW相连。,8.1 8255的组成与接口信号,(5)RESET 复位信号:高电平有效,它清除控制寄存器,并置A、B、C 3个端口为输入方式。 实验中常用的复位信号产生电路如图所示。,8.
19、2.1 8255的组成与接口信号,A1,A0和CS,RD,WR及组合所实现的各种功能如下:,8.1 8255的组成与接口信号,8255有3种工作方式,由方式选择控制字来选用: (1)方式0 (Mode 0)-基本输入输出。 (2)方式1 (Mode 1)-选通输入输出。 (3)方式2 (Mode 2)-双向传送。,8.2 8255的工作方式与控制字,8.2 8255的工作方式与控制字,8.2 8255的工作方式与控制字,如:端口C的bit3(PC3) 置位的控制字为00000111B(07H), 它复位的控制字为00000110B(06H)。 注意: C端口的按位置位/复位控制字须跟在方式选择
20、控制字之后写入控制字寄存器。即使仅使用该功能,也应先选送一方式控制字。,8.2 8255的工作方式与控制字,8.2 8255的工作方式与控制字,例:假设某8255的芯片端口地址为FF80HFF83H,端口A工作在方式,输出;端口工作于方式,输入,请写出初始化程序段。,例:8255A的端口的PC2置1,请写出初始化程序段。,例8.1 将8255 C端口的8根I/O线接8只发光二极管的正极(八个负极均接地),用端口C按位置位/复位控制字编写使这8只发光二极管依次亮、灭的程序。设8255的端口地址为380H383H。 本程序要使用8255的2个控制字-方式选择字和端口按位置位/复位控制字。这2个控制
21、字都写入8255的控制字寄存器,由D7位为1或0来区别写入的字是方式选择字还是置位/复位控制字。8255的控制字寄存器的端口地址为383H。方式选择字只写入一次,其后写入的都是置位/复位控制字。,8.2 8255的工作方式与控制字,8255与PC微机的连接及8255 C端口与8只发光二极管 的连接如图。,程序框图,stack segment stack stack dw 32 dup (0) stack ends code segment begin proc far assume ss: stack, cs: code push ds sub ax, ax push ax,MOV DX,38
22、3H ;383H为控制字寄存器的端口地址 MOV AL,80H ;方式选择字 OUT DX,AL MOV AL,1 ;PC0的置位控制字 AGAIN: OUT DX,AL ;点亮一只发光二极管 LOOP $ ;延时 LOOP $ AND AL,0FEH ;置位字改为复位字 OUT DX,AL ;熄灭点亮的发光二极管 ADD AL,3 ;PCiPCi+1,复位字改为下一位的置位字 AND AL,0FH ;保持D7为0,PUSH AX MOV AH,11 ;检查键盘有无输入 INT 21H ;无0送AL,有-1送AL INC AL POP AX JNZ AGAIN ret begin endp c
23、ode ends end begin,8.2.3 3种工作方式的功能,这是一种基本的I/O方式。此时,3个端口都可由程序选定作输入或输出。它们的输出是锁存的,输入是不锁存的。 在这种工作方式下,可以由CPU用简单的输入或输出指令来进行读或写。方式0可用于无条件传输或者查询方式的数据传输。当方式0用于无条件传送方式的接口电路时,不需要状态端口,3个端口都可作为数据端口。,若将例8.1改为C端口方式0输出,则控制程序为: stack segment stack stack dw 32 dup (0) stack ends code segment begin proc far assume ss:
24、 stack, cs: code push ds sub ax, ax push ax MOV DX,383H MOV AL,80H OUT DX,AL,MOV DX,382H ;C端口的端口地址送DX MOV AL,1 ;C端口的输出值 AGAIN: OUT DX,AL LOOP $ ;延时 LOOP $ PUSH AX MOV AH,11 ;11号功能调用:检查键盘有无输入 INT 21H ;无0送AL,有-1送AL INC AL ;有键入,AL=-1,AL增1,AL=0 POP AX JZ BACK ROL AL,1 ;改变C端口的输出值 JMP AGAIN BACK: ret begi
25、n endp code ends end begin,方式0也可作为查询式输入或输出的接口电路,此时端口A和B分别可作为一个数据端口,而取端口C的某些位作为这两个数据端口的控制和状态信息。,这是一种选通的I/O方式。 3个端口分为A、B两组,端口A和端口C中的PC3PC5或PC3、PC6、PC7 3位为A组;端口B和端口C的PC2PC0 3位为B组。 端口C中余下的两位,仍可工作在方式作为输入/输出,由方式控制字中的D3来设定。 在方式1下,8255对输入/输出的数据进行锁存。,方式1输入的状态控制信号及其时序关系如图。,8255A方式1下输入端口C信号意义,(1) STB(strobe) 选
26、通信号,低电平有效。这是由外设送往8255A的输入信号,信号的前沿(下降沿),把输入装置送来的数据送入输入缓冲器,供cpu读取,信号的后沿(上升沿)使INTR有效(置1)。 (2)IBF(input buffer full) 输入缓冲器满信号,高电平有效。这是8255输出给外设的联络信号。外设将数据送至输入缓冲器后,该信号有效,作为对STB的响应信号; RD信号的上升沿将数据送至数据线后,该信号无效。,(3)INTR(interrupt request) 中断请求信号,高电平有效。这是8255的一个输出信号,可用作向CPU申请中断的请求信号,以要求CPU服务。当IBF为高和INTE(中断允许)
27、为高时,由STB的上升沿(后沿)使其置为高电平。由RD信号的下降沿(CPU读取数据前)清除为低电平。 (4)INTE(interrupt enable) 中断允许信号,实现中断方式进行数据传送.它没有外部引脚.端口A中断允许INTEA可由软件对PC4的按位置位/复位来控制。而INTEB 由PC2 的置位/复位控制。为1允许中断。为0禁止中断。,例1定义口、口、口为选通/O口,即方式1,其中口为输入口,口地址为输出口,口高位为输出口,低位为输入口,请编写初始化8255A的初始化程序。方式选择寄存器的端口地址为21BH。,方式1下输入举例,方式1下输入举例,例2:设8255A的H四个端口地址为60
28、H-63H,试编写符合下列情况的初始化程序。将A口、B口设置为方式1,均为输入;PC6,PC7为输出,允许A口中断,禁止B口中断。编写这样的程序段。,方式1输出的状态控制信号及其时序关系如图。,8255A方式1下输出端口C信号意义,(1) OBF输出缓冲器满信号,低电平有效。这是8255输出给外设的。CPU把数据写入指定端口的输出锁存器后,该信号有效,表示外设可以把数据取走。它由ACK的 下降沿即外设取走数据后,使其恢复为高。 (2)ACK(acknowledge) 低电平有效。这是外设发出的响应信号,表示数据已经送到外设。该信号的前沿取走数据并使OBF无效,后沿使INTR有效。,(3)INT
29、R 中断请求信号,高电平有效。当输出装置已经接受了CPU输出的数据后,它用来向CPU提出中断请求,要求CPU继续输出数据。OBF为“1”(高电平)和INTE为“1”(高电平)时,由ACK的后沿(上升沿)使其置位(高电平),WR信号的前沿(下降沿)使其复位(低电平)。 (4)INTEA由PC6的置位/复位控制。而INTEB由PC2置位/复位控制。INTE置位允许中断。,例 8255A可用来作为打印机的接口,利用口工作于方式输出,用查询方式将内存BUFFER中的100个字节数据送打印机输出。 由于端口工作在方式下,要PC7、PC6作为控制信号分别接打印机的数据选通信号DSTB和应答信号ACK,由于
30、采用查询方式输出,还需要用C口的一根线连接打印机的状态(忙)信号BUSY,在这里用PC4。 请编写打印驱动程序。,8255A作为并行打印机的接口,打印机的工作原理:当数据选通信号DSTB有效的时候,数据通过8255A端口送到打印机内部数据缓冲区,同时将忙信号BUSY置1,表示打印机正在处理输入的数据,等到数据全部打印完毕,则撤销忙信号(BUSY清0),同时送出应答信号ACK,表示数据已经送到外设。,串行接口电路的作用是将微型计算机输出的并行数据转换成串行(位串)数据发送出去,以及接收外部的串行数据,并将其转换成并行数据送入微型计算机。PC机采用的串行接口电路是可编程异步通信控制器8250(或N
31、S16450)。,8.3串行通信与异步通信控制器8250的应用,可编程异步通信控制器8250仅完成TTL电平的并串或串并转换。为了增大传输距离,可在串行接口电路与外部设备之间增加信号转换电路。目前常用的转换电路有RS-232收发器、RS-485收发器和MODEM。 PC机的串行口就是使用可编程异步通信控制器8250和RS-232电平转换电路将微型计算机并行的逻辑0和逻辑1电平信号转换为串行的+15V和-15V脉冲波形,通过25针(或9针)D型插座与外部进行串行通信的,8.3.1 PC机的串行口,1.电平转换电路RS-232收发器 (1)RS-232发送器1488和RS-232接收器1489 R
32、S-232发送器1488的逻辑功能: RS-232接收器1489的逻辑功能:,8.3.1 PC机的串行口,(2)MAX202和MAX203,MAX典型工作电路 如右图:,8.3.1 PC机的串行口,2.PC机串行口的串行通信信号,8.3.1 PC机的串行口,可编程串行异步通信控制器8250是PC机串行通信控制器接口电路的核心。8250将外部设备或MODEM通过RS-232接口的串行数据接收进来,并转换成并行的8位数据送往PC机,或者将PC机的并行数据转换成串行数据送往外部设备或MODEM。,8.3.2异步通信控制器8250,1.8250的组成与接口信号 8250主要由6部分组成: 数据总线缓冲
33、器与选择和控制逻辑; 接收控制电路; 发送控制电路; 传送速度控制电路; 调制解调器控制电路; 中断控制电路。,8.3.2异步通信控制器8250,(1)数据总线缓冲器与选择和控制逻辑 数据总线缓冲器接收中央处理器发给8250的命令和数据,8250接收的数据和通信状态信息也通过数据总线缓冲器送到中央处理器。 选择和控制逻辑接收来自系统地址总线的译码信号,选择芯片内部寄存器。 控制逻辑用于对8250各寄存器的读写操作进行控制。,(2) 接收控制电路 接收控制电路由接收缓冲寄存器、接收移位寄存器和接收同步控制电路组成。来自传输线控制寄存器的命令,控制将接收的串行数据移入接收移位寄存器,满8位后送入缓
34、冲寄存器。同步控制电路控制对输入信号的采样。,(3)发送控制电路 发送控制电路由发送保持寄存器、发送移位寄存器和发送同步控制电路组成。来自传输线控制寄存器的命令,控制将发送保持寄存器中的数据送入发送移位寄存器,在发送同步控制电路控制下,将发送移位寄存器中的数据逐位移出,并送上通信线SOUT。 接收电路和发送电路的工作状态都可以从传输状态寄存器中读出。,(4)传输速度控制电路 传输速度控制电路由除数锁存器和波特率发生器组成,编程设定送到除数锁存器中的数值应是通信速率与8250输入时钟的比率,这个比率经波特率发生器产生输入时钟的分频信号,由BAUDOUT输出。 (5)调制解调器控制电路 调制解调器
35、控制电路由控制寄存器、状态寄存器和控制逻辑组成,用于控制调制解调器的工作。如果8250与MODEM相连,则其控制信号由调制解调控制电路产生。,(6)中断控制电路 中断控制电路由中断允许寄存器、中断识别寄存器和中断控制逻辑组成。由于8250支持多种类型的中断,因此,由中断允许寄存器规定允许的中断类型。中央处理器可以通过8250中断识别寄存器来判断当前的中断类型。 中央处理器通过对8250各寄存器的编程来控制串行数据通信。,2.8250的内部寄存器,(1) 数据发送保持寄存器和数据接收缓冲寄存器 数据发送保持寄存器用于暂存将要发送到通信线的1个字节数据,该字节经发送移位寄存器串行发出。数据接收缓冲
36、寄存器保存从接收移位寄存器移入的字节数据,该字节数据正由通信线进入串行接口。,(2)传输线控制寄存器,(3)传输线状态寄存器 提供串行数据传送和接收时的状态,供中央处理器判断。,(4) 除数锁存器 当传输线控制寄存器最高位为1时,中央处理器通过IO口访问除数锁存器的低8位和高8位。 除数锁存器的除数值为: 除数1843200 /(16波特率),(5)中断允许寄存器,8250芯片本身可以处理4种类型的中断,按优先次序排列为: 接收线路出错 接收数据就绪 发送保持寄存器已空 MODEM中断 中断允许寄存器的低4位分别对应上述4种中断,当对应位为1时,则允许对应中断信号输入。,(6)中断识别寄存器,
37、(7) MODEM控制寄存器与MODEM状态寄存器,MODEM控制寄存器如图:,MODEM状态寄存器如图:,PC微型计算机串行口COM1的电路原理图,8.3.3 8250与微型计算机及RS-232接口信号的连接,与COM1的端口地址相对应的寄存器为:,8.3.3 8250与微型计算机及RS-232接口信号的连接,若要选中8250,要求AEN信号必须为低电平; 8250的ADS、DISTR、DOSTR信号都接地,DISTR接至系统控制信号IOR、DOSTR接至系统的控制信号IOW 8250的中断请求信号INTRPT接至中断控制器8259A的IRQ4。,8.3.3 8250与微型计算机及RS-23
38、2接口信号的连接,通信驱动程序的功能及入口参数、出口参数如下表,8.3.4 异步串行通信程序设计,其中AL寄存器作为初始化参数时各位定义为:,例如,若要求以9600波特率进行异步通信,每字符7个数据位,2个停止位,奇校验,允许所有中断,则初始化编程部分的程序段为:,MOV AL,80H ;使传输线控制寄存器最高位置,即DLAB=1 MOVDX,3FBH OUT DX,AL MOV AL,0CH ;置除数锁存器 MOV DX,3F8H OUT DX,AL MOV AL,0,MOV DX,3F9H OUT DX,AL MOV AL,0EH ;设置数据格式 MOV DX,3FBH OUT DX,AL
39、 MOV AL,0FH ;允许所有中断 MOV DX,3F9H OUT DX,AL MOV AL,0BH ;OUT2、DTR、RTS信号有效 MOV DX,3FCH OUT DX,AL,两台PC机之间的通信连接,8.3.5 机之间的通信,.发送程序 程序接收键盘输入的100个字符,并通过8250发送到通信线上。 stack segment stack stack dw 32 dup(0) stack ends code segment begin proc far assume ss:stack,cs:code push ds sub ax,ax push ax MOV DX,38BH ;初始
40、化8250 MOV AL,80H OUT DX,AL,MOV DX,3F8H ;置除数锁存器 MOV AL,17H OUT DX,AL MOV DX,3F9H MOV AL,04H OUT DX,AL MOV DX,3FBH ;设定数据格式 MOV AL,0AH OUT DX,AL MOV DX,3FCH ;置调制解调器控制寄存器 MOV AL,0FH OUT DX,AL OUT DX,AL MOV DX,3F9H ;置中断允许寄存器,禁止8250中断,MOV AL,0 OUT DX,AL MOV CX,100 SEND: MOV AH,1 ;接收键入字符 INT 21H MOV DX,3F8
41、H ;发送键入字符 OUT DX,AL MOV DX,3FDH ;输入传输线状态,判别 SW: IN AL,DX ;发送保持器是否处于空闲状态 TEST AL,20H JZ SW LOOP SEND ret start endp code ends end start,2. 接收程序 程序接收来自通信线上的100个字符,并将这些字符在屏幕上显示出来。 stack segment stack stack dw 32 dup(0) stack ends data segment ERR DB ERRER!$ data ends code segment begin proc far assume
42、ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,ax,MOV DX,38BH ;初始化8250 MOV AL,80H OUT DX,AL MOV DX,3F8H ;置除数锁存器 MOV AL,17H OUT DX,AL MOV DX,3F9H MOV AL,04H OUT DX,AL MOV DX,3FBH ;设定数据格式 MOV AL,0AH OUT DX,AL MOV DX,3FCH ;置调制解调器控制寄存器,MOV AL,0FH OUT DX,AL OUT DX,AL MOV DX,3F9H ;置
43、中断允许寄存器,禁止8250中断 MOV AL,0 OUT DX,AL MOV DX,3F8H ;空读一次 IN AL,DX MOV CX,100 REC: MOV DX,3FDH ;判断输入状态 RW: IN AL,DX TEST AL,01H JZ RW,TEST AL,0EH JNZ ERRER MOV DX,3F8H ;接收字符 IN AL,DX MOV SL,AL ;显示接收字符 MOV AH,2 INT 21H LOOP REC RET ERRER: MOV DX,OFFSET ERR MOV AH,9 INT 21H ret begin endp code ends end begin,MCS-51单片机的发送端TXD和接收端RXD通过RS-232与PC机串行口D型插座的RXD和TXD引脚相连,其连接方式采用三线零调制解调方式。PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年锅炉设备安装工专项题库(附答案与解释)
- 临床医学检验临床免疫技术(058)(正高级)高级卫生专业技术资格考试应考重点详解
- (正式版)DB45∕T 2837-2024 《荔浦芋脆片加工技术规程》
- 天津市2023年化学九年级上册期中监测试题含解析
- 体育活动策划书
- 网络防护技术合作开发合同
- 网络防护策略实施合同协议2026
- 现代农业战略联盟合同文本
- 市场营销策划案委托协议
- 线上债券融资项目投资管理合同
- 【二年级上册语文】25新二年级上册语文 1-8单元必背知识点汇 总
- 2026中国平煤神马控股集团专科层次毕业生招聘110人笔试历年常考点试题专练附带答案详解
- (2026)全国应急管理普法知识竞赛试题库及答案
- 2026年政工员考试题库及答案
- 2026年中央驻山西省政法机关直属事业单位工作人员招聘笔试参考试题及答案详解
- 2026年河南省中考真题道德与法治试卷和答案
- 2026中国航空发动机集团总部招聘36人笔试备考题库及答案详解
- 2026年新课标人教版六年级数学上册全册教案
- 精神科物理治疗工作制度
- 北京市第四中学2026届高一数学第二学期期末联考试题含解析
- 探索绿色能源点亮未来生活-小学六年级综合实践活动教学设计
评论
0/150
提交评论