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

📄 pcda.asm

📁 此程序是微机与接口技术的课程设计源程序
💻 ASM
字号:
; FILENAME: PCDA.ASM
; 内容: 数模转换
PAGE  60,78
DATA 	SEGMENT
MESS  	DB   0DH,0AH,'PLEASE SELECT: ',0DH,0AH
       	DB   ' TOOTHED WAVE:          1',0DH,0AH
      	DB   ' TRIANGLE WAVE:         2',0DH,0AH
       	DB   ' SINE WAVE:             3',0DH,0AH
      	DB   ' BACK TO DOS:           Q',0DH,0AH,'$'
MESS1 	DB 'NOW, OUTPUT TOOTHED WAVE, QUIT WITH ANY KEY!', 0DH,0AH,'$'
MESS2 	DB 'NOW, OUTPUT TRIANGLE WAVE, QUIT WITH ANY KEY!', 0DH,0AH,'$'
MESS3 	DB 'NOW, OUTPUT SINE WAVE,QUIT WITH ANY KEY!' ,0DH,0AH,'$'
SINBF 	DB 128,88,53,24,6,0,6,24,53,88,128,168,203,232,250
      	DB 255,250,232,203,168
DLTA  	DB 10H
DATA   ENDS
STACK 	SEGMENT STACK 'STACK'
      	DB 50 DUP('S')
STACK 	ENDS
CODE 	SEGMENT
       	ASSUME CS : CODE, DS: DATA, SS : STACK

START:	MOV AX,DATA
       	MOV DS,AX
STA: 	MOV DX,OFFSET MESS  		;显示MESS
       	MOV AH, 09H
       	INT 21H
STT:   	MOV AH,7          		;等待键入,分支转移
       	INT 21H
       	CMP AL,'1'
       	JZ TOOTH
       	CMP AL,121
       	JZ TRGL
       	CMP AL,13
       	JZ SINE
       	CMP AL ,'Q'
      	JNZ STT
       	MOV AX, 4C00H
       	INT 21H                 	;返回DOS
TRGL :	JMP TRGL1
SINE :	JMP SINE1
TOOTH:	MOV DX,OFFSET MESS1 		;显示MESS1
       	MOV AH, 9
       	INT 21H
       	MOV AL, 00H
BBB1: 	MOV DX,228H        		;输出锯齿波
BBB:  	OUT DX, AL
       	INC DX
       	OUT DX,AL          		;输出一个数据
       	ADD AL, DLTA
       	PUSH AX
       	MOV DL, 0FFH         		; 查键盘
       	MOV AH, 6
      	INT 21H
      	POP AX
       	JZ BBB1             		;无键按下则继续输出
       	JMP STA             		;有键按下则重新选择
 TRGL1:MOV DX,OFFSET MESS2   		;显示MESS2
       	MOV AH, 9
      	INT 21H
       	MOV AL,00H
DDD:   MOV DX,228H        		;输出三角波
    	OUT DX, AL
      	INC DX
      	OUT DX,AL          		;输出一个数据
       	PUSH AX
       	MOV DL, 0FFH
       	MOV AH, 06H
       	INT 21H
       	JNZ STA1
       	POP AX
       	ADD AL, DLTA
       	CMP AL, 0F0H
       	JNZ DDD             		;输出上升沿
EEE:  	MOV DX, 228H
FFF:  	OUT DX, AL
       	INC DX
       	OUT DX,AL          		;输出一个数据
       	PUSH AX
       	MOV DL, 0FFH        		;查键盘
       	MOV AH, 6
       	INT 21H
       	JNZ STA1
      	POP AX
       	SUB AL, DLTA
       	CMP AL, 00H
       	JNZ EEE             		;输出下降沿
       	JZ DDD              		;无键按下则继续输出
STA1: 	JMP STA
SINE1:	MOV DX,OFFSET MESS3 		;显示MESS3
       	MOV AH, 9
       	INT 21H
HHH: 	MOV SI,OFFSET SINBF  		;SI指向缓冲区
       	MOV BL, 20           		;一周20点
III: 	MOV DX, 228H
    	MOV AL, [SI]         		;输出一个点
     	OUT DX, AL
       	INC DX
       	OUT DX,AL         		;输出一个数据
       	MOV DL, 0FFH         		;查键盘
       	MOV AH, 06
       	INT 21H
       	JNZ STA2           		;有键按下转菜单
       	INC SI
       	DEC BL
       	JNZ III              		;一周末完继续输出
       	JMP HHH            		;无键按下则继续输出
STA2:  JMP STA            		;有键按下则重新选择
CODE  	ENDS 
       	END START

⌨️ 快捷键说明

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