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

📄 pcled.asm

📁 几个微机原理的芯片接口代码
💻 ASM
字号:
TIM_CTL  EQU       203H
TIMER0   EQU       200H
TIMER1   EQU       201H
MODE03   EQU       36H
MODE12   EQU       74H

INTA00   EQU       20H
INTA01   EQU       21H
PORTSEG  EQU       211H
PORTBIT  EQU       210H

STACK    SEGMENT   STACK
STA      DW        512 DUP (?)
TOP      EQU       LENGTH STA
STACK    ENDS
  
DATA     SEGMENT
MIN1     DB        0
MIN2     DB        0
GAP1     DB        10
GAP2     DB        10
SEC1     DB        0
SEC2     DB        0
INTMASK  DB        ?
CSREG    DW        ?
IPREG    DW        ?
COUNT    DB        0
LED      DB        3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40H
MES      DB        'DISPLAY THE LEDS,PRESS ANY KEY TO DOS!'
	 DB        0AH,0DH,'$'
DATA     ENDS
 
CODE     SEGMENT
	 ASSUME    CS:CODE,DS:DATA,SS:STACK

START:   PUSH      DS
	 MOV       AX,0
	 PUSH      AX
	 MOV       AX,DATA
	 MOV       DS,AX
	 CLI
	 MOV       DX,TIM_CTL
	 MOV       AL,MODE03
	 OUT       DX,AL
	 MOV       DX,TIMER0
	 MOV       AL,00h
	 OUT       DX,AL
	 MOV       AL,02H
	 OUT       DX,AL
	 MOV       DX,TIM_CTL
	 MOV       AL,MODE12
	 OUT       DX,AL
	 MOV       DX,TIMER1
	 MOV       AL,0aH
	 OUT       DX,AL
	 MOV       AL,00
	 OUT       DX,AL
	 
	 MOV       AX,STACK
	 MOV       SS,AX
	 MOV       SP,TOP
	 MOV       AX,DATA
	 MOV       DS,AX
	 MOV       DX,OFFSET MES
	 MOV       AH,09
	 INT       21H
	 MOV       AX,350AH
	 INT       21H
	 MOV       AX,ES
	 MOV       CSREG,AX
	 MOV       IPREG,BX
	 PUSH      BX
	 PUSH      DS
	 MOV       AX,CS
	 MOV       DS,AX
	 MOV       DX,OFFSET INT_PROC
	 MOV       AX,250AH
	 INT       21H
	 POP       DS
	 MOV       DX,INTA01
	 IN        AL,DX
	 MOV       INTMASK,AL
	 AND       AL,0FBH
	 OUT       DX,AL
AGAIN:   IN        AL,21H
	 OR        AL,04H
	 OUT       21H,AL
	 STI
	 MOV       AH,01
	 INT       16H
	 PUSHF
	 IN        AL,21H
	 AND       AL,0FBH
	 OUT       21H,AL
	 POPF
	 JZ        AGAIN
	 CLI
	 POP       BX
	 MOV       DX,INTA01
	 MOV       AL,INTMASK
	 OUT       DX,AL
	 MOV       DX,IPREG
	 MOV       AX,CSREG
	 MOV       DS,AX
	 MOV       AX,250AH
	 INT       21H
	 STI
	 MOV       AX,4C00H
	 INT       21H
				     
INT_PROC:PUSH      AX
	 PUSH      CX
	 PUSH      DX
	 PUSH      DI
	 MOV       AX,DATA
	 MOV       DS,AX
	 MOV       DI,OFFSET MIN1
	 MOV       CL,01
DIS1:    MOV       AL,[DI]
	 MOV       BX,OFFSET LED
	 XLAT
	 MOV       DX,PORTSEG
	 OUT       DX,AL
	 MOV       AL,CL
	 MOV       DX,PORTBIT
	 OUT       DX,AL
	 PUSH      CX
	 MOV       CX,350H
DELAY:   LOOP      DELAY
	 POP       CX
	 CMP       CL,20H  
	 JZ        CHG
	 INC       DI
	 SHL       CL,1    
	 MOV       AL,00
	 OUT       DX,AL
	 JMP       DIS1
CHG:     INC       COUNT       
	 CMP       COUNT,50
	 JL        QUIT
	 MOV       COUNT,0
	 INC       SEC2
	 CMP       SEC2,10
	 JL        QUIT
	 MOV       SEC2,0
	 INC       SEC1
	 CMP       SEC1,6
	 JL        QUIT
	 MOV       SEC1,0
	 INC       MIN2
	 CMP       MIN2,10
	 JL        QUIT
	 MOV       MIN2,0
	 INC       MIN1
	 CMP       MIN1,6
	 JL        QUIT
	 MOV       MIN1,0
QUIT:    MOV       DX,PORTBIT
	 MOV       AL,00
	 OUT       DX,AL
	 MOV       DX,INTA00
	 MOV       AL,20H
	 OUT       DX,AL
	 POP       DI
	 POP       DX
	 POP       CX
	 POP       AX
	 IRET
CODE     ENDS
END      START                                              
	   

 

⌨️ 快捷键说明

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