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

📄 music.asm

📁 一、 使用键盘显示接口芯片8279接收按键键值
💻 ASM
字号:
Z8279    EQU       239H
D8279    EQU       238H
LEDMOD   EQU       00   ;左边输入,八位显示外部译码八位显示
LEDFEQ   EQU       38H  ;扫描频率
D8253    EQU       222H
Z8253    EQU       223H

CODE     SEGMENT
ASSUME    CS:CODE,DS:CODE
main proc far
START:                         ;初始化
	 PUSH   CS
	 POP    DS
	 MOV       DX,Z8279
	 MOV       AL,LEDMOD
	 OUT       DX,AL
	 MOV       AL,LEDFEQ
	 OUT       DX,AL	 
	 MOV   AL,0D2H
	 OUT   DX,AL
	             ;置空FIFO寄存器
 WAIIT:                  NOP
	 IN     AL,DX
	 MOV    BL,AL
	 AND    AL,80H
	 CMP    AL,80H
	 JE     WAIIT                ;FIFO正在清除期间则跳转等待
	 MOV    AL,BL
	 AND    AL,0FH
	 CMP    AL,00H
	 JE     WAIIT                 ;无键按下则等待
	 MOV    AL,40H               ;写 读FIFO RAM命令字
	 OUT    DX,AL
	 MOV    DX,D8279             ;读入FIFO RAM内容
	 IN     AL,DX
	 NOP              
	 CMP    AL,15H              ;是结束符则结束  
	 JE     FINI
	 MOV    AH,AL				;ZK
	 NOP                       ;查表,将键码放入AL中
	 LEA    BX,LED
	 XLAT
	 MOV    DX,D8279          ;将AL中内容写到数码管上
	 OUT    DX,AL
	 MOV    AL,AH
	 CMP    AL,01H
	 JE     MIC1
	 NOP
	 CMP    AL,02H
	 JE     MIC2
	 NOP	 
	 MOV    DX,Z8279          ;清FIFO RAM寄存器
	 MOV    AL,0C2H
	 OUT    DX,AL
	 JMP    WAIIT				;等待下一次键输入
MIC1:   CALL   MUSIC1
MIC2:   CALL   MUSIC2
FINI:   MOV    DX,Z8279          ;清FIFO寄存器并关蜂鸣器
	 MOV    AL,0C2H
	 OUT    DX,AL
	 JMP     $
main endp

MUSIC2 proc near
      mov ax,CODE
      mov ds,ax      
      mov dx,Z8253
      mov al,096h
      out dx,al
    ;  lea bx,freq1      
    ;  xlat
      lea bx,time2   
      mov dx,D8253           
next2: 
      call dly2    
         
;pl:  ;dec bx
      xlat
      out dx,al
     ; jnz pl       
      inc bx            
      jmp next
dly2:  mov si,500
l22:    mov di,500
l12:   dec di
      jnz l12
      dec si
      jnz l22   
      RET
MUSIC2 ENDP

MUSIC1 proc near
      mov ax,CODE
      mov ds,ax      
      mov dx,Z8253
      mov al,096h
      out dx,al
    ;  lea bx,freq1      
    ;  xlat
      lea bx,time1   
      mov dx,D8253           
next: 
      call dly    
         
;pl:  ;dec bx
      xlat
      out dx,al
     ; jnz pl       
      inc bx            
      jmp next
dly:  mov si,500
l2:   mov di,500
l1:   dec di
      jnz l1
      dec si
      jnz l2   
      RET
MUSIC1 ENDP
LED  DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
     DB  5EH,79H,71H	 
time2 db 42H,82H,82H,82H,84H,02H,72H
      DB 62H,72H,62H,52H,48H
      DB 0B2H,0B2H,0B2H,0B4H,02H,0A2H
      DB 12H,0A2H,0B2H,92H,88H
      DB 82H,0B2H,0B2H,0A2H,84H,02H,72H
      DB 62H,72H,62H,52H,44H,02H,12H
time1 db  82h,01h,81h,94h,84h,0b4h,0a4h,04h
     db  82h,01h,81h,94h,84h,0c4h,0b4h,04h
      
     ;2  
     db 82h,01h,81h,0f4h,0d4h
     db 0b4h,0a4h,94h
     db 0e2h,01h,0e1h,0d4h,0b4h
     db 0c4h,0b4h,04h
     ;3
     db 82h,01h,81h,94h,84h
     db 0b4h,0a4h,04h
     db 82h,01h,81h,94h,84h
     db 0c4h,0b4h,04h
     ;4
     db 82h,01h,81h,0f4h,0d4h
     db 0b4h,0a4h,94h
     db 0e2h,01h,0e1h,0d4h,0b4h
     db 0c4h,0b4h,04h
     db 00          	 
	 CODE  ENDS
END      START               

⌨️ 快捷键说明

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