Monday, June 22, 2015

JAM DIGITAL LCD DENGAN I2C DS 1307 CAVR ( ATMEGA 32 )

Assalamualaikum...
Yo opo kabare Lurrrd....
Menjelang puasa H5 Global elektronik terus update artikel tentang mikrocontroller,,semoga dengan mengisi bulan ramadhan ini dengan kegiatan yang positif tentu nya akan menambah nikmat kita berpuasa..
Baik,langsung saja kita kali ini akan posting tentang membuat Jam Digital LCD 16x2 dengan RTC DS 1307 tentunya masih dengan software Code Vision AVR dan memakai IC uC Atmega 32...

Yang perlu diperhatikan didalam pembuatan jam digital ini hanyalah penempatan LCD pada PORTD dan IC RTC pada PORTC

Langkah pertama kita kita setting wizard nya seperti gambar dibawah ini :


setelah itu kita ketik source code nya :

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : Jam Digital RTC
Version : 1.0
Date    : 6/21/2015
Author  : rey
Company : http://elektronikasystem.blogspot.com/
Comments:


Chip type               : ATmega32
Program type            : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 512
*****************************************************/
unsigned char h, m, s, d, mo, y, w,temp[16];
/*
h=hour, m=minute, s=second
w=week, d=day, mo=month, y=year
*/
#include <mega32.h>
#include <i2c.h>
#include <ds1307.h>
#include <alcd.h>
#include <stdio.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// I2C Bus initialization
// I2C Port: PORTC
// I2C SDA bit: 1
// I2C SCL bit: 0
// Bit Rate: 100 kHz
// Note: I2C settings are specified in the
// Project|Configure|C Compiler|Libraries|I2C menu.
i2c_init();

// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);

rtc_set_time(18,49,00); //untuk menset jam 09,10,26
rtc_set_date(28,22,06,15); //untuk menset tanggal: (week),22,06,2015

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("Jam Digital RTC");
lcd_gotoxy(5,1);
lcd_putsf("By Rey");
delay_ms(2000);
lcd_clear();

while (1)
      {
      rtc_get_time(&h,&m,&s); //mendapatkan nilai  jam, menit dan detik
      rtc_get_date(&w,&d,&mo,&y); //mendapatkan nilai tanggal, bulan dan tahun

        lcd_gotoxy(0,0);
        sprintf(temp,"Time %d:%d:%d",h,m,s);
        lcd_puts(temp);//tampilkan jam di LCD baris pertama

        lcd_gotoxy(0,1);
        sprintf(temp,"Date %d-%d-%d",d,mo,2000+y);
        lcd_puts(temp);//tampilkan tanggal di LCD baris kedua

      }
}


Setelah itu compile lalu download ke mikro,,
Ada satu hal penting dalam proses download,yaitu file hex harus di download 2x yang pertama kita memakai source code di atas,namun setelah itu lakukan sekali lagi namun ada 2 list code yang perlu di hapus yaitu ini :



setelah code di hapus lalu di compile sekali lagi dan di downlaod ke mikro lagi...
Selamat mencoba..

Wassalamualaikum Wr.Wb

hfsdf

0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by KAMPUS UMT TANGERANG | Supported by Bebit Deartha - Ristu Sadewa | Kota Tangerang