?? max515.asm
字號:
;/****************************************************************/
;/* 這是MAX515的匯編程序,文件名MAX515.ASM。 */
;/* 功能:本程序主要是實現MAX515芯片的D/A轉換。程序中轉換的十六進*/
;/* 制值依次為0FFCH,07FCH,03FCH,01FCH,0000H,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 ;輸入0FFCH,輸出電壓為REF*2
LCALL BYTE_OUT
MOV A,#0FCH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#07H ;輸入07FCH,輸出電壓為REF
LCALL BYTE_OUT
MOV A,#0FCH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#03H ;輸入03FCH,輸出電壓為REF/2
LCALL BYTE_OUT
MOV A,#0FCH
LCALL BYTE_OUT
SETB CS
LCALL DELAY
NOP
CLR CS
MOV A,#01H ;輸入01FCH,輸出電壓為REF/4
LCALL BYTE_OUT
MOV A,#0FCH
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 + -