微机原理陆可编程接口芯片及其与cpu的接口

上传人:gb****c 文档编号:243354525 上传时间:2024-09-21 格式:PPT 页数:91 大小:1.02MB
返回 下载 相关 举报
微机原理陆可编程接口芯片及其与cpu的接口_第1页
第1页 / 共91页
微机原理陆可编程接口芯片及其与cpu的接口_第2页
第2页 / 共91页
微机原理陆可编程接口芯片及其与cpu的接口_第3页
第3页 / 共91页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第九章 可编程接口芯片 及其与,CPU,的接口,9.1,可编程并行输入,/,输出接口芯片,8255A,9.2,可编程定时器,/8254,1,9.1,可编程并行输入,/,输出接口芯片,8255A,8255A ,可编程并行,I/O,接口芯片,8255A,具有,3,个带锁存或缓冲的数据端口(,A,口、,B,口、,C,口),可与外设并行进行数据交换。,A,口和,B,口内具有中断控制逻辑,在外设与,CPU,之间,可用中断方式进行信息交换。,8255A,的并行数据宽度为,8,位,2,9.1.1 8255A,的内部结构,由,4,部分组成:,并行输入,/,输出端口,(,A,口、,B,口、,C,口),A,组和,B,组控制,数据总线缓冲器,读,/,写控制电路,内部结构框图,3,8255A,内部由,4,部分组成:,并行输入,/,输出端口,A,口、,B,口、,C,口。需“状态”或“联络”信号时,,C,口可提供。,A,组和,B,组控制,A,组,B,组,3.,数据总线缓冲器,双向三态,8,位数据缓冲器,是,8255A,和,CPU,之间的数据接口,读,/,写控制电路,能接收,CPU,的控制命令,并根据命令向片内各功能部件发出,操作命令,A,口,C,口高,4,位,B,口,C,口低,4,位,4,CS,A1 A0,端口,0 0 0 A,口地址,0 0 1 B,口地址,0 1 0 C,口地址,0 1 1,控制端口地址(装命令字),5,一,、与外设联系的引脚,(共,24,个引脚),A,口:,PA,0,PA,7,B,口:,PB,0,PB,7,C,口:,PC,0,PC,7,二,、与,CPU,联系的引脚,(共,11,个引脚),数据和命令通道,D,0,D,7,,,控制管脚,RD,、,WR,、,RESET,。,三,、端口地址控制引脚,CS A1 A0,端口,0 0 0 A,口地址,0 0 1 B,口地址,0 1 0 C,口地址,0 1 1,控制端口地址,(共,40,个引脚),9.1.2 8255A,的引脚分配,6,9.1.3 8255A,的工作方式及编程,一,、,8255A,的工作方式,1.,方式,0,(基本输入,/,输出方式),2.,方式,1,(选通输入,/,输出方式),3.,方式,2,(双向传送方式),各端口可工作的方式:,A,口:方式,0,、方式,1,、方式,2,B,口:方式,0,、方式,1,C,口:方式,0,7,二,、,8255A,的控制字,1,、方式控制字,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,B,组,C,口低半字节,: 1-,输入, 0-,输出,B,口,:,1-,输入,,,0-,输出,方式选择,:,0-,方式,0,,,1-,方式,1,A,组,C,口高半字节,:,1-,输入,,,0-,输出,A,口,:,1-,输入,,,0-,输出,方式选择,:,方式控制字标志,:,1-,有效,00-,方式,0,01-,方式,1,1X-,方式,2,D,7,= 1,8,2,、,C,口置,“,1,”,/,清,“,0,”,控制字,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,位控,:,1-,置,1,,,0-,清,0,状 态,选中位,0 0 0,0 0 1,0 1 0,0 1 1,1 0 0,1 0 1,1 1 0,1 1 1,PC,0,PC,1,PC,2,PC,3,PC,4,PC,5,PC,6,PC,7,位控字标志,:,0-,有效,无效,D,7,= 0,9,8255A,初始化程序格式:(端口地址为,8,位),MOV AL,方式控制字,OUT,控制端口地址,,AL,C,口置,1/,清,0,初始化(对,PC,0,PC,7,任一位),MOV AL,置,1/,清,0,控制字,OUT,控制端口地址,,AL,10,9.1.4 8255A,各工作方式的功能及应用,一,、,8255A,工作在方式,0,特点:,8255A,工作在方式,0,时,各个端口(包括,2,个,8,位端口,A,、,B,及,2,个,4,位端口,C,)的输入、输出可以有,16,种不同的组合。在这种方式下,任一个端口都由,CPU,用简单的输入,/,输出指令进行读,/,写。不用提供,“,联络,”,信号,适用于各种同步传送情况。,另外,方式,0,也可用于程序查询方式来进行数据传送。此时,通常以,A,口和,B,口作为数据口,而用,C,口的某些位作为输入输出,“,联络,”,信号。,注意,输入“联络”信号和输出“联络”信号不在同一,4,位,C,口中,。,11,A,1,A,0,方式,0,应用举例,1,(同步情况):,例,1,8255A,的,A,口和,B,口工作在方式,0,,,A,口为输入端口,接有,4,个开关;,B,口为输出端口,接有,1,个,7,段发光二极管,其硬件连接电路如图所示。试编一程序要求,7,段发光二极管显示开关所拨通的数字。,12,a,e,f,g,b,d,c,g f e d c b a,0 1 1 1 1 1 1,“0”,0 0 0 0 1 1 0,“1”,3F,06,0 1 1 1 0 0 1,“C”,39,显示字符,七段代码,13,分析:,1.,端口地址,A,口:,8020H C,口:,8024H,B,口:,8022H,控制口:,8026H,2.,字符代码对照表,显示字符,7,段代码 显示字符,7,段代码,0 3FH 8 7FH,1 06H 9 6FH,2 5BH A 77H,3 4FH b 7CH,4 66H c 39H,5 6DH d 5EH,6 7DH E 79H,7 07H F 31H,14,程序:,APORT EQU 8020H,BPORT EQU 8022H,CONTR EQU 8026H,DATA SEGMENT,TAB1 DB 3FH,,,06H,,,5BH,,,4FH,,,DATA ENDS,CODE SEGMENT,ASSUME CS,:,CODE,,,DS,:,DATA,START,:,MOV AX,,,DATA,MOV DS,,,AX,MOV AL,,,90H,;定义,8255A,工作方式,MOV DX,,,CONTR,OUT DX,,,AL,15,ADDR1: MOV DX,,,APORT,;取开关值,IN AL,,,DX AND AL,,,0FH,;屏蔽高,4,位,MOV BX,,,OFFSET TAB1,;取代码表首址,XLAT,;找到字符代码,MOV DX,,,BPORT,;输出显示,OUT DX,,,AL,MOV CX,,,0400H,;显示延时,ADDR2,:,DEC CX JNZ ADDR2,JMP ADDR1 MOV AH,,,4CH INT 21HCODE ENDS END START,16,方式,0,应用举例,2,(异步查询情况):,P,272,例,9.3,例,2,如图所示,假设,8255A,端口,A,,,B,,,C,及控制口的地址分别为,80H,,,81H,,,82H,和,83H,;打印机的选通信号为,STB,,纸带读入机的驱动信号为,DRV,,编写接口程序。,输入方式,输出方式,结构框图,17,程序片段:,MOV AL, 83 H,;,8255A,初始化,方式控制字,OUT 83H, AL,;打印机驱动程序,PST,:,IN AL, 82H,;,C,端口,TEST AL, 04H,JNZ PST,MOV AL, BL,;若打印数据在,BL,中,OUT 80H, AL,MOV AL, 0DH,;,C,口置“,1”,控制字, PC,6,=1,OUT 83H, AL,;选通打印机,DEC AL,;,C,口清“,0”,控制字, PC,6,=0,OUT 83H, AL,;断开打印机,18,;纸带读入机驱动程序,MOV AL,,,09H,OUT 83H,,,AL,;启动纸带读入机,PRT,:,IN AL, 82H,TEST AL, 01H,JZ PRT,;,未准备好,循环,IN AL, 81H ;,准备好,读入数据,MOV BL, AL,MOV AL, 08H,OUT 83H, AL,;,断开纸带读入机,19,方式,0,应用举例,3,(异步查询情况):,例,3,利用,8255A,实现打印机接口,打印,BL,中的数据。,打印机工作时序如左图所示。数据接口将数据传送到打印机的数据端口,利用一个负脉冲,STROBE,打入锁存。这时打印机可发回答信号,ACK,,然后由打印机处理。同时打印机送出高电平信号,BUSY,,表示打印机忙于打印。一旦,BUSY,变为低电平,表示打印结束,即可接收下一数据。,请利用,8255A,工作方式,0,实现上述打印控制。硬件连接如右图,.,20,根据连线分析得知,4,个端口地址依次为:,80H,84H,88H,8CH,程序如下,:,MOV AL,,,10000001B,OUT 8CH,,,AL,;,8255A,初始化,WAIT,:,IN AL,,,88H,;读,BUSY,TEST AL,,,01H,JNZ WAIT,;,BUSY=1,等待,MOV AL,BL,OUT 80H,AL ;,数据输出,MOV AL,00001110B,OUT 8CH,AL ; PC7,置低电平,MOV AL,00001111B,OUT 8CH,AL ; PC7,恢复高电平,21,二,、,8255A,工作在方式,1,特点:,8255A,工作在方式,1,时,数据输入,/,输出操作要在选通信号控制下完成。,A,口和,B,口可作为输入或输出口,而,C,口的某些位作为,“,联络,”,信息。和方式,0,相比,最重要的差别在于,C,口的这些位与联络信号有着固定的一一对应关系,。,A,口的联络信息由,C,口的,PC,3,PC,7,提供,,B,口的联络信息由,C,口的,PC,0,PC,2,提供。另外,,8255A,在方式,1,下具有中断能力,可以发出中断请求信号,为,CPU,工作在中断方式提供了条件。,由于输入接口和输出接口所需的选通控制不同,下面分别予以介绍。,22,1,、选通输入方式,选通输入方式,C,口“联络”信号定义图,23,外设通过,A,口或,B,口将数据送入,8255A,缓冲器中暂存,IBF,变高,向外设送出缓冲器“满”的信号,(禁止外设将下一个数据输入),8255A,工作在方式,1,输入方式,外设准备好数据,发出,STB,信号,24,8255A,工作在方式,1 A,口输入,有两种方式通知,CPU,取数:,25,8255A,工作在方式,1 B,口输入,有两种方式通知,CPU,取数:,26,2.,选通输出方式,选通输出方式,C,口“联络”信号定义图,27,CPU,发出,OUT,指令,将数据锁存到,8255A,的数据输出寄存器,8255A,的,A,口或,B,口发出输出缓冲器“满”的低电平,OBF,信号,,通知外设取数,有两种方式通知,CPU,送下一个数,外设接收了数据,回答,ACK,信号,若缓冲器内数据被取走,则,OBF,信号变为高电平,28,A,口输出,B,口输出,29,PC,4,=1 INTE,A,=1,PC,2,=1 INTE,B,=1,PC,6,=1 INTE,A,=1,PC,2,=1 INTE,B,=1,选通输入方式,选通输出方式,30,方式,1,输入时“联络”信号时序图,31,方式,1,输出时“联络”信号时序图,32,方式,1,应用举例,1,(异步查询情况):,例,1,在某一系统中接有一个,80,微型打印机,,8255A,作为输出接口,工作在选通方式,试编一程序将缓冲区,BUFF,内的,400H,个字节的,ASCII,码送打印机打印,其接口硬件电路如图所示。,33,8255A,作为打印机接口电路源程序如下:,APORT EQU 0FFF8H,CPORT EQU 0FFFCH,CONTR EQU 0FFFEH,DATA SEGMENT,BUFF DB 400H DUP(?),DATA ENDS,CODE SEGMENT,ASSUME CS:CODE, DS: DATA,START: MOV AX, DATA,MOV DS, AX,MOV CX,,,400H,;字节长度,MOV AL, 0A8H ; 8255A,控制字,MOV DX, CONTR,OUT DX,AL,方式,1,:看,C,口的自由位为输入或输出,,以确定方式控制字中的,D,3,的值,34,MOV DI, OFFSET BUFF,ABC1: MOV AL,DI,; ASCII,码输出,MOV DX,APORT,OUT DX,AL,MOV DX,CPORT,ABC2: IN AL,DX ;,查,OBF,A,信号,AND AL,80H ; OBF,A,变高了吗,?,JZ ABC2 ;,否;再查,ABC3,:,IN AL,DX ;,查,BUSY,信号,AND AL,10H ; BUSY,变低吗,?,JNZ ABC3 ;,否,再查,INC DI ;,是,传送下一个数,LOOP ABC1,MOV AH,,,4CH,;返回操作系统,INT 21H,CODE ENDS,END START,35,方式,1,应用举例,2,(中断情况):,例,2,利用,8255,工作方式,1,实现打印控制。,8255A,工作在方式,1,时,,PC7,作为,OBF,A,输出端,,PC6,作为,ACK,A,输入端,,PC3,作为,INTR,A,输出端,其硬件连接如图所示。设中断类型码为,0BH,,中断服务程序首地址为,PRINTER,。,36,程序片段设计如下:,MOV AL,,,10100000B,OUT 8CH,,,AL,;初始化,MOV AL,00001101B,OUT 8CH,AL,; INTE,A,置,1,MOV AH,25H ;,设置,DOS,调用功能号,MOV AL,0BH ;,设置类型码,LEA DX,PRINTER ;,设置中断服务程序偏移地址,MOV BX,SEG PRINTER ;,设置中断服务程序段地址,MOV DS,BX,INT 21H ; DOS,功能调用,设置中断向量,STI ;,开中断,PRINTER PROC FAR,;中断服务程序,MOV AL,,,BL,OUT 80H,,,AL,;输出打印,IRET,PRINTER ENDP,37,三,、,8255A,工作在方式,2,特点:,8255A,只有,A,口可工作在方式,2,,此时,B,口可工作在方式,0,或者方式,1,。,8255A,工作在方式,2,,,CPU,通过它与外设交换数据可采用无条件传送方式,查询传送方式或中断传送方式。,A,口设置为方式,2,,也就是说从,A,口既可以输入数据,也可以输出数据,但某时某刻只能是输入或输出。实际上是,A,口方式,1,输入和输出的组合形式。,38,方式,2,下,C,口“联络”信号定义图,39,9.2,可编程计数器,/,定时器,8254,9.2.1 8254,的内部结构及功能,一、内部结构及引脚,内部结构:,数据总线缓冲器,读写逻辑,16,位计数器(,3,个),控制字寄存器,内部结构,40,端口地址分配:,CS A,1,A,0,端口地址,0 0 0 0#,计数器地址,0 0 1 1#,计数器地址,0 1 0 2#,计数器地址,0 1 1,控制字寄存器地址,41,控制字寄存器,状态锁存,状态寄存器,初值寄存,MSB,初值寄存,LSB,输出锁存,MSB,输出锁存,LSB,减法计数器,控,制,逻,辑,内部总线,计数器,/,定时器通道内部结构图,42,二、功能,计数器方式、定时器方式,计数,数,CLK,脉冲的个数,与,CLK,频率无关,定时,与输入的,CLK,脉冲频率(周期)有关,定时时间,T = n,Tc,n,为计数值,,Tc,为,CLK,脉冲周期,本质:,对,CLK,脉冲进行减,1,计数,区别:,43,9.2.2 8254,的编程,设置控制字,(写入控制字寄存器地址),初始化,赋计数初值,(写入相应计数器地址),包括,读计数器内容,(从相应计数器地址读出),44,M,2,RW,0,RW,1,SC,0,SC,1,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,BCD,M,1,M,0,1,=BCD,计数器,(,4,位十进制,),0,=,二进制计数器,16,位,0 0 0,方式,0,0 0 1,方式,1,1 0,方式,2,1 1,方式,3,1 0 0,方式,4,1 0 1,方式,5,0 0,计数器锁存命令,0 1,只读,/,写低字节,高字节自动为,0,1 0,只读,/,写高字节,低字节自动为,0,1 1,先读,/,写低字节,再读,/,写高字节,0 0,选择计数器,0,0 1,选择计数器,1,1 0,选择计数器,2,1 1,读回命令,一、,8254,控制字,8254,控制字寄存器格式,45,二、对计数器赋计数初值,控制字写完后,接着赋计数初值。计数初值写入计数器的格式,必须按照控制字的,RW,1,、,RW,0,的读写指示来写,。,另外,当,D,0,=0,时,即选择二进制计数,计数初值可在,0,FFFFH,之间选择。当,D,0,=1,时,即选择,BCD,码计数,计数初值可在,0,9999,之间选择。,若想扩大计数范围,可以将两个或三个计数器,级连,使用。即将一计数器的,OUT,信号与另一计数器的,CLK,信号相连接。,三、读计数器的内容,8254,的读操作,只能读计数器的值,而不能读控制字,。若读,16,位计数值,则对该计数器读两次,,先读低,8,位,再读高,8,位,。 如果在计数过程中读计数器内容,则需发锁存命令。计数器的锁存命令是用一个字节的最高两位,D,7,,,D,6,指定要锁存的计数器;,D,5,,,D,4,必须为,00,作为锁存命令的标志。而低,4,位可为全,0,。它是控制字的一种特殊形式,所以要把此,锁存命令写到控制字寄存器中,去。可见,,3,个计数器的锁存命令分别为,00H,,,40H,和,80H,。,46,四、读计数值,/,状态字,(,1,)读回命令,8254,控制字中,SC,1,SC,0,=11,时,为读回命令。,该命令可锁存全部,3,个通道的当前计数值和状态信息。,读回命令格式:,CNT,2,STATUS,COUNT,1,1,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,0,CNT,1,CNT,0,0 =,锁存选中计数器计数值,选择计数器,0,选择计数器,1,选择计数器,2,0 =,锁存选中计数器状态,47,M,2,RW,0,RW,1,NULL,OUT,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,BCD,M,1,M,0,1 =,空计数器,0 =,计数器有效,1 = OUT,引脚逻辑,1,0 = OUT,引脚逻辑,0,(,2,)状态字,状态寄存器格式,与,8254,控制字一致,48,五、举例,例,1,若要使计数器,1,工作在方式,0,,仅用,8,位二进制,计数,计数值为,128,,试对其进行初始化编程。,(端口地址,70H 73H,),MOV AL,,,50H,OUT 73H,,,AL,MOV AL,,,80H,OUT 71H,,,AL,49,例,2,若要使计数器,0,工作在方式,1,,按,BCD,码计数,,计数值为,3000,,试对其进行初始化编程。,MOV AL,,,23H,OUT 73H,,,AL,MOV AL,,,30H,OUT 70H,,,AL,(端口地址,70H 73H,),3000,(,00000,),BCD,(实为,3000H,),50,例,3,若要使计数器,2,工作在方式,2,,按二进制计数,,计数值为,1110H,,试对其进行初始化编程。,MOV AL,,,0B4H,OUT 73H,,,AL,MOV AL,,,10H,OUT 72H,,,AL,MOV AL,,,11H,OUT 72H,,,AL,51,例,4,8254,工作方式同上题。要在计数过程中读取该计数器的,计数值。试对其进行初始化编程。,MOV AL,,,0B4H,OUT 73H,,,AL,MOV AL,,,10H,OUT 72H,,,AL,MOV AL,,,11H,OUT 72H,,,AL,MOV BH,,,20H,W,:,DEC BH,JNZ W,MOV AL,,,80H,OUT 73H,,,AL,IN AL,,,72H,MOV CL,,,AL,IN AL,,,72H,MOV AH,,,AL,MOV AL,,,CL,52,9.2.3 8254,的工作方式,一、方式,0,主要特点:,* 方式,0,的,OUT,输出是一次性负方波。,* 门控信号,GATE,是电平控制。,* 若想再次,OUT,输出,必须重写控制字、计数值或只写计数值。,53,二、方式,1,主要特点:,* 方式,1,的,OUT,输出是一次性负方波。,* 门控信号,GATE,是脉冲触发控制。,* 若想再次,OUT,输出,只须重新启动,GATE,脉冲。,54,三、方式,2,主要特点,:,*,方式,2,的,OUT,输出是周期性的负脉冲。,* 门控信号,GATE,是电平控制。,55,例,已知计数脉冲,CLK,频率为,2MHZ,,要求每,1ms,产生一次,中断,选用,2,#,计数器。,8254,地址,70H,73H,。,请初始化,8254,。,分析:,1.,工作方式的选择,2.,计数初值的确定,MOV AL,,,0A5H,OUT 73H,,,AL,MOV AL,,,20H,OUT 72H,,,AL,方式,2,n=1,10,-3,2,10,6,=2000,BCD,码为,2000H,56,例,已知计数脉冲,CLK,频率为,2MHZ,,要求每,10ms,产生一次,中断,选用,2#,计数器。,8254,地址,70H,73H,。,方式,2,n=10,10,-3,2,10,6,=2000,=4E20H,MOV AL,,,0B4H,OUT 73H,,,AL,MOV AL,,,20H,OUT 72H,,,AL,MOV AL,,,4EH,OUT 72H,,,AL,分析:,1.,工作方式的选择,2.,计数初值的确定,57,四、方式,3,主要特点:,* 方式,3,的,OUT,输出是周期性的方波。(若计数值,n,是偶数,则输出,OUT,是对称方波;若计数值,n,是奇数,则输出,OUT,在,(n+1)/2,计数期间保持为高电平,而在,(n-1)/2,计数期间保持为低电平。),58,五、方式,4,主要特点:,* 方式,4,的,OUT,输出是一次性负脉冲。,* 门控信号,GATE,是电平控制。,* 若想再次,OUT,输出,须再次写入计数值。故又称软件触发选通方式。,59,六、方式,5,主要特点:,* 方式,5,的,OUT,输出是一次性负脉冲。,* 门控信号,GATE,是脉冲触发方式。,* 若想再次,OUT,输出,只须再次启动,GATE,脉冲。故又称硬件触发选通方式。,60,8254,的工作方式,方式,0,一次性负方波,电平控制,方式,1,一次性负方波 脉冲触发控制,方式,2,周期性负脉冲 电平控制,方式,3,周期性方波,电平控制,方式,4,一次性负脉冲,电平控制,方式,5,一次性负脉冲 脉冲触发控制,OUT,输出,门控信号,GATE,61,8254,初始化程序格式:(端口地址为,8,位),MOV AL,控制字,OUT,控制字寄存器地址,,AL,MOV AL,计数初值,OUT,对应计数器,,AL,62,例,6,某,8086,系统中有一片,8254,芯片,利用其通道,1,完成对外部事件计数,计满,250,次向,CPU,发出中断申请;利用,2,通道输出频率为,1 kHz,的方波,试编写,8254,的初始化程序,硬件电路如图所示。,8254,63,MOV AL,,,71H,;通道,1,控制字,OUT 1EH,,,AL,MOV AL,,,0A7H,;通道,2,控制字,OUT 1EH,,,AL,MOV AL,,,50H,;通道,1,计数值低,8,位,OUT 1AH,,,AL,MOV AL,,,02H,;通道,1,计数值高,8,位,OUT 1AH,,,AL,MOV AL,,,20H,;通道,2,计数值高,8,位,OUT 1CH,,,AL,64,例,7,8254,通道,2,接有一发光二极管,要使发光二极管以点亮,2 s,,熄灭,2 s,的间隔工作,,8254,各通道端口地址分别为,FFE9HFFEFH,。其电路硬件图如图。试编程完成以上工作。,8254,65,MOV DX,,,0FFEFH,;控制字端口地址,MOV AL,,,65H,;通道,1,控制字,OUT DX,,,AL,MOV AL,,,0A7H,;通道,2,控制字,OUT DX,,,AL,MOV DX,,,0FFEBH,;通道,1,端口地址,MOV AL,,,40H,;通道,1,计数值高,8,位,OUT DX,,,AL,MOV DX,,,0FFEDH,;通道,2,端口地址,MOV AL,,,10H,;通道,2,计数值高,8,位,OUT DX,,,AL,(若假设通道,1,工作于方波发生器,控制字为,77H,),66,例,8,有如下接口原理图。要求发光二极管,L,0,亮,5,秒后就熄灭;,L,1,在,K1,启动后亮,6,秒后就熄灭;,L,2,亮,4,秒灭,4,秒交替进行。,写出源程序片段。,&,RD,WR,A,1,A,2,CPU,A,7,A,6,A,5,A,4,A,3,A,0,RD,WR,A,0,A,1,CS,Y,5,M/ IO,CLK,0,1KHz,GATE,0,OUT,0,GATE,1,GATE,2,OUT,1,OUT,2,CLK,2,CLK,1,L,0,L,2,L,1,8254,DB,07,+5V,译码器,G,G,2A,G,2B,C,B,A,67,8254,芯片计数器,0,、,1,、,2,及控制端口的地址分别为:,A,7,A,6,A,5,A,4,A,3,A,2,A,1,A,0,1 0 0,1 0,0 0,1,1 0 0,1 0,0 1,1,1 0 0,1 0,1 1,1,1 0 0,1 0,1 0,1,= 91H,(计数器,0,),1 0 0,1 0,0 0,1,= 93H,(计数器,1,),= 95H,(计数器,2,),= 97H,(控制端口),68,分析:,由译码电路分析可知,,8254,芯片计数器,0,、计数器,1,、计数器,2,及控制端口的地址分别为,91H,,,93H,,,95H,,,97H,。根据接口图及题目要求,,8254,的计数器,0,应该工作在方式,0,,计数初值,n,0,=5000,;计数器,1,应工作在方式,1,,,n,1,=6000,;计数器,2,应工作在方式,3,,,n,2,=8000,。,MOV AL,,,21H,;初始化计数器,0,OUT 97H,,,AL,MOV AL,,,50H,OUT 91H,,,AL,MOV AL,,,63H,;初始化计数器,1,OUT 97H,,,AL,MOV AL,,,60H,OUT 93H,,,AL,MOV AL,,,0A7H,;初始化计数器,2,OUT 97H,,,AL,MOV AL,,,80H,OUT 95H,,,AL,69,11.1,概述,11.2 D/A,转换器芯片及其与,CPU,的接口,11.3 A/D,转换器芯片及其与,CPU,的接口,第十一章,D/A,、,A/D,转换器及其与,CPU,的接口,70,11.1,概 述,数,/,模(,D/A,)和模,/,数(,A/D,)转换技术主要用于计算机控制、测量仪表中。,典型的闭环实时控制系统为:,非电物理信号,模拟电信号,数字信号,模拟电信号,数字信号,71,*,传感器,能够进行非电量和电量之间转换的敏感元件。,作用:完成将非电物理量转换成模拟电信号。,种类:,温度传感器,湿度传感器,气敏传感器,压电式和压阻式传感器,光纤传感器,位移数字转换器,(脉冲盘式角度数字转换器、码盘式角度数字转换器、,光电码盘角度数字转换器),转换成连续变化的电量,经过,放大、滤波、整形后进行,A/D,转换,以便计算机处理,直接转换成数字量或电脉冲,72,11.2 D/A,转换器芯片及其接口技术,11.2.1 D/A,转换原理与基本参数,数字量是由一位一位的数位组成的,每个数位都代表一定的权。,D/A,转换时,就是把一个数字量的每一位代码按权的大小转换为相应的模拟量分量,然后用线性叠加原理将各位代码对应的模拟输出量相加,其和就是与数字量成正比的模拟量。,在实现时,通常采用,T,型网络实现数字量往模拟电流的转换,再利用运算放大器来完成模拟电流到模拟电压的转换。所以,要把一个数字量转变为模拟电压,需要两个环节。有些,D/A,转换器芯片只包含前一个环节,有些包含两个环节。对于前一种,需外接运算放大器。,基本参数:,分辨率 精度 非线性度 建立时间(转换时间),温度系数,73,11.2.2 DAC1210,转换器芯片及其接口,1,、内部结构,74,2,、工作方式,(两种:单缓冲方式、双缓冲方式),(,1,)单缓冲方式,将输入锁存器和,DAC,寄存器两级输入当作一级输入。,硬件连接如下:,75,(,2,)双缓冲方式,是将数据经输入锁存器和,DAC,寄存器两级输入到,D/A,转换器。对于与,16,位数据总线连接时,分别看作两个端口予以控制,写两次。对于与,8,位数据总线连接时,写三次。,硬件连接如下:,76,3,、输出方式,由于,DAC1210,属于电流输出型的,D/A,转换器,需用运算放大器将电流输出转换为电压输出。一般电压输出分为单极性和双极性两种。,单极性输出方式: 双极性输出方式:,77,4,、应用举例,例,1,如图所示,向,DAC1210,连续不断地输出数据,即可得到相应的电压信号。,设端口地址为,PORT,编写产生连续方波的程序。,MOV DX,,,PORT,LP,:,MOV AX,,,0,OUT DX,,,AX,CALL RLY,;延时,MOV AX,,,0FFFH,OUT DX,,,AX,CALL RLY,JMP LP,单缓冲方式、双极性输出,78,例,2,同上题,编写产生连续三角波的程序。,MOV DX,,,PORT,XOR AX,,,AX,W1,:,OUT DX,,,AX,INC AX,NOP,CMP AX,,,0FFFH,JB W1,W2,:,OUT DX,,,AX,DEC AX,NOP,CMP AX,,,0,JA W2,JMP W1,79,例,3,同上题,编写产生连续梯形波的程序。,MOV DX,,,PORT,XOR AX,,,AX,OUT DX,,,AX,W3,:,CALL RLY1,W1,:,INC AX,OUT DX,,,AX,NOP,CMP AX,,,0FFFH,JB W1,CALL RLY2,W2,:,DEC AX,OUT DX,,,AX,NOP,CMP AX,,,0,JA W2,JMP W3,80,11.2.3 DAC,与,CPU,接口时应注意的问题,1.,数据锁存问题,2.,模拟信号输出问题,3. D/A,位数多于数据总线位数问题,(可采用两级锁存的办法),或,81,11.3 A/D,转换器芯片及其接口技术,11.3.1,采样和量化,注意,:,采样时必须要符合,采样定理,即采样频率,fs,大于等于输入信号最高频率,f,m,的,2,倍。,量化:,以一定的量化单位,把离散的模拟信号转化为离散的阶跃量的过程。通常用“四舍五入”的方法使之整量化。,x(t),x,s,(t),x(t),x,s,(t),周期,Ts=1/fs,82,11.3.2 A/D,工作原理,重物,12.3.3 A/D,性能参数,分辨率 量化误差 转换时间 精度 漏码,试探码的总重量,人的作用,天平,保证试探从高位进行,83,11.3.4 A/D,芯片,ADC0809,一、原理框图,芯片,ADC0809,片脚功能:,84,选中通道,ADD,C,ADD,B,ADD,A,IN,0,0 0 0,IN,1,0 0 1,IN,2,0 1 0,IN,3,0 1 1,IN,4,1 0 0,IN,5,1 0 1,IN,6,1 1 0,IN,7,1 1 1,地址与选中通道的关系,85,二、应用举例,1,、查询法,地址线选通道,86,OUT 50H,,,AL,;选通,IN,0,,启动,A/D,转换,(,AL,内容无意义),NOP,W,:,IN AL,,,41H,;输入,EOC,标志,(书中为,40H,也可以),TEST AL,,,01H,JZ W,;未结束,返回等待,IN AL,,,49H,;结束,把结果送入,AL,中,(从,OE,端口读入,CPU,),假设仅对模拟通道,IN,0,进行,A/D,转换。,采用查询方式的程序如下,(,对,0,通道采样一个点,),:,注意:,EOC,、,OE,端口地址只与高五位有关,与低三位无关,步骤:,1.,选通道,启动,A/D,转换,2.,输入,EOC,标志,测试;未结束,等待,3.,结束,读数据(从,OE,端口读入,AL,中),87,MOV BX,,,OFFSETWP,;设置数据存储指针,MOV CL,,,100,;设置计数初值,N,:,MOV DX,,,0050H,P,:,OUT DX,,,AL,;选通一个通道,启动,A/D,NOP,W,:,IN AL,,,41H,;输入,EOC,标志,TEST AL,,,01H,;测试状态,JZ W,;未结束,返回等待,IN AL,,,49H,;结束,读数据,MOV,BX,,,AL,;存数,INC BX,;修改存储地址指针,INC DX,;修改,A/D,通道地址,CMP DX,,,0058H,;判断,8,个通道是否转换完,JNZ P,;未完,返回启动新通道,DEC CL,;,100,个点是否采样完了,,JNZ N,;未完返回再启动,IN0,HLT,;,100,个点完了,暂停,若对,IN0,IN7,八个通道的模拟量各采样,100,个点:,88,2,、中断响应法,数据线选通道,89,采用中断响应法的程序为,CLI,MOV AL,,,03H,OUT 98H,,,AL,;选通,IN,3,,并启动,A/D,转换,NOP,NOP,STI,而在中断服务程序中用一条指令,IN AL,,,98H,;读取转换结果的数字量,假设,ADC0809,端口地址为,98H,。,仅对模拟通道,IN3,进行,A/D,转换。,90,若对,IN0IN7,八个通道的模拟量各采样,100,个点,并转换成数字量采用中断方式,8259A,边沿触发,自动结束,非缓冲方式,单片使用中断类型码为,7077H,,偶地址假设为,20H,,奇地址为,21H,的程序如下,(,伪指令省略,),:,WP DB 800DUP,(?),MOVAL,,,13H,;,ICW1,OUT 20H,,,AL,MOV AL,,,70H,;,ICW2,OUT 21H,,,AL,MOV AL,,,03H,;,ICW4,OUT 21H,,,AL,PUSH DS,MOV AX,,,0,MOV DS,,,AX,MOV BX,,,OFFSET XY,MOV SI,,,SEG XY,MOV,01CCH,,,BX,MOV,01CEH,,,SI,POP DS,MOV CX,,,100,MOV DI,,,0FFSET WP,STI,PP,:,MOVBL,,,00H,LL,:,MOV AL,,,BL,OUT 98H,,,AL,HLT,INC BL,CMP BL,,,08H,JNZ LL,DEC CX,JNZ PP,HLT,中断服务程序:,XY,:,PUSH AX,STI,IN AL,,,98H,MOV,DI,,,AL,INC DI,CLI,POP AX,IRET,91,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!