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

📄 7_164165.asm

📁 可作为接口实验的参考教材
💻 ASM
字号:
;//*******************************************************************
;//*文件名:串转并,并转串实验程序  FOR  8088


;功能:把开关量通过74**165串行输入到内存,并通过74**164串行输出到数码
;      管上显示。

;接线:对应连接八位逻辑电平输出模块的QH165、CLK165、SH/LD到8255模块的
;          PC0、PC4、PC5。
;      对应连接静态数码管显示模块的DIN、CLK到8255模块的PC6、PC7。
;      对应连接8255模块的CS_8255到CPU模块的200H。
;      用8位数据线连接8255模块的JD4C(PB口)到八位逻辑电平显示模块的JD4B。
;//********************************************************************

;PC6——DIN
;PC7——CLK

;PC4——CLK165
;PC5——SH/LD
;PC0——QH165
;CS_8255——200H


PA8255    EQU 200H        ;8255PA口地址
PB8255    EQU 201H        ;8255PB口地址

PC8255    EQU 202H        ;8255PC口地址
PCTL8255  EQU 203H        ;8255控制口地址

CODE    SEGMENT
ASSUME  CS:CODE,DS:CODE
START:   
        PUSH    CS
        POP     DS                           
        MOV     DX,PCTL8255
        MOV     AL,81H     ;设置8255,PA、PC4~7出,PC0入
        OUT     DX,AL
BEGIN:

        MOV     DX,PCTL8255        
        MOV     AL,09H     ;PC4: CLK165 置“1”
       	OUT     DX,AL
        MOV     AL,0AH     ;PC5:  SH/LD置“0”
       	OUT     DX,AL       
        MOV     AL,0BH     ;PC5:  SH/LD置“1”  
       	OUT     DX,AL
       	
        MOV     AL,0
        MOV     CL,8H      ;分八次读一个字节
INPUT:  PUSH    AX    
        MOV     DX,PC8255    ;
        IN      AL,DX
        RCR     AL,1
        POP     AX
        RCL     AL,1
        CALL    CLK165                      
       	DEC     CL
       	CMP     CL,0
       	JNZ     INPUT
       	
        MOV     DX,PB8255  ;B口可观察输入值
        OUT     DX,AL       
               	
       	CALL    DELAY         
       	CALL    OUTPUT     ;调串行输出
     	JMP     BEGIN      ;重复
 

CLK165: PUSH    AX
        PUSH    DX
        MOV     DX,PCTL8255        
        MOV     AL,08H     ;PC4: CLK165置“0”
        OUT     DX,AL
        MOV     AL,09H     ;PC4: CLK165置“1”  
        OUT     DX,AL        
        POP     DX
        POP     AX    
        RET
        
OUTPUT:                   ;串行输出
        MOV     ah,AL
        MOV     CL,8H     ;分八位写一个LED          
WRITE1: 
        RCL     AL,1
        PUSH    AX  
        JNC     OUTDATA1
        MOV     DX,PCTL8255        
        MOV     AL,0DH     ;PC6:DIN 置“1”
       	OUT     DX,AL  
        JMP     NEXT1
OUTDATA1:
        MOV     DX,PCTL8255       
        MOV     AL,0CH     ;PC6:DIN 置“0”
       	OUT     DX,AL                  
        
NEXT1: 
        MOV     DX,PCTL8255;利用8255PC5口控制DCLK,使DCLK产生一低电平到高电平的跳变
        MOV     AL,0EH     ;PC7:CLK 置“0”
       	OUT     DX,AL    
       	MOV     AL,0FH     ;PC7:CLK 置“1”
       	OUT     DX,AL
       	POP     AX
       	DEC     CL
       	CMP     CL,0
       	JNZ     WRITE1
       	RET 

     	
delay   proc    near
        push    cx
        mov     cx,1000h
        loop    $
        pop     cx
        ret
delay   endp
         
LED:     DB 3FH,06H,5BH,4FH,66H,6DH   ;012345
         DB 7DH,07H,7FH,6FH,77H,7CH   ;6789AB
         DB 39H,5EH,79H,71H,00H,40H   ;CDEF -
         
	 	 CODE  ENDS
END      START    
 

⌨️ 快捷键说明

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