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

📄 dac.asm

📁 dac example with microcontroller implementation in c++
💻 ASM
字号:
;  
;  ASM code generated by mikroVirtualMachine for PIC - V. 2.0.0.0
;  Date/Time: 15.10.2004 11:18:37
;  Info: http://www.mikroelektronika.co.yu
;  
	GOTO	main
  ;--- procedure delays_delay_500us ---
delays_delay_500us:
	MOVLW	165
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	STACK_0
	DECFSZ	STACK_0,F
	GOTO	$-1
	nop
	nop
	RETURN
	;---endproc---
  ;--- procedure SPIlib_S_A_spi_init ---
SPIlib_S_A_spi_init:
	MOVLW	215
	BCF	STATUS,RP1
	BSF	STATUS,RP0
	MOVWF	TRISC
	BCF	STATUS,RP0
	CLRF	SSPCON
	MOVLW	64
	BSF	STATUS,RP0
	MOVWF	SSPSTAT
	BCF	STATUS,RP0
	BSF	sspcon,5
	RETURN
	;---endproc---
  ;--- procedure SPIlib_S_A_spi_write ---
SPIlib_S_A_spi_write:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVF	SPIlib_S_A_spi_write_param_data,W
	MOVWF	SSPBUF
	L_SPIlib_S_A_13:
	CLRF	STACK_0
	BSF	STATUS,RP0
	BTFSC	sspstat,0
	INCF	STACK_0,F
	MOVLW	0
	SUBWF	STACK_0,W
	BTFSS	STATUS,Z
	GOTO	L_SPIlib_S_A_14
	L_SPIlib_S_A_12:
	nop
	GOTO	L_SPIlib_S_A_13
	L_SPIlib_S_A_14:
	BCF	STATUS,RP0
	MOVF	SSPBUF,W
	MOVWF	SPIlib_S_A_spi_write_local_temp
	RETURN
	;---endproc---
  ;--- function button_button ---
button_button:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	CLRF	button_button_result
	MOVF	button_button_param_port,W
	BCF	STATUS,IRP
	MOVWF	FSR
	MOVLW	1
	MOVWF	STACK_1
	MOVF	button_button_param_pin,W
	MOVWF	STACK_2
	BTFSC	STATUS,Z
	GOTO	$+5
	RLF	STACK_1,F
	BCF	STACK_1,0
	DECFSZ	STACK_2,F
	GOTO	$-5
	MOVF	STACK_1,W
	CLRF	STACK_0
	ANDWF	INDF,W
	BTFSS	STATUS,Z
	INCF	STACK_0,F
	MOVF	button_button_param_activestate,W
	SUBWF	STACK_0,W
	BTFSS	STATUS,Z
	GOTO	L_button_1
	L_button_0:
	L_button_5:
	MOVF	button_button_param_time,W
	SUBLW	0
	BTFSC	STATUS,C
	GOTO	L_button_6
	L_button_4:
	CALL	delays_delay_500us
	CALL	delays_delay_500us
	MOVLW	1
	SUBWF	button_button_param_time,W
	MOVWF	button_button_param_time
	GOTO	L_button_5
	L_button_6:
	MOVLW	1
	MOVWF	STACK_2
	MOVF	button_button_param_pin,W
	MOVWF	STACK_3
	BTFSC	STATUS,Z
	GOTO	$+5
	RLF	STACK_2,F
	BCF	STACK_2,0
	DECFSZ	STACK_3,F
	GOTO	$-5
	MOVF	STACK_2,W
	CLRF	STACK_1
	ANDWF	INDF,W
	BTFSS	STATUS,Z
	INCF	STACK_1,F
	MOVF	button_button_param_activestate,W
	SUBWF	STACK_1,W
	BTFSS	STATUS,Z
	GOTO	L_button_8
	L_button_7:
	MOVLW	255
	MOVWF	button_button_result
	GOTO	L_button_9
	L_button_8:
	L_button_9:
	GOTO	L_button_2
	L_button_1:
	L_button_2:
	RETURN
	;---endproc---
  ;--- procedure dac_dac_output ---
dac_dac_output:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	BCF	portc,0
	MOVF	dac_dac_output_param_Value_2,W
	MOVWF	STACK_0
	MOVLW	15
	ANDWF	STACK_0,W
	MOVWF	dac_dac_output_local_temp
	MOVLW	48
	IORWF	dac_dac_output_local_temp,W
	MOVWF	dac_dac_output_local_temp
	MOVF	dac_dac_output_local_temp,W
	MOVWF	SPIlib_S_A_spi_write_param_data
	CALL	SPIlib_S_A_spi_write
	MOVF	dac_dac_output_param_Value_1,W
	MOVWF	dac_dac_output_local_temp
	MOVF	dac_dac_output_local_temp,W
	MOVWF	SPIlib_S_A_spi_write_param_data
	CALL	SPIlib_S_A_spi_write
	BSF	portc,0
	RETURN
	;---endproc---
  ;--- procedure dac_init ---
dac_init:
	BCF	STATUS,RP1
	BSF	STATUS,RP0
	BSF	trisb,0
	BSF	trisb,1
	CALL	SPIlib_S_A_spi_init
	BCF	STATUS,RP1
	BSF	STATUS,RP0
	BCF	trisc,0
	RETURN
	;---endproc---
  ;--- procedure main ---
main:
	CALL	dac_init
	MOVLW	0
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	dac_dac_output_param_Value_1
	MOVLW	8
	MOVWF	dac_dac_output_param_Value_2
	CALL	dac_dac_output
	MOVLW	0
	MOVWF	main_global_value_1
	MOVLW	8
	MOVWF	main_global_value_2
	L_dac_1:
	L_dac_0:
	MOVLW	PORTB,W
	MOVWF	button_button_param_port
	MOVLW	0
	MOVWF	button_button_param_pin
	MOVLW	1
	MOVWF	button_button_param_time
	MOVLW	1
	MOVWF	button_button_param_activestate
	CALL	button_button
	MOVLW	255
	SUBWF	button_button_result,W
	BTFSS	STATUS,Z
	GOTO	L_dac_4
	GOTO	L_dac_3
	L_dac_3:
	MOVLW	15
	SUBWF	main_global_value_2,W
	BTFSS	STATUS,Z
	GOTO	$+3
	MOVLW	255
	SUBWF	main_global_value_1,W
	BTFSC	STATUS,C
	GOTO	L_dac_4
	L_dac_7:
	INCF	main_global_value_1,F
	BTFSC	STATUS,Z
	INCF	main_global_value_2,F
	GOTO	L_dac_5
	L_dac_4:
	MOVLW	PORTB,W
	MOVWF	button_button_param_port
	MOVLW	1
	MOVWF	button_button_param_pin
	MOVLW	1
	MOVWF	button_button_param_time
	MOVLW	1
	MOVWF	button_button_param_activestate
	CALL	button_button
	MOVLW	255
	SUBWF	button_button_result,W
	BTFSS	STATUS,Z
	GOTO	L_dac_9
	GOTO	L_dac_8
	L_dac_8:
	MOVLW	0
	MOVWF	STACK_11
	MOVF	main_global_value_2,W
	SUBWF	STACK_11,W
	BTFSS	STATUS,Z
	GOTO	$+3
	MOVF	main_global_value_1,W
	SUBLW	0
	BTFSC	STATUS,C
	GOTO	L_dac_9
	L_dac_12:
	MOVLW	1
	SUBWF	main_global_value_1,F
	BTFSS	STATUS,C
	SUBWF	main_global_value_2,F
	GOTO	L_dac_10
	L_dac_9:
	L_dac_10:
	GOTO	L_dac_5
	L_dac_5:
	MOVF	main_global_value_1,W
	MOVWF	dac_dac_output_param_Value_1
	MOVF	main_global_value_2,W
	MOVWF	dac_dac_output_param_Value_2
	CALL	dac_dac_output
	MOVLW	2
	MOVWF	STACK_1
	MOVLW	255
	MOVWF	STACK_2
	MOVLW	255
	MOVWF	STACK_3
	DECFSZ	STACK_1,F
	GOTO	$+2
	GOTO	$+8
	DECFSZ	STACK_2,F
	GOTO	$+2
	GOTO	$+4
	DECFSZ	STACK_3,F
	GOTO	$-1
	GOTO	$-5
	GOTO	$-9
	MOVLW	6
	MOVWF	STACK_1
	MOVLW	255
	MOVWF	STACK_2
	DECFSZ	STACK_1,F
	GOTO	$+2
	GOTO	$+4
	DECFSZ	STACK_2,F
	GOTO	$-1
	GOTO	$-5
	MOVLW	10
	MOVWF	STACK_1
	DECFSZ	STACK_1,F
	GOTO	$-1
	GOTO	L_dac_1
	L_dac_2:
	GOTO	$
	;---endproc---

⌨️ 快捷键说明

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