Codigo para leitura e escrita na memoria eeprom
#include
#include /*definição da biblioteca para acesso a memória*/
int main(void)
{
unsigned char adr=0x00; /*variável de endereçamento de memória*/ unsigned char lei=0x00; /*variável em hexadecimal para leitura da memória*/
DDRB=0x0F; /*define 4 bits de entrada e 4 bits de saída do porto B*/ while(1) { adr=adr+0x01; /*incrementa o endereço da memória*/ eeprom_write_byte(adr,0x55); /*função para escrita na memória*/ lei=eeprom_read_byte(adr); /*função para leitura da memória*/ PORTB=lei; /*envia para o PORTO B o dado da memória*/ }
}
2. Segue o exemplo do demultiplexador.
#include /*Defini a biblioteca/*
int main(void)
{
DDRB=0xFF; /*Defini o porto B como saída*/ DDRC=0x00; DDRD=0xFF; int a=0; while(1) { a=0x03; /*atribui 00000011 a variável “a” definindo a máscara*/ a&=PINC; /*utiliza a máscara com os bits de entrada*/ /* Exemplo: 00000011b & 00000001b = 00000001b */ if(a==0) /*verifica o resultado se o endereço corresponde ao pino 0*/ { PORTB=(PINC&0x08)>>3; /*realiza uma máscara entre os bits de entrada do PORTO C e o valor 00001000b, o resultado rotaciona a direita 3 bits */ } if(a==1) /*verifica o resultado se o endereço corresponde ao pino 1*/ { PORTB=(PINC&0x08)>>2;/*realiza uma máscara entre os bits de entrada do PORTO C e o valor 00001000b, o resultado rotaciona a direita 2 bits */ } if(a==2) /*verifica o resultado se o endereço corresponde ao pino 2*/ { PORTB=(PINC&0x08)>>1;/*realiza uma máscara entre os bits de entrada do PORTO C e o valor 00001000b, o resultado rotaciona a direita 1 bits */ } if(a==3) /*verifica o resultado se o endereço corresponde ao pino 3*/ { PORTB=(PINC&0x08);/*realiza uma máscara entre os bits de entrada do PORTO C e o