⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4-2.asm

📁 TCP_USB试验平台下的几个常见的实验的相应要求与代码
💻 ASM
字号:
;A口工作在方式0,输入,接8个开关,B口工作在方式0,输出,接八段显示器;由8253产生1S的脉冲,PC7接该脉冲,来个脉冲将读取A口,显示在屏幕上,同时;显示在八段显示器上,PC0,PC1作为位码信号
;A口接8个开关,B口接八段显示器,pc7接8253out1,cs55接288,cs53接280,pc0,pc1接位码控制
data segment
    t0 equ 280h
    t1 equ 281h
    t2 equ 282h
    ctl53 equ 283h
    pa equ 288h
    pb equ 289h
    pc equ 28ah
    ctl55 equ 28bh
    table db 3fh,06h,5bh,4fh,66h,6dh,7dh,27h,7fh,6fh,77h,7ch,39h,5eh,79h,71h    ;共阴极
code segment
    assume cs:code,ds:data
start:
    mov ax,data
    mov ds,ax
    mov cl,4             ;移位循环次数
L5:
    ;产生1s脉冲
    mov dx,ctl53
    mov al,00100101B
    out dx,al            ;写控制字,选择模式2,产生连续负脉冲
    mov dx,t0
    mov al,10h
    out dx,al               ;写计数值,计数1000次
    mov dx,ctl53
    mov al,01100111B
    out dx,al            ;写控制字,选择模式3,产生连续方波
    mov dx,t1
    mov al,10h
    out dx,al              ;写计数值,计数1000次
    
    mov dx,ctl55         ;写控制字 
    mov al,10011000B
    out dx,al
    
    mov dx,pc
L0: call print
    in al,dx             
    test al,80h          ;pc7为高电平,继续读
    jnz L0
    
    mov dx,pa            ;读A口,低4位接开关
    in al,dx  
    mov ch,al            ;将读到的数据保存到ch
    call crt
    

    
L1:    in al,dx             ;使负脉冲结束
    test al,80h
    jz L1
    jmp L5
    mov ah,4ch
    int 21h
    
;**********CRT显示***********
    crt proc near        ;要显示的数保存在ch中
    mov al,ch
    shr al,cl
    and al,0fh
    cmp al,0ah
    jc L2
    add al,07h
L2: add al,30h
    mov dl,al
    mov ah,02h
    int 21h
    
    mov al,ch
    and al,0fh
    cmp al,0ah
    jc L3
    
    add al,07h
L3: add al,30h
    mov dl,al
    mov ah,02h
    int 21h
    ret
    crt endp
;**********LED显示***********
    print proc near
    mov al,ch
    and al,0f0h          ;取高4位
    rol al,cl            ;右移4位
    lea bx,table
    xlat                 ;八段显示器译码
    
    mov dx,pb
    out dx,al            ;送数据至B口

    mov dx,pc            ;高位显示
    mov al,02h           ;送高位位码00000010
    out dx,al
    
    mov al,0             ;送间隔
    out dx,al
    
    mov al,ch            
    and al,0fh           ;取低4位
    lea bx,table
    xlat                 ;八段显示器译码
    
    mov dx,pb
    out dx,al            ;送数据至B口
    
    mov dx,pc
    mov al,01h           ;送低位位码0000001
    out dx,al
    
    mov al,0             ;送间隔
    out dx,al   

    ret
    print endp
    
code ends
end start
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -