PENDAHULUAN
1.1. Latar Belakang
Dengan adanya alat ini, maka pedagang dapat mengetahui berapa berat
dagangannya yang di timbang dari layar LCD. Tentu saja alat ini sangat
memudahkan kita. Pembuatan alat ini diharapkan dapat membantu mengatasi
masalah – masalah di atas.
1.2. Perumusan Masalah
1.3. Batasan Masalah
Perancangan sistem kontrol dibatasi :
1. Mikrokontroler ATMEGA16
2. Pembatasan pada berat
timbangan dengan berat paling rendah 0 Kg dan berat paling tinggi 15
Kg.
1.4. Tujuan
LANDASAN TEORI
4. Fitur Peripheral
mode capture
• Bandar A (PA7..PA0)
• Bandar B (PB7..PB0)
Bandar B adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar B output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena Bandar B yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pena Bandar B adalah
tri-statedmanakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
• Bandar C (PC7..PC0)
Bandar C adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar C output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena bandar C yang secara eksternal ditarik
rendah akan arus sumber jika resistor pull-up diaktifkan. Pena bandar C adalah tri-
statedmanakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
• Bandar D (PD7..PD0)
Bandar D adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-
up (yang dipilih untuk beberapa bit). Bandar D output buffer
mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan
kemampuan sumber. Sebagai input, pena bandar D yang secara eksternal ditarik
rendah akan
arus sumber jika resistor pull-up diaktifkan. Pena Bandar D adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
• AVCC adalah pena penyedia tegangan untuk bandar A dan Konverter A/D.
Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan
memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk
menyimpan data. ATMega16 memiliki 16K byte On-chip In-
System Reprogrammable Flash Memory untuk menyimpan program. Instruksi
ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur
dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian
program boot dan aplikasi.Bootloader adalah program kecil yang bekerja pada
saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam
memori prosesor.
2.2 LCD
LCD yang umum, ada yang panjangnya hingga 40 karakter (2x40 dan
4x40), dimana kita menggunakan DDRAM untuk mengatur tempat penyimpanan
karakter tersebut.
2.2.1 Susunan Alamat Pada LCD
Alamat awal karakter 00H dan alamat akhir 39H. Jadi, alamat awal di
baris kedua dimulai dari 40H. Jika Anda ingin meletakkan suatu karakter pada
baris ke-2 kolom pertama, maka harus diset pada alamat 40H. Jadi, meskipun
LCD yang digunakan 2x16 atau 2x24, atau bahkan 2x40, maka penulisan
programnya sama saja.
Perlu diketahui, driver LCD seperti HD44780 memiliki dua register yang
aksesnya diatur menggunakan pin RS. Pada saat RS berlogika 0, register yang
diakses adalah perintah, sedangkan pada saat RS berlogika 1, register yang
diakses adalah register data.
Spesifikasi Alat
Berikut ini adalah spesifikasi dari sistem yang akan direalisasikan :
1. Tegangan Operasional Sistem : 12VDC
2. Sumber : Adaptor
3. Mikrokontroler : ATMEGA16
4. Output : Layar LCD
5. Range Berat : 0 – 50 Kg
Diagram Blok
3.2.1 Mikrokontroler
Foto Alat
3.2 Perancangan Software
3.3.1 Flowchart Program
Sesuai perancangan hardware, maka dapat dirancang flowchart program yang
sesuai dengan fungsi alat yang diinginkan, berikut gambar rancangan flowchart
program :
3.3.2 Listing Program
Dari rancangan flowchart program diatas, dapat dirancang program seperti yang
diinginkan, berikut adalah listing program pada mikrokontroler sesuai dengan
rancangan flowchart :
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#asm
#endasm
#include <lcd.h>
#define ms delay_ms
delay_us(10);
ADCSRA|=0x40;
ADCSRA|=0x10;
return ADCW;
int x,bar;
float berat;
char buf[33];
void baca_sensor(){
x=read_adc(0);
berat=(x-500)*1.3;
if (berat<x) {
berat=x*0 ;}
void display_sensor(){
lcd_gotoxy(0,0);lcd_putsf("Beratnya:");
lcd_gotoxy(0,1);sprintf(buf,"%0.0f kilogram",berat);lcd_puts(buf);
void opening(){
lcd_gotoxy(0,0);lcd_putsf("Author:");
ms(1000);
lcd_gotoxy(0,1);lcd_putsf("Zali");
ms(1000);
lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("Loading");
for(bar=0;bar<=15;bar++){
lcd_gotoxy(bar,1);
lcd_putsf("\xFF");
lcd_gotoxy(5,0);
delay_ms(40);
ms(1000);
lcd_clear();
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTD=0x1C;
DDRD=0xFF;
TCCR1A=0x81;
TCCR1B=0x0D;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
lcd_init(16);
opening();
while (1)
baca_sensor();
display_sensor();
};
}
BAB IV
PENUTUP
1.1 Kesimpulan
5.2 Saran
1. Sebaiknya digunakan sensor tekan (berat) yang lebih sensitif sehingga akan
terjadi perubahan nilai tegangan meskipun diberi beban yang ringan.
2. Sebaiknya digunakan jenis timbangan yang menggunakan pegas yang lunak dan
skala pembacaan berat yang lebih besar.