1、第八章 可编程接口芯片 微机系统中使用的接口芯片一般都是通用的、可编程设置工作方式的。第一节 并行通信接口 u计算机与外设交换信息的过程中:并行通信:多位数据通过多条数据线同时传送串行通信:多位数据通过同一条数据线按位传送u在计算机内部数据是并行传送的。因此,并行接口电路相对简单,串行接口电路由于要进行串并行转换相对复杂。u并行接口电路芯片常用的有两类:1、普通的8位锁存器及缓冲器2、可编程设置工作方式的并行接口一、并行接口电路 u(一)输入接口(数据部分)内部数据总线外部数据引脚锁存控制锁存器缓冲器DCDCDCQQQ选通u如果外设送来的数据都是静态数据,接口可以简化为缓冲器。内部数据总线外部
2、数据引脚选通缓冲器u(二)输出接口(数据部分)内部数据总线外部数据引脚锁存控制DCQDCQDCQ读数据u如果送给外设的数据都是静态数据,接口可以简化为锁存器。内部数据总线外部数据引脚锁存控制DCQDCQDCQ(三)实例u开关状态输入接口电路u74LS244是双4位的三态缓冲器,由G1和G2各控制4位的选通。u注意:电阻用来限制输入电流。74LS244+5V10K x 8G1 G2数据总线CSRDu发光二极管输出接口电路u74LS373是8位的三态锁存器,由LE控制锁存,OE控制选通。u注意:电阻用来限制输入电流。+5V74LS373300 x 8LE OE数据总线CSWR二、通用并行接口825
3、5A u8255A 是INTEL系列的并行接口芯片,可编程来设置工作方式。用来连接外设时,一般不需要再附加外部电路。u40PIN、DIP封装,芯片体积大,设计简单的系统通常不用。u在目前的主板中,功能已经集成在芯片组中,但使用和编程与8255A完全一致。(一)芯片的引脚u8255A和总线连接的引脚:D7D0,A1A0,CS,RESET,RD,WR。说明:有22=4个8位的端口可被CPU寻址访问。u8255A和外设连接的引脚:PA7PA0,PB7PB0,PC7PC0。说明:有A、B、C三组8位的口线。u电源和地线:Vcc和GND。(二)内部结构框图上C口说明:(1)A1A0 端口口线 00端口A
4、PA7PA001端口BPB7PB010端口CPC7PC011 对控制端口写控制字(2)端口C又可以分成“上C口”和“下C口”2个部分,用作A口和B口的控制信号线,所以把A口+上C口称为A组,B口+下C口称为B组。(3)PA口:输入有锁存器,输出有锁存器和缓冲器,PB和PC口:输入有缓冲器,输出有锁存器和缓冲器。(三)控制字编程(1)工作方式控制字:对A1A0=11的端口写入D7=1的数据(2)置位复位控制字:对A1A0=11的端口写入D7=0的数据表示对C口进行位操作。(注意:对A1A0=10的端口操作表示对C口进行字节操作)(四)工作方式(1)工作方式0:基本的输入输出方式。A口、B口、上C
5、口、下C口都可以独立设置作为输入或输出使用。适合用于无条件或查询式传送。(2)工作方式1:应答式输入输出方式。A口、B口可以分别作为数据口工作在方式1。需要使用C口中特定的引脚作为选通和应答使用。C口中其余的引脚仍可工作在方式0,定义为输入或输出使用。适合用于中断式传送。图例1外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKAA口、方式1、输出中断允许触发器u说明:u1、当CPU向端口A输出数据以后,在WR的上升沿使OBFA变为低电平。u2、当外设接收到数据以后,发出一个
6、负脉冲ACKA送给8255A,使OBFA变为高电平。u3、ACKA和OBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU再次输出数据。WR的下降沿使INTRA恢复低电平。u可以通过对PC6的置位和复位来设置INTEA。图例2数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBAA口、方式1、输入中断允许触发器u说明:u1、当外设数据准备好以后,发出一个负脉冲选通信号STB,使A口打开锁存器接收数据。u2、A口接收到数据以后,发出IBFA,由RD信号
7、的上升沿使IBFA恢复低电平。u3、STB和IBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU接收数据。RD信号的下降沿使INTRA恢复低电平。u可以通过对PC4的置位和复位来设置INTEA。图例3图例4可通过对PC2置位或复位来设置INTEB。PC2PC1PC0PB7PB0INTEBOBFBINTRBACKBB口、方式1、输出PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBBB口、方式1、输入(3)工作方式2:双向应答式输入输出方式。A口可以作为数据口工作在方式2。相当于是A口工作在方式1的输入和输出的叠加。PC6PC7PC3PA7PA0
8、INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1,用PC4设置INTE2。输入和输出中断通过或门输出INTR信号。三、8255A在PC机中的应用 uPC机中有一片8255A,用作键盘输入和系统设置开关输入的并行接口,同时提供扬声器发声和其他控制信号。u端口地址是60H63H。正常工作时A、B、C三个口都是方式0,其中A口、C口输入,B口输出。工作方式控制字是:=99H。D7D6D5D4D3D2D1D011000011u在PC机中,主板上产生接口电路芯片片选信号的电路:u由于A4、A3、A2既没有作为片选地址线,也没有作为片内地址线使用,所以是不完
9、全译码。端口地址会有重叠。u例如:70H73H、64H67H等都同于60H63H。74LS138G1G2AG2BCBAY0Y1Y2Y38237.CS(00H1FH)8259A.CS(20H3FH)8253.CS(40H5FH)8255A.CS(60H7FH)AENA9A8A7A6A58255APB1PB0驱动电路扬声器GATE2CLK2时钟信号与门8253的2#通道 PA7PA0PB7PB6键盘扫描码输出0,使A口接收到的是键盘数据输出1,给键盘送时钟信号键盘和扬声器控制示意图四、8255A接口实例 u例1:8255A作为连接打印机的接口,工作在方式0,输出。u工作过程:需要打印时,查询打印机
10、是否忙?不忙时通过8255A发送一个字符给打印机。为使打印机接收数据,要生成一个选通脉冲(初始值是1,置0,再置1 )。u例2:使用8255A的工作方式1,设计中断式的打印机接口。u工作过程:在主程序中设置中断向量,开放中断(IF标志、8259A的IMR、8255A的INTE)。在中断服务程序中,发送打印字符、选通脉冲。u打印机接口简介Centronic并行打印机接口标准。25芯D型连接器,在计算机机箱上是孔状插座。主要引脚:1、D7D08条数据引脚2、STB打印机数据选通(负脉冲0.5ms)3、BUSY打印机忙4、ACK打印机响应(负脉冲12ms)5、缺纸、联机、出错、初始化等引脚打印机驱动
11、程序有两种设计方案:1、查询BUSY引脚,当为低电平时可以发送打印字符;2、利用ACK响应信号,引发中断发送打印字符。80888255A打印机D7D0PAPC2PC6STBBUSY查询式打印机接口示意图例题1 题解:A口:方式0、输出数据上C口:方式0、PC6输入状态信号下C口:方式0、PC2输出选通信号方式控制字为:10001000B。为增强驱动能力,可加门电路驱动u设端口地址是:0D0H0D3H,要打印的字符放在BL中。u程序如下:Setup:MOV AL,88H ;设置工作方式OUT0D3H,ALMOV AL,5;置PC2为1OUT0D3H,ALReady:IN AL,0D2HTEST
12、AL,40H;测试PC6状态JNZReadyMOV AL,BL;打印的字符送AL中OUT0D0H,ALMOV AL,4;置PC2为0OUT0D3H,ALMOV AL,5;置PC2为1OUT0D3H,AL0.5ms80888255A打印机D7D0PAPC2PC6STBACK中断式打印机接口示意图例题2 题解:A口:方式1、输出数据 PC6输入外设响应信号 下C口:方式0、PC2输出选通信号PC3IR2INTRINTA8259A方式控制字为:10100000B。u设端口地址是:0D0H0D3H,用DI指示字符在缓冲区的位置。u程序如下:1、中断服务程序:(假设开始位置是2000H:1000H)PR
13、NDRV:MOV AL,DI ;打印的字符送AL中OUT0D0H,ALINC DIMOV AL,4;置PC2为0OUT0D3H,ALMOV AL,5;置PC2为1OUT0D3H,ALMOV AL,20H;向8259A发EOI命令OUT 20H,ALIRET ;该程序做了简化处理。2、主程序INIT8259A:MOV AL,13H;初始化8259AOUT 20H,ALMOV AL,8OUT 21H,ALMOV AL,9OUT 21H,ALINIT8255A:MOV AL,0A0H;设置8255A工作方式OUT0D3H,ALMOV AL,5;置PC2为1OUT0D3H,ALINSTDRV:MOV
14、AX,0;安装中断向量MOV DS,AX;IR2的中断类型是0AHMOV Word Ptr 0AH*4,1000HMOV Word Ptr 0AH*4+2,2000HSETUPIF:MOV AL,0DH;设置8255A的INTEAOUT0D3H,ALIN AL,21H;设置8259A的IMR,允许IR2AND AL,0FBHOUT 21H,ALSTI;开中断1233、打印驱动程序假设字符缓冲区从3000H:0000H处开始存放,在3000H:1000H处存放一个字,表示打印字符数。PRINT:MOV AX,3000HMOV DS,AXMOV DI,0000HINT 0AH;第一次中断,可以软件
15、触发LOOP1:CMP DI,1000HJB LOOP1MOV AL,0CH;关闭INTEAOUT 0D3H,AL说明:打印结束也可以在中断服务程序中进行判断。第二节 定时/计数器 u在接口电路设计中,常用到定时、计数、分频单元。uIntel 8253采用NMOS工艺,DIP封装,24pinu最高计数时钟频率为2.6MHz。u8253内部有3个完全相同、又相互独立的16位减法计数器。u可以用二进制或十进制计数。u工作方式和计数常数编程设置。一、内部结构u说明:1、每个计数器各有三根I/O线 CLK:时钟信号输入 OUT:计数器输出 GATE:门控信号,用于启动或允许计数器工作2、通过对控制寄存
16、器写操作,来设置工作方式。3、有A1A0两条地址线,在PC机中的端口地址是40H43H。A1A0端口定义0040H0#计数器0141H1#计数器1042H2#计数器1143H控制寄存器二、工作方式u8253有六种工作方式,在输出波形和启动方式上略有区别。工作方式 输出波形的比较 计数值方式 0方式 1方式 2方式 3方式 4方式 5每次设置N0只设一次N0N0只设一次N0/N110只设一次NN/2 N/2 0/N0每次设置N0 1只设一次N0 1N0 1方式 0软件置数 禁止 允许工作方式 启动方式门控信号01跳变方式 1硬件触发 启动 方式 2 软件置数/硬件触发 禁止 启动 允许方式 3
17、软件置数/硬件触发 禁止 启动 允许方式 4软件置数 禁止 允许方式 5硬件触发 启动 启动方式的比较:三、设置工作方式和计数值u对8253设置工作方式和设置计数值是连续进行的。u步骤是:1、对控制端口写:设置工作方式及计数值格式2、对计数端口写:计数值低8位(可选)3、对计数端口写:计数值高8位(可选)u控制字格式:u说明:SC1SC0:选择计数器(0#,1#,2#)M2M1M0:设置工作方式(05)D7D6D5D4D3D2D1D0SC1RL1M1M0M2BCDSC0RL0RL1RL0 设置计数值格式 00当前计数值锁存到输出缓冲器 01写/读计数值的低8位 10写/读计数值的高8位 11写
18、/读计数值的16位(先低8位,后高8位)BCD:计数值是二进制还是BCD码表示的十进制。=1BCD码表示的十进制=0二进制如果是BCD码计数则范围是:00009999 二进制计数则范围是:0000H0FFFFH (065535)四、在PC机中的应用u在PC机中使用1片8253。u三个计数器的CLK端输入PCLK的二分频信号14.31818MHz/3/2/2 =1.1931816MHzu0#计数器用于定时中断(方式3,初值0)MOV AL,00110110BOUT 43H,ALMOV AL,0OUT 40H,ALOUT 40H,AL8253.OUT0连接到8259.IR0,每隔55ms产生一次定
19、时中断,中断服务程序将0046CH0046FH中的双字类型数据每次加1。GATE0 接高电平,总是允许工作1.19MHz/65536=18.2Hz 55ms/次有关系统时钟的话题u1、通常有三种方法获取系统的时钟(1)RTC时钟(2)BIOS时钟(3)操作系统时钟u2、什么是CMOS和RTC CMOS 通常为64-128字节的RAM,內部存放著电脑的硬件配置信息。例如:软硬驱型号、RAM大小等。RTC(Real-time Clock)实时时钟电路。通常和CMOS集成在同一芯片中,在系统关机时由电池供电工作。u3、CMOS中和时间有关的字节CMOS 中前14个字节提供给RTC使用的(包括年份的后
20、两位数),而第50个字节則是存放世纪(年份的前两位数)这是IBM公司在设计PC机时制定的标准。u4、BIOS时钟和RTC时钟的切换系统开机后,从CMOS中获得RTC的当前时间,然后由8253产生BIOS时钟。在操作系统中设置日期和时间时,自动存入CMOS作为RTC的当前时间。系统关机后,RTC由电池供电继续工作。u5、对CMOS中数据的操作在PC-AT以后的计算机中,都安装CMOS。端口地址的分配电路也重新作了调整,70H和71H端口分配CMOS电路。70H端口是控制口,71H端口是数据口。操作时序是:(1)先写控制口,确定对某个字节操作(2)再对数据口进行读写操作例:读取CMOS中50H的数
21、据MOV AL,50HOUT 70H,ALIN AL,71Hu1#计数器用于DRAM刷新时钟(方式2,初值0012H)MOV AL,01010100BOUT 43H,ALMOV AL,12HOUT 41H,AL8253.OUT1连接8237.DREQ0,定时刷新DRAM。u2#计数器为扬声器提供震荡频率(方式3,初值533H)BEEP:MOV AL,10110110B OUT 43H,AL MOV AX,533H GATE1 接高电平,总是允许工作1.19MHz/12H=66288Hz 15.08s/次OUT 42H,ALMOV AL,AHOUT 42H,AL打开PB1PB0延时关闭PB1PB
22、0RET GATE2 由8255A.PB0控制1.19MHz/533H=900Hz方波如果需要自定义频率值为263,则可以:MOV DX,12HMOV AX,3480HMOV SI,263DIV SI ;在AX中就得到了计数值音阶和频率的对应关系:音符12345671频率262294330347392440493524音符12345671频率5245886606987848809881048五、应用实例u用8253产生A/D转换器的启动控制信号。8253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2启动转换时钟源频率 F+5V计数值MNL说明:计数器 模式 计数
23、值 0 2 M 1 1 N 2 3 L计数器1和2串连工作,门控信号由开关提供CLK2F OUT2F/LCLK1OUT2F/L OUT1F/(L*N)T(L*N)/F计数器0的门控信号由OUT1提供,时间是(L*N)/FCLK0F OUT0F/M 输出负脉冲,经过反相后变成正脉冲,启动A/D 转换器。采样时间 L*N/F采样频率 F/Mu如果F10KHz,要求采样时间5秒,采样频率100Hz,则MF/100=100N*L=5*10K=50K,选N50,L1000(假设端口地址是0C0H0C3H)u程序如下:MOV AL,00010100BMOV AL,10110111BOUT 0C3H,ALO
24、UT 0C3H,ALMOV AL,100MOV AX,1000HOUT 0C0H,ALOUT 0C2H,ALMOV AL,01010010BMOV AL,AHOUT 0C3H,ALOUT 0C2H,ALMOV AL,50OUT 0C1H,AL0#1#2#BCD码计数第三节 DMAC 8237 uDMA控制器可以获得总线控制权,发出地址信号和控制信号,用Direct Memory Access 方式实现外部设备和存储器之间的数据高速传输。uDMAC 8237有四个独立通道,可以级联扩充。u可以进行四种操作,DMA写操作、DMA读操作、DMA校验、存储器刷新u可以有四种传送方式:字节传送、成组传送
25、、请求传送、级联传送联络过程:联络过程:(1)外设向DMAC发出DMA请求;(2)DMAC向CPU发总线请求;(3)CPU发出总线响应信号;(4)DMAC发地址信号,响应外设,并发出读/写控制信号;(5)外设发送数据到数据总线,撤销DMA请求;(6)内存接收数据给DMAC回送一个准备好信号,DMAC计数;(7)计数到0,DMAC撤销总线请求,CPU收回总线控制权。u在PC机中使用一片8237,端口地址是00FH。0通道 用于DRAM刷新 15s一次1通道 保留2通道 软驱控制器3通道 硬盘控制器 03通道优先级由高到低。u在PC/AT机中使用两片8237级联。u性能比较PC机中CPU控制传送,
26、每字节要20100 s DMAC控制传送,每字节2.1 sPC/AT机中,DMAC控制传送,每字2.16 s。u关于“倍速”的概念指在PC机中软驱的数据读写速度 150 kbyte/sec4 x CD 的光驱的读写速度 150 x 4 kbyte/sec 第四节 串行通信 u串行通信多位数据通过一条信号线一位一位地按顺序传输。u串行通信有同步和异步两种方式:u同步:按数据块传输,字符连续发送,收发双方时钟(频率和相位)严格同步。u异步:按字符传输,字符可以不连续发送,收发时钟不要求严格同步。u异步传输以字符为单位,称为一个信息帧。一帧包括起始位、数据位、校验位、停止位四部分。收发双方速率和帧格
27、式要完全相同。u帧格式:空闲位58位 数据位01位 校验位1位 起始位12位 停止位空闲位波特率:每秒钟传送的位数,记为 bps(bit/sec)。校验位:可以奇校验、偶校验或没有校验位。通常把数据位和校验位中1的个数为奇数个称为奇校验。异步传输信息冗余较大,例如:1+8+1+2中有效位数只有8位。u相关的几个问题u1、调制和解调主要有:相移键控、频移键控、幅移键控三种方式。常用的调制解调器MODEM使用的是频移键控。33.6kbps的MODEM的最大传输速率是多少字节/秒?u2、传输方式u点对点方式:单工、半双工、全双工u一点对多点:总线型、星型、环形、复合型u3、串行接口uUART(通用异
28、步收发器)uUSART(通用同步异步收发器)u还有一些专用串并行转换芯片74LS165、74LS164等。u4、微机中的串行接口 UARTu以前使用 INS 8250,最高速率9600 bps。u目前使用 8250的后续芯片16450、16550等,最高速率可达115200 bps。u5、串行通信标准 RS232Cu由美国电子工程师协会(EIA)制定。u它规定了串行通信所需的信号引脚功能、电平和连接器。u1、使用D型25针连接器u2、数据线上:MARK(表示1)3V25V SPACE(表示0)3V25Vu3、控制线上:ON3V25V OFF3V25Vu4、DTE:数据终端设备DCE:数据通信设
29、u5、典型引脚(25针D型连接器):2TxD发送数据3 RxD接受数据4RTS请求发送5CTS允许发送6DSR数据设备准备好20DTR数据终端准备好7GND信号地u6、最简单的连接方案计算机A 计算机B3223233257759针插座9针插座25针插座25针插座u7、串行通信的其它RS标准uRS422uRS485u8、TTL电平和RS-232C电平的转换电路uSN75150和MC1488 TTL RS-232CuSN75154和MC1489 TTL RS-232Cu9、PC机中的COM1:IRQ=4 IO=3F8H3FFH COM2:IRQ=3 IO=2F8H2FFHu10、通常使用PC的BI
30、OS提供的INT 14H 进行串行口操作。也可以使用DOS调用或直接对接口电路编程。第五节 ADC和DAC 过程对象测量元件执行器变送器调节器传统控制回路:安全栅过程对象检测元件执行器变送器计算机简单的计算机控制回路:ADCDAC模拟量信号通过ADC和DAC转换成数据信号;开关量信号通过并行接口转换成数据信号。安全栅一、数模转换DAC锁器地址译码器A15A0IOW0160HD7D0CLK存DACD7D0IRfbIOUT1OUT2-+VREFVOUT(一)八位DAC接口电路MOV AL,XXMOV DX,160HOUT DX,AL(二)多于8位的DAC接口电路四位锁存器八位锁存器四位锁存器八位锁
31、存器DACD7D0D11D8RfbOUT1IOUT2I-+地址译码器0160H0162HA15A0IOWD7D0VREFVOUT0164H用双缓冲结构避免输出毛刺程序片断:LEA SI,DAMEMMOV AL,SIMOV DX,0160HOUT DX,ALMOV AL,SI+1MOV DX,0162HOUT DX,ALMOV DX,0164HOUT DX,AL(三)一些应用实例例1 产生正向锯齿波WAVE1 PROC XOR AL,ALCIRL:MOV DX,160H OUT DX,AL CALL DELA INC AL JMP CIRLWAVE1 ENDP例2 产生负向锯齿波WAVE2 PR
32、OC XOR AL,AL MOV DX,160HCIRL:DEC AL OUT DX,AL CALL DELA JMP CIRLWAVE2 ENDP例3 产生三角波WAVE3 PROCXOR AL,ALMOV DX,0160HUP:OUT DX,ALCALL DELAYINC ALJNZ UPDOWN:DEC ALOUT DX,ALCALL DELAYAND AL,ALJNZ DOWNJMP UPWAVE3 ENDPRfbOUT2IVREFDDDDDDDDLEQQQQQQQQ8位输入寄存器DDDDDDDDLEQQQQQQQQ8位DAC寄存器8位乘法DACLE=“1”Q跟随DLE=“0”数据锁存
33、DAC0832功能图AGNDOUT1IDI7DI6DI5DI4DI3DI2DI1DI0ILECSWR1WR2XFER(四)典型DAC芯片DAC08321、控制信号ILE CS WR1有效使数据进入输入寄存器。WR2 XFER有效,数据到DAC。2、输出信号IOUT1:DAC电流输出1IOUT1=VREF/15k*数字输入/256IOUT2:DAC电流输出2IOUT2=VREF/15k*(255-数字输入)/2563、其它说明Rfb:反馈电阻,其值为15k,温度特性与电阻网络相同,为DAC提供输出电压,用作运放反馈电阻。VREF:参考电压输入,外部精密电压源接到内部R2R梯形电阻网络,范围:-1
34、0+10V。接口实例:RfbOUT1IOUT2DI7DI6DI5DI4DI3DI2DI1DI0WRCSILEREFVIWR2XFER74LS04AEN+5V+5V-+12V12V-VOUT(05V)-+MC140312VR2W1 R1R374LS133A9A8A7A6A5A4A3A2A1A0+端口地址:160H单缓冲结构二、模数转换ADC(一)常用ADC类型1、V-F变换器、准ADC、串行输出(单积分式)。2、积分式ADC(双斜式,积分比较式)精度高,抗干扰能力强,价格低,速度慢。3、逐次逼近式ADC精度高,速度较快,电路复杂,价高。4、并行ADC速度最快,电路复杂,位数难做多。(二)典型AD
35、C芯片 ADC08041234567891020191817161514131211ADC0804引脚图CSRDWRCLKININTRVIN(+)VIN(-)VREFDGNDVccCLKRDB0DB2DB3DB4DB5DB7AGND/2DB1DB61、引脚图信号:u(1)DB7DB0:数据线,三态,输出,可直接接总线。u(2)启动:WRCS 启动ADC,同时清状态INTR.u(3)状态:INTR 转换结束输出低电平。u(4)读数据:RD CS 打开三态门读取数据,同时清状态。信号:u(1)DB7DB0:数据线,三态,输出,可直接接总线。u(2)启动:WRCS 启动ADC,同时清状态INTR.u
36、(3)状态:INTR 转换结束输出低电平。u(4)读数据:RD CS 打开三态门读取数据,同时清状态。R10KC150PfCLK=11.1RC=600KHz2、片内时钟电路数据CSWRINTRRDDB转换结束时序图3、接口时序及接口信号74LS0474LS30DB7DB6DB5DB4DB3DB2DB1DB0CSWRRDINTRCLKRADC0804CLKINVRMC1403R1-+W1R2+5V10k 150pVIN(+)Vx(02V)VIN(-)AGNDA2A1A0+5VCBA74LS138G2AG2BG1Y1Y0D7D6D5D4D3D2D1D0AENA9A8A7A6A5A4A3IOWIOR(三)接口实例端口启动口A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 方向 地址状态口数据口输出输入输入0101100001001000161H160H161H程序:用查询方式读取数据子程序(结果在AL中)。RDAD PROC PUSH DX MOV DX,0161H;OUT DX,AL;启动ADCRDAD1:MOV DX,0160H;查询转换是否结束 IN AL,DX TEST AL,01H JNZ RDAD1 MOV DX,0161H;IN AL,DX;读取数据 POP DX RETRDAD ENDP