【微机原理 实验】可编程外围接口芯片8255(3)(硬件-含汇编代码)

实验九  可编程外围接口芯片8255(3)

 

更多微机实验:

Github: https://github.com/Amoiensis/Assembly-language 

CSDN:  https://blog.csdn.net/yxp189/column/info/39992 

                         汇编语言-微机原理与接口技术-实验

注意未经允许,请勿转载!

           转载请标明出处~

适用课程:微机原理与接口技术(实验)

选用教材:微型计算机原理与接口技术-中国科学技术大学出版社

注意:8255芯片对应多个实验,请于???链接中查看~

 

一、实验目的

    掌握数码管显示数字的原理

 

二、实验内容

    动态显示编程在两个数码管上循环显示“0000-0099”。

 

三、编程提示

    实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中

     接线如下图: 8255的PA口接数码管的段码a~dp

                               8255的PC口接数码管的位码s0~s3

                               8255的片选接IO地址译码的Y1

 

四、实验电路图

【微机原理 实验】可编程外围接口芯片8255(3)(硬件-含汇编代码)_第1张图片

 

实验代码

;Author:YXP
;CSDN:yxp189
;Email:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~

        DATA  SEGMENT
      IOPORT  EQU       0D100H-280H
     IO8255A  EQU       IOPORT+28AH
     IO8255B  EQU       IOPORT+28BH
     IO8255C  EQU       IOPORT+288H
         LED  DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
     BUFFER1  DB        0,0
          BZ  DW
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       DX,IO8255B  ;
              MOV       AL,80H
              OUT       DX,AL
              MOV       DI,OFFSET BUFFER1
;loop1:    mov cx,0300h         
      LOOP1:  MOV       CX,0FFFH

      LOOP2:  MOV       BH,02
        LLL:  MOV       BYTE PTR BZ,BH
              PUSH      DI
              DEC       DI
              ADD       DI, BZ
              MOV       BL,[DI]  
              POP       DI
              MOV       BH,0
              MOV       SI,OFFSET LED
              ADD       SI,BX
              MOV       AL,BYTE PTR [SI]
              MOV       DX,IO8255C
              OUT       DX,AL
              MOV       AL,BYTE PTR BZ
              MOV       DX,IO8255A
              OUT       DX,AL
              PUSH      CX
              MOV       CX,10000
      DELAY:  LOOP      DELAY       
              POP       CX

              MOV       AL,00H
              OUT       DX,AL
    
              MOV       BH,BYTE PTR BZ
              SHR       BH,1
              JNZ       LLL
              LOOP      LOOP2
              MOV       AX,WORD PTR [DI]
              CMP       AH,09
              JNZ       SET
              CMP       AL,09
              JNZ       SET
              MOV       AX,0000
              MOV       [DI],AL
              MOV       [DI+1],AH
              JMP       LOOP1
        SET:  MOV       AH,01
              INT       16H
              JNE       EXIT        
              MOV       AX,WORD PTR [DI]
              INC       AL
              AAA
              MOV       [DI],AL
              MOV       [DI+1],AH
              JMP       LOOP1
       EXIT:  MOV       DX,IO8255A
              MOV       AL,0
              OUT       DX,AL
              MOV       AH,4CH    
              INT       21H
        CODE  ENDS
              END       START

 

你可能感兴趣的:(汇编语言,微机原理)