📄 max515a.asm
字号:
;/* 这是被CALL515.C调用的MAX515汇编程序,文件名为MAX515A.ASM */
;/* 功能:本程序作用是实现MAX515芯片的D/A转换。 */
NAME MAX515A
?PR?_a_func?MAX515A SEGMENT CODE
?DT?_a_func?MAX515A SEGMENT DATA OVERLAYABLE
?DT?MAX515A SEGMENT DATA
PUBLIC chai
PUBLIC ?_a_func?BYTE
PUBLIC _a_func
RSEG ?DT?_a_func?MAX515A
?_a_func?BYTE:
data_addr:DS 2
RSEG ?DT?MAX515A
chai: DS 1
RSEG ?PR?_a_func?MAX515A
_a_func:
SI EQU P1.0
SCK EQU P1.1
CS EQU P1.2
SO EQU P1.3
MOV data_addr,R7 ;R6和R7中放传递进来的整型参数
MOV data_addr+1,R6
MOV A,data_addr+1
MOV R2,A
MOV A,data_addr
MOV R3,A
LCALL DACOUT
RET ;本被调程序无返回参数
DACOUT: SETB CS
CLR CS
MOV A,R2 ;R2和R3中放待转换值
LCALL BYTE_OUT
MOV A,R3
LCALL BYTE_OUT
SETB CS
NOP
RET
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 + -