You are on page 1of 2

Pacman

# include <16F876.h>
# fuses HS, NOWDT, NOPROTECT, NOLVP
# use delay (clock=8000000)

delay_ms(500);
// retardo
output_c(0x00); // E=0 para que lcd lea

# include "LCD2.C" // drivers de la LCD

output_c(0x02);
output_b(0x18);
delay_ms(500);
output_c(0x00);

// constantes que definen caracteres personalizados


(ejemplos)
#define pacmanope2
0x0E,0x07,0X03,0X01,0X01,0X03,0X07,0X0E
#define pacmanshut
0x00,0x0F,0X1F,0X01,0X1F,0X0F,0X00,0X00
void main () {
LCDInit(2,16);
//inicializa tamao de la LCD
LCDDefSymbol(0,pacmanope2);
LCDDefSymbol(1,pacmanshut);
LCDCursorXY(1,1);
//ubica el cursor en pos.(1,1)
printf(LCD_out, ("UTP"));
While(1) {
LCDCursorXY(2,10);
lcd_out(0);
delay_ms(500);
LCDCursorXY(2,10);
lcd_out(1);
delay_ms(500);
}
}
Uso de La LCD
#include <16F876.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main(){
set_tris_B(0x00);
set_tris_C(0x00);
output_C(0x02);
output_B(0x0F); //Display on
output_C(0x00);
delay_ms(1);
output_C(0x02);
output_B(0x38); //fuction set
output_C(0x00);
delay_ms(1);
output_B(0x49); //I
output_C(0x03);
delay_ms(1);
output_C(0x01);
output_B(0x20); //Espacio
output_C(0x03);
delay_ms(1);
output_C(0x01);
///////////////////////////////////////////
while(1){
output_c(0x02);
// E=1 rs=0 modo comando
output_b(0x1C);
// envio de dato display on

///////////////////////////////////////////
// E=1 rs=0 modo comando
// envio de dato display on
// retardo
// E=0 para que lcd lea

delay_ms(500);
}
}
Pantalla modo4bytes
#include <16F876.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main(){
//////Inicio en modo de 8 bytes)//////
bit_clear(PORTB,4); //Rs=0
output_b(0x30);
//Function set
delay_us(100);
//Retardo de 100
microsegundos
bit_set(PORTB,5);
delay_us(2);
bit_clear(PORTB,5);
delay_us(40);
//////Modo de 4 bytes//////
char data;
char temp;
data=0x2C;
temp=data>>4;
output_b(temp);
delay_us(2);
bit_set(PORTB,5);
delay_us(2);
bit_clear(PORTB,5);
delay_us(40);
output_b(data);
delay_us(2);
bit_set(PORTB,5);
delay_us(2);
bit_clear(PORTB,5);
delay_us(40);
}
Control del puerto C
#include <18F458.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
void main() {
set_tris_c(0X00); //puerto de C es la salida
while(1)
//lazo infinito
{
output_c(0x00); //apaga purto C
delay_ms(500); //retardo de 500 mseg
output_c(0xFF); //enciende puerto C
delay_ms(500); //retardo de 500 mseg

}
}
// Parcial1 1er problema
#include <16F876.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=8000000)
#include "LCD2.c"
//Drivers de la LCD
//caracteres de letras especiales con tilde
#define atilde 0x01,0x02,0x00,0x0E,0x01,0x0F,0x11,0x0F
void main() {
LCDInit(2,16);
//Inicializa tamao de la LCD 2x16
LCDDefSymbol(0,atilde); //Define la letra a con tilde ()
LCDCursorXY(1,1);
//Ubica el cursor en la posicin
(1,1)
printf(LCD_out(0));
//Muestra la letra a especial ()
}
Pacman pro
#include <16F876.h>
#fuses HS,NOWDT,NOPROTECT, NOLVP
#use delay(clock=8000000)
#include"LCD2.c"
//caracteres del pacman
#define pacopen
0x0E,0x07,0x03,0x01,0x01,0x03,0x07,0x0E
#define pacclo 0x00,0x0F,0x1F,0x01,0x1F,0x0F,0x00,0x00
void main(){
int a=8,ret=500,c,l=1; //a: cantidad de caracteres del
escrito. ret:retardo
lcdinit(2,16);
a++;
c=a;
while(1) {
lcdcursorxy(l,1);
lcd_out("Dnnshr22");
delay_ms(ret);
lcddefsymbol(0,pacopen);
lcddefsymbol(1,pacclo);
for(a==a;a>=1;a--){
//pac en primer espacio
lcdcursorxy(l,a);
lcd_out(1);
delay_ms(ret);
if(a>1) {
lcdcursorxy(l,a);
lcd_out(0);
delay_ms(ret);}
lcdcursorxy(l,a);
//if(a>1)
lcd_out(' ');
} //end for
a=c;
if(l==2) l=0;
l++;
} // end while
} // end void
Conteos ++++++
#include <16F876.h>
#fuses HS,NOWDT,NOPROTECT, NOLVP

#use delay(clock=4000000)
#include"LCD2.c"
#define c0 PIN_C0
// Guillermo Marn
// Dayana Gonzalez
// Denis Rodriquez
// Mijail Ochoa
void main() {
int n;
lcdinit(2,16);
n=1;
while(true) {
n=1;
if(input(c0)) {
for(n=1;n<=105;n++) {
lcdcursorxy(1,1);
printf(lcd_out,"\fn=%d",n);
delay_ms(500);
while(!input(c0)) {
}}
} lcdclrline(1); }
}
Conteo - #include <16F876.h>
#fuses HS,NOWDT,NOPROTECT, NOLVP
#use delay(clock=4000000)
#include"LCD2.c"
#define c0 PIN_C0
void main() {
int n;
lcdinit(2,16);
n=120;
while(true) {
n=120;
if(input(c0)) {
for(n=120;n>=105;n--) {
lcdcursorxy(1,1);
printf(lcd_out,"\fn=%d",n);
delay_ms(500);
while(!input(c0)) {
}}
} lcdclrline(1); }
}

You might also like