第9章 可编程接口芯片及其与CPU的接口-西北工业大学微机原理PPT.ppt_第1页
第9章 可编程接口芯片及其与CPU的接口-西北工业大学微机原理PPT.ppt_第2页
第9章 可编程接口芯片及其与CPU的接口-西北工业大学微机原理PPT.ppt_第3页
第9章 可编程接口芯片及其与CPU的接口-西北工业大学微机原理PPT.ppt_第4页
第9章 可编程接口芯片及其与CPU的接口-西北工业大学微机原理PPT.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章可编程接口芯片及其与CPU的接口 9 1可编程并行输入 输出接口芯片8255A9 2可编程计数器 定时器82549 3可编程串行输入 输出接口芯片8251A 9 1可编程并行输入 输出接口芯片8255A 9 1 18255A的内部结构 9 1 28255A的引脚分配一 与外设联系的引脚A口有PA0 PA78个引脚 同样B口和C口均有PB0 PB7 PC0 PC78个引脚 二 与CPU联系的引脚数据和命令通道线D0 D7 读 写控制引脚RD WR CS A0 A1 RESET 三 端口地址控制引脚CSA1A0端口000A口地址001B口地址010C口地址011控制端口地址 9 1 38255A的工作方式及编程一 8255A的工作方式1 方式0 基本输入 输出方式 2 方式1 选通输入 输出方式 3 方式2 双向传送方式 各端口可工作的方式 A口 方式0 方式1 方式2B口 方式0 方式1C口 方式0 二 8255A的控制字1 方式控制字 2 C口置 1 清 0 控制字 9 1 48255A各工作方式的功能及应用一 8255A工作在方式0特点 8255A工作在方式0时 各个端口 包括2个8位端口A B及2个4位端口C 的输入 输出可以有16种不同的组合 在这种方式下 任一个端口都由CPU用简单的输入 输出指令进行读 写 不用提供 联络 信号 适用于各种同步传送情况 另外 方式0也可用于程序查询方式来进行数据传送 此时 通常以A口和B口作为数据口 而用C口的某些位作为输入输出 联络 信号 注意 输入 联络 信号和输出 联络 信号不在同一4位C口中 方式0应用举例1 同步情况 例18255A的A口和B口工作在方式0 A口为输入端口 接有4个开关 B口为输出端口 接有1个7段发光二极管 其硬件连接电路如图所示 试编一程序要求7段发光二极管显示开关所拨通的数字 分析 1 端口地址A口 8020HC口 8024HB口 8022H控制口 8026H2 字符代码对照表显示字符7段代码显示字符7段代码03FH87FH106H96FH25BHA77H34FHb7CH466Hc39H56DHd5EH67DHE79H707HF31H 程序 APORTEQU8020HBPORTEQU8022HCONTREQU8026HDATASEGMENTTAB1DB3FH 06H 5BH 4FH DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AXMOVAL 90H 定义8255A工作方式MOVDX CONTROUTDX AL ADDR1 MOVDX APORT 取开关值INAL DXANDAL 0FH 屏蔽高4位MOVBX OFFSETTAB1 取代码表首址XLAT 找到字符代码MOVDX BPORT 输出显示OUTDX ALMOVCX 0400H 显示延时ADDR2 DECCXJNZADDR2JMPADDR1MOVAH 4CHINT21HCODEENDSENDSTART 方式0应用举例2 异步查询情况 例2如图所示 假设8255A端口A B C及控制口的地址分别为80H 81H 82H和83H 打印机的选通信号为STB 读入机的驱动信号为DRV 编写接口程序 程序片段 MOVAL 83H 8255A初始化OUT83H AL 读入机驱动程序MOVAL 09HOUT83H AL 启动读入机PRT INAL 82HTESTAL 01HJZPRT 未准备好 循环INAL 81H 准备好 读入数据MOVBL ALMOVAL 08HOUT83H AL 断开读入机 打印机驱动程序PST INAL 82HTESTAL 04HJNZPSTMOVAL BL 若打印数据在BL中OUT80H ALMOVAL 0DHOUT83H AL 选通打印机DECALOUT83H AL 断开打印机 方式0应用举例3 异步查询情况 例3利用8255A实现打印机接口 打印BL中的数据 打印机工作时序如左图所示 数据接口将数据传送到打印机的数据端口 利用一个负脉冲STROBE打入锁存 这时打印机可发回答信号ACK 然后由打印机处理 同时打印机送出高电平信号BUSY 表示打印机忙于打印 一旦BUSY变为低电平 表示打印结束 即可接收下一数据 请利用8255A工作方式0实现上述打印控制 硬件连接如右图 根据连线分析得知4个端口地址依次为 80H 84H 88H 8CH程序如下 MOVAL 10000001BOUT8CH AL 8255A初始化WAIT INAL 88H 读BUSYTESTAL 01HJNZWAIT BUSY 1等待MOVAL BLOUT80H AL 数据输出MOVAL 00001110BOUT8CH AL PC7置低电平MOVAL 00001111BOUT8CH AL PC7恢复高电平 二 8255A工作在方式1特点 8255A工作在方式1时 数据输入 输出操作要在选通信号控制下完成 A口和B口可作为输入或输出口 而C口的某些位作为 联络 信息 和方式0相比 最重要的差别在于C口的这些位与联络信号有着固定的一一对应关系 A口的联络信息由C口的PC3 PC7提供 B口的联络信息由C口的PC0 PC2提供 另外 8255A在方式1下具有中断能力 可以发出中断请求信号 为CPU工作在中断方式提供了条件 由于输入接口和输出接口所需的选通控制不同 下面分别予以介绍 1 选通输入方式 1 选通输入方式C口 联络 信号定义图 2 方式1输入时 联络 信号时序图 2 选通输出方式 1 选通输出方式C口 联络 信号定义图 2 方式1输出时 联络 信号时序图 方式1应用举例1 异步查询情况 例1在某一系统中接有一个 80微型打印机 8255A作为输出接口 工作在选通方式 试编一程序将缓冲区BUFF内的400H个字节的ASCII码送打印机打印 其接口硬件电路如图所示 8255A作为打印机接口电路源程序如下 APORTEQU0FFF8HCPORTEQU0FFFCHCONTREQU0FFFEHDATASEGMENTBUFFDB400HDUP DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AXMOVCX 400H 字节长度MOVAL 0A8H 8255A控制字MOVDX CONTROUTDX AL MOVDI OFFSETBUFFABC1 MOVAL DI ASCII码输出MOVDX APORTOUTDX ALMOVDX CPORTABC2 INAL DX 查OBFA信号ANDAL 80H OBFA变高了吗 JZABC2 否 再查ABC3 INAL DX 查BUSY信号ANDAL 10H BUSY变低吗 JNZABC3 否 再查INCDI 是 传送下一个数LOOPABC1MOVAH 4CH 返回操作系统INT21HCODEENDSENDSTART 方式1应用举例2 中断情况 例2利用8255工作方式1实现打印控制 8255A工作在方式1时 PC7作为OBFA输出端 PC6作为ACKA输入端 PC3作为INTRA输出端 其硬件连接如图所示 设中断类型码为0BH 中断服务程序首地址为PRINTER 程序片段设计如下 MOVAL 10100000BOUT8CH AL 初始化MOVAL 00001101BOUT8CH AL INTEA置1MOVAH 25H 设置DOS调用功能号MOVAL 0BH 设置类型码LEADX PRINTER 设置中断服务程序偏移地址MOVBX SEGPRINTER 设置中断服务程序段地址MOVDS BXINT21H DOS功能调用 设置中断向量STI 开中断 PRINTERPROCFAR 中断服务程序MOVAL BLOUT80H AL 输出打印IRETPRINTERENDP 三 8255A工作在方式2特点 8255A只有A口可工作在方式2 此时B口可工作在方式0或者方式1 8255A工作在方式2 CPU通过它与外设交换数据可采用无条件传送方式 查询传送方式或中断传送方式 A口设置为方式2 也就是说从A口既可以输入数据 也可以输出数据 但某时某刻只能是输入或输出 实际上是A口方式1输入和输出的组合形式 方式2下C口 联络 信号定义图 9 2可编程计数器 定时器8254 9 2 18254的内部结构及功能一 内部结构及引脚 端口地址分配 CSA1A0端口地址0000 计数器地址0011 计数器地址0102 计数器地址011控制字寄存器地址计数器的内部结构二 功能计数器方式定时器方式 9 2 28254的编程设置控制字 写入控制寄存器地址 初始化赋计数初值 写入相应计数器地址 包括读计数器内容 从相应计数器地址读出 一 控制字格式 二 对计数器赋计数初值控制字写完后 接着赋计数初值 计数初值写入计数器的格式必须按照控制字的RW1 RW0的读写指示来写 另外 当D0 0时 即选择二进制计数 计数初值可在0 FFFFH之间选择 当D0 1时 即选择BCD码计数 计数初值可在0 9999之间选择 若想扩大计数范围 可以将两个或三个计数器级连使用 即将一计数器的OUT信号与另一计数器的CLK信号相连接 三 读计数器的内容8254的读操作只能读计数器的值 而不能读控制字 若读16位计数值 则对该计数器读两次 先读低8位 再读高8位 如果在计数过程中读计数器内容 则需发锁存命令 计数器的锁存命令是用一个字节的最高两位D7 D6指定要锁存的计数器 D5 D4必须为00作为锁存命令的标志 而低4位可为全0 它是控制字的一种特殊形式 所以要把此锁存命令写到控制字寄存器中去 可见 3个计数器的锁存命令分别为00H 40H和80H 四 读计数值 状态字 1 读回命令8254控制字中SC1SC0 11时 为读回命令 该命令可锁存全部3个通道的当前计数值和状态信息 读回命令格式 2 状态字状态寄存器格式 四 举例例1若要使计数器1工作在方式0 仅用8位二进制计数 计数值为128 试对其进行初始化编程 MOVAL 50HOUT73H ALMOVAL 80HOUT71H AL 例2若要使计数器0工作在方式1 按BCD码计数 计数值为3000 试对其进行初始化编程 MOVAL 23HOUT73H ALMOVAL 30HOUT70H AL 例3若要使计数器2工作在方式2 按二进制计数 计数值为1110H 试对其进行初始化编程 MOVAL 0B4HOUT73H ALMOVAL 10HOUT72H ALMOVAL 11HOUT72H AL 例48254工作方式同上题 要在计数过程中读取该计数器的计数值 试对其进行初始化编程 MOVAL 0B4HOUT73H ALMOVAL 10HOUT72H ALMOVAL 11HOUT72H ALMOVBH 20HW DECBHJNZWMOVAL 80HOUT73H ALINAL 72HMOVCL ALINAL 72HMOVAH ALMOVAL CL 9 2 38254的工作方式一 方式0主要特点 方式0的OUT输出是一次性负方波 若想再次OUT输出 必须重写控制字 计数值或只写计数值 二 方式1主要特点 方式1的OUT输出是一次性负方波 若想再次OUT输出 只须重新启动GATE脉冲 三 方式2主要特点 方式2的OUT输出是周期性的负脉冲 例5 1已知计数脉冲CLK频率为2MHZ 要求每1ms产生一次中断 选用2 计数器 8254地址70H 73H 请初始化8254 分析 1 工作方式的选择2 计数初值的确定MOVAL 0A5HOUT73H ALMOVAL 20HOUT72H AL 例5 2已知计数脉冲CLK频率为2MHZ 要求每10ms产生一次中断 选用2 计数器 8254地址70H 73H 请初始化8254 分析 1 工作方式的选择2 计数初值的确定MOVAL 0B4HOUT73H ALMOVAL 20HOUT72H ALMOVAL 4EHOUT72H AL 四 方式3主要特点 方式3的OUT输出是周期性的方波 若计数值n是偶数 则输出OUT是对称方波 若计数值n是奇数 则输出OUT在 n 1 2计数期间保持为高电平 而在 n 1 2计数期间保持为低电平 五 方式4主要特点 方式4的OUT输出是一次性负脉冲 若想再次OUT输出 须再次写入计数值 故又称软件触发选通方式 六 方式5主要特点 方式5的OUT输出是一次性负脉冲 若想再次OUT输出 只须再次启动GATE脉冲 故又称硬件触发选通方式 例6系统中有一片8254芯片 利用其通道1完成对外部事件计数 计满250次向CPU发出中断申请 利用2通道输出频率为1kHz的方波 试编写8254的初始化程序 硬件电路如图所示 MOVAL 71H 通道1控制字OUT1EH ALMOVAL 0A7H 通道2控制字OUT1EH ALMOVAL 50H 通道1计数值低8位OUT1AH ALMOVAL 02H 通道1计数值高8位OUT1AH ALMOVAL 20H 通道2计数值高8位OUT1CH AL 例78254通道2接有一发光二极管 要使发光二极管以点亮2s 熄灭2s的间隔工作 8254各通道端口地址分别为FFE9H FFEFH 其电路硬件图如图 试编程完成以上工作 MOVDX 0FFEFH 控制字端口地址MOVAL 65H 通道1控制字OUTDX ALMOVAL 0A7H 通道2控制字OUTDX ALMOVDX 0FFEBH 通道1端口地址MOVAL 40H 通道1计数值高8位OUTDX ALMOVDX 0FFEDH 通道2端口地址MOVAL 10H 通道2计数值高8位OUTDX AL 例8有如下接口原理图 要求发光二极管L0亮5秒后就熄灭 L1在K1启动后亮6秒后就熄灭 L2亮4秒灭4秒交替进行 写出源程序片段 分析 由译码电路分析可知 8254芯片计数器1 计数器2 计数器3及控制端口的地址分别为91H 93H 95H 97H 根据接口图及题目要求 8254的计数器0应该工作在方式0 计数初值N0 5000 计数器1应工作在方式1 N1 6000 计数器2应工作在方式3 N2 8000 MOVAL 21H 初始化计数器0OUT97H ALMOVAL 50HOUT91H ALMOVAL 63H 初始化计数器1OUT97H ALMOVAL 60HOUT93H ALMOVAL 0A7H 初始化计数器2OUT97H ALMOVAL 80HOUT95H AL 9 3可编程串行输入 输出接口芯片8251A 9 3 1串行通讯概述一 串行通讯方式异步通讯同步通讯1 异步通讯数据格式 规定 1 字符格式 起始位 停止位的位数 数据采用的编码 是否奇偶校验 若要 规定奇校验还是偶校验 2 波特率即数据传送速率的规定 单位 位 秒2 同步通讯格式 1 面向字符型的数据格式 2 面向位型的数据格式二 串行通讯中的数据传送方向单工半双工完全双工三 串行输入 输出的实现软件实现硬件实现出错标志 奇偶错误帧错误溢出错误 9 3 28251A芯片的特点及内部结构 既可用于同步传送方式又可用于异步传送方式 完全双工传送 既能发送又能接受 可检测奇偶出错 帧错误 溢出错误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论