8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

时间:2024.3.15

微机实验报告书

学    号: XXXXX  姓名:  XXXXX   班    级: XXXXX         同组名单:    XXXXXXXXX    实验日期: 2012.12.25

实验题目: 8255可编程并行接口                                                  

实验目标: 1、掌握8255方式0的工作原理及使用方法。                                               

           2、进一步掌握中断处理程序的编写。                

 3、掌握数码管显示数字的基本原理。               

 4、了解微机化竞赛抢答器的基本原理。                                    

实验步骤:

实验一、 8255A的基本输入输出

图1. 8255A的基本输入输出接线图

实验步骤如下:

(1)实验电路如图1,8255A的C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

(2)编程从8255A的C口输入数据,再从A口输出。

实验二、七段数码管

 图2. 七段数码管接线图

实验步骤如下:

(1)静态显示:按图2(a)连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dP接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

(2)动态显示:按图2(b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1接+5V(选中),S0接8255A的C口的PC1。编程在两个数码管上显示“56”。

实验三、竞赛抢答器

图3. 竞赛抢答器电路图

实验步骤如下:

图3位竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下。在七段数码管上将其组号(0~7)显示出来。

程序框图:

实验一:                       

实验二:

实验三:

程序清单:

;*************************;

;*  8255A的基本输入输出  *;

;*************************;

IOPORT  EQU       0E400H-280H

IO8255A EQU       IOPORT+288H

IO8255B EQU       IOPORT+289H

IO8255C EQU       IOPORT+28AH

IO8255K EQU       IOPORT+28BH

CODE            SEGMENT

                     ASSUME       CS:CODE

START:          MOV             DX,IO8255K               ;对8255进行设定,A输出,C输入

                     MOV             AL,10001001B

                     OUT              DX,AL

INPUT:          MOV             DX,IO8255C               ;从C输入

                     IN                 AL,DX

                     MOV             DX,IO8255A               ;从A输出

                     OUT              DX,AL

                     MOV             DL,0FFH                  ;判断是否有按键

                     MOV             AH,06H

                     INT               21H

                     JZ                  INPUT                      ;若无,则继续C输入,A输出

                     MOV             AH,4CH                     ;否则,返回DOS

                     INT               21H

CODE            ENDS

                     END              START

;************************************;

;*键盘输入数据(0-9)控制LED数码管显示*;

;************************************;

DATA           SEGMENT

IOPORT       EQU         0E400H-280H

IO8255A       EQU         IOPORT+288H

IO8255B       EQU         IOPORT+289H

IO8255C       EQU         IOPORT+28AH

IO8255K      EQU         IOPORT+28BH

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

MESG1        DB           0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$'

DATA           ENDS

CODE            SEGMENT

              ASSUME       CS:CODE,DS:DATA

START:         MOV             AX,DATA

              MOV         DS,AX

              MOV       DX,IO8255K               ;使8255的A口为输出方式

              MOV       AX,10000000B

              OUT        DX,AL

SSS:             MOV        DX,OFFSET MESG1        ;显示提示信息

                 MOV       AH,09H

              INT        21H

            MOV        AH,01                     ;从键盘接收字符

            INT        21H

            CMP         AL,'0'                       ;是否小于0

            JL           EXIT                    ;若是则退出

            CMP         AL,'9'                   ;是否大于9

            JG          EXIT                    ;若是则退出

            SUB         AL,30H                  ;将所得字符的ASCII码减30H

            MOV         BX,OFFSET LED                ;BX为数码表的起始地址

            XLAT                               ;求出相应的段码

            MOV         DX,IO8255A              ;从8255的A口输出

            OUT         DX,AL

            JMP          SSS                     ;转SSS

EXIT:           MOV         AH,4CH                 ;返回

            INT          21H

CODE          ENDS

             END        START

;******************************;

;* LED数码管实验动态显示“56”*;

;******************************;

DATA                  SEGMENT

     IOPORT      EQU       0E400H-280H

     IO8255A     EQU       IOPORT+288H

     IO8255B     EQU       IOPORT+289H

     IO8255C     EQU       IOPORT+28AH

     IO8255K     EQU       IOPORT+28BH

 LED           DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH       ;段码

     BUFFER1  DB        6,5                          ;存放要显示的个位和十位

          BZ     DW        ?                            ;位码

DATA                  ENDS

CODE                 SEGMENT

                  ASSUME    CS:CODE,DS:DATA

      START:     MOV       AX,DATA

                  MOV       DS,AX

                  MOV       DX,IO8255K                     ;将8255设为A口输出

                  MOV       AL,80H

                  OUT         DX,AL

                  MOV       DI,OFFSET BUFFER1       ;设di为显示缓冲区

      LOOP2:    MOV       BH,02

        LLL:      MOV       BYTE PTR BZ,BH

                  PUSH        DI

                  DEC         DI

                  ADD       DI, BZ

                  MOV       BL,[DI]        ;bl为要显示的数

                  POP          DI

                  MOV       AL,0

                  MOV       DX,IO8255C

                  OUT         DX,AL

                  MOV       BH,0

                  MOV       SI,OFFSET LED           ;置led数码表偏移地址为SI

                  ADD       SI,BX                            ;求出对应的led数码

                  MOV       AL,BYTE PTR [SI]

                  MOV       DX,IO8255A                      ;自8255A的口输出

                  OUT         DX,AL

                  MOV       AL,BYTE PTR BZ          ;使相应的数码管亮

                  MOV       DX,IO8255C

                  OUT         DX,AL

                  MOV       CX,3000

      DELAY:    LOOP        DELAY       ;延时

                  MOV       BH,BYTE PTR BZ

                  SHR         BH,1

                  JNZ          LLL

                  MOV       DX,0FFH

                  MOV       AH,06

                  INT          21H

                  JE           LOOP2       ;有键按下则退出

                  MOV       DX,IO8255C

                  MOV       AL,0        ;关掉数码管显示

                  OUT         DX,AL

                  MOV       AH,4CH      ;返回

                  INT          21H

CODE                ENDS

              END       START

;***************;

;* 模拟抢答器  *;

;***************;

DATA                  SEGMENT

     IOPORT      EQU       0E400H-280H

     IO8255A     EQU       IOPORT+288H

     IO8255B     EQU       IOPORT+289H

     IO8255C     EQU       IOPORT+28AH

     IO8255K     EQU       IOPORT+28BH

         LED    DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H     ;数码表

DATA                  ENDS

CODE                 SEGMENT

                      ASSUME    CS:CODE,DS:DATA

      START:     MOV       AX,DATA

                  MOV       DS,AX

                  MOV       DX,IO8255K             ;设8255为A口输出,C口输入

                  MOV       AL,10001001B

                  OUT         DX,AL

                  MOV       BX,OFFSET LED         ;使BX指向段码管首址

        SSS:      MOV       DX,IO8255C

                  IN           AL,DX                  ;从8255的C口输入数据

                  OR          AL,AL                   ;比较是否为0

                  JE           SSS                     ;若为0,则表明无键按下,转sss

                  MOV       CL,0FFH                  ;cl作计数器,初值为-1

         RR:     SHR         AL,1

                  INC          CL

                  JNC          RR

                  MOV       AL,CL

                  XLAT

                  MOV       DX,IO8255A

                  OUT         DX,AL

                  MOV       DL,7                     ;响铃 ASCII码为07

                  MOV       AH,2

                  INT          21H

        WAI:     MOV       AH,1

                  INT          21H

                  CMP         AL,20H                   ;是否为空格

                  JNE          EEE                       ;不是,转eee

                  MOV       AL,0                     ;是,关灭灯

                  MOV       DX,IO8255A

                  OUT         DX,AL

                  JMP          SSS

        EEE:     MOV       AH,4CH                   ;返回

                  INT          21H

        CODE  ENDS

              END       START

运行结果:

实验一:当逻辑开关K0~K7中的一个或几个打开时,对应的LED灯就会亮起来,即利用8255A实现了基本的输入输出控制。

实验二:(1)静态显示:当从键盘输入0~9任一数字时,七段数码管上便会显示相应的数字,按下其他按键则退出程序。(2)动态显示:运行程序后,七段数码管上两个数码管显示“56”,有按键按下时,则退出程序。

实验三:逻辑开关K0~K7中某个置“1”时,则七段数码管上将其数字号显示出来,表示该组抢答成功。按下任意键则退出程序。

小结(体会和收获):

  通过本次实验,我进一步掌握了8255A的原理以及其应用方法,学习了七段数码管显示数字的原理,以及竞赛抢答器的原理。

另外,通过本次实验我知道:做实验时讲究细心、耐心,遇到问题时不要慌张,在理解理论的基础上对故障进行分析并逐步解决,才能获得最后的实验成功。


第二篇:微机原理8255实验报告


微机原理与接口技术实验报告

更多相关推荐:
8255可编程并行接口实验实验报告

微机原理实验报告实验名称8255可编程并行接口实验一实验目的1掌握8255芯片结构及工作方式2熟悉8255并行口扩展的编程二实验设备1Lab6000p实验教学系统2IBMPC机三系统中的8255模块Lab600...

8255并行口实验实验报告

8255一实验目的并行口实验实验报告作者掌握8255A的编程原理二实验设备CPU挂箱8086CPU模块三实验内容8255A的A口作为输入口与逻辑电平开关相连8255A的B口作为输出口与发光二极管相连编写程序使得...

微机原理与接口技术课程设计实验报告4-8255并行接口应用实验报告

8255并行接口应用实验报告实验目的1掌握8255的工作方式和应用编程2掌握8255的典型应用电路接法实验设备及器件PC机一台TDPIT实验仪器一套实验内容及步骤1基本输入输出实验编写程序使8255的A口为输出...

微机原理实验报告(8255并口实验)

深圳大学实验报告课程名称学院信息工程学院实验时间实验报告提交时间教务处制

8255并行接口实验

接口技术实验报告1实验二8255并行口接口实验实验目的利用8255A实现并行接口实验实验内容1掌握8255A的编程原理2熟悉计算机并行接口的使用方法实验步骤1连线8255A芯片A口的PA0PA7依次和开关量输入...

实验三8255并行接口实验

实验三8255并行接口实验一实验目的1学习并掌握8255的工作方式及其应用2掌握8255典型应用电路的接法3掌握程序固化及脱机运行程序的方法二实验设备Pc机一台TDPITE实验装置一套三实验内容1基本输入输出实...

8255并口实验实验报告

实验报告实验名称并行接口实验8255姓名学号班级教师日期一实验内容与要求11实验内容8255方式0实验一从8255端口C输入数据再从端口A输出即TPCUSB平台按逻辑电平开关K0K7通过编程使端口C接收然后再通...

汇编语言与微机接口 并行接口8255实验

武夷学院实验报告课程名称汇编语言与微机接口项目名称并行接口8255姓名柯剑专业计科班级20xx级学号20xx4011015同组成员无1注1实验预习部分包括实验环境准备和实验所需知识点准备2若是单人单组实验同组成...

接口实验报告8255A和8259两个实验

微机原理与接口技术实验报告安徽工业大学计算机学院专业班级学号姓名指导教师计算机科学与技术XX123456789JackiyBrownXXXXX试验一8255A应用数码管动态显示一试验目的1掌握8255A的工作方...

8255并口控制器应用实验

8255并口控制器应用实验一实验目的1掌握8255的工作方式及应用编程2掌握8255典型应用电路的接法二实验内容1基本输入输出实验编写程序使8255的A口为输出B口为输入完成拨动开关到数据灯的数据传输要求只要开...

实验八可编程并行接口芯片8255A

课程名称微机原理及应用实验成绩指导教师赵鹏涛实验报告院系信息工程学院班级计算机科学与技术学号1303010014姓名杜培培日期20xx66实验八可编程并行接口芯片8255A一实验目的1了解并行接口芯片8255A...

8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告

计算机与信息工程学院设计性实验报告一实验目的1掌握8255A编程原理2了解键盘电路的工作原理3掌握键盘接口电路的编程方法二实验设备EL8051III型单片机实验箱三实验原理1识别键的闭合通常采用行扫描法和行反转...

8255并行接口实验报告(31篇)