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

📄 ad转换-lix.asm

📁 本程序是一个8254,8259的中断调用程序组,可以实现时钟的调用,中断时可以进行外部的处理.
💻 ASM
字号:





.MODEL SMALL
.DATA
      KEEP  DB ?
      STR   DB 6 DUP(?)
.CODE
.STACK
START:
      MOV AX,@DATA
      MOV DS,AX
      CLI
      MOV AH,35H
      MOV AL,0FH                ;保存IRQ7的原中断向量
      INT 21H
      PUSH BX
      PUSH ES
      PUSH DS                   ;保存系统原中断向量
      MOV AX,SEG  loop1      ;送新的中断向量
      MOV DS,AX
      MOV DX,OFFSET  loop1     ;送IRQ7类型码0fh
      MOV AH,25H
      MOV AL,0FH
      INT 21H
      POP DS


      IN AL,21H
      MOV KEEP,AL
      AND AL,07FH
      OUT 21H,AL
      MOV AH,06H
      MOV AL,0
      MOV BH,12
      MOV CX,0
      MOV DH,24
      MOV DL,79
      INT 10H
LOOP:
      MOV DX,230H
      OUT DX,AL                 ;    启动AD转换
      MOV CX,10
NEXT:
      NOP
      LOOP NEXT
      STI
      MOV AH,01H
      INT 16H
      JZ LOOP

      MOV AL,KEEP
      OUT 21H,AL
      POP DS
      POP DX
      MOV AH,25H
      MOV AL,0FH
      INT 21H
      MOV AH,4CH
      INT 21H
loop1:
      PUSH AX
      PUSH BX
      PUSH DS
      MOV AX,@DATA
      MOV DS,AX

      MOV DX,230H
      IN  AL,DX
      MOV DX,210H             ;  启动DA转换并输出数据
      OUT DX,AL
      MOV DX,211H
      OUT DX,AL

      MOV DX,0A0AH
      MOV BH,0
      MOV AH,02H
      INT 10H
      MOV AH,0
      MOV BX,500
      MUL BX
      MOV BX,255
      DIV BX
      MOV BX,100
      MOV DX,0
      DIV BX

      OR AL,30H                ;       获得个位数值
      MOV STR,AL               ;       保存个位数值
      MOV STR+1,'.'
      MOV AX,DX
      MOV BX,10
      MOV DX,0
      DIV BX
      OR AL,30H                ;        获得十分位数值
      MOV STR+2,AL
      OR DL,30H                ;        获得百分位数值
      MOV STR+3,DL
      MOV STR+4,'$'

      MOV DX,OFFSET STR
      MOV AH,09H
      INT 21H

      MOV AL,20H
      OUT 20H,AL
      POP DS
      POP BX
      POP AX
      IRET
END START


⌨️ 快捷键说明

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