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

📄 usart_tx_irda2.asm

📁 irda 2 example implementation with microcontroller
💻 ASM
字号:
;  
;  ASM code generated by mikroVirtualMachine for PIC - V. 2.0.0.0
;  Date/Time: 21.10.2004 17:55:12
;  Info: http://www.mikroelektronika.co.yu
;  
	GOTO	main
  ;--- procedure delays_delay_1us ---
delays_delay_1us:
	nop
	RETURN
	;---endproc---
  ;--- procedure delays_delay_50us ---
delays_delay_50us:
	MOVLW	16
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	STACK_0
	DECFSZ	STACK_0,F
	GOTO	$-1
	nop
	RETURN
	;---endproc---
  ;--- procedure delays_delay_5500us ---
delays_delay_5500us:
	MOVLW	8
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	STACK_0
	MOVLW	255
	MOVWF	STACK_1
	DECFSZ	STACK_0,F
	GOTO	$+2
	GOTO	$+4
	DECFSZ	STACK_1,F
	GOTO	$-1
	GOTO	$-5
	MOVLW	30
	MOVWF	STACK_0
	DECFSZ	STACK_0,F
	GOTO	$-1
	RETURN
	;---endproc---
  ;--- procedure delays_delay_8ms ---
delays_delay_8ms:
	MOVLW	11
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	STACK_0
	MOVLW	255
	MOVWF	STACK_1
	DECFSZ	STACK_0,F
	GOTO	$+2
	GOTO	$+4
	DECFSZ	STACK_1,F
	GOTO	$-1
	GOTO	$-5
	MOVLW	91
	MOVWF	STACK_0
	DECFSZ	STACK_0,F
	GOTO	$-1
	nop
	RETURN
	;---endproc---
  ;--- procedure lcd_lcd_cmd ---
lcd_lcd_cmd:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVF	lcd_main_global_portaddress,W
	BCF	STATUS,IRP
	MOVWF	FSR
	MOVF	lcd_lcd_cmd_param_out_char,W
	MOVWF	lcd_lcd_cmd_param_out_char
	CLRF INDF
	BTFSC lcd_lcd_cmd_param_out_char,7
	BSF INDF,___DB7
	BTFSC lcd_lcd_cmd_param_out_char,6
	BSF INDF,___DB6
	BTFSC lcd_lcd_cmd_param_out_char,5
	BSF INDF,___DB5
	BTFSC lcd_lcd_cmd_param_out_char,4
	BSF INDF,___DB4
	MOVLW	1
	SUBWF	lcd_main_global_cmd,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_1
	L_lcd_0:
	BCF INDF,___RS
	GOTO	L_lcd_2
	L_lcd_1:
	BSF INDF,___RS
	L_lcd_2:
	BSF INDF,___ENABLE
	CALL	delays_delay_1us
	BCF INDF,___ENABLE
	CLRF INDF
	BTFSC lcd_lcd_cmd_param_out_char,3
	BSF INDF,___DB7
	BTFSC lcd_lcd_cmd_param_out_char,2
	BSF INDF,___DB6
	BTFSC lcd_lcd_cmd_param_out_char,1
	BSF INDF,___DB5
	BTFSC lcd_lcd_cmd_param_out_char,0
	BSF INDF,___DB4
	MOVLW	1
	SUBWF	lcd_main_global_cmd,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_5
	L_lcd_4:
	BCF INDF,___RS
	GOTO	L_lcd_6
	L_lcd_5:
	BSF INDF,___RS
	L_lcd_6:
	BSF INDF,___ENABLE
	CALL	delays_delay_1us
	BCF INDF,___ENABLE
	MOVLW	1
	SUBWF	lcd_main_global_cmd,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_9
	L_lcd_8:
	CALL	delays_delay_5500us
	GOTO	L_lcd_10
	L_lcd_9:
	CALL	delays_delay_50us
	L_lcd_10:
	RETURN
	;---endproc---
  ;--- procedure lcd_lcd_init ---
lcd_lcd_init:
	CALL	delays_delay_5500us
	CALL	delays_delay_5500us
	CALL	delays_delay_5500us
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVF	lcd_lcd_init_param_port,W
	MOVWF	FSR
	MOVLW	0
	MOVWF	INDF
	MOVF   lcd_lcd_init_param_port,w
	MOVWF  lcd_main_global_portaddress
	MOVWF  FSR
	BSF    FSR,7
	CLRF   INDF
	BCF    FSR,7
	CALL	delays_delay_8ms
	BSF	INDF,___DB5
	BSF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_8ms
	BSF	INDF,___DB5
	BSF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_50us
	CALL	delays_delay_50us
	BSF	INDF,___DB5
	BSF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_8ms
	BSF	INDF,___DB5
	BCF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_50us
	BSF	INDF,___DB5
	BCF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	BSF	INDF,___DB7
	BCF	INDF,___DB6
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_50us
	MOVLW	0
	MOVWF	INDF
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	BSF	INDF,___DB7
	BSF	INDF,___DB6
	BSF	INDF,___DB5
	BSF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_50us
	MOVLW	0
	MOVWF	INDF
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	BSF	INDF,___DB4
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_8ms
	MOVLW	0
	MOVWF	INDF
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	BSF	INDF,___DB6
	BSF	INDF,___DB5
	BSF	INDF,___ENABLE
	CALL	delays_delay_1us
	BCF	INDF,___ENABLE
	CALL	delays_delay_50us
	MOVLW	1
	MOVWF	lcd_main_global_cmd
	RETURN
	;---endproc---
  ;--- procedure lcd_lcd_out ---
lcd_lcd_out:
	MOVLW	1
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	SUBWF	lcd_lcd_out_param_row,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_21
	MOVLW	128
	MOVWF	lcd_lcd_out_param_row
	GOTO	L_lcd_20
	L_lcd_21:
	MOVLW	2
	SUBWF	lcd_lcd_out_param_row,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_22
	MOVLW	192
	MOVWF	lcd_lcd_out_param_row
	GOTO	L_lcd_20
	L_lcd_22:
	MOVLW	3
	SUBWF	lcd_lcd_out_param_row,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_23
	MOVLW	148
	MOVWF	lcd_lcd_out_param_row
	GOTO	L_lcd_20
	L_lcd_23:
	MOVLW	4
	SUBWF	lcd_lcd_out_param_row,W
	BTFSS	STATUS,Z
	GOTO	L_lcd_24
	MOVLW	212
	MOVWF	lcd_lcd_out_param_row
	GOTO	L_lcd_20
	L_lcd_24:
	MOVLW	128
	MOVWF	lcd_lcd_out_param_row
	L_lcd_20:
	MOVF	lcd_lcd_out_param_column,W
	ADDWF	lcd_lcd_out_param_row,W
	MOVWF	STACK_0
	MOVLW	1
	SUBWF	STACK_0,F
	MOVF	STACK_0,W
	MOVWF	lcd_lcd_out_param_row
	MOVF	lcd_lcd_out_param_row,W
	MOVWF	lcd_lcd_cmd_param_out_char
	CALL	lcd_lcd_cmd
	CLRF	lcd_main_global_cmd
	MOVLW	1
	MOVWF	lcd_lcd_out_local_i
	L_lcd_25:
	MOVF	lcd_lcd_out_param_text,W
	MOVWF	FSR
	MOVF	INDF,W
	MOVWF	STACK_1
	MOVF	lcd_lcd_out_local_i,W
	SUBWF	STACK_1,W
	BTFSS	STATUS,C
	GOTO	L_lcd_26
	MOVF	lcd_lcd_out_param_text,W
	MOVWF	FSR
	MOVF	lcd_lcd_out_local_i,W
	ADDWF	FSR,F
	MOVF	INDF,W
	MOVWF	lcd_lcd_cmd_param_out_char
	CALL	lcd_lcd_cmd
	L_lcd_27:
	CLRF	STACK_2
	INCF	STACK_2,F
	MOVF	lcd_lcd_out_local_i,W
	ADDWF	STACK_2,W
	MOVWF	lcd_lcd_out_local_i
	GOTO	L_lcd_25
	L_lcd_26:
	MOVLW	1
	MOVWF	lcd_main_global_cmd
	RETURN
	;---endproc---
  ;--- procedure USARTlib_U_A_usart_init ---
USARTlib_U_A_usart_init:
	BCF	STATUS,RP1
	BSF	STATUS,RP0
	BSF	txsta,5
	MOVLW	144
	BCF	STATUS,RP0
	MOVWF	RCSTA
	BSF	STATUS,RP0
	BSF	trisc,7
	BCF	trisc,6
	L_USARTlib_U_A_1:
	CLRF	STACK_0
	BCF	STATUS,RP0
	BTFSC	pir1,5
	INCF	STACK_0,F
	MOVLW	1
	SUBWF	STACK_0,W
	BTFSS	STATUS,Z
	GOTO	L_USARTlib_U_A_2
	L_USARTlib_U_A_0:
	MOVF	RCREG,W
	MOVWF	USARTlib_U_A_usart_init_local_i
	GOTO	L_USARTlib_U_A_1
	L_USARTlib_U_A_2:
	RETURN
	;---endproc---
  ;--- procedure USARTlib_U_A_usart_write ---
USARTlib_U_A_usart_write:
	L_USARTlib_U_A_4:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	CLRF	STACK_0
	BSF	STATUS,RP0
	BTFSC	txsta,1
	INCF	STACK_0,F
	MOVLW	0
	SUBWF	STACK_0,W
	BTFSS	STATUS,Z
	GOTO	L_USARTlib_U_A_5
	L_USARTlib_U_A_3:
	nop
	GOTO	L_USARTlib_U_A_4
	L_USARTlib_U_A_5:
	BCF	STATUS,RP0
	MOVF	USARTlib_U_A_usart_write_param_data,W
	MOVWF	TXREG
	RETURN
	;---endproc---
  ;--- procedure USART_Tx_IrDA2_initall ---
USART_Tx_IrDA2_initall:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	CLRF	main_global_ind
	MOVLW	1
	MOVWF	main_global_rxIndex
	MOVLW	16
	MOVWF	main_global_outTxt_0
	MOVLW	109
	MOVWF	main_global_outTxt_1
	MOVLW	105
	MOVWF	main_global_outTxt_2
	MOVLW	107
	MOVWF	main_global_outTxt_3
	MOVLW	114
	MOVWF	main_global_outTxt_4
	MOVLW	111
	MOVWF	main_global_outTxt_5
	MOVLW	101
	MOVWF	main_global_outTxt_6
	MOVLW	108
	MOVWF	main_global_outTxt_7
	MOVLW	101
	MOVWF	main_global_outTxt_8
	MOVLW	107
	MOVWF	main_global_outTxt_9
	MOVLW	116
	MOVWF	main_global_outTxt_10
	MOVLW	114
	MOVWF	main_global_outTxt_11
	MOVLW	111
	MOVWF	main_global_outTxt_12
	MOVLW	110
	MOVWF	main_global_outTxt_13
	MOVLW	105
	MOVWF	main_global_outTxt_14
	MOVLW	107
	MOVWF	main_global_outTxt_15
	MOVLW	97
	MOVWF	main_global_outTxt_16
	BSF	STATUS,RP0
	CLRF	TRISB
	BCF	STATUS,RP0
	MOVLW	PORTB,W
	MOVWF	lcd_lcd_init_param_port
	CALL	lcd_lcd_init
	MOVLW	1
	MOVWF	lcd_lcd_cmd_param_out_char
	CALL	lcd_lcd_cmd
	MOVLW	12
	MOVWF	lcd_lcd_cmd_param_out_char
	CALL	lcd_lcd_cmd
	MOVLW	12
	BSF	STATUS,RP0
	MOVWF	SPBRG
	BSF	TXSTA, BRGH	; HI speed
	CALL	USARTlib_U_A_usart_init
	RETURN
	;---endproc---
  ;--- procedure USART_Tx_IrDA2_shiftout ---
USART_Tx_IrDA2_shiftout:
	MOVLW	0
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	SUBWF	main_global_ind,W
	BTFSS	STATUS,Z
	GOTO	L_USART_Tx_IrDA2_3
	MOVLW	6
	MOVWF	main_global_outTxt_0
	MOVLW	97
	MOVWF	main_global_outTxt_1
	MOVLW	97
	MOVWF	main_global_outTxt_2
	MOVLW	97
	MOVWF	main_global_outTxt_3
	MOVLW	97
	MOVWF	main_global_outTxt_4
	MOVLW	64
	MOVWF	main_global_outTxt_5
	MOVLW	35
	MOVWF	main_global_outTxt_6
	INCF	main_global_ind,F
	GOTO	L_USART_Tx_IrDA2_2
	L_USART_Tx_IrDA2_3:
	MOVLW	1
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	SUBWF	main_global_ind,W
	BTFSS	STATUS,Z
	GOTO	L_USART_Tx_IrDA2_6
	MOVLW	6
	MOVWF	main_global_outTxt_0
	MOVLW	98
	MOVWF	main_global_outTxt_1
	MOVLW	98
	MOVWF	main_global_outTxt_2
	MOVLW	98
	MOVWF	main_global_outTxt_3
	MOVLW	98
	MOVWF	main_global_outTxt_4
	MOVLW	64
	MOVWF	main_global_outTxt_5
	MOVLW	35
	MOVWF	main_global_outTxt_6
	INCF	main_global_ind,F
	GOTO	L_USART_Tx_IrDA2_2
	L_USART_Tx_IrDA2_6:
	MOVLW	2
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	SUBWF	main_global_ind,W
	BTFSS	STATUS,Z
	GOTO	L_USART_Tx_IrDA2_9
	MOVLW	6
	MOVWF	main_global_outTxt_0
	MOVLW	99
	MOVWF	main_global_outTxt_1
	MOVLW	99
	MOVWF	main_global_outTxt_2
	MOVLW	99
	MOVWF	main_global_outTxt_3
	MOVLW	99
	MOVWF	main_global_outTxt_4
	MOVLW	64
	MOVWF	main_global_outTxt_5
	MOVLW	35
	MOVWF	main_global_outTxt_6
	INCF	main_global_ind,F
	GOTO	L_USART_Tx_IrDA2_2
	L_USART_Tx_IrDA2_9:
	MOVLW	3
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	SUBWF	main_global_ind,W
	BTFSS	STATUS,Z
	GOTO	L_USART_Tx_IrDA2_12
	MOVLW	6
	MOVWF	main_global_outTxt_0
	MOVLW	100
	MOVWF	main_global_outTxt_1
	MOVLW	100
	MOVWF	main_global_outTxt_2
	MOVLW	100
	MOVWF	main_global_outTxt_3
	MOVLW	100
	MOVWF	main_global_outTxt_4
	MOVLW	64
	MOVWF	main_global_outTxt_5
	MOVLW	35
	MOVWF	main_global_outTxt_6
	INCF	main_global_ind,F
	GOTO	L_USART_Tx_IrDA2_2
	L_USART_Tx_IrDA2_12:
	MOVLW	6
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	main_global_outTxt_0
	MOVLW	101
	MOVWF	main_global_outTxt_1
	MOVLW	101
	MOVWF	main_global_outTxt_2
	MOVLW	101
	MOVWF	main_global_outTxt_3
	MOVLW	101
	MOVWF	main_global_outTxt_4
	MOVLW	64
	MOVWF	main_global_outTxt_5
	MOVLW	35
	MOVWF	main_global_outTxt_6
	CLRF	main_global_ind
	GOTO	L_USART_Tx_IrDA2_2
	L_USART_Tx_IrDA2_2:
	RETURN
	;---endproc---
  ;--- procedure USART_Tx_IrDA2_txout ---
USART_Tx_IrDA2_txout:
	MOVLW	1
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	main_global_rxIndex
	L_USART_Tx_IrDA2_19:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVLW	main_global_outTxt_0
	MOVWF	FSR
	MOVF	main_global_rxIndex,W
	ADDWF	FSR,F
	MOVF	INDF,W
	MOVWF	STACK_1
	MOVLW	35
	SUBWF	STACK_1,W
	BTFSC	STATUS,Z
	GOTO	L_USART_Tx_IrDA2_20
	L_USART_Tx_IrDA2_18:
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVLW	main_global_outTxt_0
	MOVWF	FSR
	MOVF	main_global_rxIndex,W
	ADDWF	FSR,F
	MOVF	INDF,W
	MOVWF	USARTlib_U_A_usart_write_param_data
	CALL	USARTlib_U_A_usart_write
	INCF	main_global_rxIndex,F
	GOTO	L_USART_Tx_IrDA2_19
	L_USART_Tx_IrDA2_20:
	RETURN
	;---endproc---
  ;--- procedure USART_Tx_IrDA2_updatelcd_tx ---
USART_Tx_IrDA2_updatelcd_tx:
	MOVLW	1
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	MOVWF	lcd_lcd_out_param_row
	MOVLW	1
	MOVWF	lcd_lcd_out_param_column
	MOVLW	5
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_0
	MOVLW	83
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_1
	MOVLW	101
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_2
	MOVLW	110
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_3
	MOVLW	116
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_4
	MOVLW	58
	MOVWF	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_5
	MOVLW	USART_Tx_IrDA2_updatelcd_tx_global_temp_string_0
	MOVWF	lcd_lcd_out_param_text
	CALL	lcd_lcd_out
	MOVLW	2
	MOVWF	lcd_lcd_out_param_row
	MOVLW	1
	MOVWF	lcd_lcd_out_param_column
	MOVLW	main_global_outTxt_0,W
	MOVWF	lcd_lcd_out_param_text
	CALL	lcd_lcd_out
	RETURN
	;---endproc---
  ;--- procedure main ---
main:
	CALL	USART_Tx_IrDA2_initall
	L_USART_Tx_IrDA2_22:
	L_USART_Tx_IrDA2_21:
	CALL	USART_Tx_IrDA2_shiftout
	CALL	USART_Tx_IrDA2_txout
	CALL	USART_Tx_IrDA2_updatelcd_tx
	MOVLW	2
	BCF	STATUS,RP1
	BCF	STATUS,RP0
	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	178
	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	82
	MOVWF	STACK_1
	DECFSZ	STACK_1,F
	GOTO	$-1
	GOTO	L_USART_Tx_IrDA2_22
	L_USART_Tx_IrDA2_23:
	GOTO	$
	;---endproc---

⌨️ 快捷键说明

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