更多微机实验:
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
四、实验电路图
;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