📄 max517a.asm
字号:
;/* 这是被CALL517.C调用的MAX517汇编程序,文件名为MAX517A.ASM */
;/* 功能:本程序作用是实现MAX517芯片的D/A转换。 */
NAME MAX517A
?PR?_a_func?MAX517A SEGMENT CODE
?DT?_a_func?MAX517A SEGMENT DATA OVERLAYABLE
?DT?MAX517A SEGMENT DATA
PUBLIC chai
PUBLIC ?_a_func?BYTE
PUBLIC _a_func
RSEG ?DT?_a_func?MAX517A
?_a_func?BYTE:
data_addr:DS 1
RSEG ?DT?MAX517A
chai: DS 1
RSEG ?PR?_a_func?MAX517A
_a_func:
SDA BIT P1.0
SCL BIT P1.1
MOV data_addr,R7 ;R7中放传递进来的字符型参数
MOV A,data_addr
MOV R0,A
LCALL DACOUT
RET ;本被调程序无返回参数
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 + -