Estou testando aqui um codigo para escrita num GLCD 128X64, o negocio he o seguinte, estou querendo mostrar na tela do GLCD o horario,temperetura atual e com o keypad 4x4 mostrar o numero que pressionou no momento!
O problema he que não mostra tudo na tela mas sim os codigoa individuias,ou seja não mostra o horario,temperatura e os numeros do keypad tudo de uma vez ,mas se for o codigos individuais jä funciona ,algem pode dar uma ajuda e descobrir undo estou errado??
aqui vai o codigo em C
desde jah agradeço
- Código: Selecionar todos
#include <18f452.h> //PIC A UTILIZAR
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //Reset when brownout detected
#FUSES NOPUT //No Power Up Timer
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
//CRISTAL
#use delay(clock=8000000) //A 8MHZ
#include <HDM64GS12.c>
#include <graphics.c>
#include <DS1631.c>
#include <DS1307.c>
#include <FLEX_KBD4X4.c>
#use standard_io(a)
#use standard_io(e)
#use standard_io(c)
#define DAL_SCL PIN_C2
#define DAL_SDA PIN_C3
BYTE sec,min,hrs,day,month,yr,dow;
char v_sec[2]; //
char v_min[2]; //
char v_hrs[2];
char v_day[2];
char v_month[2];
char v_yr[2];
char v_dow[2];
char kk[2];
char ponto[2]=":";
char mystring[20];
long adc;
int i,k=0;
main() {
//BYTE sec,min,hrs,day,month,yr,dow;
setup_ccp1(ccp_off);
setup_ccp2(ccp_off);
kbd_init();//inicilaliza o teclado
init_temp();//inicializa a temperatura
ds1307_init();//inicializa calendario
glcd_init(ON); // iniciamos o lcd
glcd_fillScreen(OFF); //LIMPAMOS
ds1307_set_date_time(15,6,5,2,22,35,00);
glcd_rect(0,0,127,15,0,1);
glcd_text57(18,5,ponto,1,on);
glcd_text57(38,5,ponto,1,on);
while(true){
{
ds1307_get_date(day,month,yr,dow);
ds1307_get_time(hrs,min,sec);
sprintf(v_hrs,"%02u",hrs);
glcd_text57(5,5,v_hrs,1,on);
sprintf(v_min,"%02u",min);
glcd_text57(25,5,v_min ,1,on);
sprintf(v_sec,"%02u",sec);
glcd_text57(45,5,v_sec ,1,on);
{
k=kbd_getc();
if(k!=0){
k=k-48;
sprintf(kk,"%02u",k);
glcd_text57(10,35,kk ,1,on);
}
adc = read_temp_c();
sprintf(mystring,"%f", (float)adc);
glcd_text57(50, 5, mystring, 1, ON);
}
}
}
}