lcd rtc ds1307 atmega8 avr gcc


rtclcd

#define F_CPU 8000000UL
#include “util/delay.h”
#include “stdlib.h”
#include “avr/io.h”
#include “avr/pgmspace.h”
#include “avr/interrupt.h”
#include “avr/wdt.h”
//============================================================

#define ddr_scl_hi DDRC|=(1<<0)     //I2C eeprom & rtc
#define ddr_scl_lo DDRC&=~(1<<0)
#define scl_hi PORTC|=(1<<0)
#define scl_lo PORTC&=~(1<<0)
#define ddr_sda_hi DDRC|=(1<<1)
#define ddr_sda_lo DDRC&=~(1<<1)
#define sda_hi PORTC|=(1<<1)
#define sda_lo PORTC&=~(1<<1)

#define ACK        1
#define NO_ACK    0

#define LCD_RS_HI PORTB|=(1<<0)       //LCD
#define LCD_RS_LO PORTB&=~(1<<0)

#define LCD_EN_HI PORTB|=(1<<1)
#define LCD_EN_LO PORTB&=~(1<<1)

#define LCD_D4_HI PORTB|=(1<<4)
#define LCD_D4_LO PORTB&=~(1<<4)
#define LCD_D5_HI PORTB|=(1<<5)
#define LCD_D5_LO PORTB&=~(1<<5)
#define LCD_D6_HI PORTB|=(1<<6)
#define LCD_D6_LO PORTB&=~(1<<6)
#define LCD_D7_HI PORTB|=(1<<7)
#define LCD_D7_LO PORTB&=~(1<<7)

volatile unsigned char second,minute,hour,day,date,month,year;
const char hextab[]=”0123456789ABCDEF”;
//================================================================SERIAL

#define line1 0x00
#define line2 0x40

//===============================================================
// lcd
//==================================================================
void LCD_STROBE()
{
LCD_EN_HI;
LCD_EN_LO;
}

void lcd_write(unsigned char datalcd)
{
if(datalcd & 0x80) {LCD_D7_HI;} else {LCD_D7_LO;}
if(datalcd & 0x40) {LCD_D6_HI;} else {LCD_D6_LO;}
if(datalcd & 0x20) {LCD_D5_HI;} else {LCD_D5_LO;}
if(datalcd & 0x10) {LCD_D4_HI;} else {LCD_D4_LO;}
LCD_STROBE();
if(datalcd & 0x08) {LCD_D7_HI;} else {LCD_D7_LO;}
if(datalcd & 0x04) {LCD_D6_HI;} else {LCD_D6_LO;}
if(datalcd & 0x02) {LCD_D5_HI;} else {LCD_D5_LO;}
if(datalcd & 0x01) {LCD_D4_HI;} else {LCD_D4_LO;}
LCD_STROBE();
_delay_ms(5);
}

void lcd_clrscr()
{
LCD_RS_LO;
lcd_write(0x1);
_delay_ms(2);
}

void lcd_putc(unsigned char c)
{
LCD_RS_HI;
lcd_write(c);
}

void lcd_puts(const char *s)
{
register char c;

while ( (c = *s++) ) {
lcd_putc(c);
}
}

void lcd_puts_pp(const char *progmem_s)
{
register char c;
for(;;)
{
c = pgm_read_byte(progmem_s++);
if(c==0) break;
lcd_putc(c);
}
}

void lcd_goto(unsigned char poslcd)
{
LCD_RS_LO;
lcd_write(0x80 + poslcd);
}

void initlcd()
{
LCD_RS_LO;
_delay_ms(15);
LCD_D4_HI;
LCD_D5_HI;
LCD_STROBE();
_delay_ms(5);

LCD_STROBE();
_delay_us(100);
LCD_STROBE();
_delay_ms(5);
LCD_D4_LO;
LCD_STROBE();
_delay_us(40);
lcd_write(0x28);
lcd_write(0x0C);
lcd_write(0x06);
lcd_write(0x01);
_delay_ms(10);
}
//=============================================
//i2c manual
//============================================
void i2c_start()
{
wdt_reset();

ddr_scl_hi;
ddr_sda_hi;
scl_hi;
sda_hi;
_delay_us(5);
sda_lo;
_delay_us(5);
scl_lo;
_delay_us(5);
}

void i2c_stop()
{
wdt_reset();

ddr_sda_hi;
sda_lo;
_delay_us(5);
scl_hi;
_delay_us(5);
sda_hi;
_delay_us(5);
}

void i2c_transmit_byte(unsigned char datai2c)
{
unsigned char indexi2c;
ddr_scl_hi;
ddr_sda_hi;
for(indexi2c = 8; indexi2c > 0; indexi2c–)
{
wdt_reset();

if(datai2c & (1 << (indexi2c – 1)))
{
sda_hi;
}
else
{
sda_lo;
}
scl_hi;
_delay_us(5);
scl_lo;
}
scl_hi;
_delay_us(5);
scl_lo;
_delay_us(5);
}

unsigned char i2c_receive_byte(unsigned char reply)
{
unsigned char indexi2c;
unsigned char datai2c=0;
ddr_sda_lo;
ddr_scl_hi;
scl_lo;

for(indexi2c = 8; indexi2c > 0; indexi2c–)
{
wdt_reset();

scl_hi;
_delay_us(5);
if(bit_is_set(PINC,1))
{datai2c |= (1 << (indexi2c – 1));}
else
{datai2c&= ~(1 << (indexi2c – 1));}
scl_lo;
_delay_us(5);
}
ddr_sda_hi;
if(reply)
{sda_lo;}
else
{sda_hi;}
_delay_us(5);
scl_hi;
_delay_us(5);
scl_lo;
_delay_us(5);
return datai2c;
}

char dec2bcd(char num)
{
return ((num/10 * 16) + (num % 10));
}

char bcd2dec(char num)
{
return ((num/16 * 10) + (num % 16));
}

void dectobcdrtc()
{
wdt_reset();

hour=dec2bcd(hour);
minute=dec2bcd(minute);
second=dec2bcd(second);
date=dec2bcd(date);
month=dec2bcd(month);
year=dec2bcd(year);
}
void bcdtodecrtc()
{
// hour  =((hour & 0xF0) >> 4)*10 + (hour & 0x0F);
wdt_reset();

hour=bcd2dec(hour);
minute=bcd2dec(minute);
second=bcd2dec(second);
date=bcd2dec(date);
month=bcd2dec(month);
year=bcd2dec(year);
//minute  =((minute & 0xF0) >> 4)*10 + (minute & 0x0F);
//second  =((second & 0xF0) >> 4)*10 + (second & 0x0F);
//date  =((date & 0xF0) >> 4)*10 + (date & 0x0F);
//month  =((month & 0xF0) >> 4)*10 + (month & 0x0F);
//year  =((year & 0xF0) >> 4)*10 + (year & 0x0F);
}

void lcdhex(unsigned char datana)
{
unsigned char tempbyte;
tempbyte=datana & 0xf0;
tempbyte=tempbyte >> 4;
lcd_putc(hextab[tempbyte]);
tempbyte=datana & 0x0f;
lcd_putc(hextab[tempbyte]);
}

void rtc_lcd()
{
lcd_goto(line1);
lcdhex(hour);
lcd_putc(‘:’);
lcdhex(minute);
lcd_putc(‘:’);
lcdhex(second);
lcd_goto(line2);
lcdhex(date);
lcd_putc(‘:’);
lcdhex(month);
lcd_putc(‘:’);
lcdhex(year);
}

void rtc_uart()
{
lcd_goto(line1);
lcd_putc((hour / 10)   + 48);
lcd_putc((hour % 10)   + 48);
lcd_putc(58);
lcd_putc((minute / 10)   + 48);
lcd_putc((minute % 10)   + 48);
lcd_putc(58);
lcd_putc((second / 10)   + 48);
lcd_putc((second % 10)   + 48);

lcd_goto(line2);
lcd_putc((date / 10)   + 48);
lcd_putc((date % 10)   + 48);
lcd_putc(58);
lcd_putc((month / 10)   + 48);
lcd_putc((month % 10)   + 48);
lcd_putc(58);
lcd_putc((year / 10)   + 48);
lcd_putc((year % 10)   + 48);

}

void gettimertc()
{
i2c_start();
i2c_transmit_byte(0xd0);
i2c_transmit_byte(0);
i2c_start();
i2c_transmit_byte(0xd1);
second=i2c_receive_byte(ACK);
minute=i2c_receive_byte(ACK);
hour=i2c_receive_byte(ACK);
day=i2c_receive_byte(ACK);
date=i2c_receive_byte(ACK);
month=i2c_receive_byte(ACK);
year=i2c_receive_byte(NO_ACK);
i2c_stop();
_delay_ms(10);
//bcdtodecrtc();

}

void settimertc()
{
dectobcdrtc();
i2c_start();
i2c_transmit_byte(0xd0);
i2c_transmit_byte(0);
i2c_transmit_byte(second);
i2c_transmit_byte(minute);
i2c_transmit_byte(hour);
i2c_transmit_byte(0);
i2c_transmit_byte(date);
i2c_transmit_byte(month);
i2c_transmit_byte(year);
i2c_stop();
_delay_ms(10);

}

int main()
{
DDRB=255;
initlcd();
for(;;)
{
gettimertc();
rtc_lcd();
_delay_ms(500);
}
}


jika ada masalah dengan rtc ds1307, biasanya penyebabnya gara gara crsytalnya, ganti saja sama crystal jam weker, fungsi lcd yang dibuat, lumayan enak, manis. soalnya port yang terhubung ke lcd bisa bebas. tidak seperti compiler yang heheh. ga usah disebut lah.

avr gcc merupakan c garis keras, soalnya kita mengotak ngatik register sendiri, jadi kalo kita terbiasa dengan c garis keras, lumayan besar manfaatnya. nanti bisa kamu rasain sendiri.

About these ads

16 Balasan ke lcd rtc ds1307 atmega8 avr gcc

  1. saman mengatakan:

    please send me some new project for calender with avr (atmega 8) thank you

  2. ucink mengatakan:

    wah…..hebat…
    sorry nih, newbie, kalo atmega8 nya pake internal clock ya?
    skalian blajar programnya juga. ini dikompile nya pake codevision bisa ga? biasanya anak2 di kampus dari basic, compile pake bascom avr.

  3. ucink mengatakan:

    mw tanya lagi nih. barusan udah dicoba code nya di ‘whenever’, udah dibuat makefile nya, tapi pas mw di kompile, muncul error

    ——– begin ——–
    avr-gcc (WinAVR 20100110) 4.3.3
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Compiling C: rtc.c
    avr-gcc -c -mmcu=atmega8 -I. -gstabs -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./rtc.lst -std=gnu99 -MMD -MP -MF .dep/rtc.o.d rtc.c -o rtc.o
    rtc.c:2:10: error: #include expects “FILENAME” or
    rtc.c:3:10: error: #include expects “FILENAME” or
    rtc.c:4:10: error: #include expects “FILENAME” or
    rtc.c:5:10: error: #include expects “FILENAME” or
    rtc.c:6:10: error: #include expects “FILENAME” or
    rtc.c:7:10: error: #include expects “FILENAME” or
    rtc.c:38: error: stray ‘\224′ in program
    rtc.c:38:22: error: invalid digit “9” in octal constant
    rtc.c:38: error: stray ‘\224′ in program
    rtc.c:48: warning: function declaration isn’t a prototype
    rtc.c: In function ‘LCD_STROBE':
    rtc.c:49: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:49: error: (Each undeclared identifier is reported only once
    rtc.c:49: error: for each function it appears in.)
    rtc.c:49: warning: statement with no effect
    rtc.c:50: warning: statement with no effect
    rtc.c: In function ‘lcd_write':
    rtc.c:55: error: stray ‘\327′ in program
    rtc.c:55: error: expected ‘)’ before numeric constant
    rtc.c:55: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:55: warning: statement with no effect
    rtc.c:55: warning: statement with no effect
    rtc.c:56: error: stray ‘\327′ in program
    rtc.c:56: error: expected ‘)’ before numeric constant
    rtc.c:56: warning: statement with no effect
    rtc.c:56: warning: statement with no effect
    rtc.c:57: error: stray ‘\327′ in program
    rtc.c:57: error: expected ‘)’ before numeric constant
    rtc.c:57: warning: statement with no effect
    rtc.c:57: warning: statement with no effect
    rtc.c:58: error: stray ‘\327′ in program
    rtc.c:58: error: expected ‘)’ before numeric constant
    rtc.c:58: warning: statement with no effect
    rtc.c:58: warning: statement with no effect
    rtc.c:60: error: stray ‘\327′ in program
    rtc.c:60:16: error: invalid digit “8” in octal constant
    rtc.c:60: error: expected ‘)’ before numeric constant
    rtc.c:60: warning: statement with no effect
    rtc.c:60: warning: statement with no effect
    rtc.c:61: error: stray ‘\327′ in program
    rtc.c:61: error: expected ‘)’ before numeric constant
    rtc.c:61: warning: statement with no effect
    rtc.c:61: warning: statement with no effect
    rtc.c:62: error: stray ‘\327′ in program
    rtc.c:62: error: expected ‘)’ before numeric constant
    rtc.c:62: warning: statement with no effect
    rtc.c:62: warning: statement with no effect
    rtc.c:63: error: stray ‘\327′ in program
    rtc.c:63: error: expected ‘)’ before numeric constant
    rtc.c:63: warning: statement with no effect
    rtc.c:63: warning: statement with no effect
    rtc.c:65: warning: implicit declaration of function ‘_delay_ms’
    rtc.c: At top level:
    rtc.c:69: warning: function declaration isn’t a prototype
    rtc.c: In function ‘lcd_clrscr':
    rtc.c:70: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:70: warning: statement with no effect
    rtc.c:71: error: stray ‘\327′ in program
    rtc.c:71: error: expected ‘)’ before numeric constant
    rtc.c: In function ‘lcd_putc':
    rtc.c:77: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:77: warning: statement with no effect
    rtc.c: In function ‘lcd_puts_pp':
    rtc.c:95: warning: implicit declaration of function ‘pgm_read_byte’
    rtc.c: In function ‘lcd_goto':
    rtc.c:103: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:103: warning: statement with no effect
    rtc.c:104: error: stray ‘\327′ in program
    rtc.c:104: error: expected ‘)’ before numeric constant
    rtc.c: At top level:
    rtc.c:108: warning: function declaration isn’t a prototype
    rtc.c: In function ‘initlcd':
    rtc.c:109: error: ‘PORTB’ undeclared (first use in this function)
    rtc.c:109: warning: statement with no effect
    rtc.c:111: warning: statement with no effect
    rtc.c:112: warning: statement with no effect
    rtc.c:117: warning: implicit declaration of function ‘_delay_us’
    rtc.c:120: warning: statement with no effect
    rtc.c:123: error: stray ‘\327′ in program
    rtc.c:123: error: expected ‘)’ before numeric constant
    rtc.c:125: error: stray ‘\327′ in program
    rtc.c:125: error: expected ‘)’ before numeric constant
    rtc.c:126: error: stray ‘\327′ in program
    rtc.c:126: error: expected ‘)’ before numeric constant
    rtc.c: At top level:
    rtc.c:133: warning: function declaration isn’t a prototype
    rtc.c: In function ‘i2c_start':
    rtc.c:134: warning: implicit declaration of function ‘wdt_reset’
    rtc.c:136: error: ‘DDRC’ undeclared (first use in this function)
    rtc.c:136: warning: statement with no effect
    rtc.c:137: warning: statement with no effect
    rtc.c:138: error: ‘PORTC’ undeclared (first use in this function)
    rtc.c:138: warning: statement with no effect
    rtc.c:139: warning: statement with no effect
    rtc.c:141: warning: statement with no effect
    rtc.c:143: warning: statement with no effect
    rtc.c: At top level:
    rtc.c:148: warning: function declaration isn’t a prototype
    rtc.c: In function ‘i2c_stop':
    rtc.c:151: error: ‘DDRC’ undeclared (first use in this function)
    rtc.c:151: warning: statement with no effect
    rtc.c:152: error: ‘PORTC’ undeclared (first use in this function)
    rtc.c:152: warning: statement with no effect
    rtc.c:154: warning: statement with no effect
    rtc.c:156: warning: statement with no effect
    rtc.c: In function ‘i2c_transmit_byte':
    rtc.c:163: error: ‘DDRC’ undeclared (first use in this function)
    rtc.c:163: warning: statement with no effect
    rtc.c:164: warning: statement with no effect
    rtc.c:165: error: stray ‘\226′ in program
    rtc.c:165: warning: statement with no effect
    rtc.c:169: error: stray ‘\226′ in program
    rtc.c:169: error: expected ‘)’ before numeric constant
    rtc.c:171: error: ‘PORTC’ undeclared (first use in this function)
    rtc.c:171: warning: statement with no effect
    rtc.c:175: warning: statement with no effect
    rtc.c:177: warning: statement with no effect
    rtc.c:179: warning: statement with no effect
    rtc.c:181: warning: statement with no effect
    rtc.c:183: warning: statement with no effect
    rtc.c: In function ‘i2c_receive_byte':
    rtc.c:191: error: ‘DDRC’ undeclared (first use in this function)
    rtc.c:191: warning: statement with no effect
    rtc.c:192: warning: statement with no effect
    rtc.c:193: error: ‘PORTC’ undeclared (first use in this function)
    rtc.c:193: warning: statement with no effect
    rtc.c:195: error: stray ‘\226′ in program
    rtc.c:195: warning: statement with no effect
    rtc.c:199: warning: statement with no effect
    rtc.c:201: warning: implicit declaration of function ‘bit_is_set’
    rtc.c:201: error: ‘PINC’ undeclared (first use in this function)
    rtc.c:202: error: stray ‘\226′ in program
    rtc.c:202: error: expected ‘)’ before numeric constant
    rtc.c:204: error: stray ‘\226′ in program
    rtc.c:204: error: expected ‘)’ before numeric constant
    rtc.c:205: warning: statement with no effect
    rtc.c:208: warning: statement with no effect
    rtc.c:210: warning: statement with no effect
    rtc.c:212: warning: statement with no effect
    rtc.c:214: warning: statement with no effect
    rtc.c:216: warning: statement with no effect
    rtc.c: At top level:
    rtc.c:232: warning: function declaration isn’t a prototype
    rtc.c:243: warning: function declaration isn’t a prototype
    rtc.c:271: warning: function declaration isn’t a prototype
    rtc.c: In function ‘rtc_lcd':
    rtc.c:272: error: stray ‘\327′ in program
    rtc.c:272: error: expected ‘)’ before numeric constant
    rtc.c:274: error: stray ‘\221′ in program
    rtc.c:274: error: expected expression before ‘:’ token
    rtc.c:274: error: stray ‘\222′ in program
    rtc.c:274: warning: passing argument 1 of ‘lcd_putc’ makes integer from pointer without a cast
    rtc.c:276: error: stray ‘\221′ in program
    rtc.c:276: error: expected expression before ‘:’ token
    rtc.c:276: error: stray ‘\222′ in program
    rtc.c:276: warning: passing argument 1 of ‘lcd_putc’ makes integer from pointer without a cast
    rtc.c:278: error: stray ‘\327′ in program
    rtc.c:278: error: expected ‘)’ before numeric constant
    rtc.c:280: error: stray ‘\221′ in program
    rtc.c:280: error: expected expression before ‘:’ token
    rtc.c:280: error: stray ‘\222′ in program
    rtc.c:280: warning: passing argument 1 of ‘lcd_putc’ makes integer from pointer without a cast
    rtc.c:282: error: stray ‘\221′ in program
    rtc.c:282: error: expected expression before ‘:’ token
    rtc.c:282: error: stray ‘\222′ in program
    rtc.c:282: warning: passing argument 1 of ‘lcd_putc’ makes integer from pointer without a cast
    rtc.c: At top level:
    rtc.c:287: warning: function declaration isn’t a prototype
    rtc.c: In function ‘rtc_uart':
    rtc.c:288: error: stray ‘\327′ in program
    rtc.c:288: error: expected ‘)’ before numeric constant
    rtc.c:298: error: stray ‘\327′ in program
    rtc.c:298: error: expected ‘)’ before numeric constant
    rtc.c: At top level:
    rtc.c:311: warning: function declaration isn’t a prototype
    rtc.c:331: warning: function declaration isn’t a prototype
    rtc.c:349: warning: function declaration isn’t a prototype
    rtc.c: In function ‘main':
    rtc.c:350: error: ‘DDRB’ undeclared (first use in this function)
    rtc.c:350: warning: statement with no effect
    make.exe: *** [rtc.o] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:00

    mohon pencerahan

  4. dhani mengatakan:

    itu source code nya di ketik ulang, soalnya pasti jadi pas di copy, ada script html yang nyelip

  5. AvrLabCom mengatakan:

    I see LCD library is include, i save it i will try to construct this. In few weeks i will write the result. Thnx.

  6. avrlab mengatakan:

    It doesn’t work, Building complete with no errors an warning but on LCD some strange chars runing with every reset. No data, no time. What is a problem???

  7. west mengatakan:

    piye panggil hari pada rtc1307

  8. Nurmas mengatakan:

    ms dhani saya lg proses pembelajaran pake trainer avr versi 2.0 untuk praktek dikampus. tp saya bingung pada saat mempelajari sebagian program yg ada pada lcd untuk menampilkan suhu, perintahnya sbg berikut:
    unsigned char tempbyte;
    unsigned char buff[3];
    tempbyte=datana;
    buff[2]=(tempbyte/100)+48;
    buff[1]=((tempbyte%=100)/10)+48;
    buff[0]=(tempbyte%10)+48;
    if (datana <10){lcd_putc(buff[0]);}
    else if(datana <100) {lcd_putc(buff[1]);lcd_putc(buff[0]);}
    else {lcd_putc(buff[2]);lcd_putc(buff[1]);lcd_putc(buff[0]);}
    }

    void lcdword(unsigned int datana)
    { unsigned int tempword;
    unsigned char buff[5];
    tempword=datana;
    buff[4]=(tempword/10000)+48;
    buff[3]=((tempword%=10000)/1000)+48;
    buff[2]=((tempword%=1000)/100)+48;
    buff[1]=((tempword%=100)/10)+48;
    buff[0]=(tempword%=10)+48;
    if (datana <10){lcd_putc(buff[0]);}
    else if(datana <100) {lcd_putc(buff[1]);lcd_putc(buff[0]);}
    else if(datana <1000) {lcd_putc(buff[2]);lcd_putc(buff[1]);lcd_putc(buff[0]);}
    else if(datana <10000)
    {lcd_putc(buff[3]);lcd_putc(buff[2]);lcd_putc(buff[1]);lcd_putc(buff[0]);}
    else if(datana <65536)
    {lcd_putc(buff[4]);lcd_putc(buff[3]);lcd_putc(buff[2]);lcd_putc(buff[1]);lcd_putc(buff[0]);}
    }
    bisa di bantu ms dhani penjelasan maksudnya…tanks

  9. dhani mengatakan:

    oh itu maksudnya lcdbyte(databyte).

    misal databyte=100.

    nah kalo kita ingin menampilkan ke lcd itu harus format ascii. maksudnya kalo kita ingin menampilkan angka 1, ngga bisa langsung lcd 1, tapi harus dirubah dulu ke ascii lcd 1+48, baru yang keuar di lcd angka 1.

    nah pada sub rutin lcd byte, misal 100 disini kita mencari dulu, nilai ratusannya berapa, nilai puluhannya berapa, dan nilai satuannya berapa.

    jika sudah ketemu. sebelum ditampilkan ke lcd ditambah dulu 48 artinya di rubah ke format ascii.

    jika kita punya data 100.
    artinya
    nilai ratusan 1
    nilai puluhan 0
    nilai satuan 0

    terus hasil tersebut sebelum ditampilkan semuanya di tambah 48.

    baru tampilan di lcd menjadi 100.

    untuk lcd word sama saja, subrutin ini digunakan untuk menampilkan angka yang menggunakan variable word.

  10. dhani mengatakan:

    jika ada materi yang kurang paham , email aja, atau komentar aja di blog ini lagi.

  11. Busaattetty mengatakan:

    порно знакомства в Новой Ушице

  12. muhily45 mengatakan:

    mas dani kalo output nya pke 7segment ada ga?
    boleh minta source codenya
    kirim email ke muhily45@yahoo.com
    terima kasih banyak n moga banyak rezeki karena bagi2 ilmu

  13. gt5fan.blogspot.com mengatakan:

    Doing this will really get the buzz out on your fan page and
    encourage people to participate actively. Create a “Custom HTML”
    module in the position you would like. outright ignores your comments and continues replying
    merrily away at comments.

  14. It does appear, however, that hypnosis can help a person achieve his
    or her weight loss goals. Avocados- Although not my favorite, are high in
    fats, the good ones. Many people don’t have the time to weight themselves every day, but checking the scale on a regular basis can definitely help when you’re working
    to lose weight and keep it off.

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 42 pengikut lainnya.

%d blogger menyukai ini: