微机原理--DAC0832产生正弦波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
DAPORT EQU 0FFE0H
ZXK EQU 0FFDCH
ZWK EQU 0FFDDH
ORG 33E0H
;=======以下程序是输出正弦波=======;START: MOV DX,DAPORT
MOV BX,SEG SINDA TA ;找到数据区的段地址
MOV DS,BX
MOV SI,OFFSET SINDA TA
MOV BUF,00H ;DISPLAY 0832 80
MOV BUF+1,08H
MOV BUF+2,03H
MOV BUF+3,02H
H6: MOV BX,0H; 判断次数
AGAIN: CMP BX,32
JZ H6
PUSH BX
PUSH DX
CALL DIS
POP DX
POP BX
MOV AL,[SI+BX]
OUT DX,AL
INC BX
JMP AGAIN
DIS: MOV CL,20H
MOV BX,OFFSET BUF
DIS1: MOV AL,[BX]
PUSH BX
MOV BX,OFFSET LED
XLA T
POP BX
MOV DX,ZXK
OUT DX,AL
MOV AL,CL
MOV DX,ZWK
OUT DX,AL
PUSH CX
MOV CX,0010H
DELAY: LOOP $
POP CX
CMP CL,04H
JZ EXIT
INC BX
SHR CL,1
JMP DIS1
EXIT: MOV AL,00H
MOV DX,ZWK
OUT DX,AL
RET
SINDA TA: DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH;正弦波数据区DB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96H
DB 80H,66H,4CH,38H,25H,15H,09H,04H
DB 00H,04H,09H,15H,25H,38H,4EH,66H
BUF DB ?,?,?,?,?,?
LED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0DEH,0F3H CODE ENDS
END START