📄 max539.asm
字号:
;/****************************************************************/
;/* 这是MAX539的汇编程序,文件名MAX539.ASM。 */
;/* 功能:本程序主要是实现MAX539芯片的D/A转换。程序中转换的十六进*/
;/* 制值依次为0x0fff,0x07ff,0x03ff,0x01ff,0,VOUT脚输出转换后 */
;/* 的模拟信号,它既可用万用表的直流电压档测试,也可用示波器 */
;/* 的探头点在此处观察。 */
;/*****************************************************************/
SI EQU P1.0
SCK EQU P1.1
CS EQU P1.2
SO EQU P1.3
ORG 0000H ;程序入口
CLR EA
SETB CS
CLR CS
MOV A,#0FH ;输入0FFFH,输出电压为REF*2
LCALL BYTE_OUT
MOV A,#0FFH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#07H ;输入07FFH,输出电压为REF
LCALL BYTE_OUT
MOV A,#0FFH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#03H ;输入03FFH,输出电压为REF/2
LCALL BYTE_OUT
MOV A,#0FFH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#01H ;输入01FFH,输出电压为REF/4
LCALL BYTE_OUT
MOV A,#0FFH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#00H ;输入0000H,输出电压为0
LCALL BYTE_OUT
MOV A,#000H
LCALL BYTE_OUT
SETB CS
NOP
LJMP $
BYTE_OUT: MOV R0,#08H ;发送单个字节到芯片串口
BOUT1: CLR SCK
RLC A
MOV SI,C
SETB SCK
DJNZ R0,BOUT1
CLR SI
RET
BYTE_IN: MOV R0,#08H ;从芯片串口取出单个字节
BIN1: SETB SCK
CLR SCK
MOV C,SO
RLC A
DJNZ R0,BIN1
CLR SCK
RET
DELAY: ;延时程序
MOV R2, #10
MOV R1, #0
MOV R0, #0
DLP:
DJNZ R0, DLP
DJNZ R1, DLP
DJNZ R2, DLP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -