Autor Tema: Funcion de comandos WPUB y OPTION_REG en PICC CCS para keypad  (Leído 4788 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado champilton

  • PIC10
  • *
  • Mensajes: 19
Funcion de comandos WPUB y OPTION_REG en PICC CCS para keypad
« en: 13 de Mayo de 2014, 00:34:32 »
Hola a todos!!! antes que nada quisiera manifestar mi entera satisfaccion con este foro, pues he obtenido grandes resultados con las respuestas que se me dan al hacer mis preguntas  ((:-))

pasando a mi interrogante, la cual no me deja dormir, he aqui un codigo que muestra en una LCD la tecla que se presiono en una keypad de 3x4:

#include <16f887.h>
#use delay(clock=4M)
#fuses INTRC_IO, NOWDT,NOPUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP
#include <lcd.c>
#include <kbd.c>
#use standard_io(B)


#byte WPUB=0x95
#byte OPTION_REG=0x81

void main()
{
   char k;
   WPUB=0xff;
   OPTION_REG=0x00;
   
   lcd_init();
   kbd_init();
   lcd_gotoxy(4,1);
   printf(lcd_putc,"presiona");
   while(true)
   {
     
      k=kbd_getc();
      if(k!=0)
      {
         lcd_gotoxy(4,2);
         printf(lcd_putc,"tecla: %c",k);       
      }
   }
}

Este codigo me lo enseñaron en un curso hace un par de años, entiendo como funciona pero olvide que es lo que hacian dos comandos que aparecen alli y porque se les daba el valor que se les asignaba:

#byte WPUB=0x95
#byte OPTION_REG=0x81

WPUB=0xff;
OPTION_REG=0x00;

las dos primeras recuerdo que era algo de la direccion en la que estaban, y de hecho contienen esa direccion en el datasheet, sin embargo no recuerdo bien bien que eran, pero las que me tienen muy desorientados son las dos ultimas cuando se igualan a 0xff y a 0x00,
coloco tambien la imagen de la simulacion (corriendo correctamente)

Espero me puedan ayudar a resolver mi duda. gracias!!!

Desconectado allennet

  • PIC16
  • ***
  • Mensajes: 112
Re: Funcion de comandos WPUB y OPTION_REG en PICC CCS para keypad
« Respuesta #1 en: 15 de Mayo de 2014, 02:44:43 »
el 0x95 no esta implementado en ese pic
#byte OPTION_REG=0x81
variable OPTION_REG va a tener la direccion en la ram 0x81 que en el pic es un registro especial  llamado OPTION_REG que escribes con esto
OPTION_REG=0x00;
cumple la siguente funcion

7bit RBPU: PORTB Pull-up Enable bit
1 = PORTB pull-ups are disabled
0 = PORTB pull-ups are enabled by individual port latch values

bit 6 INTEDG: Interrupt Edge Select bit
1 = Interrupt on rising edge of RB0/INT pin
0 = Interrupt on falling edge of RB0/INT pin

bit 5 T0CS: TMR0 Clock Source Select bit
1 = Transition on RA4/T0CKI pin
0 = Internal instruction cycle clock (CLKOUT)

bit 4 T0SE: TMR0 Source Edge Select bit
1 = Increment on high-to-low transition on RA4/T0CKI pin
0 = Increment on low-to-high transition on RA4/T0CKI pin

bit 3 PSA: Prescaler Assignment bit
1 = Prescaler is assigned to the WDT
0 = Prescaler is assigned to the Timer0 module

bit 2-0 PS2:PS0: Prescaler Rate Select bits
Bit Value    TMR0 Rate    WDT Rate
000                   1:1                  1:2

en ese codigo solo lo usa para activar pull up del puerto B
"La curiosidad mato al gato, pero murio sabiendo"


 

anything