可编程接口技术

  • 一,并行接口(重难点)
    • 1,8255A 的结构和功能(重点)
      • 1,输入/输出端口
      • 2,读/写控制逻辑
      • 3,A组/B组控制电路
      • 4,数据总线缓冲器
    • 2,8255A 的工作方式与应用(难点)
      • 1,8255A的控制字
      • 2,8255A的工作方式

一,并行接口(重难点)

  • 并行接口是指CPU与外设之间的信息传输是多位同时进行的。
  • 锁存器、缓冲器、收发器都是一种并行接口,但它们都不是可编程的。
  • 8255 是lntel 公司为80x86系列CPU生产的8位通用可编程并行输入/输出接口芯片,可作为任何一个与TTL兼容的并行数字设备与微机间的接口。
  • 40脚DIP,单一+5V电源,TTL电平。

1,8255A 的结构和功能(重点)

1,输入/输出端口

  • A口、B口通常作为独立的I/O端口使用,C口也可以作为一般的I/O端口使用。
  • 当A口、B口作为应答式的l/O口使用时,C口分别用来为A口、B口提供应答控制线。

2,读/写控制逻辑

非CS:片选信号,低电平有效

非RD:读信号,低电平有效
非WR:写信号,低电平有效
RESET:复位信号,高电平有效。清除所有控制寄存器内容,并将各端口都置成输入方式

A1、A0:8255A 片内端口寻址线。

一道例题辅助理解:

假设8255A端口B已设置为输出端口,口地址为1231H,端口C已设置为输入端口,口地址为1232H,写出指令序列满足以下要求:
当开关合上,上面4个灯亮,下面4个灯灭,当开关打开,上面6个灯灭,下面2个灯亮。

分析:检测开关的状态只要读取PC 口判断PC1即可

程序代码如下:

 MOV DX,1232H
A1: IN AL,DX    ;读取PC口检测开关状态TEST AL,00000010B   ;测试PC1是0还是1JNZ  A2  ;ZF=0,说明PC1=1MOV AL,00001111B  ;PC1=0,开关合上MOV DX,1231HOUT DX,AL    ;PB口输出数据JMP A1
A2: MOV AL,11000000B    ;PC1=1,开关打开MOV DX,1231HOUT DX,AL   ;PB口输出数据JMP A1

3,A组/B组控制电路

  • 接受来自CPU的读/写控制信号和CPU送入的控制字,然后分别决定各端口的功能。
  • 还可以对C口的某位实现“置0”或“置1"的操作。

4,数据总线缓冲器

双向三态的8位缓冲器,可与数据总线(D0~D7)直接相连。

2,8255A 的工作方式与应用(难点)

8255A 有三种工作方式:

方式0、方式1、方式2

每个端口允许的工作方式:

  • 端口A:方式0、方式1、方式2
  • 端口B:方式0、方式1
  • 端口C:方式0

1,8255A的控制字

什么叫控制字? 8255A有三种工作方式,每个端口以哪种方式来工作,作为输入接口还是输出接口,取决于CPU对8255发出的命令。CPU对8255发出命令是通过对8255的控制口写控制字实现的。

A组/B组控制电路有两种功能:

  • 设置各端口的工作方式。
  • 对C口的某位实现“置0”或“置1”的操作。

因此,8255A的控制字有两种:

  • 工作方式控制字
  • C口置位/复位控制字

8255A只有一个控制口,当接收到CPU发来的命令时,它是如何区分该控制字的种类呢?它是通过控制字的最高位识别的,当最高位=1,工作方式控制字;最高位=0,C 口置位/复位控制字

  • 1,工作方式控制字(D7=1)(需要记住此结构)

    小例题:设某8255A的控制寄存器口地址为B6H,各端口工作方式如下:A口方式0、输入端口;B口方式0、输出端口;C口高4位为输出口,低4位为输入口。试编写该8255A接口的初始化程序。

    //根据上面的格式,写出工作方式控制字为 10010001B=91H
    初始化程序如下:
    MOV AL,91H  ;CPU控制字91H经AL输出
    OUT 0B6H,AL ;送到8255A 控制寄存器中
    
  • 2,C 口置位/复位控制字(D7=0)

    可以设置C 口某位输出高电平还是低电平

    小例题:设某8255A的控制寄存器口地址为303H,编写程序,将C口的PC7位置0,PC6位置1。

    MOV DX,303H
    MOV AL,00001110B    ;置PC7=0的控制字
    OUT DX,AL   ;控制字送8255A控制寄存器中
    MOV AL,0001101  ;置PC6=1的控制字
    OUT DX,AL   ;控制字送8255A控制寄存器中
    

2,8255A的工作方式

  • (1)工作方式0(基本输入/输出)

    • A口(8位)、B口(8位)、上C口(4位)、下C口(4位)可分别独立定义为输入或输出
    • 输出可锁存,输入有缓冲无锁存
    • C口还有按位置位/复位的能力
    • 不能采用中断方式,但可采用查询方式(C口线可作联络信号)

    小例题

    分析:

    • 1,端口A作为输出端口,工作于方式0,查询式输出。
    • 2,端口C作为状态端口。
    • PC7用于8255A选通打印机,低电平有效。
    • PC2用于打印机送给8255A的状态信号,高电平表示忙,低电平表示空闲。

    设8255A端口地址为0380H~0383H,待打印字符的存放首地址为DS: 0300H,字符数为100个。

    ;8255A初始化程序
    BEGIN:  MOV DX,0383MOV AL,10000001  ;A口方式0输出,PC7~PC4输出,PC3~PC0输入OUT DX,ALMOV AL,00001111B ;送C口置位控制字,置PC7=1,STB=1,初始状态为高电平OUT DX,AL;打印机驱动程序MOV SI,0300H    ;待打印字符存放内存的首地址MOV CX,100    ;打印字符个数
    CONP:   MOV DX,0382H
    LPST:   IN AL,DXTEST AL,00000100B   ;检测PC2(BUSY)JNZ  LPST    ;若BUSY=1,等待;反之,则向下执行MOV AL,[SI]   ;从内存中取等打印的数据MOV DX,0380H    ;待打印数据输出至8255A口OUT DX,ALMOV AL,00001110BMOV DX,0383HOUT DX,AL   ;置PC7=0,产生选通信号NOP   ;使STB信号低电平有一定宽度NOP  ;保证传送至打印机数据稳定NOPMOV AL,000011111B   ;置PC7=1,即STB=1高电平,利用STB上升沿将数据打入到打印机数据缓冲区中OUT DX,ALINC SI    ;修改指针,指向下一次欲打印的数据LOOP CONP   ;未打完,继续HLT   ;所有数据打印完毕,暂停
    
  • (2)工作方式1 (选通输入/输出)

    • A口(8位)、B口(8位)适用,C口不能工作于方式1
    • A口/B口可分别定义为输入或输出
    • 支持查询、中断方式传送数据
    • C口部分位作为控制信号和状态信号
    • C口其余位可独立置位/复位

    输出

    输入

    端口A 与端口B 的比较

  • (3) 工作方式2 (双向输入输出)

8086cpu 可编程接口技术(一)相关推荐

  1. CUDA C编程接口技术分析

    CUDA C编程接口技术分析 编程接口 CUDA C为熟悉C编程语言的用户提供了一个简单的路径,可以方便地编写程序供设备执行. 它由C语言的最小扩展集和运行库组成. 核心语言扩展已经引入:cuda c ...

  2. 树莓派Pico直流步进电机接口技术及电机运动控制MicroPython+pioasm编程方法

    内容目录 一.树莓派Pico直流步进电机接口技术 1.直流步进电机及其驱动电路原理介绍 2.Pico开发板扩展GPIO口与步进电机驱动接口 二.树莓派Pico电机运动控制MicroPython+pio ...

  3. 网络编程(基于socket接口技术的进程间通信)接上一篇文章补充

    目录 一.网络编程(基于socket接口技术) 1.基于TCP协议的网络通信 编程模型: 2.基于UDP通信协议的网络通信 编程模型: 3.新增函数: 大小端数据转换函数: ip地址转换函数: TCP ...

  4. 【计算机原理与接口技术(UNIX)⑲ 完结篇】——可编程计数器 8254 [ 流光发生器、8254工作方式检测程序的设计]

    ✅ 通过对 [计算机与UNIX汇编原理 ① ~ ⑫]的学习,我们已经大致掌握了汇编程序设计的相关知识 接下来,我将其分栏名改为 [计算机原理与接口技术(UNIX) ],重点将放在 "计算机原 ...

  5. 树莓派Pico直流电机接口技术及PWM电机调速控制MicroPython编程

    内容目录: 一.树莓派Pico开发板直流电机接口技术 1.H桥驱动电路的基本工作原理 2.典型H桥驱动电路分析 3.DRV8833双H桥电机驱动模块介绍 4.Pico开发板与直流电机接口 二.Pico ...

  6. 汇编语言笔记——接口技术与编程

    文章目录 传送门 储存系统与技术 材料 高速储存器缓冲储存器(Cache) 材料,局部性,访问方式 Cache全相联映射 Cache交换与一致性 单核CPU一致性处理 多核CPU的MESI协议 主储存 ...

  7. 可编程定时器/计数器(微机接口技术)

    微型计算机原理与接口技术 文章目录 微型计算机原理与接口技术 可编程定时器/计数器 可编程定时/计数器接口芯片8253 (和8254差不多) 功能 定时或计数实现方法 基本原理 8253的内部结构 8 ...

  8. 基于Wio RP2040迷你无线WiFi开发板的硬件接口技术及MicroPython控制编程基础

    Wio RP2040迷你无线WiFi开发板(Wio RP2040 mini Dev Board)是Seeed Studio公司于2021年5月推出的一款迷你无线WiFi开发板,它集成了Wio RP20 ...

  9. 微型计算机的什么接口主要作为打印机接口,微型计算机及其接口技术试题及答案(2006年10月)...

    微型计算机及其接口技术试题及答案(2006年10月) 以下是部分内容预览,注意图片没有显示出来,WORD里是有的.请到下载区下载完整的试题及答案. 全国2006年10月自考微型计算机及其接口技术试卷 ...

最新文章

  1. UVA 122 Trees on the level 二叉树 广搜
  2. 云计算背后的秘密(6)-NoSQL数据库的综述
  3. ajax csrf php,Laravel中Ajax调用时的CSRF对策
  4. java substring 越界_我在java中用substrng()提取某一字符串的子串是老是出现越界的问题,求指教~~~...
  5. CyclicBarrier:人齐了,老司机就发车了!
  6. datagridview显示每次点击都会往后追加_以前购彩每次投入上千,这次只花了18元,理性购彩反而催生1801万大奖...
  7. Vue学习之从入门到神经(两万字收藏篇)
  8. 【AD20学习笔记】PCB封装库的创建
  9. NMAP Masscan python识别端口运行服务 常用命令速查表
  10. Qt使用libmodbus
  11. cad转excel插件c2e_CAD表格互转EXCEL插件
  12. OpenCV像素点操作 图片特效
  13. Xcode No account for team . Add a new account in the Accounts preference pane or verify that your
  14. 老司机带你飞——DIY桌面小电视
  15. jar 坐标系转换工具_MODIS数据处理工具HEG安装教程
  16. 机械臂速成小指南(六):步进电机驱动器
  17. 工作经费的开支范围_科研经费使用范围及说明
  18. 用计算机上初中英语课的方法,初中英语课讲课流程
  19. 配置ST-GCN环境记录【Google colab】
  20. Linux获取当前目录名,shell获取当前目录名

热门文章

  1. 【转载】在ARX中通过COM在ACAD中添加菜单和工具条
  2. 基于Python的中英文分词基础:正则表达式和jieba分词器
  3. 三相异步电机SPWM变频调速系统Simulink仿真
  4. python如何将dataframe转化为 想要的json格式
  5. 人脸识别-调用摄像头~
  6. threejs绘制轨迹线曲线
  7. 音麦,音柚,探遇漂流瓶自动打招呼回复源码(Auto.js)
  8. 关于MongoCollection.find(Bson var1)方法的问题
  9. 视频教程-迈向数据科学家:带你玩转Python数据分析-Python
  10. 电源管理芯片:nxp电源管理芯片对比国内趋势增长