⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max539.asm

📁 单片机C语言教程
💻 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 + -