Práctica 3 con Miuva. Contador binario ascendente con PIC C

[fusion_builder_container hundred_percent=”no” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” overlay_color=”” overlay_opacity=”0.5″ video_preview_image=”” border_size=”” border_color=”” border_style=”solid” padding_top=”” padding_bottom=”” padding_left=”” padding_right=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=””][fusion_text]

Ahora que ya conocemos como manejar puertos de entrada y de salida para poder escribir o leer información del mundo real vamos a aprovechar que en Miuva el puerto B del PIC está hecho de forma que pueda conectarse fácilmente a una protoboard, por lo tanto crearemos un contador de 8 bits el cual enviará el valor al puerto B donde conectaremos una barra de leds para poder observar como aumenta el mismo.

Imagen1. Puerto B en Miuva

Crearemos una variable de tipo entero de 8 bits a la cual llamaremos “i” de la cualquiera de las siguientes formas:

int i = 0;
int8 i = 0;

En esa variable almacenaremos el valor del contador y la aumentaremos cada determinado tiempo para enviarla al puerto B. Para aumentar el valor de una variable hay varias formas de hacerlo, algunas de ellas se muestran a continuación:

i = i + 1;
i++;

Con esto podemos crear el siguiente código:

Código en PIC C:

#include <18f4550.h>          // la librería del PIC
#Fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL2, CPUDIV1, VREGEN
#use delay (clock=48M)        //Seleccionamos la frecuencia de reloj de 48MHz
int8 i = 0;                //Variable i de tipo entero inicializada en 0
void main(){
   set_tris_b(0x00);       //Declaramos todo el puerto B como salida
   output_b(0x00);         //Ponemos a 0 todos los pines del puerto B     
   while(true){            //Inicia ciclo infinito
      i = i + 1;           //Aumentamos el valor de i
      output_b(i);         //Mandamos el valor de i al puerto B
      delay_ms(200);       //Esperamos 200 milisegundos
   }   
}

Conexiones

Observa el video demostrativo

Descarga el proyecto en PIC C o Mikro C

Menú