ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

汇编代码题

2021-12-19 16:01:28  阅读:149  来源: 互联网

标签:8255 汇编 CODE 代码 MOV AL DX OUT


前三道题参考汪神博客【微机原理与汇编语言】考点总结

4、 K0-K7接通I/O输入端口的低8位,L0-L7接通I/O输出端口的低8位,INL连接300IN,OUTL连接300OUT,实现如下功能:闭合K0开关,L0-L7依次点亮,间隔2s(调用Delay子程序),其它情况下,L0-L7全部熄灭。

;简单I/O口扩展      19200

; 连线:
; 输入输出 INL ----- 端口地址 300IN
; 输入输出 i0~i7 --- 逻辑电平开关 K0~K7
; 输入输出 OUTL ---- 端口地址 300OUT
; 输入输出 o0~o7 --- 发光二极管 L0~L7
; 输入输出 D0~D7 --- 数据总线 D0~D7

CS_IO   EQU 0300H

CODE    SEGMENT
        ASSUME CS:CODE
START   PROC NEAR
        MOV DX,CS_IO
        MOV DX,0300H
        MOV CL,00000001B
MLOOP:  IN AL,DX
        NOT AL
        TEST AL,01000000B
        JZ STOP
        MOV AL,CL
        OUT DX,AL
        ROL CL,1
        CALL DELAY
        JMP MLOOP

STOP:
        MOV AL,00000000B
        OUT DX,AL
        MOV CL,00000001B
        JMP MLOOP
START    ENDP
         DELAY PROC
         PUSH DX
         PUSH AX
         MOV DX,02H
         MOV AX,0
         L1:
         SUB AX,1
         SBB DX,0
         CMP AX,0
         JNE L1
         CMP DX,0
         JNE L1
         POP AX
         POP DX
         RET
         DELAY ENDP

CODE    ENDS
        END START

5、 IMS连接393分频器的1A,1QD连接2A,2QD连接8253的CLK1,OUT1连接CLK2,OUT2连接一个发光二极管,8253的片选端CS连接300H端口,GATE1和GATE2连接+5V,编程实现发光二极管循环熄灭3秒,闪亮1秒。

; 8253定时计数器

; 连线:
; 8253 CS ------ 端口地址 300CS
; PACK IMS ----- 393 1A
; 393 1QD ------ 8253 CLK1
; 8253 OUT1 ---- 8253 CLK2
; 8253 OUT2 ---- 发光二极管 L?
; 8253 GATE1 -- (A10)+5V
; 8253 GATE2 -- (A10)+5V

; 运行:
; 运行程序,发光二极管1s周期闪烁

CS8253  EQU 0303H
COUNT0  EQU 0300H
COUNT1  EQU 0301H
COUNT2  EQU 0302H

CODE    SEGMENT
        ASSUME CS:CODE

START   PROC NEAR
        MOV DX,CS8253
        MOV AL,01110110B
        OUT DX,AL

        MOV DX,COUNT1
        MOV AX,19200
        OUT DX,AL
        MOV AL,AH
        OUT DX,AL

        MOV DX,CS8253
        MOV AL,10010100B
        OUT DX,AL

        MOV DX,COUNT2
        MOV AX,4
        OUT DX,AL

        JMP $
START   ENDP

CODE    ENDS
        END START

6、 8255的A口接数码管的a-h,B口连接6个数码管的选通端0-5,8255的片选端CS连接300H端口,数码管显示0-3的编码存放到数据区的LED变量中,编程实现数码管依次显示0,1,2,3,间隔2秒。

; 8255 PA输入 PB输出

; 连线:
; 8255 CS ---------- 端口地址 300CS
; 8255 PA7..PA0 ---- 逻辑电平开关 K7..K0
; 8255 PB7..PB0 ---- 发光二极管 L7..L0

; 运行:
; 全速运行程序,拨动K0~K7,观察L0~L7发光二极管显示

CS8255  EQU 0303H
PORTA   EQU 0300H
PORTB   EQU 0301H

DATA    SEGMENT

BUF     DB 11000000B,11111001B,10100100B,10110000B
DATA    ENDS

CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA

START   PROC NEAR
        MOV DX,CS8255   ;8255初始化
        MOV AL,80H
        OUT DX,AL
okok:   mov si,offset BUF
        mov bl,4

MAIN:
        MOV DX,PORTA    ;读PA数据
        mov AL,[si]
        OUT DX,AL
        MOV DX,PORTB    ;数据写PB
        mov al,000001B
        call delay
        OUT DX,al
        inc si
        sub bl,1
        cmp bl,0
        Ja MAIN
        jmp okok
START   ENDP

        delay proc
        push cx
        push bx
        mov cx ,0ffffh
l0:     mov bx,3

l1:     sub bx,1
        cmp bx,0
        ja l1
        
        dec cx
        cmp cx,0
        ja l0
        pop bx
        pop cx
        
        ret
        delay endp
CODE    ENDS
        END START

7、 8255的A口接数码管的a-h,B口连接6个数码管的选通端0-5,8255的片选端CS连接300H端口,数码管显示0-3的编码存放到数据区的LED变量中,编程实现如下功能:键盘输入‘0’-‘3’之间的字符,数码管显示对应的数值,键盘输入其它字符,数码管没变化。

; 8255 PA输入 PB输出

; 连线:
; 8255 CS ---------- 端口地址 300CS
; 8255 PA7..PA0 ---- 逻辑电平开关 K7..K0
; 8255 PB7..PB0 ---- 发光二极管 L7..L0

; 运行:
; 全速运行程序,拨动K0~K7,观察L0~L7发光二极管显示

CS8255  EQU 0303H
PORTA   EQU 0300H
PORTB   EQU 0301H

DATA    SEGMENT

BUF     DB 11000000B,11111001B,10100100B,10110000B
DATA    ENDS

CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA

START   PROC NEAR
        MOV DX,CS8255   ;8255初始化
        MOV AL,80H
        OUT DX,AL
        mov si,offset BUF

MAIN:
        MOV DX,PORTA    ;读PA数据
        mov ah,1
        int 21h
        sub al,48
        mov ah,0
        add si,ax
        mov AL,[si]
        OUT DX,AL
        MOV DX,PORTB    ;数据写PB
        mov al,000001B
        OUT DX,al
        Jmp MAIN
START   ENDP
CODE    ENDS
        END START

标签:8255,汇编,CODE,代码,MOV,AL,DX,OUT
来源: https://blog.csdn.net/Aurora_zxj/article/details/122025044

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有