Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1.Int a=0;
2.Signed long a=125, b , c= -10;
3.Char nombre = ‘juan perez’ ;
ALGUNOS DE LOS
MICROCONTROLADORES MAS
UTILIZADOS
#BYTE nombre = x
Ejemplos:
#BYTE STATUS = 3
#BYTE PORTB = 6
#INCLUDE <archivo>
#INCLUDE <PIC16F877A.H>
Existe la posibilidad de utilizar #INCLUDE "archivo" en lugar de
#INCLUDE <archivo>. La diferencia es que si se usa "", el archivo se
buscará primero en el directorio actual. Si se emplea <>, el archivo será
buscado primero en la ruta por defecto para los archivos .h.
• delay_us(tiempo)
• delay_cycles(ciclos) (0-255)
– 1 ciclo= 4 ciclos de reloj
• OUTPUT_LOW( )
Sintaxis: output_low (pin)
Función: coloca el pin en estado bajo.
• Ejemplos:
– enable_interrupts(GLOBAL);
– disable_interrupts(INT_TIMER0);
– enable_interrupts(INT_TIMER1);
• setup_timer_X()
• set_timer_X()
• get_timer_X()
TUTORIAL PIC C Ing. Rafael Omar Mendoza A.
1 Programa encender 1 led cada 5”
//Notas: Parpadeo de un led cada 0.5s por el pin RB0 del puerto B
/////////////////////// ING RAFAEL MENDOZA ///////////////////////////////////////////////////
//Archivo led84.C
#include <16f84a.h>//pic a utilizar
//#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(b)
///PROGRAMA
void main(void)
{
set_tris_b(0xFE); //portb como salida(RB0,las demas desactivadas)
//disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{
output_low(PIN_B0); //led off
delay_ms(500);
output_high(PIN_B0); //led on
delay_ms(500);
}
while(TRUE); //bucle infinito
}
TUTORIAL PIC C Ing. Rafael Omar Mendoza A.
2 Programa Encender led de 4 formas diferentes
// Notas: Parpadeo de cuatro leds cada 0.5s de cuatro formas diferentes Ing Rafael O Mendoza A.:
// RB0 -> con la funcion output_high()/output_low()
// RB1 -> definiendo el pin RB1
// RB2 -> con la funcion output_bit()
// RB3 -> con la funcion bit_set()/bit_clear()
//////////////////////////////////////////////////////////////////////////////////
#include <16f84a.h> //pic a utilizar
#fuses XT,NOPROTECT,NOWDT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fixed_io(b_outputs=PIN_B0,PIN_B1,PIN_B2,PIN_B3) //pin de salida portb
#bit RB1=0x106.1 //definicion pin potrb B1
#byte portb=06
///PROGRAMA PRINCIPAL
void main(void)
{
set_tris_b(0x00); //puerto b como salida
disable_interrupts(GLOBAL); //todas interrupciones desactivadas
RB1=0; //valor inicial B1 para que los led"s se iluminen a la vez
do
{
output_high(PIN_B0); //led"s on
RB1=!RB1;
output_bit(PIN_B2,1);
bit_set(portb,3);
delay_ms(500);
output_low(PIN_B0); //led"s off
RB1=!RB1;
output_bit(PIN_B2,0);
bit_clear(portb,3);
delay_ms(500);
}TUTORIAL PIC C Ing. Rafael Omar Mendoza A.
while(TRUE); //bucle infinito
}
3 Programa contador binario
#include <16F84a.h> //pic a utilizar
#use delay (clock=4000000) // Clock=4Mhz
#use standard_io(B) //Puerto B (trabaja con la función output_b)
main()
{
int c=0; // declaro contador como entero( 1 byte) e inicializado en cero
set_tris_b(0x00); //portb como salida
//disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
do{ //Repetir...
output_b(c); //muestra por puerto b digitos 0-9
delay_ms(500);
c++; //incremento contador para visualizar siguiente digito
if(c>9) //¿ya se ha mostrado el digito 9?
{
c=0; //SI -> vuelve a empezar(digito 0)
}
}
while(TRUE); //...infinito
}
#include <16F84A.h>
void main()
{
lcd_init(); //Inicialización del lcd
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_18MS);
void main()
{
lcd_init();
while (true)
{
printf(lcd_putc,"\fHOLA"); //borra la pantalla y muestra el mensaje
delay_ms(500); //retardo de 500 ms
printf(lcd_putc,"\f");
delay_ms(500);
}
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_18MS);
int i;
void main()
{
i=200;
lcd_init();
while (true)
{
lcd_gotoxy(1,1); // mensaje en la primera linea
printf(lcd_putc,"\fCONTADOR %u",i);
delay_ms(100);
lcd_gotoxy(1,2); //mensaje en la segunda linea
printf(lcd_putc,"NUMERO: %u",i);
delay_ms(100);
i=i-1;
}
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_18MS);
}