por rebelk » 24 Dez 2006 17:36
JEREK ve este prog ai , se for um desenho pequeno apaarece normal no lcd , mas se for um deselho maior ele aparece repetido , ve ai o que pode ser ?
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=5000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include "t6963.h"
#include "t6963.c"
#define EEPROM_SDA PIN_C4
#define EEPROM_SCL PIN_C3
#include <24256.c>
//////////////////////////////////////////////////////////////////////////
//
const unsigned int8 desenho_1[]= // desenho da placa
{
// linha 1
0x01,0x03,0x03,0x03,0x03,0x03,0x1F,0x23, // coluna 0
0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xD5,0xF5, // coluna 1
0xFF,0xFF,0xFF,0xFF,0x38,0x38,0x7B,0x39, // coluna 2
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80, // coluna 3
// linha 2
0x23,0x5F,0xA3,0xA3,0xDF,0xE3,0xE3,0xDF, // coluna 0
0xF5,0xD5,0xFB,0xFB,0xFF,0xFF,0xFF,0xFF, // coluna 1
0x39,0x7B,0x78,0x78,0xFF,0xFF,0xFF,0xFF, // coluna 2
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, // coluna 3
0xE3,0xE3,0xDF,0xE3,0xE3,0xDF,0xE3,0xE3,
0xFC,0xFC,0xDF,0x8F,0x8F,0xDF,0xFC,0xFC,
0xFF,0xFF,0x7F,0xFB,0xFB,0x7B,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xDF,0xE3,0xE3,0xDF,0xE3,0xFF,0xDF,0xE3,
0xFF,0xFF,0xFF,0xFF,0xFC,0xFD,0xDD,0x8C,
0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFB,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xDF,0xE3,0xFF,0xDF,0xE3,0xFF,0xDF,
0xDF,0xDF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFB,0x7B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xE3,0xFF,0xDF,0xE3,0xFF,0xDF,0xE3,0xE3,
0xFB,0xFB,0xF3,0x1B,0xFB,0xFB,0xF3,0xFF,
0x7F,0xFF,0xFF,0x7D,0xFD,0xFD,0x3B,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
};
const unsigned int8 desenho_2[]= // desenho do operario
{
0xFF,0xFF,0xFF,0xFF,0xF1,0xF1,0xF0,0xFC,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFC,0xFC,0xE0,0xE1,0xE1,0xFF,0xFF,0xFF,
0x07,0x00,0xF8,0xE6,0xE6,0xC7,0xE7,0xE7,
0xFF,0xFF,0x01,0x00,0x00,0xFF,0xE7,0xE7,
0xFF,0xFF,0xFF,0x03,0x03,0x07,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xE6,0xC4,0xCC,0xCC,0xCC,0x8C,0x8C,0x87,
0xE7,0x67,0x67,0x67,0x67,0x67,0xE7,0xE7,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0xE0,0xE3,0xE3,0xE3,0xF3,0xF3,
0x07,0x07,0x07,0xCF,0xCF,0xCF,0x8F,0x1F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF3,0xF3,0xF3,0xF3,0xF2,0xF2,0xF0,0xF0,
0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xE0,0xE7,0xE7,0xEF,0xCF,0xCF,0xCF,0xCF,
0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x9F,0x9F,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xCF,0xCF,0xCF,0xC7,0xC7,0xE7,0xC7,0x87,
0x8F,0x8F,0x8F,0x8F,0x8F,0xCF,0xC7,0xE7,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x87,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
};
const unsigned int8 desenho_3[]={
0x3F,0xFF,0x80,0x81,0x80,0x81,0xF0,0x0F, // desenho da mão
0x00,0xFE,0x01,0xFE,0x20,0xC0,0x80,0x00,
};
//**********************************************************************************
//**********************************************************************************
mostra_figura_3(int8 lin,int8 col)
{
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<1;linha++)
{
for(coluna=0;coluna<2;coluna++)
{
GDispCGCharAt( lin, col++ , id++ ); //delay_ms(5);
}
}
}
//**********************************************************************************
//**********************************************************************************
carreg_figura_3() // carrega figura na CG RAM
{
unsigned int8 i =0;
unsigned int16 end =0;
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<1;linha++)
{
for(coluna=0;coluna<2;coluna++)
{
for(i=0;i<8;i++)
{
CGBuffer[i] = desenho_3[end++]; //delay_ms(5); // acumular de 0 até 127 caracteres
}
GDispDefCGChar(id++, &CGBuffer[0]);
}
}
}
//**********************************************************************************
//**********************************************************************************
mostra_figura_2(int8 lin,int8 col)
{
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<8;linha++)
{
for(coluna=0;coluna<5;coluna++)
{
GDispCGCharAt( linha, coluna , id++ ); // delay_ms(5);
}
}
}
//**********************************************************************************
//**********************************************************************************
carreg_figura_2() // carrega figura na CG RAM
{
unsigned int8 i =0;
unsigned int16 end =0;
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<8;linha++)
{
for(coluna=0;coluna<5;coluna++)
{
for(i=0;i<8;i++)
{
CGBuffer[i] = desenho_2[end++]; //delay_ms(5); // acumular de 0 até 127 caracteres
}
GDispDefCGChar(id++, &CGBuffer[0]);
}
}
}
//**********************************************************************************
//**********************************************************************************
mostra_figura_1(int8 lin,int8 col)
{
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<6;linha++)
{
for(coluna=0;coluna<4;coluna++)
{
GDispCGCharAt( linha, coluna , id++ ); //delay_ms(5);
}
}
}
//**********************************************************************************
//**********************************************************************************
carreg_figura_1() // carrega figura na CG RAM
{
unsigned int8 i =0;
unsigned int16 end =0;
int8 id=0;
int8 linha=0;
int8 coluna=0;
for(linha=0;linha<6;linha++)
{
for(coluna=0;coluna<4;coluna++)
{
for(i=0;i<8;i++)
{
CGBuffer[i] = desenho_1[end++]; //delay_ms(5); // acumular de 0 até 127 caracteres
}
GDispDefCGChar(id++, &CGBuffer[0]);
}
}
}
//**********************************************************************************
//**********************************************************************************
void main()
{
int8 vezes=0;
// int8 repete=0;
GDispInit(); //T6963C display initialization
FontSize = 8; //8 font mode
GDispSetMode(XOR_MODE|INT_CG_MODE); //Exclusive OR mode, internal CG character RAM
GDispSetMode(TEXT_GRH_ON); //Text ON, Graphics ON
GDispClrTxt(); //Clear the text area
GDispClrGrh(); //Clear the graphics area (dot-by-dot!)
// carreg_figura_2(); // carrega figura na CG RAM
for (;;)
{
carreg_figura_3(); // carrega figura na CG RAM
for(vezes=0;vezes<8;vezes++)
{
mostra_figura_3(vezes,0);
delay_ms(450); //
GDispClrTxt(); //
GDispClrGrh(); //
}
GDispClrTxt(); //
GDispClrGrh(); //
carreg_figura_1(); // carrega figura na CG RAM
mostra_figura_1(0,0);
delay_ms(2000); //
GDispClrTxt(); //
GDispClrGrh(); //
Delay_ms(500);
carreg_figura_2(); // carrega figura na CG RAM
mostra_figura_2(0,0);
delay_ms(2000); //no need to explain!
GDispClrTxt(); //clear the text
GDispClrGrh(); //clear the graphic
Delay_ms(500);
}
}