HOMENAGEM
† 12 de março de 2016
Quem está conectado?
Há 198 usuários online :: 0 registrados, 0 invisíveis e 198 visitantes :: 3 motores de buscaNenhum
O recorde de usuários online foi de 362 em Sex 9 Abr 2021 - 22:11
Últimos assuntos
Top dos mais postadores
Rafael Silveira (7816) | ||||
Caca Silva (6057) | ||||
renatoscp (3891) | ||||
CMeletronica (3234) | ||||
michel chagas (2791) | ||||
Railson (2119) | ||||
alexsandro rodrigues de a (1835) | ||||
naldo santos (1625) | ||||
ablacon64 (1222) | ||||
gilvantexas (1061) |
Tópicos semelhantes
Medidor de Velocidade
Números grandes em LCD Alphanumérico com PIC como criar?
2 participantes
Página 1 de 1
Números grandes em LCD Alphanumérico com PIC como criar?
Boa noite. Nunca havia pensando nessa possibilidade mas navegando pela net vi alguns exemplos disso.
Tentei algumas coisinhas com o Mikroc ou o CCS mas não consegui sair do lugar, usando a função de caracteres especiais o máximo que consigui criar foram 8 caracteres por causa da memória CGRAM ir de 0 a 7. Alguém sabe outra maneira de fazer isso de preferência com o Mikroc?
Minha tentativa com o CCS (fiz o número 0):
Tentei algumas coisinhas com o Mikroc ou o CCS mas não consegui sair do lugar, usando a função de caracteres especiais o máximo que consigui criar foram 8 caracteres por causa da memória CGRAM ir de 0 a 7. Alguém sabe outra maneira de fazer isso de preferência com o Mikroc?
Minha tentativa com o CCS (fiz o número 0):
- Código:
#include <16F628A.h>
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#use delay(crystal=4000000)
#include <DSPGRDCCS.h>
#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <lcd.c>
int zero1[8] = {0x1F,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C};
int zero2[8] = {0x1F,0x1F,0x1F,0x07,0x07,0x07,0x07};
int zero3[8] = {0x1C,0x1C,0x1C,0x1C,0x1F,0x1F,0x1F};
int zero4[8] = {0x07,0x07,0x07,0x07,0x1F,0x1F,0x1F};
void main()
{
lcd_init();
lcd_set_cgram_char(0,zero1);
lcd_set_cgram_char(1,zero2);
lcd_set_cgram_char(2,zero3);
lcd_set_cgram_char(3,zero4);
while(TRUE)
{
printf(lcd_putc,"\f%c%c\n%c%c", 0,1,2,3);
delay_ms(50);
}
}
_________________
Caca Silva- ADMINISTRADOR
- Mensagens : 6057
Data de inscrição : 30/01/2011
Idade : 43
Localização : Ritápolis MG
Re: Números grandes em LCD Alphanumérico com PIC como criar?
Caca, seguinte, olhando seu post, vi que não são necessários mais do que os 7 caracteres disponívieis para fazer o que vc precisa.
Uma solução imediata é você criar uma função especial para enviar caracteres, algo assim:
void Enviar_numero(numero, pos);
void Enviar_numero (int numero, int pos)
{
switch(numero)
{
case 0:
lcd_gotoxy(pos,0);
lcd_putc(PRIMEIRO_CARACTER_0); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_0); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_0); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy(pos,1);
lcd_putc(QUARTO_CARACTER_0); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_0); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_0); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
case 1:
lcd_gotoxy(pos,0);
lcd_putc(PRIMEIRO_CARACTER_1); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_1); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_1); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy(pos,1);
lcd_putc(QUARTO_CARACTER_1); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_1); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_1); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
case 2:
lcd_gotoxy((1+pos_x),0);
lcd_putc(PRIMEIRO_CARACTER_2); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_2); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_2); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy((1+pos_x),1);
lcd_putc(QUARTO_CARACTER_2); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_2); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_2); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
// ... e assim vai
}
}
uso:
....
Enviar_numero(2,0);
Enviar_numero(7,4);
lcd_gotoxy(5,1);
lcd_putc('.');
lcd_gotoxy(5,2);
lcd_putc('.');
Enviar_numero(2,9);
Enviar_numero(9,13);
...
Espero que ajude
Uma solução imediata é você criar uma função especial para enviar caracteres, algo assim:
void Enviar_numero(numero, pos);
void Enviar_numero (int numero, int pos)
{
switch(numero)
{
case 0:
lcd_gotoxy(pos,0);
lcd_putc(PRIMEIRO_CARACTER_0); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_0); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_0); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy(pos,1);
lcd_putc(QUARTO_CARACTER_0); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_0); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_0); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
case 1:
lcd_gotoxy(pos,0);
lcd_putc(PRIMEIRO_CARACTER_1); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_1); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_1); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy(pos,1);
lcd_putc(QUARTO_CARACTER_1); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_1); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_1); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
case 2:
lcd_gotoxy((1+pos_x),0);
lcd_putc(PRIMEIRO_CARACTER_2); // define para o dado da cgram
lcd_putc(SEGUNDO_CARACTER_2); // define para o dado da cgram
lcd_putc(TERCEIRO_CARACTER_2); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
lcd_gotoxy((1+pos_x),1);
lcd_putc(QUARTO_CARACTER_2); // define para o dado da cgram
lcd_putc(QUINTO_CARACTER_2); // define para o dado da cgram
lcd_putc(SEXTO_CARACTER_2); // define para o dado da cgram
lcd_putc(' '); // caracter espaço
break;
// ... e assim vai
}
}
uso:
....
Enviar_numero(2,0);
Enviar_numero(7,4);
lcd_gotoxy(5,1);
lcd_putc('.');
lcd_gotoxy(5,2);
lcd_putc('.');
Enviar_numero(2,9);
Enviar_numero(9,13);
...
Espero que ajude
clebermag- Nível 1
- Mensagens : 1
Data de inscrição : 10/09/2016
Idade : 45
Localização : Ibirité
Caca Silva- ADMINISTRADOR
- Mensagens : 6057
Data de inscrição : 30/01/2011
Idade : 43
Localização : Ritápolis MG
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Qua 27 Mar 2024 - 20:57 por sandy silva de oliveira
» >>>>>>> Sobre a criação de novos tópicos<<<<<<<<<<<<<<<
Dom 24 Mar 2024 - 16:10 por crisnich
» Defeito intermitente amplificador Ciclotron TIP5000
Qua 20 Mar 2024 - 9:13 por fastaveira
» Esquema Amplificador Audio Leader AL 5.0
Qua 20 Mar 2024 - 9:01 por fastaveira
» MK4000 - FONTE CHAVEADA FULL BRIDGE
Dom 17 Mar 2024 - 18:43 por sandy silva de oliveira
» amplificador class h tailandes
Sex 15 Mar 2024 - 22:41 por mehuysal
» Amplificador Super Strong
Qui 14 Mar 2024 - 13:03 por Reginaldo Silva
» Amplificador Classe D UCD1500
Qua 13 Mar 2024 - 13:07 por Guille
» NS450 - FONTE CHAVEADA PARTE 2
Seg 11 Mar 2024 - 6:55 por ffernand3s
» DETECTOR DE METAIS IDX-PRO
Sex 1 Mar 2024 - 16:41 por Benyamin
» Amplificador Fonte Simples em teia de aranha
Sex 1 Mar 2024 - 12:17 por Reginaldo Silva
» Manutenção Gradiente 366 / 266
Qui 29 Fev 2024 - 21:40 por tiaogaviao
» Criação pcb esquema phono cápsula ceramica
Qui 29 Fev 2024 - 16:58 por warley cesar
» DETECTOR DE METAIS MKII (PINPOINTER)
Qua 28 Fev 2024 - 19:09 por Benyamin
» Fonte chaveada compacta IR2153D - 10 x 10 cm
Ter 27 Fev 2024 - 22:02 por microbit