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

📄 recorder beta.asm

📁 本来是不想传此代码的
💻 ASM
字号:
DATA SEGMENT
      ioport equ 0dd80h-280h
      io8253a equ ioport+280h;8253的A口
      io8253b equ ioport+283h;8253的控制字
      io8255a equ ioport+288h;8255的A口
      io8255b equ ioport+28bh;8255的控制字
      io0832a equ ioport+290h;DAC0832
      io0809a equ ioport+29ah;ADC0809IN2
      TIP1 DB 0dh,0ah,"播放开始……",0dh,0ah,'$'
      BUF DB 60000 DUP(?)
DATA ENDS
CODE SEGMENT
      ASSUME CS:CODE,DS:DATA
START:
      MOV AX,DATA
      MOV DS,AX    
      MOV AH,6;判断是否有键按下
      MOV DL,0FFH
      INT 21H
      JE AD;无键按下则转AD进行录音
AD:
      MOV SI,OFFSET BUF
      MOV CX,60000
CONAD:
      MOV DX,io0809a;ADC0809IN2
      OUT DX,AL;启动AD转换
      CALL DELAY;调用延时
      IN AL,DX
      MOV [SI],AL
      INC SI
      LOOP CONAD
      MOV DX,OFFSET TIP1;显示录音完毕提示"播放开始……"
      MOV AH,09H
      INT 21H
      MOV AX,0
      MOV DX,0
      
      MOV AH,6
      MOV DL,0FFH
      INT 21H
      JE DA
DA:
      MOV SI,OFFSET BUF
      MOV CX,60000
CONDA:
      MOV DX,io0832a;DAC0832的A口
      MOV AL,[SI]
      OUT DX,AL
      CALL DELAY
      INC SI
      LOOP CONDA

      
DELAY PROC NEAR;延时子程序
      PUSH DX
      MOV DX,io8253b;8253的控制字
      MOV AL,00010000B;计数器0以方式0工作
      OUT DX,AL
      MOV DX,io8253a;8253的A口
      MOV AL,200
      OUT DX,AL
      MOV DX,io8255b;8255的控制字
      MOV AL,10010000B;8255A方式0,A口输入
      OUT DX,AL
      MOV DX,io8255a;8255的A口地址
CHKPA0:
      IN AL,DX
      TEST AL,00000001B;检查PA0的状态
      JZ CHKPA0
      POP DX
RET
DELAY ENDP
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
      END START

⌨️ 快捷键说明

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