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

📄 pcad1.asm

📁 汇编程序
💻 ASM
字号:
; FILENAME: PCAD1.ASM
; 内容: A/D转换
PAGE 60, 78
CRLF 	MACRO             		;回车换行宏定义
      	MOV DL,0DH
      	MOV AH, 02H
       	INT 21H
       	MOV DL, 0AH
       	MOV AH, 02H
       	INT 21H
      	ENDM
DATA 	SEGMENT
INR  	DB  ?
RESULT	DB ? 
DATA  	ENDS
STACK 	SEGMENT STACK 'STACK'
       	DB 50 DUP(?)
STACK 	ENDS
CODE  	SEGMENT
       	ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA
START:	MOV AX,DATA
       	MOV DS,AX
       	MOV AL, 0AH
       	MOV AH, 35H
       	INT 21H            		;取IRQ2中断服务程序入口地址放ES:BX
       	PUSH ES                 	;保护ES,BX,DS
      	PUSH BX
      	PUSH DS
       	MOV AX,SEG ADINT   		;填写中断向量表(N=0AH)
       	MOV DS, AX
       	MOV DX,OFFSET ADINT
       	MOV AL, 0AH
       	MOV AH, 25H
       	INT 21H
       	POP DS                  	;恢复DS
       	IN AL,21H
       	MOV BP,AX         		;保护中断屏蔽寄存器内容于BP中
       	AND AL,11111011B
       	OUT 21H,AL         		;允许IRQ2中断
       	MOV CX, 300H
       	MOV DX, 203H        		;8253初始化,0通道方式3
       	MOV AL, 36H
       	OUT DX, AL
       	MOV DX, 200H
       	MOV AL, 10H          		;初值0010H
       	OUT DX, AL
       	MOV AL, 00H
       	OUT DX, AL
CCC : 	STI
       	MOV DX, 220H
       	OUT DX,AL          		;启动一次A/D转换
       	HLT
       	CLI                		;关中断
       	MOV AX,SI          		;取A/D转换结果
       	PUSH DS
       	MOV BX,6000H          		;写入6000H:0~2FFH区域
       	MOV DS, BX
       	MOV BX, CX
      	DEC BX
       	MOV [BX], AL
      	AND AL,0F0H        		;高位十六进制转ASCII码
       	PUSH CX
       	MOV CL, 04H
      	SHR AL ,CL
       	POP CX
       	ADD AL, 30H
       	CMP AL, 39H
      	JBE AS1
      	ADD AL, 07H
AS1: 	MOV DL,AL          		;显示高位
   		MOV AH, 02H
       	INT 21H
      	MOV AL, [BX]
       	AND AL, 0FH
       	ADD AL, 30H
      	CMP AL, 39H
       	JBE AS2
       	ADD AL, 07H
AS2:   	MOV DL, AL          		;显示低位
       	MOV AH, 02H
       	INT 21H
       	MOV DL,20H         		;显示两个空格
       	MOV AH, 02H
       	INT 21H
       	INT 21H
       	POP DS
       	LOOP CCC
       	POP DX             		;恢复IRQ2中断向量
       	POP DS
       	MOV AL, 0AH
      	MOV AH, 25H
       	INT 21H
       	MOV AX,BP         		;恢复中断屏蔽寄存器内容
      	OUT 21H,AL
       	MOV AX, 4C00H       		;结束
       	INT 21H
ADINT 	PROC NEAR          		;中断服务程序
       	PUSH AX             		;保护AX
       	PUSH DX            		;保护DX
       	MOV DX,220H        		;读A/D转换结果
      	IN AL ,DX
       	MOV SI,AX              		;送SI
       	MOV AL, 20H
       	OUT 20H,AL         		;发中断结束命令
       	POP DX
      	POP AX                   	;恢复
       	IRET
ADINT 	ENDP
CODE  	ENDS
      	END START

⌨️ 快捷键说明

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