📄 20_1446.asm
字号:
;//*******************************************************************
;文件名: DA1446 FOR 8088
;功能: 输出正弦波
;接线: 对应连接串行数模转换模块的DIN、CLK、CS_1446到8255模块的PC0、PC1、PC2
; 8255模块的CS_8255连CPU模块的200H。
;//********************************************************************
;PC0——DIN
;PC1——CLK
;PC2——CS_1446
PA8255 EQU 200H ;8255PA口地址
PB8255 EQU 201H ;8255PB口地址
PC8255 EQU 202H ;8255PC口地址
PCTL8255 EQU 203H ;8255控制口地址
CODE SEGMENT
ASSUME CS:CODE,DS:code,SS:code
START:
PUSH CS
POP DS
MOV DX,PCTL8255
MOV AL,80H ;设置8255 为输出
OUT DX,AL
CLD
DA1446:
MOV SI,OFFSET SINE_DATA
MOV CX, 361
BEGIN:
PUSH CX
LODSB
MOV AH,AL
MOV AL,0
CALL STARTOUT
CALL OUT12BIT ;通道1
MOV AX,0
CALL OUT12BIT ;通道2
CALL ENDOUT
POP CX
LOOP BEGIN
JMP DA1446
STARTOUT:
PUSH AX
MOV AL,05H ;PC2: CS置“1”
OUT DX,AL
MOV AL,02H ;PC1: CLK置“0”
OUT DX,AL
MOV AL,04H ;PC2: CS置“0”
OUT DX,AL
POP AX
RET
OUT12BIT:
PUSH CX
MOV CX,12 ;12BIT
TOOUT:
RCL AX,1
PUSH AX
JC OUTBIT1
OUTBIT0:
MOV AL,00H ;PC0: DIN置“0”
OUT DX,AL
JMP OUTCLK
OUTBIT1:
MOV AL,01H ;PC0: DIN置“1”
OUT DX,AL
OUTCLK:
MOV AL,02H ;PC1: CLK置“0”
OUT DX,AL
MOV AL,03H ;PC1: CLK置“1”
OUT DX,AL
POP AX
LOOP TOOUT
POP CX
RET
ENDOUT:
MOV AL,05H ;PC2: CS置“1”
OUT DX,AL
RET
;******************************
;正弦波数据表,8位DAC的数据
;******************************
SINE_DATA:
DB 128,130,132,135,137,139,141,144,146,148
DB 150,152,155,157,159,161,163,165,168,170
DB 172,174,176,178,180,182,184,186,188,190
DB 192,194,196,198,200,201,203,205,207,209
DB 210,212,214,215,217,219,220,222,223,225
DB 226,227,229,230,232,233,234,235,237,238
DB 239,240,241,242,243,244,245,246,247,247
DB 248,249,250,250,251,252,252,253,253,254
DB 254,254,255,255,255,255,255,255,255,255
DB 255,255,255,255,255,255,255,255,255,254
DB 254,254,253,253,252,252,251,250,250,249
DB 248,247,247,246,245,244,243,242,241,240
DB 239,238,237,235,234,233,232,230,229,227
DB 226,225,223,222,220,219,217,215,214,212
DB 210,209,207,205,203,201,200,198,196,194
DB 192,190,188,186,184,182,180,178,176,174
DB 172,170,168,165,163,161,159,157,155,152
DB 150,148,146,144,141,139,137,135,132,130
DB 128,126,124,121,119,117,115,112,110,108
DB 106,104,101,99,97,95,93,91,88,86
DB 84,82,80,78,76,74,72,70,68,66
DB 64,62,60,58,56,55,53,51,49,47
DB 46,44,42,41,39,37,36,34,33,31
DB 30,29,27,26,24,23,22,21,19,18
DB 17,16,15,14,13,12,11,10,9,9
DB 8,7,6,6,5,4,4,3,3,2
DB 2,2,1,1,1,0,0,0,0,0
DB 0,0,0,0,0,0,1,1,1,2
DB 2,2,3,3,4,4,5,6,6,7
DB 8,9,9,10,11,12,13,14,15,16
DB 17,18,19,21,22,23,24,26,27,29
DB 30,31,33,34,36,37,39,41,42,44
DB 46,47,49,51,53,55,56,58,60,62
DB 64,66,68,70,72,74,76,78,80,82
DB 84,86,88,91,93,95,97,99,101,104
DB 106,108,110,112,115,117,119,121,124,126
DB 128
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -