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

📄 21_1420.asm

📁 可作为接口实验的参考教材
💻 ASM
字号:
;//************************************************************
;文件名: 语音芯片控制程序1420 FOR 8088

;功能: 微机控制语音芯片的录制和播放

;接线: 用导线对应连接语音接口模块的A0~A6到8255模块的PC0~PC6,
;      语音接口模块的A7接地,
;      8255模块的PC7接语音接口模块的REC(或PLAYE或PLAYL),
;      8255模块的CS_8255连CPU模块的200H。
;//*********************************************************** 
;PC0~6——A0~A6
;PC7——REC、PLAYE、PLAYL

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

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

CODE    SEGMENT
ASSUME  CS:CODE,DS:code,SS:code
START:
        PUSH    CS
        POP     DS    
        
        MOV     DX,PCTL8255
        MOV     AL,80H             ;设置8255,全部为输出
        OUT     DX,AL
        
        MOV   AL,00H    ;录放音地址,自行选择
        
        ;CALL  RECORD0   ;录音     调此子程序时PC7接REC
       ; CALL  PLAYL     ;电平放音 调此子程序时PC7接PLAYL
       CALL  PLAYE     ;脉冲放音 调此子程序时PC7接PLAYE
       
       ; 实验时三个子程序取一个有效  逐个试验。
       
 OK:     JMP  OK   


;**************************************
; 名称:RECORD
; 功能:录音
;**************************************
RECORD0:
      CALL  ADDR_OUT       ;设定开始录音地址
      MOV   DX,PCTL8255 
      MOV   AL,0EH         ;PC7: REC置“0”
      OUT   DX,AL          ;控制开始录音
      
      MOV   CX,10          ;控制延时10s 
RECORD1:
      CALL  DELAY1S
      LOOP  RECORD1
      MOV   DX,PCTL8255 
      MOV   AL,0FH         ;PC7: REC置“1”
      OUT   DX,AL          ;释放录音按键     

      RET

;**************************************
;名称:PLAYL
;功能:电平控制放音
;**************************************
PLAYL:
      CALL  ADDR_OUT       ;设定开始播放地址
      MOV   DX,PCTL8255 
      MOV   AL,0EH         ;PC7: PLAYL置“0”
      OUT   DX,AL          ;控制开始录音
      
      MOV   CX,10          ;控制延时10s 
PLAYL1:
      CALL  DELAY1S
      LOOP  PLAYL1
      MOV   DX,PCTL8255 
      MOV   AL,0FH         ;PC7: PLAYL置“1”
      OUT   DX,AL          ;释放播放按键   
      
      RET

;**************************************
;名称:PLAYE
;功能:脉冲触发放音
;**************************************
PLAYE:
      CALL  ADDR_OUT       ;设定开始播放地址
      MOV   DX,PCTL8255 
      MOV   AL,0EH         ;PC7: PLAYE置“0”
      OUT   DX,AL   
      NOP
      NOP       
      MOV   AL,0FH         ;PC7: PLAYE置“1”
      OUT   DX,AL          ;产生控制脉冲
      
      RET      

;**************************************
;名称:ADDR_OUT
;功能:发送地址
;入口:AL(地址)
;**************************************
ADDR_OUT:
      MOV   DX,PC8255
      OR    AL,80H        ;PC7=1
      OUT   DX,AL      
      RET

;**************************************
; 名称:DELAY1S
; 功能:延时1S    
;**************************************
DELAY1S:                      ;1000 000=50 000 * (18+2)
      PUSH  CX
      MOV   CX,0C350H         ;C350H=50 000
DL1:  NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
           
      LOOP  DL1      
      POP   CX
      RET

        CODE    ENDS
END     START

⌨️ 快捷键说明

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