📄 usart_tx_irda2.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 + -