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

📄 14_leddz.asm

📁 可作为接口实验的参考教材
💻 ASM
字号:
;//*******************************************************************
;文件名: LED点阵显示  FOR  8088

;接线:对应连接LED点阵模块的DIN、SCLK、RCLK到8255模块的PC0、PC1、PC2;
;      连接8255模块的CS_8255到CPU模块的200H。
;//********************************************************************

;PC.0——DIN
;PC.1——SCLK
;PC.2——RCLK
;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,80H     ;设置8255为输出
        OUT     DX,AL
        
        MOV     AL,04H     ;PC2:  RCLK置“0”
       	OUT     DX,AL   

BEGIN:  
        MOV     CX,050H   ;延时常数 

DISPLAY:
        PUSH    CX 
        MOV     AH,0      ; 从0开始       	       
        MOV     CH,8      ; 8行        

WRITE1:
        MOV     CL,5      ; 1行4个字节 

WRITE2:
        MOV     AL,AH
        LEA     BX,TAB
        XLAT              ; 取段码
        CALL    OUTDATA 
       	INC     AH        ; 下一个字节  
        DEC     CL
       	CMP     CL,0
       	JNZ     WRITE2

        MOV     DX,PCTL8255        
        MOV     AL,05H     ; PC2:  RCLK置“1”
       	OUT     DX,AL      ; 显示一行
        MOV     AL,04H     ; PC2:  RCLK置“0”
       	OUT     DX,AL
   	          	     
        DEC     CH
       	CMP     CH,0
       	JNZ     WRITE1     ; 下一行     
       	POP     CX
       	LOOP    DISPLAY      ;重复
       	
        MOV     CX,0FFFFH    ;延时常数   	
CLEAR0:                      ;清屏
        MOV     DX,PCTL8255        
        MOV     AL,04H     ; PC2:  RCLK置“0”
       	OUT     DX,AL
       	LOOP    CLEAR0
       	     
     	JMP     BEGIN      ;重复
 


OUTDATA:                   ;串行输出一个字节
        PUSH    CX
        MOV     CX,8
        MOV     DX,PCTL8255          
OUTBIT:   
        RCR     AL,1
        PUSH    AX
        JC      OUT_1
        MOV     AL,00H     ;PC0: DIN 置“0”
       	OUT     DX,AL
       	JMP     GOTO1       	
OUT_1:
        MOV     AL,01H     ;PC0:  DIN置“1”
       	OUT     DX,AL       
GOTO1:
        MOV     AL,02H     ;PC1: SCLK置“0”
       	OUT     DX,AL               
        MOV     AL,03H     ;PC1: SCLK置“1”
       	OUT     DX,AL 
        POP     AX
        LOOP    OUTBIT
        POP     CX
        RET

TAB:                          ;箭头
      DB  80H,0FFH,0FFH,0FFH,0FFH      ;第一行
      DB  40H,0FFH,0DFH,0DFH,0FFH      ;第二行
      DB  20H,0FFH,0BFH,0BFH,0FFH      ;第三行
      DB  10H,0FFH,001H,001H,0FFH      ;第四行
      DB  08H,0FFH,0BFH,0BFH,0FFH      ;第五行
      DB  04H,0FFH,0DFH,0DFH,0FFH      ;第六行
      DB  02H,0FFH,0FFH,0FFH,0FFH      ;第七行
      DB  01H,0FFH,0FFH,0FFH,0FFH      ;第八行  
;        行选/右绿/右红/左绿/左红
;         高 / 低 / 低 / 低 / 低   

CODE    ENDS
END     START    

⌨️ 快捷键说明

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