Moderadores: andre_luis, 51, guest2003, Renie
METABEE escreveu:Não Beleza ! eu já entendi ,você quer dizer assim comece enviando 1 Byte com os 74HC595 até ai já entendi e ate simulei o que você falou ! entendo perfeitamente
o funcionamento deles , mais essa biblioteca maluca que estou tentando dominar é que ... permissão para gritar ABERRAçÂO DA NATUREZAAAAAAAA!![]()
![]()
kkkkkkkkkkk! a ccs deveria postar exemplos mais específicos , as pessoas querem se aperfeiçoar mais ,tem que ficar cutucando o danado do código
as cegas é o jeito ,o único jeito , resumindo queria dominar com um código simples ´so isso linha e coluna , cada linha e coluna com um 74hc595 , e outra sem essa biblioteca eu faço qualquer imagem brincando do jeito que você citou!
mastk escreveu:Preste atencao nas cores dos pinos, e vai passo a passo no seu programa, rascunhe o que vc espera e veja bem o que acontece, manja o azul e vermelho?
#include <16f84.h>
#fuses XT,Protect
#use delay(clock=4000000)
#define Se_Acalma 50
//OBS: Nesse Programa nós vamos trabalhar com Multiplicação e Divisão
// Oserve que tamos utilizando três portas do Microcontrolador
// as portas são..
//port_b
//em cada uma dessas portas temos 8 bits, o que vale a um byte
//Somando as três portas, temos então três byte.
//nós vamos fazer o seguinte,
void main (){ // Aqui começaremos o programa principal
int i,j; // Variáveis globais não inicializada
while(true){ // Laço infinito
j=1; // Aqui a variavel (J) inicia com o valor 1
for(i=0;i<8;i++){ // aqui fazemos uma pergunta para (i),i voçê é menor que (B)? então i++
output_b(j); // aqui colocaremos a variavél (j) direto pra saida da portb
j=j<<1;// Vamos fazer deloscamento a esquerda bit por bit e vamos multiplicar cada bit *2
delay_ms(Se_Acalma);//Aqui damos um tempo de 30ms milésimo de segundo
}
output_b(0);//Aqui estou limpando a portb porque ela ja fez toda sua tarefa acima
j=128; // Aqui a variavel (J) inicia com o valor 1
for(i=0;i<8;i++){ // aqui fazemos uma pergunta para (i),i voçê é menor que (B)? então i++
output_b(j); // aqui colocaremos a variavél (j) direto pra saida da portb
j=j>>1;// Vamos fazer deloscamento a esquerda bit por bit e vamos multiplicar cada bit *2
delay_ms(Se_Acalma);//Aqui damos um tempo de 30ms milésimo de segundo
}
}//Fim while
}// fim main
Charles Frances
OU ! ENTÃO ESSE AQUI!
#include <16f84a.h>
#use delay(clock=4M)
#fuses hs,protect
#use fast_io(b)
#IFNDEF EXP_OUT_ENABLE
#define EXP_OUT_ENABLE PIN_B0
#define EXP_OUT_CLOCK PIN_B1
#define EXP_OUT_DO PIN_B2
#define NUMBER_OF_74595 1
#ENDIF
int set[12]=
{
0x00,0x08, // X=8
0x00,0x08, // Y=8
0xFF, // ########
0x81, // #......#
0x81, // #......#
0x81, // #......#
0x81, // #......#
0x81, // #......#
0x81, // #......#
0xFF // ########
};
void write_expanded_outputs(BYTE* eo)
{
BYTE i;
output_low(EXP_OUT_CLOCK);
output_low(EXP_OUT_ENABLE);
for(i=1;i<=NUMBER_OF_74595*8;++i) { // Clock out bits from the eo array
if((*(eo+(NUMBER_OF_74595-1))&0x80)==0)
output_low(EXP_OUT_DO);
else
output_high(EXP_OUT_DO);
shift_left(eo,NUMBER_OF_74595,0);
output_high(EXP_OUT_CLOCK);
output_low(EXP_OUT_CLOCK);
}
output_high(EXP_OUT_ENABLE);
output_low(EXP_OUT_ENABLE);
}
void main() {
while(true) {
// set=0xf00ff;
write_expanded_outputs(set);
}
}
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante