Escolar Documentos
Profissional Documentos
Cultura Documentos
h>
#define HOUR 0
#define MIUTE 1
#define SECOND 2
// uC Port definitions
#define lcd_port P1OUT
#define lcd_port_dir P1DIR
int hora[3]={0,0,0};
char s1[7],s2[7];
int horadec,horauni,mindec,minuni,segdec,secuni;
void lcd_reset()
{
int i ;
lcd_port_dir = 0xff; // output mode
lcd_port = 0xff;
__delay_cycles(20000);
for (i=1;i<=3;i++)
{
lcd_port = 0x03+LCD_EN;
lcd_port = 0x03;
__delay_cycles(10000);
}
lcd_port = 0x02+LCD_EN;
lcd_port = 0x02;
__delay_cycles(1000);
}
__delay_cycles(4000);
}
void lcd_data (unsigned char dat)
{
// Send upper nibble
lcd_port = (((dat >> 4) & 0x0F)|LCD_EN|LCD_RS);
lcd_port = (((dat >> 4) & 0x0F)|LCD_RS);
}
lcd_cmd(0x80);
}
void lcd_init ()
{
lcd_reset(); // Call LCD reset
lcd_cmd(0x01); // Clear screen
lcd_cmd(0x38); // 2 line 5x7 matrix
lcd_cmd(0x28); // 4-bit mode - 2 line - 5x7 font.
lcd_cmd(0x06); // Automatic Increment - No Display shift.
lcd_cmd(0x0f); // Display no cursor - no blink.
lcd_cmd(0x80); // Address DDRAM with 0 offset 80h.
break;
case 2 :
if((col<=16) &&(col!=0))
{
lcd_cmd(0xc0+(col-1));
}
else
{
lcd_cmd(0xc0);
}
break;
default:
lcd_cmd (0x80);
}
while (*line)
lcd_data(*line++);
}
void main(void)
{
// Configuraci�n TIMER_A:
// TimerA1, ACLK/1,modo up, reinicia TACLR
// TACTL = TASSEL_1 | TACLR | MC_1;
// ACLK tiene una frecuencia de 32768 Hz
// Carga cuenta en TA1CCR0 0.1seg TA1CCR=(0,1*32768)-1
// TACCR0 = 32768;
//TACCTL0 = CCIE; // Habilita interrupci�n (bit CCIE)
// LPM0, habilitaci�n general de interrupciones
display_line("cesar :)",1,4);
display_line("hora: ",2,4);
while(1)
{
horadec=hora[0]/10;
s1[0]=(char)(horadec+48);
horauni=hora[0]%10;
s1[1]=(char)(horauni+48);
mindec=hora[1]/10;
s1[3]=(char)(mindec+48);
minuni=hora[1]%10;
s1[4]=(char)(minuni+48);
segdec=hora[2]/10;
s1[5]=(char)(segdec+48);
secuni=hora[2]%10;
s1[6]=(char)(secuni+48);
// __low_power_mode_0();
// __no_operation();
}
}
/*
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void){
//display_line(&s1[0],2,6);
hora[2]=hora[2]+1;
if ( hora[2] ==59)
{
hora[2]=0;
hora[1]=hora[1]+1;
if(hora[1]==59)
{
hora[1]=0;
hora[0]=hora[0]+1;
if(hora[0]==25)
{
hora[0]=0;
hora[1]=0;
hora[2]=0;
}
}
}
}
*/
http://xanthium.in/msp430-launchpad-adc10-configuration-tutorial