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

📄 16f873.asm

📁 pic系列单片机得控制程序 主要进行温度采集和转换控制
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	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 + -