📄 max517a2.asm
字号:
;/* 这是MAX517汇编程序,文件名为MAX517A2.ASM */
;/* 功能:本程序是实现MAX517芯片的D/A转换。程序中转换的十六 */
;/* 进制值依次为10H,20H,40H,80H,0FFH,00H, OUT脚输出转换后 */
;/* 的模拟信号,它既可用万用表的直流电压档测试,也可用示波器 */
;/* 的探头点在此处观察。 */
SDA BIT P1.0
SCL BIT P1.1
ORG 0000H
AJMP MAIN
ORG 0013H
MAIN: ;主程序
LCALL DELAY
MOV R0,#10H;
LCALL DACOUT
LCALL DELAY
MOV R0,#20H;
LCALL DACOUT
LCALL DELAY
MOV R0,#40H;
LCALL DACOUT
LCALL DELAY
MOV R0,#80H;
LCALL DACOUT
LCALL DELAY
MOV R0,#0FFH;
LCALL DACOUT
LCALL DELAY
MOV R0,#0FFH
LCALL DACOUT
LCALL DELAY
SJMP $
START:SETB SDA ;发出一个启始位
SETB SCL
NOP
CLR SDA
NOP
RET
STOP: CLR SDA ;发出一个停止位
SETB SCL
NOP
SETB SDA
NOP
RET
ACK: CLR SDA ;发出一个应答位
NOP
SETB SCL
NOP
CLR SCL
RET
SHOUT:NOP ;发送一个字节
MOV B,#8
X42: CLR SCL
RLC A
MOV SDA,C
SETB SCL
NOP
DJNZ B,X42
CLR SCL
RET
DACOUT:NOP ;串行DA转换
LCALL START
MOV A,#58H
LCALL SHOUT
LCALL ACK
MOV A,#00H
LCALL SHOUT
LCALL ACK
MOV A,R0
LCALL SHOUT
LCALL ACK
LCALL STOP
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 + -