Ir ao conteúdo
  • Cadastre-se

Dado eletrônico em C


avinicius

Posts recomendados

Olá pessoal,do CDH,fiz aqui uma programação bem básica,onde quero exibir o processamento do dado eletrônico no display do LCD,e não em um display BCD-7SEGM no qual utilizo.Estou simulando com o ISIS,nesse programa abaixo, após manter-mos segurado o BOTAO o programa sempre correrá dentro deste nupin, e após soltarmos,irá para na útima linha lida pelo while.

Segue abaixo o programa:

#include<18f442.h>

#use delay(clock=4000000)

#fuses NOPROTECT,XT,LVP,NOWDT,NOBROWNOUT

#define BOTAO PIN_A0

void main (){

while(1){

if(input(BOTAO)==1){

output_b(1);

delay_ms(5);

}

if(input(BOTAO)==1){

output_b(2);

delay_ms(5);

}

if(input(BOTAO)==1){

output_b(3);

delay_ms(5);

}

if(input(BOTAO)==1){

output_b(4);

delay_ms(5);

}

if(input(BOTAO)==1){

output_b(5);

delay_ms(5);

}

if(input(BOTAO)==1){

output_b(6);

delay_ms(5);

}

}

}

Sei mexer um pouco em lcd:

por exemplo, este outro programa que fiz hoje:

#include<18f442.h>

#use delay(clock=10000000)

#fuses HS,NOBROWNOUT,NOPROTECT,LVP,PUT

#include<LCD.C>

void main (){

lcd_init();

while(1){

lcd_gotoxy(3,1);

lcd_putc(" arthur ");

delay_ms(1000);

lcd_init();

lcd_gotoxy(3,2);

lcd_putc(" 2010 ");

delay_ms(1000);

lcd_init();

}

}

Só não sei qual lógica utilizar para pegar o valor sorteado pelo while e jogarmos para dentro do lcd_putc(" ");

Não sei se é utilizando printf....

Alguém tem uma ideia?

obg,e boa noite a todos.

Feliz natal pessoal =)

Link para o comentário
Compartilhar em outros sites

Quando você diz que quer sortear o numero dentro do while, qual numero você se refere?

Aos numeros de 1 a 6? Tipo, você segura o botao, quando soltar ele vai para a ultima linha do while? Mas e aí, ele faz o que?

Se eu entendi, você quer apertar o botao e quando soltar, sortear um numero entre 1 e 6. E com isso acender um led correspondende ao numero. É isso?

Explique-se melhor por favor.

Falou

Link para o comentário
Compartilhar em outros sites

Quando você diz que quer sortear o numero dentro do while, qual numero você se refere?

O ÚLTIMO NÚMERO A SER EXIBIDO,É O ULTIMO LIDO PELA VARREDURA DO NUPIN.OU SEJA COMO:

ENQUANTO FOR 1....ELE VAI SORTEANDO,ENQUANTO FOR 0,PARA NA ULTIMA CONDIÇÃO LIDA E EXIBE EM UM BCD-7SEGM.MAS ESTOU TENTANDO FAZER UMA LÓGICA PARA EXIBIR ESSE RESULTADO EM UM LCD 16X2.

Aos numeros de 1 a 6? Tipo, você segura o botao, quando soltar ele vai para a ultima linha do while? Mas e aí, ele faz o que?

ELE PARA NA ULTIMA CONDIÇÃO LIDA,E CHAMO A CONDIÇÃO DE EXIBIR EM DECIMAL PARA EXIBIR NO BCD.

EX:

output_b(1);

ONDE LIGO OS PORTS B0,B1,B2 E B3 NO BCD.

Se eu entendi, você quer apertar o botao e quando soltar, sortear um numero entre 1 e 6. E com isso acender um led correspondende ao numero. É isso?

MOSTRAR O NÚMERO SORTEADO EM UM LCD 16X2.

Consegui, agora só vou implementar mais coisas:

#include<18f442.h>

#use delay(clock=4000000)

#fuses NOPROTECT,XT,LVP,NOWDT,NOBROWNOUT

#include<LCD.C>

#define BOTAO PIN_A0

void main (){

lcd_init();

lcd_gotoxy(1,1);

lcd_putc("Num.Sorteado=");

while(1){

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("1");

delay_ms(1);

}

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("2");

delay_ms(1);

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("3");

delay_ms(1);

}

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("4");

delay_ms(1);

}

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("5");

delay_ms(1);

}

if(input(BOTAO)==1){

lcd_gotoxy(14,1);

lcd_putc("6");

delay_ms(1);

}

}

}

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!