Moderadores: andre_luis, 51, guest2003, Renie
#include "C:\andre\pessoais\projetos particulares\painel de led\firmware\controled.h"
//
//
// Trocar cristal de 1.000.000 por 20MHz
//
//
void EscreveNoDisplay ( unsigned int8 modo ) ;
void PlotaColuna ( void ) ;
unsigned int8 Inverte_bits ( unsigned int8 Palavra ) ;
unsigned int8 StringToDisplay[20] = "Star " ;
unsigned int8 TamanhoString = 8 ;
unsigned int8 Debug, Debug2 ;
unsigned int8 PonteiroChar = 0 ;
unsigned int8 PonteiroString = 0 ;
unsigned int8 PortaB ;
unsigned int8 num ;
#define TAM_TEXT1 51
#define TAM_TEXT2 44
#define TAM_FONT_LIN 7
#define TAM_FONT_COL 5
/////////////////////////////////////////////////////////////////////////
//// Defines a 5x7 font
/////////////////////////////////////////////////////////////////////////
const BYTE TEXT1[TAM_TEXT1 * TAM_FONT_COL] ={
0x00, 0x00, 0x00, 0x00, 0x00, // SPACE
0x00, 0x00, 0x5F, 0x00, 0x00, // !
0x00, 0x03, 0x00, 0x03, 0x00, // "
0x14, 0x3E, 0x14, 0x3E, 0x14, // #
0x24, 0x2A, 0x7F, 0x2A, 0x12, // $
0x43, 0x33, 0x08, 0x66, 0x61, // %
0x36, 0x49, 0x55, 0x22, 0x50, // &
0x00, 0x05, 0x03, 0x00, 0x00, // '
0x00, 0x1C, 0x22, 0x41, 0x00, // (
0x00, 0x41, 0x22, 0x1C, 0x00, // )
0x14, 0x08, 0x3E, 0x08, 0x14, // *
0x08, 0x08, 0x3E, 0x08, 0x08, // +
0x00, 0x50, 0x30, 0x00, 0x00, // ,
0x08, 0x08, 0x08, 0x08, 0x08, // -
0x00, 0x60, 0x60, 0x00, 0x00, // .
0x20, 0x10, 0x08, 0x04, 0x02, // /
0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
0x04, 0x02, 0x7F, 0x00, 0x00, // 1
0x42, 0x61, 0x51, 0x49, 0x46, // 2
0x22, 0x41, 0x49, 0x49, 0x36, // 3
0x18, 0x14, 0x12, 0x7F, 0x10, // 4
0x27, 0x45, 0x45, 0x45, 0x39, // 5
0x3E, 0x49, 0x49, 0x49, 0x32, // 6
0x01, 0x01, 0x71, 0x09, 0x07, // 7
0x36, 0x49, 0x49, 0x49, 0x36, // 8
0x26, 0x49, 0x49, 0x49, 0x3E, // 9
0x00, 0x36, 0x36, 0x00, 0x00, // :
0x00, 0x56, 0x36, 0x00, 0x00, // ;
0x08, 0x14, 0x22, 0x41, 0x00, // <
0x14, 0x14, 0x14, 0x14, 0x14, // =
0x00, 0x41, 0x22, 0x14, 0x08, // >
0x02, 0x01, 0x51, 0x09, 0x06, // ?
0x3E, 0x41, 0x59, 0x55, 0x5E, // @
0x7E, 0x09, 0x09, 0x09, 0x7E, // A
0x7F, 0x49, 0x49, 0x49, 0x36, // B
0x3E, 0x41, 0x41, 0x41, 0x22, // C
0x7F, 0x41, 0x41, 0x41, 0x3E, // D
0x7F, 0x49, 0x49, 0x49, 0x41, // E
0x7F, 0x09, 0x09, 0x09, 0x01, // F
0x3E, 0x41, 0x41, 0x49, 0x3A, // G
0x7F, 0x08, 0x08, 0x08, 0x7F, // H
0x00, 0x41, 0x7F, 0x41, 0x00, // I
0x30, 0x40, 0x40, 0x40, 0x3F, // J
0x7F, 0x08, 0x14, 0x22, 0x41, // K
0x7F, 0x40, 0x40, 0x40, 0x40, // L
0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
0x7F, 0x02, 0x04, 0x08, 0x7F, // N
0x3E, 0x41, 0x41, 0x41, 0x3E, // O
0x7F, 0x09, 0x09, 0x09, 0x06, // P
0x1E, 0x21, 0x21, 0x21, 0x5E, // Q
0x7F, 0x09, 0x09, 0x09, 0x76};// R
const BYTE TEXT2[TAM_TEXT2 * TAM_FONT_COL]={
0x26, 0x49, 0x49, 0x49, 0x32, // S
0x01, 0x01, 0x7F, 0x01, 0x01, // T
0x3F, 0x40, 0x40, 0x40, 0x3F, // U
0x1F, 0x20, 0x40, 0x20, 0x1F, // V
0x7F, 0x20, 0x10, 0x20, 0x7F, // W
0x41, 0x22, 0x1C, 0x22, 0x41, // X
0x07, 0x08, 0x70, 0x08, 0x07, // Y
0x61, 0x51, 0x49, 0x45, 0x43, // Z
0x00, 0x7F, 0x41, 0x00, 0x00, // [
0x02, 0x04, 0x08, 0x10, 0x20, // \
0x00, 0x00, 0x41, 0x7F, 0x00, // ]
0x04, 0x02, 0x01, 0x02, 0x04, // ^
0x40, 0x40, 0x40, 0x40, 0x40, // _
0x00, 0x01, 0x02, 0x04, 0x00, // `
0x20, 0x54, 0x54, 0x54, 0x78, // a
0x7F, 0x44, 0x44, 0x44, 0x38, // b
0x38, 0x44, 0x44, 0x44, 0x44, // c
0x38, 0x44, 0x44, 0x44, 0x7F, // d
0x38, 0x54, 0x54, 0x54, 0x18, // e
0x04, 0x04, 0x7E, 0x05, 0x05, // f
0x08, 0x54, 0x54, 0x54, 0x3C, // g
0x7F, 0x08, 0x04, 0x04, 0x78, // h
0x00, 0x44, 0x7D, 0x40, 0x00, // i
0x20, 0x40, 0x44, 0x3D, 0x00, // j
0x7F, 0x10, 0x28, 0x44, 0x00, // k
0x00, 0x41, 0x7F, 0x40, 0x00, // l
0x7C, 0x04, 0x78, 0x04, 0x78, // m
0x7C, 0x08, 0x04, 0x04, 0x78, // n
0x38, 0x44, 0x44, 0x44, 0x38, // o
0x7C, 0x14, 0x14, 0x14, 0x08, // p
0x08, 0x14, 0x14, 0x14, 0x7C, // q
0x00, 0x7C, 0x08, 0x04, 0x04, // r
0x48, 0x54, 0x54, 0x54, 0x20, // s
0x04, 0x04, 0x3F, 0x44, 0x44, // t
0x3C, 0x40, 0x40, 0x20, 0x7C, // u
0x1C, 0x20, 0x40, 0x20, 0x1C, // v
0x3C, 0x40, 0x30, 0x40, 0x3C, // w
0x44, 0x28, 0x10, 0x28, 0x44, // x
0x0C, 0x50, 0x50, 0x50, 0x3C, // y
0x44, 0x64, 0x54, 0x4C, 0x44, // z
0x00, 0x08, 0x36, 0x41, 0x41, // {
0x00, 0x00, 0x7F, 0x00, 0x00, // |
0x41, 0x41, 0x36, 0x08, 0x00, // }
0x02, 0x01, 0x02, 0x04, 0x02};// ~
/////////////////////////////////////////////////////////////////////////
#define TAM_FONT1 ( sizeof ( FONT1 ) / 5 )
#int_RDA
RDA_isr()
{
}
#int_TIMER0
TIMER0_isr()
{
}
////////////////////////////////////////////////////////////////////////
unsigned int8 Inverte_bits ( unsigned int8 Palavra )
{
unsigned int8 Resultado = 0 ;
if ( bit_test( Palavra , 0 ) ) Resultado |= BIT7 ;
if ( bit_test( Palavra , 1 ) ) Resultado |= BIT6 ;
if ( bit_test( Palavra , 2 ) ) Resultado |= BIT5 ;
if ( bit_test( Palavra , 3 ) ) Resultado |= BIT4 ;
if ( bit_test( Palavra , 4 ) ) Resultado |= BIT3 ;
if ( bit_test( Palavra , 5 ) ) Resultado |= BIT2 ;
if ( bit_test( Palavra , 6 ) ) Resultado |= BIT1 ;
if ( bit_test( Palavra , 7 ) ) Resultado |= BIT0 ;
return ( Resultado ) ;
}
////////////////////////////////////////////////////////////////////////
void PlotaColuna ( void )
{
if ( StringToDisplay [ PonteiroString ] >= 'S' )
PortaB = ( TEXT2 [ ( ( ( StringToDisplay [ PonteiroString ] - 'S' ) * 5 ) + PonteiroChar ) ] ) ;
if ( StringToDisplay [ PonteiroString ] <= 'R' )
PortaB = ( TEXT1 [ ( ( ( StringToDisplay [ PonteiroString ] - 'S' - TAM_TEXT1 ) * 5 ) + PonteiroChar ) ] ) ;
if ( ( PonteiroString == 0 ) & ( PonteiroChar == 0 ) )
{
output_bit ( DADOSERIAL , HIGH ) ;
}
PortaB = Inverte_bits( PortaB ) ;
output_b ( PortaB ) ;
output_bit ( CLOCK , HIGH ) ;
delay_us ( 1000 ) ;
output_bit ( CLOCK , LOW ) ;
output_bit ( DADOSERIAL , LOW ) ;
}
////////////////////////////////////////////////////////////////////////
void EscreveNoDisplay ( unsigned int8 modo )
{
if ( modo == SEM_ANIMACAO )
{
PonteiroString = 0 ;
while ( PonteiroString < TamanhoString )
{
PonteiroChar = 0 ;
while ( PonteiroChar < 5 )
{
PlotaColuna() ;
PonteiroChar++ ;
}
PonteiroString++ ;
}
}
}
////////////////////////////////////////////////////////////////////////
void main( void )
{
set_tris_a (0xFF) ; // ( BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 ) = 0b11111111
set_tris_b (0x80) ; // ( BIT7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 ) = 0b10000000
set_tris_c (0x02) ; // ( BIT7 | 0 | 0 | 0 | BIT3 | BIT2 | BIT1 | BIT0 ) = 0b00000010
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
// setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
// setup_timer_1(T1_DISABLED);
// setup_timer_2(T2_DISABLED,0,1);
// enable_interrupts(INT_RDA);
// enable_interrupts(INT_TIMER0);
// enable_interrupts(GLOBAL);
while(1)
{
EscreveNoDisplay( SEM_ANIMACAO );
}
}
Usuários navegando neste fórum: Google [Bot] e 1 visitante