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

📄 sy8-3.asm

📁 硬件电路测试参考数据包
💻 ASM
字号:
;       实验八  D/A转换实验

;       SY8-3.ASM
ADCS    EQU     298H
ADPORT  EQU     298H
DACS    EQU     29CH

DATA    SEGMENT
BUFFER1 DB      640 DUP(0)
BUFFER2 DB      640 DUP(0)
P1      DW      8FH
P2      DB      0FFH
FLAG    DB      0
mess1   db	0dh,0ah,0dh,0ah
	DB      'Press 1 for sawtooth wave',0DH,0AH
	DB      'Press 2 for triangle wave',0DH,0AH
	DB      'Press 3 for square wave',0DH,0AH
	DB      'Press 4 for sin wave',0DH,0AH
	DB      'Press 5 to quit DOS',0DH,0AH,'$'
	db	0dh,0ah
MESS2   DB      'Please select again',0DH,0AH,'$'
	db	0dh,0ah
MESS3   DB      'Press any key to quit main menu.',0DH,0AH,'$'
	db	0dh,0ah
SINBUF1 DB      080H,08CH,098H,0A5H,0B0H,0BCH,0C7H,0D1H
	DB      0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH
	DB      0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH
	DB      0D1H,0C7H,0BCH,0B0H,0A5H,098H,08CH,080H
	DB      7FH, 73H, 67H, 5AH, 4FH, 43H, 38H, 2EH
	DB      25H, 1DH, 15H, 0FH, 09H, 05H, 02H, 00H
	DB      00H, 02H, 05H, 09H, 0FH, 15H, 1DH, 25H
	DB      2EH, 38H, 43H, 4FH, 5AH, 67H, 73H, 7FH

SINBUF2 DB      128D,135D,141D,148D,155D,161D,167D,174D,180D,186D
	DB      192D,198D,203D,209D,214D,219D,223D,227D,231D,235D
	DB      239D,242D,245D,248D,250D,252D,253D,254D,255D
	DB           255D,254D,253D,252D,250D,248D,245D,242D,239D
	DB      235D,231D,227D,223D,219D,214D,209D,203D,198D,192D
	DB      186D,180D,174D,167D,161D,155D,148D,141D,135D,128D
	DB           121D,115D,108D,101D, 95D, 89D, 82D, 76D, 70D
	DB       64D, 58D, 53D, 47D, 42D, 37D, 33D, 29D, 25D, 21D
	DB       17D, 14D, 11D, 08D, 06D, 04D, 03D, 02D, 01D, 00D
	DB       00D, 01D, 02D, 03D, 04D, 06D, 08D, 11D, 14D, 17D
	DB       21D, 25D, 29D, 33D, 37D, 42D, 47D, 53D, 58D, 64D
	DB       70D, 76D, 82D, 89D, 95D,101D,108D,115D,121D

	DB           127D,126D,125D,124D,122D,120D,117D,114D,111D
	DB      107D,103D, 99D, 95D, 91D, 86D, 81D, 75D, 70D, 64D
	DB       58D, 52D, 46D, 39D, 33D, 27D, 20D, 13D, 07D, 00D
	DB       00D, 07D, 13D, 20D, 27D, 33D, 39D, 46D, 52D, 58D
	DB       64D, 70D, 75D, 81D, 86D, 91D, 95D, 99D,104D,107D
	DB      111D,114D,117D,120D,122D,124D,125D,126D,127D
NUM     DW      ?
DATA    ENDS

STAC    SEGMENT PARA STACK 'STACK'
STA     DB      20 DUP(?)
TOP     EQU     LENGTH STA
STAC    ENDS

CODE    SEGMENT
ASSUME  CS:CODE,DS:DATA,SS:STAC,ES:DATA
START:  MOV     AX,DATA                 ;初始化
	MOV     DS,AX
	MOV     AX,STAC
	MOV     SS,AX
	MOV     AX,TOP
	MOV     SP,AX

BG:     CALL    CRTRST
	LEA     DX,MESS1
	MOV     AH,09H
	INT     21H
	MOV     AH,08H
	INT     21H
	PUSH    AX
	LEA     DX,MESS3
	MOV     AH,09H
	INT     21H
	POP     AX
	MOV     AH,AL
	CMP     AL,'1'
	JZ      JCB
	MOV     AL,AH
	CMP     AL,'2'
	JZ      SJB
	MOV     AL,AH
	CMP     AL,'3'
	JZ      FB1
	MOV     AL,AH
	CMP     AL,'4'
	JZ      ZXB1
	MOV     AL,AH
	CMP     AL,'5'
	JNZ     WX
	JMP     QIT
ZXB1:   JMP     ZXB
WX:     LEA     DX,MESS2
	MOV     AH,09H
	INT     21H
	JMP     BG
FB1:    JMP     FB

JCB:    CALL    CRTSET
	MOV     AX,00H
	MOV     NUM,AX
	MOV     DX,DACS
	MOV     AL,00H
BB:     OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	CALL    ADCDIS
	ADD     AL,01H
	PUSH    AX
	PUSH    DX
	MOV     DL,0FFH
	MOV     AH,06H
	INT     21H
	JNZ     BG
	POP     DX
	POP     AX
	cmp     al,80h
	jnz     bb
	mov     al,0
	JMP     BB

SJB:    CALL    CRTSET
	MOV     AX,00H
	MOV     NUM,AX
	MOV     DX,DACS
	MOV     AL,00H
EE:     OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	CALL    ADCDIS
	ADD     AL,01H
	CMP     AL,7FH
	JNE     EE
FF:     OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	CALL    ADCDIS
	SUB     AL,01H
	CMP     AL,00H
	JNE     FF
	PUSH    AX
	PUSH    DX
	MOV     DL,0FFH
	MOV     AH,06H
	INT     21H
	JNZ     BG2
	POP     DX
	POP     AX
	JMP     EE

BG2:    JMP     BG

FB:     CALL    CRTSET
	MOV     AX,00H
	MOV     NUM,AX
	MOV     DX,DACS
	MOV     AX,0000H
HH:     OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	PUSH    AX
	CALL    ADCDIS
	POP     AX
	ADD     AH,01H
	CMP     AH,60H
	JNE     HH
	MOV     AL,60H
II:     OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	PUSH    AX
	CALL    ADCDIS
	POP     AX
	ADD     AH,01H
	CMP     AH,0c0H
	JNE     II
	PUSH    AX
	PUSH    DX
	MOV     DL,0FFH
	MOV     AH,06H
	INT     21H
	JNZ     BG1
	POP     DX
	POP     AX
	MOV     AX,0
	JMP     HH

BG1:    JMP     BG

ZXB:    CALL    CRTSET
	MOV     AX,00H
	MOV     NUM,AX
	MOV     DX,DACS
JJ:     LEA     SI,SINBUF2
	MOV     BL,116
KK:     MOV     AL,[SI]
	shr     al,1
	OUT     DX,AL
	INC     DX
	OUT     DX,AL
	DEC     DX
	CALL    ADCDIS
	INC     SI
	DEC     BL
	JNZ     KK
	PUSH    AX
	PUSH    DX
	MOV     DL,0FFH
	MOV     AH,06H
	INT     21H
	JNZ     BG3
	POP     DX
	POP     AX
	JMP     JJ

BG3:    JMP     BG

QIT:    MOV     AX,4C00H
	INT     21H

CRTSET  PROC NEAR
	PUSH    AX
	MOV     AH,0
	MOV     AL,06H
	INT     10H
	POP     AX
	RET
CRTSET  ENDP

ADCDIS  PROC NEAR
S12:    PUSH    DX
	PUSH    CX
	PUSH    AX
	PUSH    BX
	MOV     DX,ADPORT
	OUT     DX,AL
	CALL    DELAY1
	IN      AL,DX

	XOR     AH,AH
	MOV     DL,160
	MUL     DL
	MOV     DL,255
	DIV     DL
	XOR     AH,AH
	MOV     DX,AX
	MOV     AX,160
	SUB     AX,DX
	ADD     AX,20
	MOV     DX,AX
	MOV     AX,NUM
	MOV     BX,AX
	MOV     CX,BX
	MOV     AH,0CH
	MOV     AL,1
	INT     10H
	INC     BX
	MOV     NUM,BX
	CMP     BX,640
	JNZ     DISEND
	MOV     BX,00H
	MOV     NUM,BX
	CALL    CRTRST
	CALL    CRTSET
DISEND: POP     BX
	POP     AX
	POP     CX
	POP     DX
	RET
ADCDIS  ENDP

CRTRST  PROC NEAR
	PUSH    AX
	MOV     AH,0
	MOV     AL,3
	INT     10H
	POP     AX
	RET
CRTRST  ENDP

DELAY1  PROC    NEAR
	PUSH    CX
	MOV     CX,04000H
	LOOP    $
	POP     CX
	RET
DELAY1  ENDP
DELAY2  PROC    NEAR
	PUSH    AX
	PUSH    CX
	MOV     CX,10H
DL21:   CALL    DELAY1
	LOOP    DL21
	POP     CX
	POP     AX
	RET
DELAY2  ENDP

CODE    ENDS
	END     START

⌨️ 快捷键说明

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