Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MEDICION DE MAGNITUDES
ELÉCTRICAS PROGRAMADO EN
PIC 16F877A
CURSO: MICROPROCESADORES Y ARQUITECTURA
DEL COMPUTADOR (067C)
DOCENTE: ING. RAÚL SÁNCHEZ POMA
INTEGRANTES: ARELLANO HUAMÁN MAX
CASTELLANOS MENDOZA CRISTIAN
CHUCO LAUREANO IVAN
LARA GUZMÁN KEVIN
SEMESTRE: VI
Huancayo 2018
ÍNDICE
1
I. MARCO TEÓRICO
CPU:
- Tecnología RISC
- Sólo 35 instrucciones que aprender
- Todas las instrucciones se ejecutan en un ciclo de reloj, excepto
los saltos que requieren dos
- Frecuencia de operación de 0 a 20 MHz (200 ns de ciclo de
instrucción)
- Opciones de selección del oscilador
Memoria:
- Hasta 8k x 14 bits de memoria Flash de programa
- Hasta 368 bytes de memoria de datos (RAM)
- Hasta 256 bytes de memoria de datos EEPROM
- Lectura/escritura de la CPU a la memoria flash de programa
- Protección programable de código
- Stack de hardware de 8 niveles
Reset e interrupciones:
- Hasta 14 fuentes de interrupción
- Reset de encendido (POR)
- Timer de encendido (PWRT)
- Timer de arranque del oscilador (OST)
- Sistema de vigilancia Watchdog timer.
Otros:
- Modo SLEEP de bajo consumo de energía
- Programación y depuración serie “In-Circuit” (ICSP) a través de
dos patitas
- Rango de voltaje de operación de 2.0 a 5.5 volts
- Alta disipación de corriente de la fuente: 25mA
- Rangos de temperatura: Comercial, Industrial y Extendido
- Bajo consumo de potencia:
o Menos de 0.6mA a 3V, 4 Mhz
o 20 μA a 3V, 32 Khz
o menos de 1μA corriente de standby (modo SLEEP).
2
2. CARACTERÍSTICAS PERIFÉRICAS:
3. DIAGRAMA DE CONEXIONES:
3
4. DIAGRAMA DE BLOQUES DEL PIC16F877A:
4
5. DESCRIPCIÓN DE LOS PINES:
5
6
7
Leyenda:
AN = Analog input or output (entrada o salida analógica).
CMOS = CMOS compatible input or output (entrada o salida compatible).
D = Directo.
TTL = TTL compatible input (TTL de entrada compatible)
ST = Schmitt Trigger input with CMOS levels (entrada del disparador
con niveles CMOS)
HV = High Voltage (alto voltaje).
XTAL = Crystal.
8
II. SIMULACIÓN DEL CIRCUITO EN PROTEUS 8.5
#BYTE TRISA=0x85
9
#BYTE PORTA=0x05
float t;
float s1,s=0;
int a1=0;
void medirRes ()
setup_adc (ADC_CLOCK_DIV_32);
delay_us (20);
t = read_adc();
if(t<=930)
{ s= 1000*t / (1024-t);
s1=s1*4/5+s/5; }
else
s=0;
10
lcd_putc('\f'); //BORRA LA LCD YA DEBE ESTAR INICIALIZADA CUANDO LA LLAME
lcd_gotoxy (1,1);
lcd_gotoxy (6,2);
void publicaRes ()
lcd_putc('\f');
lcd_gotoxy (1,1);
lcd_gotoxy (4,2);
bit_set(TRISA,2);
setup_adc_ports (RA0_RA1_RA3_ANALOG);
11
lcd_putc('\f'); // BORRA LCD
if(BIT_TEST(PORTA,2)==1){
if(a1==0)
a1=1;
else
12
a1=0;
while(BIT_TEST(PORTA,2)==1);
if(a1==0){
medirVol();
publicaVol();
else {
medirRes();
publicaRes ();
13
IV. CODIFICACIÓN HEXADECIMAL
14