Consulta: ¿Cómo visualizo el lcd en el pic16f883 y cómo declaro el adc?
Última edición por un moderador:
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
¿En qué lenguaje y con qué compilador?Consulta: ¿Cómo visualizo el lcd en el pic16f883 y cómo declaro el adc?
Pues entonces no entiendo cuál es el problema.en c con el ccs
Porque estás declarando usar todos los pines con ADC como análogos y tienes conectada la pantalla en el puerto B.¿Por qué no me funciona con este PIC?
Lo hago con otro y sale todo bien, pero con el 16F883 no me anda.
Cierto. Eso pasa al escribir código por aquí, se llegan a olvidar algunos formatos.Me volvia loco acá: setup_adc_ports(sAN0,sAN3); va con una barra o raya en el medio no con coma (san0|san3)
///////////////////////////////////////
//AUTOR:JORGE ARTURO RODRIGUEZ HERNANDEZ
//TITLE;CONTADOR 0 A 9
//DATE:23/ABRIL/2009
///////////////////////////////////////
//CONFIGURACION///////////////////
#include<16f628a.h>
#fuses INTRC_IO,NOWDT,NOLVP,MCLR,NOPROTECT
#use delay(clock=4000000)
//INICIO DEL PROGRAMA///////////////
void main(void){
//VARIBALES///////////////////////////
int mostrar[]={0b11000000,0b11111001,0b10100100,0b10110000,
0b10011001,0b10010010,0b10000011,0b11111000,
0b10000000,0b00011000};
int contador;
//CONFIGURACION E/S///////////////
set_tris_b(0x00);
do{
for(contador=0;contador<=9;++contador){
output_b(mostrar[contador]);
delay_ms(1000);
}
}while(TRUE);
}
;===================================================
list P=PIC16F84A Micro PIC16F84A
;=============================================================
w equ 00
reg1 equ 0d
status equ 03
ptob equ 06
ptoa equ 05
trisa equ 90
trisb equ 86
t1 equ 0e
grueso equ 100000
;=============================================================
c equ 0
z equ 2
rp0 equ 5
rp1 equ 6
;==============================================================
reset
org 0
bcf status,rp0
bcf status,rp1
movlw 0x80
tris ptob
bcf status,rp0
;===========================================================
inicio btfsc ptob,7
goto enciende
goto inicio
;=============================================================
enciende
bcf status,rp1
movlw 0x80
tris ptob
bcf status,rp0
movlw 01
movwf reg1
movf reg1
movwf ptob
call demora
demora movlw grueso
movwf t1
tt1 decfsz t1
goto tt1
movlw 00
movwf ptob
goto reset
end
Los detalles del programa ya te los mencionó Daniel, y el programa que quieres hacer es muy sencillo.La idea es que con un PIC16F84A, yo le ingrese un pulso de 5 V al puerto B en el pin 7 y me encienda un LED conectado al puerto B en el pin 0, quede prendido por unos segundos y luego se apague esperando una nueva señal en el pin 7.
list p = 16f84a
include p16f84a.inc
__config _XT_OSC & _WDT_OFF & _PWRTE_ON
errorlevel -302
#define pin_entrada PORTB,7
#define pin_salida PORTB,0
cblock 0x20
cnt1,cnt2,cnt3
endc
org 0x00
inicio
bsf STATUS,RP0 ; Banco 1
movlw b'11111110' ; RB0 como salida.
movwf TRISB
bcf STATUS,RP0 ; Banco 0
bcf pin_salida ; "pin_salida" en 0 al iniciar.
programa
btfsc pin_entrada ; Comprobar el estado de "pin_entrada" (Saltar si es cero)
goto enciende_led ; Es alto, ir a "enciende_led"
goto salir ; Es bajo, ir a "salir"
enciende_led
bsf pin_salida ; Poner en 1 "pin_salida"
call retardo_2s ; Llamar a la rutina "retardo_2s"
bcf pin_salida ; Poner en 0 "pin_salida"
salir
goto programa
retardo_2s ; @ 4 MHz.
; 1999996 ciclos
movlw 0x11
movwf cnt1
movlw 0x5D
movwf cnt2
movlw 0x05
movwf cnt3
retardo_2s_0
decfsz cnt1,f
goto $+2
decfsz cnt2,f
goto $+2
decfsz cnt3,f
goto retardo_2s_0
; 4 ciclos (Incluyendo la llamada)
return
end
Aparte de los problemas en tu programa, eso puede ser debido a que no estás incluyendo la palabra de configuración.Les cuento que en el simulador del MPLAB me funciona perfecto.
TRIS, si es una instrucción de esta familia de PIC con referencia al registro que se especifique, pero desde hace varios años ya es obsoleta.1- TRIS no es una instrucción en esta familia de micros, eso de entrada indica que quizá no tengas bien configurada la selección del dispositivo en el compilador.
Ahora se recomienda usar la librería del PIC a usar, en este caso; "P16F84A.INC"MPASM dijo:Warning[224] Use of this instruction is not recommended.
TRIS, si es una instrucción de esta familia de PIC con referencia al registro que se especifique, pero desde hace varios años ya es obsoleta.
Se puede seguir utilizando, aunque el compilador mostrará una advertencia sobre su uso.