Sensor de nivel utilizando hcsr04

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Re: Sensor de nivel utilizando hcsr04

Mensagempor ze » 12 Set 2014 09:16

kibon que podemos contribuir positivamente e parabéns pelo senso de gratidão
vejamos...eu faria algo assim pra não apagar o display todo:
Código: Selecionar todos
if (x<=20)
{
lcdgotoxy(3,1);//p.ex.
lcdput(' ');lcdput(' '); //apaga só duas posições
delayms(500);
lcdgotoxy(3,1);//p.ex.
lcdput((x/10)+0x30);lcdput((x%10)+0x30);
delayms(500);
}

me lembro vagamente de ter visto um display piscar em reverso. não sei se era inato do hw do display ou por sw mas era bacaninha. só lendo o d.s. mesmo.

off.. não uso (e não gosto de) lcdput nem lcdgoto. Criei há muitos anos uma função personalizada de acesso direto ao hw que faz isso. Pode não ser totalmente inútil (a ti ou a algum incauto navegante do futuro...)

Código: Selecionar todos
#define lin1 0x80
#define lin2 0xc0
#define LCD_RS RA5
#define LCD_EN RA4
#define LCD_STROBE LCD_EN=1;asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");LCD_EN=0


Código: Selecionar todos
void lcd_write(unsigned char c)//4 bits
{
PORTC = (PORTC & 0x0f) | (c & 0xf0);
LCD_STROBE;
c <<= 4;
PORTC = (PORTC & 0x0f) | (c & 0xf0);
LCD_STROBE;
delay(200);
}


Código: Selecionar todos
void lcd_dec(unsigned char li,unsigned char co,unsigned char nd,unsigned int dado)
{
unsigned char j=0;
unsigned char d[5];
LCD_RS=0; //comandos
lcd_write(li+co);//posiciona cursor
LCD_RS=1; //dados
//if (dado>9999) dado=9999;
d[0]=d[1]=d[2]=d[3]=d[4]=0;
while(dado)
   {
   d[j]=dado%10;
   dado/=10;
   j++;
   }   
while (nd--) lcd_write(d[nd]+0x30);
}

uso
Código: Selecionar todos
unsigned int a=1234;/p.ex.
lcd_dec(lin2,12,4,a);//linha,coluna,número de dígitos,dado

enjoy
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x