微机第9章8253
- 格式:ppt
- 大小:775.00 KB
- 文档页数:52


微机原理及应用第九章接口芯片第九章可编程通用接口芯片§ 9.1 接口芯片的功能及分类一: 接口芯片的功能1: 寻址功能A: 芯片有片内地址线1): 对芯片写控制字, 设置芯片功能2): CPU与芯片寄存器间交换信息B: 芯片有片选控制线/CS1): CPU地址线经译码产生片选控制线/CS2): /CS, 片内地址线确定片内寄存器地址值的唯一性2: 信息交换功能A: 数据, 状态, 控制信息的交换特点B: 数据, 状态, 控制信息的传送方向二: 接口芯片的分类1: 按用途分类A: 通用接口芯片1): 74LS373, 74LS2452): 8255AB: 专用接口芯片1): DMA接口芯片8237A2): 中断接口芯片8259A2: 按控制方式分A: 不可编程控制芯片功能74LS373, 74LS245B: 可编程控制芯片功能8255A, 8259A, 8253A§ 9.2 可编程并行接口芯片8255A一: 8255A的基本功能1: 可编程控制并口的输入, 输出功能2: 并口作输入或输出可控3: 多并口通道使用的灵活性二: 8255A的内部结构(337页)1: 8255A与外设的接口A: 8位双向A口PA0 ~ PA7B: 8位双向B口PB0 ~ PB7C: 8位双向C口PC0 ~ PC7注: 8255A的C口使用灵活, 也是掌握8255A的重点2: 8255A与CPU的接口A: 8位数据线D0 ~ D7 (接数据总线DB的低8位) B: 芯片寻址控制线1): 片内寄存器寻址线A0, A1(两线四址)2): 片选控制线/CS (由地址译码产生)注: PC/XT中, 地址为60H ~ 63HC: 读写控制线/RD, /WRD: 复位控制线RESET3: 内部逻辑A: 工作方式由CPU向8255A写控制命令字获得B: A口, B口, C口可读写操作C: A口, B口, C口具有组态特点1): A组—— PA0 ~ PA7和PC4 ~ PC72): B组—— PB0 ~ PB7和PC0 ~ PC3注: C口应用的灵活性D: 8255A操作地址(339页表9.1)1): 写控制字地址A1= 1, A0 = 1 注: 该地址仅有写操作2): A口读写地址A1 = 0, A0 = 03): B口读写地址A1 = 0, A0 = 14): C口读写地址A1 = 1, A0 = 0三: 8255A的引脚特性1: DIP40封装2: 引脚信息流的方向四: 8255A的控制命令字1: 控制命令字的写操作地址A: A0 = 1, A1 = 1B: PC/XT为63H2: 控制命令字的形式A: 工作方式控制字B: C口置/复位控制字注: 怎样操作同地址写入不同的控制字3: 一址两字识别位(在写入的控制字中)A: 若b7 = 1, 写入工作方式控制字B: 若b7 = 0, 写入C口置/复位控制字4:A: 识别位b7 = 1B: A口操作1): 工作方式定义b6, b5 = 00 ——方式0, 基本输入/输出b6, b5 = 01 ——方式1, 选通输入/输出b6, b5 = 1x ——方式2, 双向数据传送2): 方式0, 方式1的输入, 输出选择b4 = 0 ——输出b4 = 1 ——输入C: B口操作1): 工作方式定义b2 = 0 ——方式0, 基本输入/输出b2 = 1 ——方式1, 选通输入/输出2): 输入, 输出选择b1 = 0 ——输出b1 = 1 ——输入D: C口操作1): b3 = 0 —— PC4 ~ PC7 作输出b3 = 1 —— PC4 ~ PC7 作输入2): b0 = 0 —— PC1 ~ PC3 作输出b0 = 1 —— PC1 ~ PC3 作输入注: A口有三种工作方式定义, B口仅有二种工作方式定义, C口无工作方式定义, 但分为上下半字节定义5: CA: 识别位b7 = 0B: C口位选择编码b3 b2 b10 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7C: C口输出状态b0 = 0 C口输出低电平b0 = 1 C口输出高电平D: b4, b5, b6位无意义《例》设8255A的A口工作于方式1输入, B口工作于方式0输出, 置PC4 = 1, (8255A的操作地址为60H ~ 63H)解: 工作方式控制字C= 09HMOV AL, 0B0HOUT 63H, AL ; 写方式控制字MOV AL, 09HOUT 63H, AL ; 写置/复位控制字五: 8255A 的工作方式 ? A 口有三种工作方式——方式0, 方式1, 方式2B 口有二种工作方式——方式0, 方式1C 口无工作方式选择, 仅工作于方式01: 方式0 ——基本输入输出A: 功能1): 可提供三个8位输入通道或三个输出通道PA0 ~ PA7, PB0 ~ PB7, PC0 ~ PC72): 可提供二个8位输入/输出通道及二个4位输入/输出通道 PA0 ~ PA7, PB0 ~ PB7, PC0 ~ PC3, PC4 ~ PC73): 根据方式控制字, 有16种输入/输出组合B: 电特性1): 作输出用, 各口有锁存功能2): 作输入用, 各口无锁存功能C: 应用1): 程序控制下的无条件传送方式A 口,B 口,C 口均传送数据信息2): 程序控制下的有条件传送方式(查询方式)B 口传送数据信息,C 口传送状态及控制信息2: 方式1 ——选通输入输出A: 功能1): A 口, B 口作8位数据输入或数据输出2): C 口特定位为A, B 口服务, 具有组态特点B: 电特性1): 作输出用, A, B 口有锁存功能2): 作输入用, A, B 口有缓冲功能C: 应用1): 程序控制下的有条件传送方式(查询方式)A, B口传送数据信息, C口特定位传送状态及控制信息2): 中断传送方式C口特定位可发中断请求信号3: 方式2 ——双向输入输出A: 功能1): A口具有双向数据传送功能2): C口特定位的组合应用B: 电特性A口具有双向锁存和缓冲特性C: 应用1): 程序控制下的有条件传送方式(查询方式)A口双向传送数据信息, C口特定位传送状态及控制信息2): 中断传送方式C口特定位可发中断请求信号A口方式1输入1:注: C口PC6,PC7不为特定位, 故可作输入输出用2: C口特定位的作用A: PC4 ←/STBA外设输入数据锁存到A口的控制信号, 输入, 低有效B: PC5 →IBFAA口己锁存好外设输入数据的状态信号, 输出, 高有效注: 查询方式下查此状态信号是否为高C: PC3 →INTRA8255A向CPU发中断请求信号, 输出, 高有效注: 中断方式下中断请求信号为高有效, 一般经8259A到CPU 3: INTRA的中断允许及中断屏蔽A: INTRA信号产生逻辑电路B: 公式PC3 = PC5 & INTEA1): 若输入数据已锁存, PC5 = H2): 若INTEA = L, 则PC3 = L, 中断屏蔽3): 若INTEA = H, 则PC3 = H, 中断允许C: INTEA电平的获得1): 对PC4进行置/复位方式操作2): 中断屏蔽置/复位控制字3): 中断允许置/复位控制字 4: 工作时序(347页, 图9.13)A: 外设准备好数据,外设→ 8255A 发/STB = LB: 8255A 锁存好数据, 8255A → 外设发IBF = H若置PC4 = H, 8255A → CPU 发INTR = HC: 若状态正确, CPU 对8255A 进行读操作若有断请求, 响应, CPU 执行中断服务程序B 口方式1输入1:注: C 口PC6,PC7不为特定位, 故可作输入输出用2: C 口特定位的作用A: PC2 ← /STBB外设输入数据锁存到B 口的控制信号, 输入, 低有效B: PC1 → IBFBB 口己锁存好外设输入数据的状态信号, 输出, 高有效注: 查询方式下查此状态信号是否为高C: PC0 → INTRB8255A 向CPU 发中断请求信号, 输出, 高有效注: 中断方式下中断请求信号为高有效, 一般经8259到CPU3: INTRB 的中断允许及中断屏蔽A: INTRB 信号产生逻辑电路B: 公式 PC0 = PC1 & INTEB1): 若输入数据已锁存, PC1 = H2): 若INTEB = L, 则PC0 = L, 中断屏蔽3): 若INTEB = H, 则PC0 = H, 中断允许C: INTEB 电平的获得1): 对PC2进行置/2): 中断屏蔽置/复位控制字 3): 中断允许置/复位控制字A 口方式1输出1: 注: C 口PC4, PC5不为特定位, 故可作输入输出用2: C 口特定位的作用CPU 将数据写入A 口后, 输出低电平, 告诉外设数据己准备好B: PC6 ← /ACKA外设从A 口收到数据后, 输出低电平有效状态信号注: 查询方式下查此状态信号是否为低C: PC3 → INTRA8255A 向CPU 发中断请求信号, 输出, 高有效注: 中断方式下中断请求信号为高有效, 一般经8259到CPU3: INTRA 的中断允许及中断屏蔽A: INTRA 信号产生逻辑电路B: 公式 PC3 = PC7 & INTEA1): 要执行写数据中断服务程序, 则PC7 = H2): 若INTEA = L, 则PC3 = L, 中断屏蔽3): 若INTEA = H, 则PC3 = H, 中断允许C: INTEA 电平的获得1): 对PC6进行置/2): 中断屏蔽置/复位控制字 3): 中断允许置/复位控制字4: 查询方式工作时序(347页, 图9.14)A: CPU 向8255A 写数据后8255A → 外设发/OBF = L B: 外设收到数据后外设→ 8255A 发ACK = H C: CPU 查ACK 状态, 继续写数据过程5: 中断方式工作时序(347页, 图9.14)A: CPU 执行中断服务程序, 向8255A 写数据8255A → 外设发/OBF = LB: 外设收到数据后外设→ 8255A 发ACK = H, 此时/OBF = HC: 若中断允许, 外设经8255A 向CPU 发中断请求D: 若CPU 有中断响应响, 从复上述过程B 口方式1输出1: 注: C 口PC4, PC5不为特定位, 故可作输入输出用2: C 口特定位的作用A: PC1 → /OBFBCPU 将数据写入B 口后, 输出低电平, 告诉外设数据己准备好外设从B口收到数据后, 输出低电平有效状态信号注: 查询方式下查此状态信号是否为低C: PC0 →INTRB8255A向CPU发中断请求信号, 输出, 高有效注: 中断方式下中断请求信号为高有效, 一般经8259到CPU 3: INTRB的中断允许及中断屏蔽A: INTRA信号产生逻辑电路B: 公式PC0 = PC1 & INTEB1): 要执行写数据中断服务程序, 则PC1 = H2): 若INTEB = L, 则PC0 = L, 中断屏蔽3): 若INTEB = H, 则PC0 = H, 中断允许C: INTEB电平的获得1): 对PC2进行置/2): 中断屏蔽置/复位控制字3): 中断允许置/复位控制字注: A口方式1输入使用C口位PC3, PC4, PC5A口方式1输出使用C口位PC3, PC6, PC7B口方式1输入, 输出均用C口位PC0, PC1, PC2, 为什么 A口方式2双向数据传送1:注: A口工作于方式2时, b4位值无意义2: C口特定位的作用A: 输入时同A口方式1输入B: 输出时同A口方式1输出3: 中断允许与中断屏蔽A: 输入中断方式同A口方式1输入B: 输出中断方式同A口方式1输出C: 输入, 输出中断方式由或门完成●《例9.1》(348页) 8255A用作A/D, D/A接口1: 电路原理图(348页图9.16)2: 通道选用A: A口工作于方式1输入, 用于A/D变换的数据输入接口B: B口工作于方式0输出, 用于D/A变换的数据输出接口C: C口为A口服务3: I/O接口控制方式A: 输入(A口) 采用查询方式B: 输出(B口) 采用无条件程控方式C: C口为位操作,1): 位输出控制信息2): 位输入状态信息4: 8255A对A/D芯片的控制A: PC7 = H, 启动A/D变换PC7 = L, 停止A/D变换B: PC4(/STBA) = L, A/D变换后的数据送A口锁存C: PC5(IBFA) = H, A口己锁存A/D变换后的数据D: 测试状态信息PC5 = H, 下一步完成读A/D数据5: 8255A对D/A芯片的控制由于B口工作于方式0输出, 为直接数据输出CPU → 8255A(B口) → D/A变换芯片→外设(扬声器) 6: 程序设计(8255A地址为300H ~ 303H)A:A口方式1输入B6,B5,B4 = 011B口方式0输出B2,B1 = 00C口PC7输出B3 = 0MOV AL, 1011000XBMOV DX, 303HOUT DX, ALB: 完成A/D变换过程1): 启动A/D, 置PC7 = HMOV DX, 303HMOV AL, 0XXX1111BOUT DX, AL2): 停止A/D, 清PC7 = LMOV AL, 0XXX1110BOUT DX, ALC: 查询PC5, 完成数据读操作MOV DX, 302H ; C口R/W地址为302H AG: IN AL, DXTEST AL, 00100000B ; 测PC5位是否为0JZ AG ; 为0, 循环查询, 为1进入下式MOV DX, 300H ; A口R/W地址为300HIN AL, DXD: 完成B口数据写操作MOV DX, 301H ; B口R/W地址为301HOUT DX, AL§ 9.4 可编程计数器/定时器8253一: 8253的基本功能及工作原理1: 8253的基本功能A: 定时功能输出状态根据定时值改变B: 计数功能可对输入波形进行分频输出2: 8253的工作原理A: 设定8253内部计数器初值B: 8253内部计数器从外部获得计数脉冲信号C: 在计数脉冲作用下, 内部计数器减1计数D: 根据8253内部计数器工作方式获得波形输出二: 8253的内部结构1: 8253与CPU的接口A: 8 位数据线——D0 ~ D7B: 寻址控制线——A0, A0, /CSC: 读写控制线——/RD, /WR2: 8253与外设的接口A: 三个独立的计数器/定时器B: 计数器/定时器输入线1): 时钟输入—— CLK2): 输入门控—— GA TEC: 计数器/定时器输出线输出信号—— OUT3: 8253的寄存器A: 控制寄存器CPU对8253写入控制字, 编程改变8253的功能B: 初始值寄存器CPU对8253写入计数初值, 使8253获得定时量C: 状态寄存器CPU从状态寄存器中读入8253的状态注: 上述三个寄存器可编程D: 计数器为16位计数器, 完成减1操作E: 计数输出寄存器根据计数状态产生输出波形注: 上述二个寄存器不可编程4: 8253的读写地址A: 工作方式/计数器选择控制字地址A1 = 1, A0 = 1 B: 计数器0的R/W地址A1 =0, A0 = 0C: 计数器1的R/W地址A1 = 0, A0 = 1D: 计数器2的R/W地址A1 = 1, A0 = 0三: 8253外部输入, 输出线特性1: CLK ——时钟输入A: 时钟来源1): 来源于计算机系统内部周期时钟2): 来源于计算机系统外部非周期脉冲注: 对定时器, CLK必为周期信号对计数器, CLK可不为周期信号B: 触发方式为边沿触发2: GA TE ——门控输入GA TE = H 允许计数, GA TE = L 禁止计数3: OUT ——波形输出可编程定义波形输出方式A: 电平输出B: 周期波形输出C: 脉冲输出四: 8253的工作方式/计数器选择控制字1: 计数器选择位0 0 计数器00 1 计数器11 X 计数器22: 工作方式选择位b3 b2 b10 0 0 方式00 0 1 方式10 1 0 方式20 1 1 方式31 0 0 方式41 0 1 方式51 1 0 无用1 1 1 无用3: 计数器进制选择位b00 二进制计数1 十进制计数(BCD)4: 计数器值读写入方式选择位b5 b40 0 锁定计数器值0 1 仅R/W计数器低8位1 0 仅R/W计数器高8位1 1 顺序R/W计数器低8位, 高8位注: 8253计数器为16位计数器, 而数据线仅有8位, 当写入方式控制字时, 计数器清0, 置计数器初值时, 若仅有高或低8位有不为0的值时, 可只写8位, 若16值不为0, 则顺序写入低8位, 高8位, 即解决16位计数器与8位数据线的矛盾设8253的口地址为40H ~ 43H, 完成写控制字及置初值程序段《例A》8253工作为计数器0, 方式0, 初值为4, 二进制计数MOV AL, 10HOUT 43H. ALMOV AL, 04HOUT 40H, AL《例B1,方式3,初值为4020H,十进制计数77HMOV AL, 77HOUT 43H, ALMOV AL, 20HOUT 41H, ALMOV AL, 40HOUT 41H, AL《例C2,方式3,初值为4000H,十进制计数A7HMOV AL, 0A7HOUT 43H, ALMOV AL, 40HOUT 42H, AL五: 8253的工作方式注: A: 写入控制字时, 初始值寄存器清零B: 计数器CE比初始值寄存器CR延时一个时钟周期C: 计数器CE为减1计数D: CLK与GA TE在时序上进行配合1: 方式0 计数结束产生中断输出(软件控制)A: OUT输出1): 写控制字时, OUT输出状态不定2): 写CR初值时, OUT = L3): CE = 0时, OUT = HB: GA TE门控1): GA TE = L CE不工作, 有延时作用2): GA TE = H CE减1计数2: 方式1 重复触发的单稳输出(硬件控制)A: 写控制字时, OUT输出状态不定B: 写CR初值时, OUT = HC: GA TE输入上升沿脉冲时, 启动计数器, 且OUT = LD: 计数器为0时, OUT = H注: 一般情况下, OUT保持高电平(单稳), 当外部从GA TE端输入触发脉冲后, OUT改变为低电平, 其维持时间由计数值确定E: GA TE的影响1): 当OUT = H时, GA TE触发改变OUT的状态, 即从H → L2): 当OUT = L时, GA TE触发使CE从初值开始计数, 即延时3: 方式2 分频器(软件控制)A: 写控制字时, OUT输出状态不定B: 写CR初值时, OUT = H, CE工作C: CE = 0时, OUT = LD: 一个时钟后, OUT = H, CE工作注: 重复C和D, OUT输出周期负脉冲, 若时钟频率为f, 计数初值为n, 则分频比为f/nE: GA TE的影响1): 当GA TE保持高电平时, CE按原初值计数2): 当GA TE有负脉冲触发后, CE按新初值计数4: 方式3 方波发生器(软件控制)A: 基本功能同方式2B: 输出波形占空比1): 若计数初值为偶数, 输出波形占空比为12): 若计数初值为奇数, 输出波形占空比接近为1注: 若计数初值为奇数,输出波形的高电平比低电平多1个时钟5: 方式4 选通信号发生器(软件触发)A: 写控制字时, OUT输出状态不定B: 写CR初值时, OUT = HC: 若GA TE = H, 计数器CE工作若GA TE = H, 计数器CE不工作D: 若CE = 0, OUT = LE: 一个时钟周期后, OUT = H注: 在CE的作用下, 输出一个负窄脉冲选通信号6: 方式5 选通信号发生器(硬件触发)A: 写控制字时, OUT输出状态不定B: 写CR初值时, OUT = HC: GA TE端输入上升沿脉冲时, CE开始减计数D: 若CE = 0, OUT = LE: 一个时钟周期后, OUT = H注: 在GA TE的作用下, 输出一个负窄脉冲选通信号7: 工作方式的比较A: 方式0与方式4(软件控制)1): 相同点写入控制字及初值后, 若GA TE = H, CE开始减计数当CE = 0时, OUT改变电平状态2): 不同点方式0在计数期间OUT = L, 计数结束OUT = H方式4在计数期间OUT = H, 计数结束OUT =负脉冲B: 方式1与方式5(硬件触发)1): 相同点写入控制字及初值后, 计数器CE不工作当GA TE端有输入上升沿脉冲时, CE开始减计数2): 不同点方式1在计数期间OUT = L, 计数结束OUT = H GA TEOUT计数期间方式5在计数期间OUT = H, 计数结束OUT=负脉冲GA TEOUT计数期间C: 方式2与方式3(周期波形输出)1): 相同点均输出连续周期波形, 预置初值可自动重装入2): 不同点方式2输出连续负脉冲周期波形方式3输出连续方波周期波形。