Documentos de Académico
Documentos de Profesional
Documentos de Cultura
#include <16F877A.h>
/* PIC16F4A */
#fuses XT,NOWDT,NOPROTECT,PUT
#fuses BROWNOUT /* Fusibles (lo mas comun) */
#use delay (clock=4000000)
/* Ajuste retardos */
#use fast_io(b)
/* Opcional */
#use standard_io(c)
/* Opcional */
#byte port_b= 0x06
void main()
{
int i;
port_b=1;
set_tris_b(0x00);
disable_interrupts(GLOBAL);
while (true)
{
for(i=1;i<=4;i++)
{
rotate_left(&port_b,1);
delay_ms(500);
}
}
******************************************************
***********
/* flecha \ / */
int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
int const caracter0_datos[8]={0b00000,0b10000,0b11000,0b11100,0b01110,0b00111,0b00011,0b00001};
int const caracter1_direccion[8]={0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f};
int const caracter1_datos[8]={0b00001,0b00011,0b00111,0b01110,0b11100,0b11000,0b10000,0b10000};
/*Mueco*/
int const caracter2_direccion[8]={0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57};
int const caracter2_datos[8]={0b01110,0b01010,0b01110,0b00100,0b11111,0b00100,0b01010,0b10001};
void main() {
int contador;
set_tris_a(0x0);
set_tris_b(0x0);
lcd_init();
for(contador=0;contador<8;contador++)
{
lcd_send_byte(0,caracter0_direccion[contador]);
lcd_send_byte(1,caracter0_datos[contador]);
lcd_send_byte(0,caracter1_direccion[contador]);
lcd_send_byte(1,caracter1_datos[contador]);
lcd_send_byte(0,caracter2_direccion[contador]);
lcd_send_byte(1,caracter2_datos[contador]);
lcd_send_byte(0,0x80);
do
{
for(contador=1;contador<16;contador++)
{
lcd_gotoxy(contador,1);
Lcd_putc(0);
Lcd_putc(0);
Lcd_putc(0);
Lcd_putc(2);
//Lcd_putc(3);
//modo comando
// modo dato
//modo comando
// modo dato
//modo comando
// modo dato
//delay_ms(2000);
lcd_gotoxy(contador,2);
Lcd_putc(1);
Lcd_putc(1);
Lcd_putc(1);
delay_ms(1000);
Lcd_putc ("\f");
}
delay_cycles(1);
}while(TRUE);
}
void main()
{
set_tris_b(0b11110000);
set_tris_d(0x00);
disable_interrupts(GLOBAL); //todas las interrupciones desactivadas
//portb = 0x00;
//portd = 0x00;
do
{
/***** 1 4 7 * ****/
output_high(PIN_b0);
if(input(PIN_b7))
{
output_d(0b11111001);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b6))
{
output_d(0b10011001);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b5))
{
output_d(0b11111000);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b4))
{
output_d(0b10110110);
delay_ms(200);
output_d(0x00);
}
output_low(PIN_b0);
/****************************/
/* 2 5 8 0 */
//
portb = 0b00100000;
output_high(PIN_b1);
if(input(PIN_b7))
output_d(0b10100100);
delay_ms(200);
output_d(0x00);
}
{
if(input(PIN_b6))
output_d(0b10010010);
delay_ms(200);
output_d(0x00);
}
{
if(input(PIN_b5))
output_d(0b10000000);
delay_ms(200);
output_d(0x00);
}
{
if(input(PIN_b4))
output_d(0b11000000);
delay_ms(200);
output_d(0x00);
}
output_low(PIN_b1);
/*******************************/
/**** 3 6 9 H ***/
output_high(PIN_b2);
if(input(PIN_b7))
{
output_d(0b10110000);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b6))
{
output_d(0b10000010);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b5))
{
output_d(0b10011000);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b4))
{
output_d(0b10001001);
delay_ms(200);
output_d(0x00);
}
output_low(PIN_b2);
/********************/
/* A B C D */
output_high(PIN_b3);
if(input(PIN_b7))
{
output_d(0b100001000);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b6))
{
output_d(0b10000000);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b5))
{
output_d(0b11000110);
delay_ms(200);
output_d(0x00);
}
if(input(PIN_b4))
{
output_d(0b11000000);
delay_ms(200);
output_d(0x00);
}
output_low(PIN_b3);
}while (true);
}
}