Informe 4 G8
Informe 4 G8
Informe 4 G8
#include <xc.h>
#include "bitconfig87xa.h" #define
_XTAL_FREQ 4000000
//Definición de comandos básicos #define
lines_5x7 0x28 //2lin-4bit-5x7
#define DonCoff 0x0C //display on cursor off
#define CursorIncr 0x06 //incrementa cursor
#define limpiar 0x01 //limpiar pantalla
/
*******************************
***/ void lcd_cmd(unsigned char
cmd) {
DATA_PORT &= 0x0F;
DATA_PORT |= cmd & 0xF0;
_PIN = 0;
delay_ E_PIN = 1;
us(200 delay_ms(5);
);
DAT
A_PO
RT =
init_v
alue;
RS_PI
N = 0;
E_PIN = 1;
d
e
l
a
y
_
m
s
(
5
)
;
E
_
P
I
N
0
;
d
e
l
a
y
_
u
s
(
2
0
0
);
D
A
T
A
_
P
O
R
T
=
0
x
2
0
;
R
S
E_PIN = 0; void lcd_Puts(char row, char column, char * s) { unsigned
delay_us(40); char direccion;
if (row != 1)
lcd_cmd(lines_5x7); direccion = 0x40;
lcd_cmd(DonCoff); else
lcd_cmd(CursorIncr); direccion = 0; direccion
lcd_cmd(limpiar); return; += column - 1;
} lcd_cmd(0x80 | direccion);
while (*s)
void lcd_cursor_xy(char row, char column) { unsigned lcd_Data(*s++);
char direccion; }
if (row != 1)
direccion = 0x40;
else
direccion = 0x00;
direccion += column - 1;
lcd_cmd(0x80 | direccion);
#include <xc.h>
#include "bits_configuración.h"
#include "lcd_lib_rivXC8.h"
#define _XTAL_FREQ 4000000
void main(void) {
lcd_Init();
while (1) {
lcd_Clear();
lcd_Putrs(1, 1, "H");
delay_ms(500);
lcd_Putrs(1, 2, "O");
delay_ms(500);
lcd_Putrs(1, 3, "L");
delay_ms(500);
lcd_Putrs(1, 4, "A");
delay_ms(500);
lcd_Clear();
delay_ms(500);
}
return;
}
Pregunta Respuesta
#include <xc.h>
#include "lcd_lib_rivXC8.h"
#define _XTAL_FREQ 4000000
#include "bits_configuración.h"
main(void)
{
lcd_Init();
while(1)
{
lcd_Clear();
lcd_Putrs(1,1,Mensajes[0]);
delay_ms(1000);
lcd_Putrs(2,5,Mensajes[1]);
delay_ms(1000);
lcd_Clear();
lcd_Putrs(1,3,Mensajes[2]);
delay_ms(1000);
lcd_Putrs(2,7,Mensajes[3]);
delay_ms(1000);
}
return;
}
#include <xc.h>
#define _XTAL_FREQ 4000000
#include "bits_configuración.h"
#include "keyriv_v1.h"
char valor;
void main() {
TRISA = 0B11111111;
TRISC = 0B11110000; //PUERTO C salida de la tecla presionada
PORTC = 0;
key_init();
while (1) {
valor = 0;
while (valor == 0) {
valor = getkey(0);
}
//Funcion que te deja ver el canal analogo que hallamos elegido switch
(valor) {
case '0': PORTC = 0;
break;
case '1': PORTC = 1;
break;
case '2': PORTC = 2;
break;
case '3': PORTC = 3;
break;
case '4': PORTC = 4;
break;
case '5': PORTC = 5;
break;
case '6': PORTC = 6;
break;
case '7': PORTC = 7;
break;
case '8': PORTC = 8;
break;
case '9': PORTC = 9;
break;
case 'A': PORTC = 10;
break;
case 'B': PORTC = 11;
break;
case 'C': PORTC = 12;
break;
case 'D': PORTC = 13;
break;
case '*': PORTC = 14;
break;
case '#': PORTC = 15;
break;
default: break;
}
}
return;
}
5.- Cuarto programa LCD y TECLADO con librerías
/*
* File: lcdyteclado.c
* Author: grupo0
* Uso de librerias en LCD y teclado
* Created on 3 de marzo de 2023, 04:25 PM
*/
#include <xc.h>
#include "bits_configuración.h"
#include "keyriv_v1.h" #include
"lcd_lib_rivXC8.h"
#define _XTAL_FREQ 4000000
unsigned char valor, x;
void main() {
lcd_Init();
key_init();
lcd_Clear(); lcd_Putrs(1,
1, "HOLA");
delay_ms(500); lcd_Putrs(2,
4, "TECLADO");
delay_ms(500);
lcd_Clear();
lcd_Putrs(1, 1, "PULSA UNA TECLA");
delay_ms(50);
while (1) {
valor = 0;
while (valor == 0) {
valor = getkey(0);
}
x = valor;
lcd_PutchDir(2, 8, x);
delay_ms(500);
}
return;