Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
//VITAL '06
//Ejemplo que demuestra como conectar
//un pic a una memoria i2c y muestra resultados por lcd
#INCLUDE <16F628.H>
#fuses INTrc_io,NOWDT,NOBROWNOUT,NOPROTECT,NOPUT,NOLVP,NOMCLR //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#define EEPROM_SDA PIN_A0
#define EEPROM_SCL PIN_A1
//#define EEPROM_SIZE 1024
#define use_portb_lcd
#INCLUDE <2408.C>
#INCLUDE <lcd.c>
void main() {
char caracter[16];
char i,j=0;
//iniciamos lcd
lcd_init();
lcd_putc("\fIniciando...");
delay_ms(2000);
lcd_putc("\fIniciando...\n EEPROM");
init_ext_eeprom();
while(ext_eeprom_ready())
{
for (i=0;i<EEPROM_SIZE;i++)
{
if (i>15){
//desplazamos los caracteres a la izquierda
for (j=0;j<15;j++)
{
caracter[j]=caracter[j+1];
}
caracter[15]= read_ext_eeprom(i);
printf(lcd_putc, "\fLeido \n%s", caracter);
delay_ms(500);
}
else
caracter[i]= read_ext_eeprom(i);
}
}
}
elmasvital dijo:bueno no especificas que lenguajes utilizas para la programación... tampoco qué pretendes conectar mediante i2c si una memoria si otro pic etc.
DARFER dijo:elmasvital dijo:bueno no especificas que lenguajes utilizas para la programación... tampoco qué pretendes conectar mediante i2c si una memoria si otro pic etc.
gracias pelao lo que necesito conectar es un micro (16fxx) con una memoria y el programa lo hago en ensamblador (mplap) gracias de antemano por la ayuda
Te has dignado a leer un poco de los application notes de microchip? Yo tuve que hacer algo asi hace un tiempo y estaba todo en las application notes.
#include<16F877A.h>
#use delay(clock=4000000)
#Byte PORTB = 0x006
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
//******Declaración de Funciones****************
char Teclado();
void main()
{
char Tecla;
setup_spi(spi_master |spi_h_to_l |spi_clk_div_16 );
set_tris_a(0x17);
set_tris_b(0x0F);
set_tris_c(0b11010111);
do
{
output_low(PIN_A4);
Tecla = 'F';
while(Tecla == 'F')
{
Tecla = Teclado();
}
while('F' != Teclado())
{
output_high(PIN_A4);
}
spi_write(Tecla);
}while(true);
}
char Teclado()//Función para leer el Teclado Hexa
{
PORTB = 0xFF;
delay_ms(10);
if((PORTB & 0xF0) > 0)
{
PORTB = 0x8F;
delay_ms(10);
switch(PORTB & 0x0F)
{
case 1:{return('*');}break;
case 2:{return('7');}break;
case 4:{return('4');}break;
case 8:{return('1');}break;
default:{}
}
PORTB = 0x4F;
delay_ms(10);
switch(PORTB & 0x0F)
{
case 1:{return('0');}break;
case 2:{return('8');}break;
case 4:{return('5');}break;
case 8:{return('2');}break;
default:{}
}
PORTB = 0x2F;
delay_ms(10);
switch(PORTB & 0x0F)
{
case 1:{return('#');}break;
case 2:{return('9');}break;
case 4:{return('6');}break;
case 8:{return('3');}break;
default:{}
}
PORTB = 0x1F;
delay_ms(10);
switch(PORTB & 0x0F)
{
case 1:{return('D');}break;
case 2:{return('C');}break;
case 4:{return('B');}break;
case 8:{return('A');}break;
default:{}
}
}
return('F');
}
#include<16F877A.h>
#use delay(clock=4000000)
#define use_portb_lcd = TRUE
#Byte PORTB = 0x006
#include<lcd.c>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
void main()
{
int Tecla;
setup_spi(spi_slave | spi_h_to_l | spi_clk_div_16 | spi_ss_disabled );
set_tris_c(0b11011111);
lcd_init();
do
{
while(spi_data_is_in())
Tecla = spi_read();
lcd_gotoxy(1,1);
printf(lcd_putc,"Recibe: %c",Tecla);
}while(true);
}
spi_write(dato);
dato_devuelto = spi_read();
dato_recibido = spi_read(dato_a_mandar);
switch(variable_a_analizar)
{
case 0:{//esto se hace si variable_a_analizar vale cero}break;//el break siempre debe ir al final de cada caso.
case 2:{//esto se hace si variable_a_analizar vale uno}brak;
.
.
.
case n:{//n es el límite que Ud necesite}break;
default:{//esto se hace si no se dió ningún caso}//aca no se pone break
}