0832.asm

来自「达盛单片机试验箱」· 汇编 代码 · 共 85 行

ASM
85
字号
;利用DAC0832产生阶梯波、锯齿波和方波,用示波器观察波形。
DA0832		XDATA	8000H

			ORG	 	0000H
			
			AJMP	MAIN
;*****************************************************************************
;		/*主程序*/
;*****************************************************************************		
			ORG		0030H
			
MAIN:	
			AJMP	FB	

;*****************************************************************************
;		/*阶梯初始值为0,阶梯数为15,增长率为12*/
;*****************************************************************************		

JTB:		MOV	    R1,#0FFH
JTB0:		MOV	    DPTR,#DA0832
			MOV	    R0,#15
			MOV	    A,#00H
JTB1:		MOVX	@DPTR,A
			CALL	DELAY1MS
			ADD	    A,#12
			DJNZ	R0,JTB1
			DJNZ	R1,JTB0
			AJMP	JTB

;*****************************************************************************
;		/*钜齿波最大值为35,最小值为0*/
;*****************************************************************************		
		
JCB:		MOV		DPTR,#DA0832
JCB1:		MOV		A,#00H
JCB2:		MOVX	@DPTR,A
			INC		A
			CJNE	A,#35,JCB2
			AJMP	JCB1
		
;*****************************************************************************
;		/*方波最大值为FF,最小值为0*/
;*****************************************************************************	

FB:			MOV		DPTR,#DA0832
FB1:		MOV		A,#0
			MOVX	@DPTR,A
			CALL	DELAY2MS
			MOV		A,#0FFH
			MOVX	@DPTR,A
			CALL	DELAY2MS
			AJMP	FB1
					
;*****************************************************************************
;		/*延时程序*/
;*****************************************************************************	

DELAY1MS: 	MOV		R1,#01H
DL0:	  	MOV		R2,#225
		  	DJNZ	R2,$
		  	DJNZ	R1,DL0	
		  	RET
	
DELAY2MS: 	CALL	DELAY1MS
			CALL	DELAY1MS
			RET
		
DELAY_3S: 	PUSH	01H
			PUSH	02H
		  	PUSH	03H
		  	MOV		R1,#10              ;延时约3秒
DELAY_3S0:	MOV		R2,#225
DELAY_3S1:	MOV		R3,#225
DELAY_3S2:	NOP
		  	NOP
		  	DJNZ	R3,DELAY_3S2
		  	DJNZ	R2,DELAY_3S1
		  	DJNZ	R1,DELAY_3S0
		 	POP		03H
		  	POP		02H
		  	POP		01H
		  	RET		
	     	END		
	
			

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?