Professional Documents
Culture Documents
# 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
output_c(0x02);
output_b(0x18);
delay_ms(500);
output_c(0x00);
///////////////////////////////////////////
// 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); }
}