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

📄 aexp11.asm

📁 微机接口技术的入门必备试验代码 试验平台msdi
💻 ASM
字号:
;*------------------------------------------------------*
;*    Aexp11.asm  A/D转换-数据采集实验                  *
;*    A/D转换数据采集程序source file                     *
;*    运行步骤:1.在平台板的8位AD通道选择开关上 选定通道号 *
;*             2.程序运行后,转动电位器,观测数据的变化    * 
;*    Copyright (c) 2002 by HUST                        *
;*------------------------------------------------------*
   
sseg segment para stack 'stack'
dw 200 dup (?)
sseg ends
dseg segment para public 'data'
input_message  db 'Please input number of A/D channel'
	       db 0dh,0ah,'$'
error_message  db 'input incorrect A/D channel!',0dh,0ah
	       db 'please input number of A/D channel again:'
	       db '$'
message db 'If you want to quit A/D convert,please press ''ESC'''
	db 0dh,0ah,'$'

temp      db (?)
dseg ends

cseg segment para public 'code'
  assume ss:sseg,cs:cseg,ds:dseg
a_dpo proc far
start:  mov   ax,sseg
	mov   ss,ax
	mov   ax,dseg
	mov   ds,ax

   mov  ah,9                  ;显示提示信息	
	mov  dx,seg message
	mov  ds,dx
	mov  dx,offset message
	int  21h
	mov ah,9                   ;提示输入通道号
	mov dx,seg input_message
	mov ds,dx
	mov dx, offset input_message
	int 21h

input:  mov ah,8                 ;检查输入通道号是否有错
	int 21h
	cmp al,'0'
	jb error
	cmp al,'7'
	ja error
	sub al,30h
	mov temp,al                 ;若无错,则保存通道号
	jmp begin

error:  mov ah,9                   ;显示出错信息
	mov dx,seg error_message
	mov ds,dx
	mov dx, offset error_message
	int 21h
	jmp input

begin:  mov dx,30eh                 ;送通道号
	mov al,temp
	out dx,al

	mov cx,0f00h
lop:    loop  lop
	mov dx,30ch                 ;启动A/D转换
	mov al,00
	out dx,al
	mov cx,0f00h                  ;delay
lop1:   loop lop1
	mov ah,0bh                   ;检测是否有ESC键按下
	int 21h
	inc al
	jnz wait1                     ;若无键按下,则查转换结束
	mov ah,8                      ;若有ESC键按下,则程序退出
	int 21h
	cmp al,1bh
	jz  quit
	 
wait1:	mov dx,30ch                   ;查转换结束EOC(EOC=D7)
	in  al,dx
	and al,80h
	jz  wait1                      ;若未结束(D7=0),则等待

read:   mov dx,30eh                   ;若已结束,则读数据
	in  al,dx
	push ax                       ;存数据
show:   and al,0f0h                    ;显示高4位
	shr al,4
	cmp al,9
	ja  hex
	add al,30h
	jmp next
hex:    add al,37h
next:   mov dl,al
	mov ah,2
	int 21H
	pop ax
	and al,0fh                    ;显示低4位
	cmp al,9
	ja  hex1
	add al,30h
	jmp next1
hex1:   add al,37h
next1:  mov dl,al
        mov ah,2
	     int 21h

	mov  dl,13                 	;向屏幕送回车符
	mov  ah,2
	int  21h

	mov  dl,10                	;向屏幕送换行符
	mov  ah,2
	int  21h

	     jmp begin                    ;继续采集
quit:   mov ax,4c00h                 ;程序退出
        int 21h
a_dpo  endp
cseg ends
end start

⌨️ 快捷键说明

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