资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二次习题(复习)课 part 2,第4部分:半导体存储器,第5部分: 数字量输入输出,I/O接口电路使得外设与总线隔离,起到数据缓冲、暂存的作用,并协调主机与外设之间数据传输速度不匹配的矛盾,必须遵循“输入三态缓冲、输出锁存”的原则。,*概念、 *基本I/O接口、 *典型数字量I/O接口芯片,第6部分:模拟量输入输出,1,中断及8259编程,掌握初始化编程(顺序),但所有控制字格式不需要死记硬背,提供参考查阅,了解:,中断屏蔽,;,中断优先级,;中断嵌套;,掌握:,中断处理过程,,中断服务程序,;,应用:外部中断的随机性,保护断点(自动),,现场保护(编程),断点,返回断点,现场,2,T/C 8253,:定时器/计数器,方式,0,、,1,和方式,4,、,5,不能自动重复,,常用于计数,;,方式,2,、,3,能自动重复,,常用于定时,;,常用:,方式,0,:计完,n+1,个脉冲发中断请求,软件启动,方式,2,:速率发生器,对,clk,进行,n,分频,方式,3,:方波发生器,区分,n,奇数,/,偶数情况,应用:,硬件级联的概念,、定时中断,掌握六种方式:,3,习题,习题5(1)-1:I/O 的控制方式主要有哪几种?各有什么特点?,1)(程序)查询方式2)中断方式 3)DMA方式,传送效率低,效率较高,CPU响应较快,但传送由中断软件完成,效率较高,硬件完成,但电路复杂。,4,并行I/O接口 i,8255,方式,0,:基本直接,I/O,,含输出锁存,/,输入缓冲无锁存;,方式,1,:选通,I/O(A,口,/B,口,,C,口联络,),;,方式,2,:双向,I/O,方式,(PA,口,,C,口联络,),;,方式,1/2,带,INTR,,可中断;,IBF/OBF,信号的作用,(,输入,/,输出缓冲区满,),;而方式,0,只能查询。,8255控制字:,(1),方式字,,,特征位D7=1,;,(2),PC口位控功能字,,特征位D7=0,,允许CPU用输出指令单独对C口的某一位写入“1”或“0”,正确的方法是通过写8255的,控制寄存器,方式写入;,脉冲的产生: 位0-1-0,5,例题,(2006). Intel8255可编程并行接口芯片三种并行I/O工作方式中(,A,)不能直接支持中断请求。,A方式0 B方式1 C方式2 D三种方式都是,6,例题掌握8255与基本I/O,(2001考题),如下图系统,i8255芯片经PA口监测八路开关SW0SW7状态, 并利用分别接在PB0PB2上的三只发光管L0L2指示其状态。,要求当SW0SW7中有17个接通时L0发光管亮,所有8个开关都接通时L1亮,8个都不接通时L2亮。,已利用地址信号A9A4得到8255片选译码地址为28XH(X由A3-A0确定),片内寄存器地址线A1和A0分别与处理器地址线A3、A2相连。,7,例题,(1) 完成右侧8255与开关和发光管的示意连线,注意通断(亮灭)输入输出电平关系;,A,1,A,0,没用,8,例题,(2) 在横线上填写8255各口地址定义伪指令:,PA口地址:PAPORT EQU,280H283H,PB口地址:PBPORT EQU,284H287H,PC口地址:PCPORT EQU,288H28BH,(3) 编写工作程序片断(不必初始化,但需说明8255口工作方式,其中端口用(2)中伪指令定义地址);,9,例题,MOV DX, PAPORT,IN AL,DX,CMP AL,0FFH,JZ,ALLON,CMP AL,00,JZ,ALLOFF,PARTON:MOV AL,01H,;LED0,JMP LEDOUT,ALLON:MOV AL,02H;LED1,JMP LEDOUT,ALLOFF:MOV AL,04H,;LED2,LEDOUT: MOV DX,PBPORT,OUT DX,AL,10,例题,习题5(1).2,输入输出电路如教材中图5.10 和5.11 所示,试编一程序,实现微机连续检测开关K1-K8状态,当开关K1-K8 全部闭合或全部断开时使LED 亮,否则使LED 熄灭,同时把开关状态存放在SwitchS 单元内。,11,例题,MOV DX,218H ;开关输入端口,IN AL,DX,MOV SwitchS,AL ;保存开关状态,CHKS:,CMP AL,0FFH,JZ,ALLONOFF ; 全断开,CMP AL,0,JNZ,ONOFF,ALLONOFF: MOV AL,JMP LEDOUT,ONOFF: MOV AL,0,LEDOUT: MOV DX,219H ;LED 端口:1 亮,OUT DX,AL,12,例题,变化2011年考题:,要求分4组进行判别, 当发现任何一组(如S0与S1,S2与S3,S4与S5,S6与S7)输入开关状态相同时,对应指示灯(L0-L3)亮报警。设计说明8255A的初始化要求(工作模式), 根据设计电路,说明原理注,编写完成上述功能的检测、报警程序片断 (8分) 。,如果要求报警判断为连续四次输入同组状态相同时才输出报警,简单说明应该如何修改程序 (3分)。,(注:可利用逻辑左移或右移指令SHL/SHRAL,1),13,串行I/O接口 8250/8251,基本概念:,同步/异步通信,三种传送模式:,按照数据流的方向可分成,单工:只能单向,半双工:能双向,但同一时间只能单向,全双工:可同时双向,调制解调,波特率:,每位时间宽度=1/波特率,与传输字符速率的关系,RS232电平标准,异步通信特点与帧格式,14,串行I/O接口 8250/8251,异步通信的特点是:,一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。,异步通信数据格式:,1位起始位,(低电平,逻辑值),字符本身由,5-7位数据位,组成,接着字符后面是,1位奇偶校验位,(也可以没有校验位),最后是,1位或1位半或2位停止位,,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。,15,串行I/O接口 8250/8251,8250:,结构特征:双缓冲器数据收发都有移位寄存器;,编程:3根地址线=10个寄存器,寻址表5.10;,传输线控制寄存器(,DLAB位,),传输线状态寄存器(,帧格式错、奇偶错、,溢出,:寄存器被覆盖,(a)发送太快,没有来得及送出,(b)接收太慢,没有及时读取,),除数寄存器(波特率,分频系数),(DX)=3F8H, OUT DX,AL,16,例题,1.,若系统采用异步串行数据传输方式,每个字符传送格式为数据位6位,奇偶校验位1位,停止位2位,若波特率为4800BPS,则每秒钟最多能传输的字符数是_。,A,、240,B,、360,C,、,480D,、,520,答案:,C,2. 两台微机通过异步串行接口进行通信,保证其通信正确性的基本条件是_,A.波特率误差不超过5% B. 字符格式 C. 传输电平匹配 D. 以上三条都是,答案:,C,17,例题,习题5(2).3,8250的主参考时钟频率为1.8432MHZ,其BAUDROUT和RCLK相连。试完成以下要求的初始化程序设计: 每字符的数据位数位7,1位停止位,奇校验,波特率为1200B/S,允许发送器空中断。设8250的端口及寄存器地址从02C0H开始。,波特率为1200B/S,对应除数=0060H,(,P292表5.11),设寄存器首地址02C0H(P289表5.10),18,例题,MOV DX, 02C0H+3;,线路控制寄存器,MOV AL, 80H,;,DLAB=1,OUT DX, AL,MOV DX,02C1H,;访问的是除数寄存器,MOV AL,0,OUT DX, AL,DEC DX ;也可以MOV DX, 2C0H,MOV AL,60H,OUT DX, AX,MOV DX, 2C0H+3;,线路控制寄存器 DLAB=0,MOV AL,0,0001010B ;数据位数位7,1位停止位,奇校验,OUT DX, AL,MOV DX,2C1H,;访问的是中断允许寄存器,MOV AL, 00000010B,OUT DX, AL,19,例题,习题5(2).4,如两台计算机利用8250进行串行通讯。通讯规程如下: 异步传送,波特率为2400B/S,每字符的数据位为8位,1位停止位,无校验。试完成下列程序设计: 发送程序:将数据段中以T_BUF为起始地址的一组数据送到收方,字符串的长度存于字节变量T_LEN中,发送时,先发两个起始符AAH和55H,发送完全部数据后,再发送两个结束符55H和AAH作为发送结束标志。 接收程序:将接收到的一组数据存放在从R_BUF开始的接收缓冲区中,所收到的数据长度存于字节变量R_LEN中,只统计数据个数。如一组数据接收正确,将字节变量ERROR置为00H,否则置为FFH。,20,例题,MOV DX, 3FBH,;,线路控制寄存器,MOV AL, 80H,;,DLAB=1,OUT DX, AL,;波特率为2400B/S,对应除数=,0030H,MOV DX, 3F9H,;访问的是除数寄存器,MOV AL,0,OUT DX, AL,MOV DX, 3F8H,MOV AL,30H,OUT DX, AL,21,例题,; 发送方,T1: MOV DX, 3FDH,;线路状态,IN AL, DX,TEST AL, 20H,;发送寄存器空,JZ T1,MOV AL, 0AAH,;发两个字符,MOV DX, 3F8H,;发送寄存器,OUT DX, AL,CALL SREGCK,;检查发送寄存器,MOV AL, 55H,MOV DX, 3F8H,OUT DX, AL,CALL SREGCK,MOV CL, T_LEN;发的个数,MOV SI, T_BUF;,TLOOP:,MOV AL, SI,MOV DX, 3F8H;发送寄存器,OUT DX, AL,CALL SREGCK;每发完,检查,INC SI,DEC CL,JNE TLOOP,MOV AL, 0AAH;再发两个字符,MOV DX, 3F8H;,OUT DX, AL,CALL SREGCK,MOV AL, 55H,MOV DX, 3F8H,OUT DX, AL,CALL SREGCK,22,例题,接收:,R1,: CALL RBUFCK,;接受就绪检查,MOV DX,3F8H,;接受寄存器,IN AL, DX,CMP AL, 0AAH,;检查起始字符,JNZ R1,MOV DX, 3F8H,IN AL, DX,CMP AL, 55H,JNZ R1,MOV AL, 0,M,OV R_LEN, AL,MOV SI, R_BUF,R2:,MOV DX, 3F8H,IN AL, DX,;收数据,CMP AL, 55H,;是否收到结束标志,JZ R3,MOV SI, AL,INC R_LEN,INC SI,JMP R2,R3:,MOV DX, 3F8H,IN AL, DX,CMP AL, 0AAH,;是否收到结束标志,JZ R4,MOV AL, 0FFH,MOV ERROR, AL,MOV SI, AL,INC R_LEN,INC SI,JMP R2,R4:,MOV AL, 00,MOV ERROR, AL,RBUFCK:,MOV DX, 3FDH,;读线路状态寄存器,IN AL, DX,TEST AL, 01,JZ RBUFCK,RET,23,DMAC 直接存储器访问 8237,基本概念、,DMAC,的作用(原理),: I/O,外设与存储器之间高速数据交换;,外设或存储器通过,AEN,信号区分,MPU/DMAC,之一控制总线;,CPU,DMAC,外设,HLDA,i=0,1,2,3 每个通道可独立响应外部DMA请求,HRQ,DREQ,i,DACK,i,24,DMAC 直接存储器访问 8237,例题. 单i8237DMA控制器可支持4个通道的DMA(直接存储器访问),若采用两级DMA控制器级连方式,则8237最多可以实现_通道的DMA。,(A)4 (B)8 (C) 12 (D)16 (E)64,(答案:D),25,第二次习题(复习)课,第4部分:半导体存储器,第5部分: 数字量输入输出,总线、接口概念,*接口电路(芯片)、端口地址,* 数据传送方式,* 中断电路及其处理,*定时/计数器电路与应用,* 并行接口电路与应用,* 串行接口电路与应用,DMA电路与应用,第6部分:模拟量输入输出,26,模拟量接口A/D-D/A,基本概念:,多路转换开关MUX和采样保持器S/H的主要作用;,ADC双积分、逐次逼近、V/F变换型,ADC0809:8位8通道逐次逼近型模数转换器;,AD574A:12位单通道;,精度: 相对满量程而言,分辨率:对信号灵敏度,与位数相关;,Vref对转换精度的影响;,模拟地-数字地: 相同电位,单点相连(避免多点电位差引起地线上环流,影响精度,),掌握: 接口编程ADC/DAC的转换控制,Vo = - Vref,Rf,R,D,256,27,模拟量接口A/D-D/A,接口电路简单互连,:接口电路与简单I/O类似,(1)数据线:8位,D7D0 通常同名互连,(2)地址线:经,译码电路产生片选信号,,其中若干连至芯片/CS,/CE,74LS138,(3)控制信号线:,/RD, /IORD 接/OE(输出允许),/WR, /IOWR 接/WE(写入允许,/LE,START,ALE等),无独立片选芯片,28,模拟量接口A/D-D/A,根据指定端口地址,利用I/O指令,接口应用程序片断编程,:,DA:先送出8位/12位数据,再启动DAC,AD:先启动转换START/ALE,延时或判断EOC再读取结果,应用:按设计要求处理后保存到变量单元或输出:,MOV DX, INPORT,IN AL, DX,MOV V1, AL,;处理(例如数字滤波平均),MOV DX, OUTPORT,OUT DX, AL,提示:,AD/DA程序片断运行的方式(除初始化芯片和单元外),可以结合定时执行或中断执行;,如需要记忆以前信息(用于比较等),一般存放在内存单元中而非寄存器中。,29,例题,1. ADC0809模数(A/D)变换中,如果基准电压源Vref=4.00V,转换数字量为C0H,则输入电压信号应为_V。,(A)1.0 (B)1.5 (C) 2.0 (D)2.5 (E)3.0,答案:E,C0H/256=0.75,30,例题,课本P344:图6.27, ADC0809+i8255,习题6.4:综合设计型,ADC0809设计一个数据采集系统,采用中断方式,EOC接至8259A的IRQ,2,,每隔200s采样一个数据。试完成:, 硬件设计,画出连线图(不包括8259A);, 软件设计,包括8255A、8253的初始化及中断服务程序。,难度考试(不要求8255的初始化),31,例题,设计题所以有多种方案(单一通道,或8通道轮流转换,顺序存入缓冲记忆单元),例:,8255PA0809的D0-D7,8255的PB0PB20809的ADDCA, PB30809ALE,0809 OE-+5V,如果ALE用PC口位控则更加简单,8253 CLK02MHz ,OUT00809 START (200uS定时),EOCIRQ2,32,例题,初始化:,MOV AL, 10011001B ;A口入,B口出,方式0,MOV DX, PORT8255;控制口,OUT DX, AL,MOV DX, PORT8255B,MOV AL, 00000000B ;ALE=”0”,选Ch0,例首次选择CH0,OUT DX, AL,MOV AL, 00001000B ;ALE=”1”,锁存CH0,OUT DX, AL,MOV AL, 00110100B,MOV DX, PORT8253+3 ;8253计数器0初始化,方式2,16位,二进制,OUT DX, AL,MOV AL, LOW 400,MOV DX, PORT8253,OUT DX, AL,MOV AL, HIGH 400,OUT DX, AL,;200us 初值(2MHz,400分频),;8259初始化,STI,33,例题,中断1:读取转换结果,存入单元,再选择通道(锁存),等下次转换,INT_PROC: PUSH ,MOV DX, PORT8255PA,IN AL, DX ;读取转换值,MOV AD_BUF, AL ;保存至单元,MOV AL, 00000XXXB ;选通道,锁存 XXX可变000-111,MOV DX, PORT8255PB,OUT DX, AL,MOV AL, 00001XXXB ;产生脉冲,OUT DX, AL ;ALE高电平锁存通道,POP .,34,习题,08年试题,8086/8088 系统采用ADC0809 和8255 接口芯片采集8 个输入通道的信息,并转换成对应的电压数字量,输出到4 个LED 显示器显示(其中:1 个LED 显示通道数0-7,3 个LED 显示相应通道的电压值)。,START:AD 转换启动信号,输入,高电平有效。,ALE:地址锁存允许信号,输入、高电平有效。,OE:输出允许信号,输出、高电平有效。,EOC:AD 转换结束信号,输出、高电平有效。,低位地址片内译码,高位地址片选译码,35,习题,08年试题,(35分),(1)说明8255A 的PA 、PB 和PC 口的工作方式及各口的作用;,答:,PA 口工作于方式0 输出,给4 个数码管提供段码;,PB 口工作于方式0 输入,读取ADC0809 的转换结果;,PC 口工作于方式0 输出,PC0PC3 给4 个数码管提供位码,PC4PC6给ADC0809 提供地址信号,PC7 给ADC0809 提供地址锁存信号ALE和启动转换信号START 。,(2)设计8255 端口地址2C0H, 用A9-A4 译码,译码器用74LS138,写出设计过程并画出连线图,;,A15 A14 A13 A12 A11 A10,A9 A8 A7 A6 A5 A4,A3 A2 A1 A0,0 0 0 0, 0 0,1 0, 1 1 0 0,0 0 0 0,2C0H是8255A,0 1,2C1H是8255B,1 0 ,2C2H是8255C,1 1,2C3H是8255CTRL,连线,36,(续),(3)简述CPU 控制ADC 工作原理。,答:PC4PC6 给ADC0809 提供地址信号,确定IN0IN7 中的某通道;PC7 给ADC0809 提供启动转换信号,启动ADC,同时锁存通道地址;通过PB 口读取0809 的ADC 结果。,37,(续),(4)根据图中连线,编写选择IN4 通道进行转换的程序片断,并将转换结果存入单元VIN4 中.(不考虑PC 口对显示部分的影响),MOV DX,,,P8255C,;C口地址2C2H,MOV AL,,,0,001,0000B,;选择IN4,PC6 5 4=001B,(PC4接ADDC),OUT DX,,,AL,MOV AL,,,1,001,0000B,OUT DX,,,AL,MOV AL,,,0,001,0000B,; ALE/START 正脉冲启动ADC,同时锁存通道,OUT DX,,,AL,;也可以用位控字方式产生通道选择锁存信号,写入控制端口2C3H,CALL delay,;延迟读结果,MOV DX,,,P8255B,;B口地址2C1H,IN AL,DX,MOV VIN4,AL,38,习题,08年试题,(35分),(5)简述CPU 控制数码管显示工作原理,答:某通道的ADC 结果经CPU 换算后,成为3 位八段码,连同表示该通道位一起,共4 位八段码,分别在4 个数码管上显示。具体:PA 口给4 个数码管循环提供段码,同时PC0PC3 给4 个数码管循环提供位码,循环显示4 位BCD 码,使人眼感觉4 个数码管同时显示。,39,习题,08年试题,(35分),(6)设计指定通道(0-7)的转换-显示子程序DISPADCH 的结构(,功能和参数传递关系,),(不编具体程序),编写周期性显示各通道和电压值的主程序片断,其中可直接调用上述DISPADCH 以及延时程序。,AGAIN,:,MOV CX,,,8,MOV AH,,,0 ; 任何寄存器或单元,LP1,:,PUSH AH,CALL DISPADCH ;设入参为AH,POP AH,INC AH ;,LOOP LP1 ;,JMP AGAIN ;可以不压栈,40,习题,08年试题,(35分),(7)如果CPU 采用中断方式读取ADC 转换结果,如何实现?,答:中断方式读取ADC 结果:将ADC0809 的EOC 信号连在DMAC8259的某一个输入引脚,例如IR2,作为中断请求信号,申请CPU 中断。若只读一次:,在主循环中启动START/ALE,,在CPU 中断服务程序中,读取ADC 结果。,41,
展开阅读全文