📄 16f873.asm
字号:
bcf STATUS, RP0
movf _i, W
addlw _gcel
movwf FSR
bcf STATUS, IRP
movf INDF, W
sublw D'0'
movlw 1
btfsc STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0087
bcf STATUS, RP0
movf _i, W
addlw _gcel
movwf FSR
bcf STATUS, IRP
movf INDF, W
bcf STATUS, RP0
movwf param00_LCD_Dato
call _LCD_Dato
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
incf _i, F
goto label_0086
label_0087
_main__end
_LCD_Prepara__code
bcf STATUS, RP0
clrf PORTA
movlw D'248'
bsf STATUS, RP0
movwf TRISA
movlw D'6'
movwf _ADCON1
bcf STATUS, RP0
bcf PORTA, 0
bcf PORTA, 2
bcf PORTA, 1
bsf STATUS, RP0
clrf TRISB
return
_LCD_Prepara__end
_LCD_Busy__code
movlw D'255'
bsf STATUS, RP0
movwf TRISB
bcf STATUS, RP0
bsf PORTA, 1
_lcd_busy_1
bcf STATUS, RP0
bcf PORTA,2 ; Disable
nop
bsf PORTA,2 ; Enable
nop
btfsc PORTB,7 ; Chequea bit de Busy
goto _lcd_busy_1 ;
bcf PORTA, 2
nop
bcf PORTA, 1
bsf STATUS, RP0
clrf TRISB
return
_LCD_Busy__end
_LCD_Dato__code
bcf STATUS, RP0
bcf PORTA, 1
bcf PORTA, 0
movf param00_LCD_Dato, W
movwf PORTB
call _LCD_Busy
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bsf PORTA, 0
bsf PORTA, 2
nop
bcf PORTA, 2
movlw D'45'
movwf param00_delay_us
call _delay_us
bcf PCLATH, 3
bcf PCLATH, 4
return
_LCD_Dato__end
_delay_us__code
rrf param00_delay_us, 1
rrf param00_delay_us, 1
movlw D'63'
andwf param00_delay_us, 1
movlw D'3'
subwf param00_delay_us, 1
label_0000
nop
decfsz param00_delay_us, 1
goto label_0000
nop
return
_delay_us__end
_LCD_Comando__code
bcf STATUS, RP0
bcf PORTA, 1
bcf PORTA, 0
movf param00_LCD_Comando, W
movwf PORTB
call _LCD_Busy
bcf PCLATH, 3
bcf PCLATH, 4
bcf STATUS, RP0
bsf PORTA, 2
nop
bcf PORTA, 2
movlw D'45'
movwf param00_delay_us
call _delay_us
bcf PCLATH, 3
bcf PCLATH, 4
return
_LCD_Comando__end
_LCD_Ini__code
movlw D'60'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'5'
bcf STATUS, RP0
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'60'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'5'
bcf STATUS, RP0
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'60'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'5'
bcf STATUS, RP0
movwf param00_delay_ms
call _delay_ms
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'8'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'1'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
movlw D'6'
bcf STATUS, RP0
movwf param00_LCD_Comando
call _LCD_Comando
bcf PCLATH, 3
bcf PCLATH, 4
return
_LCD_Ini__end
_delay_ms__code
label_0001
movlw D'142'
bcf STATUS, RP0
movwf param00_delay_ms+1
nop
nop
label_0002
nop
nop
nop
nop
decfsz param00_delay_ms+1, 1
goto label_0002
nop
decfsz param00_delay_ms, 1
goto label_0001
nop
return
_delay_ms__end
_lectura__code
bsf STATUS, RP0
bcf OPTION_REG, NOT_RBPU
bcf STATUS, RP0
clrf _columna
movlw D'15'
bsf STATUS, RP0
movwf TRISB
bcf STATUS, RP0
clrf PORTB
movf PORTB, W
movwf _columna
movf _columna, W
sublw D'14'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0003
movlw D'1'
movwf _columna
goto label_0004
label_0003
bcf STATUS, RP0
movf _columna, W
sublw D'13'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0005
movlw D'2'
movwf _columna
goto label_0006
label_0005
bcf STATUS, RP0
movf _columna, W
sublw D'11'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0007
movlw D'3'
movwf _columna
goto label_0008
label_0007
bcf STATUS, RP0
movf _columna, W
sublw D'7'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0009
movlw D'4'
movwf _columna
goto label_0010
label_0009
bcf STATUS, RP0
clrf _columna
label_0010
label_0008
label_0006
label_0004
bcf STATUS, RP0
clrf _fila
movlw D'240'
bsf STATUS, RP0
movwf TRISB
bcf STATUS, RP0
clrf PORTB
movf PORTB, W
movwf _fila
movf _fila, W
sublw D'224'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0011
movlw D'1'
movwf _fila
goto label_0012
label_0011
bcf STATUS, RP0
movf _fila, W
sublw D'208'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0013
movlw D'2'
movwf _fila
goto label_0014
label_0013
bcf STATUS, RP0
movf _fila, W
sublw D'176'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0015
movlw D'3'
movwf _fila
goto label_0016
label_0015
bcf STATUS, RP0
movf _fila, W
sublw D'112'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0017
movlw D'4'
movwf _fila
goto label_0018
label_0017
bcf STATUS, RP0
clrf _fila
label_0018
label_0016
label_0014
label_0012
return
_lectura__end
_que_escribir__code
bcf STATUS, RP0
movf _fila, W
sublw D'0'
movlw 1
btfss STATUS, Z
clrw
andlw 0xFF
btfss STATUS, Z
goto label_0020
movf _columna, W
sublw D'0'
movlw 1
btfss STATUS, Z
clrw
andlw 0xFF
btfsc STATUS, Z
goto label_0020+1
label_0020
movlw 1
sublw 0
btfsc STATUS, Z
goto label_0019
movlw D'120'
return
goto label_0021
label_0019
bcf STATUS, RP0
movf _fila, W
sublw D'1'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0022
movf _columna, W
movwf _code_tmp_0000
movf _code_tmp_0000 , W
sublw D'1'
btfss STATUS, Z
goto label_0024
label_0025
movlw D'49'
return
goto label_0023
label_0024
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'2'
btfss STATUS, Z
goto label_0026
label_0027
movlw D'50'
return
goto label_0023
label_0026
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'3'
btfss STATUS, Z
goto label_0028
label_0029
movlw D'51'
return
goto label_0023
label_0028
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'4'
btfss STATUS, Z
goto label_0030
label_0031
movlw D'120'
return
goto label_0023
label_0030
label_0023
label_0022
bcf STATUS, RP0
movf _fila, W
sublw D'2'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0032
movf _columna, W
movwf _code_tmp_0000
movf _code_tmp_0000 , W
sublw D'1'
btfss STATUS, Z
goto label_0034
label_0035
movlw D'52'
return
goto label_0033
label_0034
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'2'
btfss STATUS, Z
goto label_0036
label_0037
movlw D'53'
return
goto label_0033
label_0036
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'3'
btfss STATUS, Z
goto label_0038
label_0039
movlw D'54'
return
goto label_0033
label_0038
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'4'
btfss STATUS, Z
goto label_0040
label_0041
movlw D'120'
return
goto label_0033
label_0040
label_0033
label_0032
bcf STATUS, RP0
movf _fila, W
sublw D'3'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0042
movf _columna, W
movwf _code_tmp_0000
movf _code_tmp_0000 , W
sublw D'1'
btfss STATUS, Z
goto label_0044
label_0045
movlw D'55'
return
goto label_0043
label_0044
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'2'
btfss STATUS, Z
goto label_0046
label_0047
movlw D'56'
return
goto label_0043
label_0046
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'3'
btfss STATUS, Z
goto label_0048
label_0049
movlw D'57'
return
goto label_0043
label_0048
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'4'
btfss STATUS, Z
goto label_0050
label_0051
movlw D'120'
return
goto label_0043
label_0050
label_0043
label_0042
bcf STATUS, RP0
movf _fila, W
sublw D'4'
movlw 1
btfss STATUS, Z
clrw
sublw 0
btfsc STATUS, Z
goto label_0052
movf _columna, W
movwf _code_tmp_0000
movf _code_tmp_0000 , W
sublw D'1'
btfss STATUS, Z
goto label_0054
label_0055
movlw D'42'
return
goto label_0053
label_0054
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'2'
btfss STATUS, Z
goto label_0056
label_0057
movlw D'48'
return
goto label_0053
label_0056
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'3'
btfss STATUS, Z
goto label_0058
label_0059
movlw D'120'
return
goto label_0053
label_0058
bcf STATUS, RP0
movf _code_tmp_0000 , W
sublw D'4'
btfss STATUS, Z
goto label_0060
label_0061
movlw D'120'
return
goto label_0053
label_0060
label_0053
label_0052
label_0021
return
_que_escribir__end
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -