📄 x-temp_lm35.asm
字号:
;************************************************* www.x-robotics.com *******
; PROGRAMA : X-Temp_LM35.asm
; Funcion :Medicion de temperatura de 4 canales con 2,56V +Vref externo y
; sensores LM35, indicacion de temp. en LCD 2x16.
;
; Medici髇 de 0 a +150 篊
;
;---------------------------------------------------------------------------
; Revision : 1.00 Fecha: 22/2/2003 Programa para : PIC16F876
; CPU Clock : 4 MHz Tiempo instruccion : 1uS
; WDT : OFF Tipo de reloj : XT
; Code Prot : OFF cfg USART rs232 ; none
; Autor : Daniel C. Martin -> ionitron@x-robotics.com <-
;************************************************* www.x-robotics.com *******
processor 16F876
LIST P=16F876 ;Se indica el modo de procesador
INCLUDE <P16f876.inc> ;se incluye la definicion de los
;registros internos
__config 3D31
PDel0 EQU 0x21
PDel1 EQU 0x22
PDel2 EQU 0x23
BUFFER EQU 0x24
DATO_A EQU 0x25
DATO_B EQU 0x26
Digito EQU 0x27
INNER EQU 0x28
OUTER EQU 0x29
cnt_bit EQU 0x2A
ASCII_H EQU 0x2B
ASCII_M EQU 0x2C
ASCII_L EQU 0x2D
HEXADECIMAL EQU 0x2E
Canal EQU 0x2F
;----------------------------------------------------------------------------
org 0x00 ;vector de inicio
goto INICIO
org 0x05 ;despues del vector de interrupcion
;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
;----------------------------------------------------------------------------
INICIO bcf STATUS,RP0 ;banco 0
bcf STATUS,RP1
clrf PORTA
bsf STATUS,RP0 ;banco 1
clrf TRISB ;portb como salida
clrf TRISC
bcf STATUS,RP0 ;banco 0
clrf PORTA
clrf PORTB
clrf PORTC
;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
START CALL LCD_INI ;Inicia LCD (CFG puertos...)
START_1 MOVLW b'00000001' ;Borrar LCD y Home
CALL LCD_REG
MOVLW b'00000110' ;
CALL LCD_REG
MOVLW b'00001100' ;LCD On, cursor Off,Parpadeo Off
CALL LCD_REG
MOVLW 0x80 ;Direccion caracter
CALL LCD_REG
REPETIR ;MOVF Digito,w ;W=Digito
;CALL DATO_1 ;Coge el caracter
;IORLW 0x00 ;Compara
;BTFSC STATUS,2 ;Es el ultimo?
;GOTO acabar ;Si
;CALL LCD_DATOS ;Visualiza caracter
;INCF Digito,f ;Incrementa numero de Digito
;GOTO REPETIR ;Vuelve a escribir
acabar ;termino inicializacion de lcd y muestra primeros datos
;===========================================================================
; Inicio de conversion de valores analogicos
;===========================================================================
;---------------------Configuracion CONVERTIDOR A/D-------------------------
CFGADC bsf STATUS,RP0 ;Banco 1
bcf STATUS,RP1
movlw b'00000011' ;seleccion tipo puertos A/D
movwf ADCON1
movlw b'11111111'
movwf TRISA ;PORTA como entrada
bcf STATUS,RP0 ;Banco 0
movlw b'01000001' ;seleccion Tad, canales para
movwf ADCON0 ;conversion y A/D=ON
bcf PIR1,ADIF ;limpia flag de conversion completa
; FIN de configuracion de registros
;---------------------------------------------------------------------------
lecturas movlw d'0' ;selecciona canal ADC
movwf Canal
call RUN_ADC
movlw 0x80 ;pone cursor en 80------------------
call LCD_REG
movlw 'T'
call LCD_DATOS ;Visualiza caracter
movlw '1'
call LCD_DATOS ;Visualiza caracter
movlw '='
call LCD_DATOS ;Visualiza caracter
call inLCD ;visualiza dato---------------------
movlw 0xDF ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -