8255并行接口

2018年5月25日
8259中断控制
2018年5月24日
2018 软件建模与分析复习要点 –个人汇总版
2018年5月26日

8255并行接口

1  实验目的

1.  学习并掌握8255的工作方式及其应用。

2.  掌握8255典型应用电路的接法。

3.  掌握程序固化及脱机运行程序的方法。

2  实验设备

PC机一台,TD-PITE实验装置一套。

3  实验内容

1. 基本输入输出实验。编写程序,使8255A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。

2. 流水灯显示实验。编写程序,使8255A口和B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示,D15D8D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。

3.输入输出实验。编写程序,输入4位开关K0-K3的值(0为断开,1为接通),并将其对应的数值以16进制形式在LED显示管进行显示。要求输入开关为0000时显示‘0’,输入开关为1111时,显示‘F’

4  实验原理


4.31  8255内部结构及外部引脚图

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有ABC三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0–基本输入/输出方式、方式1–选通输入/输出方式、方式2–双向选通工作方式。8255的内部结构及引脚如图4.31所示,8255工作方式控制字和C口按位置位/复位控制字格式如图4.32所示。


4.32  8255控制字格式

8255实验单元电路图如图4.33所示:


4.33  8255实验单元电路图

4.5.5  实验步骤

1.  基本输入输出实验

本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:

1)实验接线图如图4.34所示,按图连接实验线路图。

2)编写实验程序,经编译、连接无误后装入系统。

3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

4)点击调试下拉菜单中的固化程序项,将程序固化到系统存储器中。

5)将短路跳线JDBG的短路块短接到RUN端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。

6)实验完毕后,请将短路跳线JDBG的短路块短接到DBG端。


4.34  8255基本输入输出实验接线图

实验程序清单(A82551.ASM

  1. SSTACK    SEGMENT STACK
    
  2.         DW 32 DUP(?)
    
  3. SSTACK    ENDS
    
  4. CODE        SEGMENT
    
  5.         ASSUME CS:CODE
    
  6. START:    MOV DX, 0646H      ;8255 控制寄存器端口地址0646H,IOY1
    
  7.         MOV AL, 90H         ;1001
    											0000A口入B口出
    
  8.         OUT DX, AL        
    
  9. AA1:        MOV DX, 0640H         ;8255计数器A口地址
    
  10.         IN  AL, DX
    
  11.         CALL DELAY
    
  12.         MOV DX, 0642H         ;8255计数器B口地址
    
  13.         OUT DX, AL
    
  14.         JMP AA1
    
  15. DELAY:    PUSH CX
    
  16.         MOV CX, 0F00H
    
  17. AA2:        PUSH AX
    
  18.         POP  AX
    
  19.         LOOP AA2
    
  20.         POP  CX
    
  21.         RET
    
  22. CODE        ENDS
    
  23.         END  START
    

    2.  流水灯显示实验

    使8255A口和B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示,D15D8D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4.35所示。实验步骤如下所述:

    1)按图4.35连接实验线路图。

    2)编写实验程序,经编译、链接无误后装入系统。

    3)运行程序,观察LED灯的显示,验证程序功能。

    4)自己改变流水灯的方式,编写程序。

    5)固化程序并脱机运行。

     

    4.35  8255流水灯实验接线图

    实验程序清单(A82552.ASM

  24. SSTACK    SEGMENT STACK
    
  25.         DW 32 DUP(?)
    
  26. SSTACK    ENDS
    
  27. CODE        SEGMENT
    
  28.         ASSUME CS:CODE
    
  29. START:    MOV DX, 0646H      ;8255 控制寄存器端口地址0646H,IOY1
    
  30.         MOV AL, 80H        ;1000
    											0000A口出B口出
    
  31.         OUT DX, AL
    
  32.         MOV BX, 8001H
    
  33. AA1:        MOV DX, 0640H         ;8255计数器A口地址
    
  34.         MOV AL, BH         ;80H
    
  35.         OUT DX, AL   
    
  36.         ROR BH, 1            ;循环右移
    
  37.         MOV DX, 0642H         ;8255计数器B口地址
    
  38.         MOV AL, BL
    
  39.         OUT DX, AL
    
  40.         ROL BL, 1         ;循环左移
    
  41.         CALL DELAY
    
  42.         CALL DELAY
    
  43.         JMP AA1
    
  44. DELAY:    PUSH CX
    
  45.         MOV CX, 0F000H
    
  46. AA2:        PUSH AX
    
  47.         POP  AX
    
  48.         LOOP AA2
    
  49.         POP  CX
    
  50.         RET
    
  51. CODE        ENDS
    
  52.         END  START
    

    3.  输入输出实验

    提示:使8255A口为输入接K0-K3B口为输出接LED显示A-DP,C口为输出接LEDX1-X6。实验接线图请自行设计连接,并编写程序。

    其中,X1-X6LED的位选择,低电平选中。

    LED显示字型代码可参考如下定义:

    DATA SEGMENT

    TAB DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H

     DB  7FH,6FH,77H,7CH,39H,5EH,79H,71H

        DATA ENDS

    实验步骤如下所述:

    1)设计并连接实验线路图。

    2)编写实验程序,经编译、链接无误后装入系统。

    3)运行程序,观察LED灯的显示,验证程序功能。

    实验程序清单(A82553.ASM

  53. DATA SEGMENT 
    
  54. TAB DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H
    
  55.      DB  7FH,6FH,77H,7CH,39H,5EH,79H,71H
    
  56. DATA ENDS
    
  57. SSTACK    SEGMENT STACK
    
  58.         DW 32 DUP(?)
    
  59. SSTACK    ENDS
    
  60. CODE        SEGMENT
    
  61.         ASSUME CS:CODE,DS:DATA
    
  62. START:    MOV AX,DATA     
    
  63.         MOV DS,AX
    
  64.         MOV BX,OFFSET TAB            ;取偏移地址
    
  65.         MOV DX, 0646H                ;控制口
    
  66.         MOV AL, 90H;                ;初始化1001
    											0000,A口输入,B口输出        
    
  67.         OUT DX, AL    
    
  68.             
    
  69. AA1:        MOV AL,0FEH                ;1111
    											1110
    												
  70.         MOV DX,0640H                ;A口
    
  71.         IN  AL, DX
    
  72.         CALL DELAY
    
  73.         AND AL,0FH
    
  74.         XLAT                        ;查表,使得AL←((BX)+(AL))
    
  75.         MOV DX, 0642H                ;B口
    
  76.         OUT DX, AL
    
  77.         CALL DELAY
    
  78.         JMP AA1
    
  79. DELAY:    PUSH CX                    ;延时
    
  80.         MOV CX, 0F00H
    
  81. AA2:        PUSH AX
    
  82.         POP  AX
    
  83.         LOOP AA2
    
  84.         POP  CX
    
  85.         RET
    
  86. CODE        ENDS
    
  87.         END  START
    

     

发表评论

电子邮件地址不会被公开。 必填项已用*标注