SlideShare une entreprise Scribd logo
1  sur  28
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 1
AVR “The Introduction”
AVR adalah single-chip mikrokontroler ber-arsitektur 8-bit RISC yang
dikembangkan oleh Atmel pada tahun 1996.
RISC, Reduced Instruction Set Computer, adalah teknologi kombinasi antara
hardware (perangkat keras) dan software (perangkat lunak) pada mikrokontroler /
mikroprosesor yang bertujuan untuk mempercepat mikrokontroler / mikroprosesor
dalam melaksanakan suatu instruksi. Dalam RISC, suatu instruksi dibuat
sederhana agar CPU dalam mikrokontroler / mikroprosesor dapat melaksanakan
instruksi tersebut dengan hanya 1-clock oscillator, yang berarti lebih cepat dan
lebih efisien dibandingkan teknologi pendahulunya CISC, Complex Instruction
Set Computer.
Diyakini bahwa dasar dari arsitektur AVR pada awalnya disusun oleh dua
mahasiswa dari Norwegian Institute of Technology (NTH), Alf-Egil Bogen dan
Vegard Wollan.
Arsitektur mikrokontroler AVR kemudian dibeli dan dikembangkan oleh Atmel.
Namun menurut Atmel, nama AVR tidak memiliki makna secara bahasa dan
bukanlah singkatan dari apapun.
Salah satu keluaran pertama dari produk mikrokontroler AVR milik Atmel yang
dijual bebas adalah AT90S8515, yang merupakan chip dengan kemasan 40-pin
DIP dengan pin I/O yang sama persis dengan mikrokontroler pendahulunya 8051,
hanya saja memiliki aktivasi RESET yang berlawan (8051 memiliki aktivasi
RESET dengan logika „1‟, sedangkan AT90S8515 aktivasi RESET berlogika „0‟)
Gambar 1. Contoh Mikrokontroler AVR
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 2
Mikrokontroler AVR secara umum dibagi menjadi 4 keluarga:
tinyAVR; seri ATtiny
o 0.5–8 kB memori program
o 6–32-pin pada chip-nya
megaAVR; seri ATmega
o 4–256 kB memori program
o 28–100-pin pada chip-nya
XMEGA; seri ATxmega
o 16–384 kB memori program
o 44–64–100-pin pada chip-nya
Aplication specific AVR; AVR dengan aplikasi khusus
o megaAVR dengan fitur khusus yang tidak ditemukan di keluarga
AVR yang lainya, seperti kendali LCD, kendali USB, dll.
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 3
AVR “ATmega8535″
ATmega8535. Notasi tersebut adalah
representasi dari sebuah mikrokontroler yang
merupakan salah satu anggota keluarga AVR.
Adalah ATMEL, perusahaan yang
memproduksinya. Dengan arsitektur 8-Bit RISC
berdaya rendah (Low-Power), dan fitur-fitur
unggulan lainnya, ATmega8535 sangat efisien
dan efektif untuk dijadikan pengendali utama dalam suatu sistem kendali.
ATmega8535 memiliki kembaran, yaitu ATmega8535L. Perbedaannya hanya
terletak dari besar minimal tegangan sumber yang diperlukan untuk berfungsi dan
kecepatan maksimal dari tiap chip tersebut, seperti yang terlihat pada “Fitur-Fitur
Mikrokontroler AVR ATmega8535(L)”:
Fitur-Fitur Mikrokontroler AVR ATmega8535(L):
130 instruksi dengan mayoritas hanya 1 clock-cycle
100,000 kali kemampuan program-ulang
32 x 8-bit register (r0 – r31)
8K Byte Flash-ROM
512 Byte EEPROM
512 Byte Internal SRAM
4 x 8-bit Programmable I/O (Port A, Port B, Port C, Port D)
8-Kanal ADC 10-bit pada Port A
Dua buah 8-bit Timer/Counters dengan Separate Prescalers dan Compare Modes
Satu buah 16-bit Timer/Counter dengan Separate Prescalers, Compare Mode, dan
Capture Mode
Real Time Counter (RTC) dengan Osilator yang terpisah
Gambar 2. Atmega 8535
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 4
4-Kanal PWM
Programmable Serial USART
Master/Slave SPI Serial Interface
• Tegangan Sumber
– 2.7 – 5.5V untuk ATmega8535L
– 4.5 – 5.5V untuk ATmega8535
• Kecepatan Maksimal
– 0 – 8 MHz untuk ATmega8535L
– 0 – 16 MHz untuk ATmega8535
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 5
AVR “LED Control”
Pada dasarnya setiap mikrokontroler memiliki bahasa dasar atau ASSEMBLER
yang khusus diperuntukkan baginya. Begitu-pun dengan AVR. Namun
berdasarkan pandangan kami, bahasa ASSEMBLER AVR lebih rumit untuk
dipelajari dibandingkan dengan bahasa yang tingkatannya lebih tinggi, seperti
bahasa “Basic” ataupun bahasa “C”. Karena itu, penjelasan kali ini adalah
penggunaan bahasa “Basic” dengan menggunakan “BASCOM” sebagai program
compiler-nya.
Materi kali ini adalah pengendalian 8 buah LED yang dirangkaikan pada
PORTC dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L),
ATmega163(L), ATmega323(L)) seperti yang terlihat pada gambar berikut.
Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami DI-
Smart AVR System sebagai media praktik. Adapun langkah-langkah dalam
pembuatan sistemnya adalah sebagai berikut:
1. Modul yang dibutuhkan DI-Smart AVR System. (Merangkai komponen-
komponen sesuai dengan gambar skematik rangkaian).
Gambar 3. Skematik Sismin Atmega8535 dengan Led Controller
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 6
2. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada
kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam. (Jika
anda menyusun dari awal, maka pastikan sistem mendapatkan tegangan 5V [VCC
= 5V]).
3. Atur jumper JP3 pada posisi “LED CONNECTED” pada DI-Smart AVR
System.
4. Unduh skrip program berikut (menggunakan BASCOM):
$regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip
ATmega8535
$crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada
rangkaian = 4MHz
„Jika anda menggunakan DI-Smart AVR System, maka crystal = 8000000 =
8MHz
Config Portc = Output „Deklarasi PORTC sebagai output = keluaran LED
„Membuat seluruh LED berkedip
Portc = 0 „Nilai desimal 0 = seluruh pin Portc berlogika 0 =
LED MENYALA
Wait 1 „Waktu tunda = 1 detik
Portc = 255 „Nilai desimal 255 = seluruh pin Portc berlogika 1 =
LED PADAM
Wait 1
Portc = &B1111_1110 „LED L0 = menyala (&B = Biner)
Do
Rotate Portc , Left , 1 „Data pada Portc digeser ke kiri sebanyak 1-bit
Waitms 500 „Tunda selama 500ms
Loop „Loop seterusnya
End
*Modul Depok Instruments yang Memudahkan Pembelajaran:
DI-Smart AVR System
DI-Smart AVR ISP
DI-Low Cost USB AVR ISP (USB AVR Downloader)
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 7
AVR “Membaca Input ADC dan Ditampilkan
di Komputer”
Materi kali ini adalah membaca input tegangan analog (0-5V) pada PORTA.0
dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L),
ATmega163(L), ATmega323(L)) kemudian mengirimkan data tersebut ke serial
komputer (DB9) untuk dibaca. Rangkaian yang diperlukan seperti yang terlihat
pada gambar berikut.
Gambar 4. Skematik Sismin Atmega8535 untuk membaca Input ADC
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 8
Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami, DI-
Smart AVR System, sebagai media praktik. Adapun langkah-langkah dalam
pembuatan sistemnya adalah sebagai berikut:
1. Modul yang dibutuhkan DI-Smart AVR System, DI-Smart Extension
Board, dan DI-Cable Serial. (Merangkai komponen-komponen sesuai
dengan gambar skematik rangkaian).
2. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada
kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam.
(Jika anda menyusun dari awal, maka pastikan sistem mendapatkan
tegangan 5V [VCC = 5V]).
3. Hubungkan DI-Smart Extension Board dengan PORTA DI-Smart AVR
System.
4. Hubungkan input analog dengan salah satu terminal pada DI-Smart
Extension Board (pada contoh digunakan terminal PORTA.0).
5. Hubungkan DI-Cable Serial dengan port serial dari DI-Smart AVR System
dan komputer.
6. Atur jumper JP1 pada posisi “RXD SERIAL PORT”.
7. Atur jumper JP2 pada posisi “TXD SERIAL PORT”.
8. Aktifkan program Hyper Terminal pada PC/LAPTOP, baudrate = 9600
bps.
9. Unduh skrip program berikut (menggunakan BASCOM atau yang
CVAVR):
PROGRAM BASCOM:
$regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip ATmega8535
$crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada
rangkaian = 4MHz
„Jika anda menggunakan DI-Smart AVR System, maka crystal = 11059200 =
11.0592MHz
$baud = 9600 „penge-set-an baudrate, dan yang digunakan adalah 9600
bps
„inisialisasi ADC:
Config Adc = Single , Prescaler = Auto
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 9
Start Adc
Dim Data_adc As Word „memesan variable Data_adc bertipe word
Do
„Data adc pada kanal-0 (PORTA.0) disimpan dalam variabel Data_adc
Data_adc = Getadc(0)
„Kirim Data_adc ke serial port,
„chr(13) meletakkan kursor pada posisi paling kiri tampilan
Print Data_adc ; Chr(13);
Waitms 500 „Tunda selama 500ms (0.5 detik)
Loop
End
PROGRAM CVAVR:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.5 Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 20/01/2011
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega8535
Program type : Application
Clock frequency : 8,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 10
#define ADC_VREF_TYPE 0×00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0×40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0×10)==0);
ADCSRA|=0×10;
return ADCW;
}
// Declare your global variables here
unsigned int dataadc;
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=0×00;
DDRA=0xff;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0×00;
UCSRB=0×08;
UCSRC=0×86;
UBRRH=0×00;
UBRRL=0×33;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 11
// ADC initialization
// ADC Clock frequency: 921,600 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0×83;
SFIOR&=0xEF;
while (1)
{
// Place your code here
dataadc=read_adc(0);
printf(“%drn”,dataadc);
delay_ms(500);
};
}
*Modul Depok Instruments yang Memudahkan Pembelajaran:
DI-Smart AVR System
DI-Smart Extension Board
DI-Smart AVR ISP
DI-Low Cost USB AVR ISP (USB AVR Downloader)
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 12
AVR “Menampilkan Karakter ke LCD”
Materi kali ini adalah pengendalian LCD 16X2 karakter yang dirangkaikan pada
PORTB dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L),
ATmega163(L), ATmega323(L)) seperti yang terlihat pada gambar berikut.
Gambar 5. Skematik Sismin Atmega8535 untuk menampilkan karakter ke LCD
Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami DI-
Smart AVR System dan DI-Smart LCD16X2 Board sebagai media praktik.
Adapun langkah-langkah dalam pembuatan sistemnya adalah sebagai berikut:
1. Modul yang dibutuhkan DI-Smart AVR System dan DI-Smart LCD16X2
Board. (Merangkai komponen-komponen sesuai dengan gambar skematik
rangkaian).
2. Hubungkan DI-Smart LCD16X2 Board pada PORTC DI-Smart AVR
System.
3. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada
kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam.
(Jika anda menyusun dari awal, maka pastikan sistem mendapatkan
tegangan 5V [VCC = 5V]).
4. Unduh skrip program berikut (menggunakan BASCOM):
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 13
$regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip ATmega8535
$crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada
rangkaian = 4MHz
„Jika anda menggunakan DI-Smart AVR System, maka crystal = 8000000 =
8MHz
Config Lcd = 16 * 2 „inisialisasi LCD 16X2
Const _lcdport = Portb „LCD port = portb
Const _lcdddr = Ddrb
Const _lcdin = Pinb
Const _lcd_e = 2 „LCD enable = portb.2
Const _lcd_rw = 1 „LCD rw = portb.2
Const _lcd_rs = 0 „LCD rs = portb.2
Cursor Off
Do „Looping Forever
Cls „bersihkan layar Lcd
Waitms 500 „tunda 500ms
Lcd ” Smart LCD16X2 ” „” Smart LCD16X2 ” di „baris atas
Lowerline „set Cursor di kolom „paling kiri, baris „bawah
Lcd “DepokInstruments” „”DepokInstruments” di „baris bawah
Waitms 1000 „delay 1000ms
Loop
End
*Modul Depok Instruments yang Memudahkan Pembelajaran:
DI-Smart AVR System
DI-Smart LCD16X2 Board
DI-Smart AVR ISP
DI-Low Cost USB AVR ISP (USB AVR Downloader)
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 14
Source Code CVAVR for RTC DS1307
#include <mega8535.h>
#include <stdio.h>
// I2C Bus functions
#asm
.equ __i2c_port=0×12 ;PORTD
.equ __sda_bit=5
.equ __scl_bit=4
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×18 ;PORTB
#endasm
#include <lcd.h>
// Declare your global variables here
unsigned char jm, mn, dt, tg, bl, th, bstr[16];
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=0×00;
DDRA=0×00;
// 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=0×00;
DDRB=0×00;
// 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
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 15
PORTC=0×00;
DDRC=0×00;
// 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=0×00;
DDRD=0×00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 16
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;
// I2C Bus initialization
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);
// LCD module initialization
lcd_init(20);
/*****setup time and date*****/
jm=12;mn=11;dt=00;
rtc_set_time(jm,mn,dt);
tg=26;bl=10;th=11;
rtc_set_date(tg,bl,th);
/*****************************/
while (1)
{
// Place your code here
rtc_get_time(&jm,&mn,&dt);
rtc_get_date(&tg,&bl,&th);
sprintf(bstr,”Time %02d:%02d:%02d”,jm,mn,dt);
lcd_gotoxy(0,0);
lcd_puts(bstr);
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 17
sprintf(bstr,”Date %02d-%02d-%02d”,tg,bl,th);
lcd_gotoxy(0,1);
lcd_puts(bstr);
};
}
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 18
Source Code CVAVR For DI-Smart KEY4X4 Input
(KEYPAD 4X4)
#include <mega8535.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×18 ;PORTB
#endasm
#include <lcd.h>
#define pinkey PINC
#define portkey PORTC
// Declare your global variables here
char datakey, buffer;
//program pembacaaan key apa yang ditekan oleh user
//keypad yang digunakan mengunakan metode scanning
char get_key(void)
{
buffer=‟-';
//portkey=0xFF;
delay_ms(1);
portkey.4=0;
delay_us(1); //untuk memberikan waktu pada mikrokontrolller mencapture
penekanan
if (pinkey.0==0) buffer=‟1′;
else if (pinkey.1==0) buffer=‟2′;
else if (pinkey.2==0) buffer=‟3′;
else if (pinkey.3==0) buffer=‟A';
portkey.4=1;
portkey.5=0;
delay_us(1);
if (pinkey.0==0) buffer=‟4′;
else if (pinkey.1==0) buffer=‟5′;
else if (pinkey.2==0) buffer=‟6′;
else if (pinkey.3==0) buffer=‟B';
portkey.5=1;
portkey.6=0;
delay_us(1);
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 19
if (pinkey.0==0) buffer=‟7′;
else if (pinkey.1==0) buffer=‟8′;
else if (pinkey.2==0) buffer=‟9′;
else if (pinkey.3==0) buffer=‟C';
portkey.6=1;
portkey.7=0;
delay_us(1);
if (pinkey.0==0) buffer=‟*';
else if (pinkey.1==0) buffer=‟0′;
else if (pinkey.2==0) buffer=‟#';
else if (pinkey.3==0) buffer=‟D';
portkey.7=1;
return buffer;
}
//fungsi untuk mendeteksi tombol selesai di tekan
void key_up (void)
{
portkey=0x0F;
delay_us(1);
while (pinkey != 0x0F);
delay_ms(10);
}
void main(void)
{
// 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=0×00;
DDRB=0×00;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In
Func0=In
// State7=1 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P
PORTC=0xFF;
DDRC=0xF0;
// LCD module initialization
lcd_init(16);
//program utama menampilkan penekanan tombol ke LCD
while (1)
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 20
lcd_clear();
{
// Place your code here
datakey=get_key();
if (datakey != „-‟) lcd_putchar(datakey); // key yang ditekan ditampilkan di LCD
key_up(); // tunggu sd key di-release (dilepas)
delay_ms(100);
};
}
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 21
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 22
Source Code BASCOM-AVR for SHT11
$regfile = “m8535.dat”
$crystal = 11059200
„$lib “lcd4busy.lib”
$baud = 9600
„Const _lcdport = Porta
„Const _lcdddr = Ddra
„Const _lcdin = Pina
„Const _lcd_e = 2
„Const _lcd_rw = 1
„Const _lcd_rs = 0
Ddrc = 255
Portc = 255
Ddra = 255
Porta = 255
„Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 =
Portc.7 , E = Portc.2 , Rs = Portc.3
„Config Lcd = 16 * 2
„Config Adc = Single , Prescaler = Auto , Reference = Avcc
„Start Adc
Dim Ctr As Byte
Dim Dataword As Word
Dim Command As Byte
Dim Dis As String * 20
Dim Calc As Single
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 23
Dim Calc2 As Single
Dim Rhlinear As Single
Dim Rhlintemp As Single
Dim Tempc As Single
Dim Tempf As Single
Dim A As Word , I As Integer
Sck Alias Portc.0
Dataout Alias Portc.1
Datain Alias Pinc.1
Declare Sub Getit()
Declare Sub Connectionreset
Call Connectionreset
Const C1 = -4
Const C2 = 0.0405
Const C3 = -0.0000028
Const T1c = 0.01
Const T2 = 0.00008
„Const T1f = .018
Do
„Cls
„Do „continually read the tempfature and
humidity
Command = &B00000011
Call Getit „Get the temperature, puts result in
“dataword” for us
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 24
‟Tempf = T1f * Dataword
‟Tempf = Tempf – 40
Tempc = T1c * Dataword ‟get celcius for later calculations
and for “the rest of the world”
Tempc = Tempc – 40
Dis = Fusing(tempc , “###.##”)
Print “Temp = ” ; Dis ; “C”
‟Lcd “Temp = ” ; Dis ; Chr(0) ; “C”
‟Portc = Tempc
‟Reset Portc.7
‟Porta = Tempc
‟Reset Porta.0
Waitms 250
‟Waitms 250
Command = &B00000101
Call Getit „get the humidity
Calc = C2 * Dataword
Calc2 = Dataword * Dataword „that “2″ in the datasheet sure
looked like a footnote for a couple days, nope it means “squared”!
Calc2 = C3 * Calc2
Calc = Calc + C1
Rhlinear = Calc + Calc2
Dis = Fusing(rhlinear , “##.##”)
Print “Humidity adjusted for linear = ” ; Dis
Calc = T2 * Dataword
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 25
Calc = Calc + T1c
Calc2 = Tempc – 25
Calc = Calc2 * Calc
Rhlintemp = Calc + Rhlinear
Dis = Fusing(rhlintemp , “##.##”)
Print “Humidity adjusted for temperature = ” ; Dis
Print
‟Locate 2 , 1
‟Lcd “Humi = ” ; Dis ; ” %”
‟Portc = Rhlintemp
‟Set Portc.7
‟Porta = Rhlintemp
‟Set Porta.7
Waitms 250
‟Waitms 250
Cls
Loop
Sub Connectionreset()
Ddrc = &B11111111 „all port b are output
Config Pinc.0 = Output ‟sck
Config Pinc.1 = Output „datain
Set Dataout
For Ctr = 1 To 10
Set Sck
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 26
Waitms 2
Reset Sck
Waitms 2
Next Ctr
Set Sck
Reset Dataout
Reset Sck
Set Sck
Set Dataout
Reset Sck
End Sub
Sub Getit()
Local Datavalue As Word
Local Databyte As Byte
‟start with “transmission start”
Set Sck
Reset Dataout
Reset Sck
Set Sck
Set Dataout
Reset Sck
‟now send the command
Shiftout Dataout , Sck , Command , 1
Ddrc = &B1111_1101 „datain is now input
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 27
Config Pinc.1 = Input „datain
Set Sck „click one more off
Reset Sck
Waitus 10 ‟no idea why, but it doesn‟t work
without it!
Bitwait Pinc.1 , Reset „wait for the chip to have data ready
Shiftin Datain , Sck , Databyte , 1 „get the MSB
Datavalue = Databyte
Ddrc = &B1111_1111
Config Pinc.1 = Output
Reset Dataout „this is the tricky part- Lot‟s of hair
pulling- have to tick the ack!
Set Sck
Reset Sck
Ddrc = &B1111_1101 „datain is now input
Config Pinc.1 = Input
Shiftin Datain , Sck , Databyte , 1 „get the LSB
Shift Datavalue , Left , 8
Datavalue = Datavalue Or Databyte
‟don‟t tick the clock or ack since we don‟t need the CRC value, leave it hanging!
Dataword = Datavalue
Ddrc = &B1111_1111
Config Pinc.1 = Output
Reset Dataout
Set Sck
Modul Belajar Atmega8535 by Kennedy 2013
Source : depokinstrument.com Page 28
Reset Sck
Ddrc = &B1111_1101 „datain is now input
Config Pinc.1 = Input
Shiftin Datain , Sck , Databyte , 1 „not using the CRC value for
now- can‟t figure it out! Anybody know how to impliment?
‟Print “CRC value was – ” ; Databyte
Ddrc = &B1111_1111
Config Pind.1 = Output
Set Dataout
Set Sck
Reset Sck
End Sub

Contenu connexe

Tendances

analisis sistem kendali 2
analisis sistem kendali 2analisis sistem kendali 2
analisis sistem kendali 2
Rumah Belajar
 
Model Matematis untuk Rangkaian Elektrik
Model Matematis untuk Rangkaian ElektrikModel Matematis untuk Rangkaian Elektrik
Model Matematis untuk Rangkaian Elektrik
Rumah Belajar
 
Desain Sistem Kendali dengan Respon Frekuensi
Desain Sistem Kendali dengan Respon FrekuensiDesain Sistem Kendali dengan Respon Frekuensi
Desain Sistem Kendali dengan Respon Frekuensi
Rumah Belajar
 

Tendances (20)

Pengantar PLC
Pengantar PLCPengantar PLC
Pengantar PLC
 
Menggunakan cx programmer
Menggunakan  cx programmerMenggunakan  cx programmer
Menggunakan cx programmer
 
Shift register dan data direction
Shift register dan data directionShift register dan data direction
Shift register dan data direction
 
analisis sistem kendali 2
analisis sistem kendali 2analisis sistem kendali 2
analisis sistem kendali 2
 
Dasar gerbang logika
Dasar gerbang logikaDasar gerbang logika
Dasar gerbang logika
 
Diagram blok
Diagram blokDiagram blok
Diagram blok
 
aplikasi PLC omron CP1L
aplikasi PLC omron CP1Laplikasi PLC omron CP1L
aplikasi PLC omron CP1L
 
Bab 5 komputer sederhana sap-1
Bab 5   komputer sederhana sap-1Bab 5   komputer sederhana sap-1
Bab 5 komputer sederhana sap-1
 
Dasar dasar mikrokontroler
Dasar dasar mikrokontrolerDasar dasar mikrokontroler
Dasar dasar mikrokontroler
 
5 peralatan otomasi industri
5 peralatan otomasi industri5 peralatan otomasi industri
5 peralatan otomasi industri
 
Transformasi Laplace
Transformasi LaplaceTransformasi Laplace
Transformasi Laplace
 
Model Matematis untuk Rangkaian Elektrik
Model Matematis untuk Rangkaian ElektrikModel Matematis untuk Rangkaian Elektrik
Model Matematis untuk Rangkaian Elektrik
 
Timer dan counter
Timer dan counterTimer dan counter
Timer dan counter
 
Modul pelatihan praktikum mikrokontroler dengan software proteus
Modul pelatihan praktikum mikrokontroler dengan software proteusModul pelatihan praktikum mikrokontroler dengan software proteus
Modul pelatihan praktikum mikrokontroler dengan software proteus
 
Prosessor SAP 1
Prosessor SAP 1Prosessor SAP 1
Prosessor SAP 1
 
Tugas Akhir Dasar Pemrograman
Tugas Akhir Dasar PemrogramanTugas Akhir Dasar Pemrograman
Tugas Akhir Dasar Pemrograman
 
Laporan praktikum mikrokontroler dengan led
Laporan praktikum mikrokontroler dengan ledLaporan praktikum mikrokontroler dengan led
Laporan praktikum mikrokontroler dengan led
 
Desain Sistem Kendali dengan Respon Frekuensi
Desain Sistem Kendali dengan Respon FrekuensiDesain Sistem Kendali dengan Respon Frekuensi
Desain Sistem Kendali dengan Respon Frekuensi
 
Bab 2 sistem kontrol
Bab 2 sistem kontrolBab 2 sistem kontrol
Bab 2 sistem kontrol
 
Pencacah biner
Pencacah biner Pencacah biner
Pencacah biner
 

Similaire à Modul ATmega8535 by muhammad kennedy ginting (Universitas Sumatera Utara)

Makalah mikroprosesor
Makalah mikroprosesorMakalah mikroprosesor
Makalah mikroprosesor
Aip Goper
 

Similaire à Modul ATmega8535 by muhammad kennedy ginting (Universitas Sumatera Utara) (20)

Mikrokontroler Atmega16 Lampu Deret Kedip-kedip
Mikrokontroler Atmega16 Lampu Deret Kedip-kedipMikrokontroler Atmega16 Lampu Deret Kedip-kedip
Mikrokontroler Atmega16 Lampu Deret Kedip-kedip
 
Makalah mikroprosesor
Makalah mikroprosesorMakalah mikroprosesor
Makalah mikroprosesor
 
Percobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVRPercobaan 12 led berbasis ATMega16 - BascomeAVR
Percobaan 12 led berbasis ATMega16 - BascomeAVR
 
Laporan Joystick
Laporan JoystickLaporan Joystick
Laporan Joystick
 
Menampilkan Karakter pada Lcd dengan Mikrokontroler ATMEGA16
Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16Menampilkan Karakter pada  Lcd dengan Mikrokontroler ATMEGA16
Menampilkan Karakter pada Lcd dengan Mikrokontroler ATMEGA16
 
Pembuatan Walking Robot Motor DC Dengan Program ATmega Maju Berhenti
Pembuatan Walking Robot Motor DC Dengan Program ATmega Maju BerhentiPembuatan Walking Robot Motor DC Dengan Program ATmega Maju Berhenti
Pembuatan Walking Robot Motor DC Dengan Program ATmega Maju Berhenti
 
Mikrokontroler io tombol dan led
Mikrokontroler io tombol dan ledMikrokontroler io tombol dan led
Mikrokontroler io tombol dan led
 
Sensor suhu LM 35
Sensor suhu LM 35Sensor suhu LM 35
Sensor suhu LM 35
 
Lampu Berjalan Dengan ATMega16
Lampu Berjalan Dengan ATMega16Lampu Berjalan Dengan ATMega16
Lampu Berjalan Dengan ATMega16
 
Rancangan led menyala bervariasi
Rancangan led menyala bervariasiRancangan led menyala bervariasi
Rancangan led menyala bervariasi
 
arsitektur mikrokontroler oertemuan ke 7
arsitektur mikrokontroler oertemuan ke 7arsitektur mikrokontroler oertemuan ke 7
arsitektur mikrokontroler oertemuan ke 7
 
Simulasi Traffic Light Perempatan dengan Kontrol AT-Mega 16
Simulasi Traffic Light Perempatan dengan Kontrol AT-Mega 16Simulasi Traffic Light Perempatan dengan Kontrol AT-Mega 16
Simulasi Traffic Light Perempatan dengan Kontrol AT-Mega 16
 
PROYEK1
PROYEK1PROYEK1
PROYEK1
 
Kuliah 3-mengenal avr
Kuliah 3-mengenal avrKuliah 3-mengenal avr
Kuliah 3-mengenal avr
 
Percobaan 12 led berbasis a tmega16
Percobaan 12 led berbasis a tmega16Percobaan 12 led berbasis a tmega16
Percobaan 12 led berbasis a tmega16
 
M I C R O C O N T R O L L E R 2009new
M I C R O C O N T R O L L E R 2009newM I C R O C O N T R O L L E R 2009new
M I C R O C O N T R O L L E R 2009new
 
Ppt robot dc rchd
Ppt robot dc rchdPpt robot dc rchd
Ppt robot dc rchd
 
robot motor dc
robot motor dc robot motor dc
robot motor dc
 
Walking Robot Menggunakan Atmega 16
Walking Robot Menggunakan Atmega 16Walking Robot Menggunakan Atmega 16
Walking Robot Menggunakan Atmega 16
 
Mikroprosesor dan mikrokontroler
Mikroprosesor dan mikrokontrolerMikroprosesor dan mikrokontroler
Mikroprosesor dan mikrokontroler
 

Plus de Muhammad Kennedy Ginting

Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
Muhammad Kennedy Ginting
 

Plus de Muhammad Kennedy Ginting (18)

Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
Tugas probstat paper analisa regresi dan korelasi by muhammad kennedy (120402...
 
Tugas dasar teknik digital (flip flop rs dan d)
Tugas dasar teknik digital (flip   flop rs dan d)Tugas dasar teknik digital (flip   flop rs dan d)
Tugas dasar teknik digital (flip flop rs dan d)
 
Presentasi interpolasi polinomial
Presentasi interpolasi polinomialPresentasi interpolasi polinomial
Presentasi interpolasi polinomial
 
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
 
Membuat voltmeter digital menggunakan icl7107 plz dengan tampilan 7 segment b...
Membuat voltmeter digital menggunakan icl7107 plz dengan tampilan 7 segment b...Membuat voltmeter digital menggunakan icl7107 plz dengan tampilan 7 segment b...
Membuat voltmeter digital menggunakan icl7107 plz dengan tampilan 7 segment b...
 
Rangkaian kutub empat by muhammad kennedy
Rangkaian kutub empat by muhammad kennedyRangkaian kutub empat by muhammad kennedy
Rangkaian kutub empat by muhammad kennedy
 
Modul pembelajaran rangkaian listrik by muhammad kennedy ginting
Modul pembelajaran rangkaian listrik by muhammad kennedy gintingModul pembelajaran rangkaian listrik by muhammad kennedy ginting
Modul pembelajaran rangkaian listrik by muhammad kennedy ginting
 
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
Laporan Laboratorium Dasar Pemrograman dengan Bahasa C by Muhammad Kennedy Gi...
 
Tutorial Penggunaan CodeVision AVR dengan Bahasa C
Tutorial Penggunaan CodeVision AVR dengan Bahasa CTutorial Penggunaan CodeVision AVR dengan Bahasa C
Tutorial Penggunaan CodeVision AVR dengan Bahasa C
 
Datasheet RTC DS1307 untuk waktu yang tepat pada mikrokontroler
Datasheet RTC DS1307 untuk waktu yang tepat pada mikrokontrolerDatasheet RTC DS1307 untuk waktu yang tepat pada mikrokontroler
Datasheet RTC DS1307 untuk waktu yang tepat pada mikrokontroler
 
Perintah - Perintah Yang Ada Pada LCD 2x16 by Muhammad Kennedy
Perintah - Perintah Yang Ada Pada LCD 2x16 by Muhammad KennedyPerintah - Perintah Yang Ada Pada LCD 2x16 by Muhammad Kennedy
Perintah - Perintah Yang Ada Pada LCD 2x16 by Muhammad Kennedy
 
Jenis - Jenis Perubahan Hutan (Pengetahuan Lingkungan) by Muhammad Kennedy
Jenis - Jenis Perubahan Hutan (Pengetahuan Lingkungan) by Muhammad KennedyJenis - Jenis Perubahan Hutan (Pengetahuan Lingkungan) by Muhammad Kennedy
Jenis - Jenis Perubahan Hutan (Pengetahuan Lingkungan) by Muhammad Kennedy
 
Modul praktikum instruksi dasar (automasi 1)
Modul praktikum instruksi dasar (automasi 1)Modul praktikum instruksi dasar (automasi 1)
Modul praktikum instruksi dasar (automasi 1)
 
Regulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy GintingRegulasi Tegangan by Muhammad Kennedy Ginting
Regulasi Tegangan by Muhammad Kennedy Ginting
 
Contoh modul rangkaian listrik dan percobaannya dalam laboratorium
Contoh modul rangkaian listrik dan percobaannya dalam laboratoriumContoh modul rangkaian listrik dan percobaannya dalam laboratorium
Contoh modul rangkaian listrik dan percobaannya dalam laboratorium
 
Contoh makalah line follower analog sederhana
Contoh makalah line follower analog sederhanaContoh makalah line follower analog sederhana
Contoh makalah line follower analog sederhana
 
Analisa mengenai dampak lingkungan (AMDAL)
Analisa mengenai dampak lingkungan (AMDAL)Analisa mengenai dampak lingkungan (AMDAL)
Analisa mengenai dampak lingkungan (AMDAL)
 
Tugas bahasa inggris tentang cultural heritage (warisan budaya) by Muhammad K...
Tugas bahasa inggris tentang cultural heritage (warisan budaya) by Muhammad K...Tugas bahasa inggris tentang cultural heritage (warisan budaya) by Muhammad K...
Tugas bahasa inggris tentang cultural heritage (warisan budaya) by Muhammad K...
 

Dernier

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
VinaAmelia23
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
rororasiputra
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
Arisatrianingsih
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
IftitahKartika
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
EnginerMine
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
arifyudianto3
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
yoodika046
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 

Dernier (19)

397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
397187784-Contoh-Kasus-Analisis-Regresi-Linear-Sederhana.pptx
 
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptxUTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
UTILITAS BANGUNAN BERUPA PENANGKAL PETIR.pptx
 
sample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Partsample for Flow Chart Permintaan Spare Part
sample for Flow Chart Permintaan Spare Part
 
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
Lecture 02 - Kondisi Geologi dan Eksplorasi Batubara untuk Tambang Terbuka - ...
 
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptxppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
ppt hidrolika_ARI SATRIA NINGSIH_E1A120026.pptx
 
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE TriwulanpptxLaporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
Laporan Tinjauan Manajemen HSE/Laporan HSE Triwulanpptx
 
perbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptxperbedaan jalan raya dan rel bahasa Indonesia.pptx
perbedaan jalan raya dan rel bahasa Indonesia.pptx
 
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdfPengolahan Kelapa Sawit 1 pabrik pks.pdf
Pengolahan Kelapa Sawit 1 pabrik pks.pdf
 
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.pptPresentasi gedung jenjang 6 - Isman Kurniawan.ppt
Presentasi gedung jenjang 6 - Isman Kurniawan.ppt
 
LAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdfLAJU RESPIRASI.teknologi hasil pertanianpdf
LAJU RESPIRASI.teknologi hasil pertanianpdf
 
PEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian KompetePEMELIHARAAN JEMBATAN pada Ujian Kompete
PEMELIHARAAN JEMBATAN pada Ujian Kompete
 
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).pptBAB_3_Teorema superposisi_thevenin_norton (1).ppt
BAB_3_Teorema superposisi_thevenin_norton (1).ppt
 
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
2024.02.26 - Pra-Rakor Tol IKN 3A-2 - R2 V2.pptx
 
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptxManajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
Manajer Lapangan Pelaksanaan Pekerjaan Gedung - Endy Aitya.pptx
 
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdfPengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
Pengeloaan Limbah NonB3 KLHK-Upik-090921.pdf
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdfB_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
B_Kelompok 4_Tugas 2_Arahan Pengelolaan limbah pertambangan Bauksit_PPT.pdf
 
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get CytotecAbortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
Abortion Pills In Doha // QATAR (+966572737505 ) Get Cytotec
 
Konsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifierKonsep rangkaian filter aktif berbasis operational amplifier
Konsep rangkaian filter aktif berbasis operational amplifier
 

Modul ATmega8535 by muhammad kennedy ginting (Universitas Sumatera Utara)

  • 1. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 1 AVR “The Introduction” AVR adalah single-chip mikrokontroler ber-arsitektur 8-bit RISC yang dikembangkan oleh Atmel pada tahun 1996. RISC, Reduced Instruction Set Computer, adalah teknologi kombinasi antara hardware (perangkat keras) dan software (perangkat lunak) pada mikrokontroler / mikroprosesor yang bertujuan untuk mempercepat mikrokontroler / mikroprosesor dalam melaksanakan suatu instruksi. Dalam RISC, suatu instruksi dibuat sederhana agar CPU dalam mikrokontroler / mikroprosesor dapat melaksanakan instruksi tersebut dengan hanya 1-clock oscillator, yang berarti lebih cepat dan lebih efisien dibandingkan teknologi pendahulunya CISC, Complex Instruction Set Computer. Diyakini bahwa dasar dari arsitektur AVR pada awalnya disusun oleh dua mahasiswa dari Norwegian Institute of Technology (NTH), Alf-Egil Bogen dan Vegard Wollan. Arsitektur mikrokontroler AVR kemudian dibeli dan dikembangkan oleh Atmel. Namun menurut Atmel, nama AVR tidak memiliki makna secara bahasa dan bukanlah singkatan dari apapun. Salah satu keluaran pertama dari produk mikrokontroler AVR milik Atmel yang dijual bebas adalah AT90S8515, yang merupakan chip dengan kemasan 40-pin DIP dengan pin I/O yang sama persis dengan mikrokontroler pendahulunya 8051, hanya saja memiliki aktivasi RESET yang berlawan (8051 memiliki aktivasi RESET dengan logika „1‟, sedangkan AT90S8515 aktivasi RESET berlogika „0‟) Gambar 1. Contoh Mikrokontroler AVR
  • 2. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 2 Mikrokontroler AVR secara umum dibagi menjadi 4 keluarga: tinyAVR; seri ATtiny o 0.5–8 kB memori program o 6–32-pin pada chip-nya megaAVR; seri ATmega o 4–256 kB memori program o 28–100-pin pada chip-nya XMEGA; seri ATxmega o 16–384 kB memori program o 44–64–100-pin pada chip-nya Aplication specific AVR; AVR dengan aplikasi khusus o megaAVR dengan fitur khusus yang tidak ditemukan di keluarga AVR yang lainya, seperti kendali LCD, kendali USB, dll.
  • 3. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 3 AVR “ATmega8535″ ATmega8535. Notasi tersebut adalah representasi dari sebuah mikrokontroler yang merupakan salah satu anggota keluarga AVR. Adalah ATMEL, perusahaan yang memproduksinya. Dengan arsitektur 8-Bit RISC berdaya rendah (Low-Power), dan fitur-fitur unggulan lainnya, ATmega8535 sangat efisien dan efektif untuk dijadikan pengendali utama dalam suatu sistem kendali. ATmega8535 memiliki kembaran, yaitu ATmega8535L. Perbedaannya hanya terletak dari besar minimal tegangan sumber yang diperlukan untuk berfungsi dan kecepatan maksimal dari tiap chip tersebut, seperti yang terlihat pada “Fitur-Fitur Mikrokontroler AVR ATmega8535(L)”: Fitur-Fitur Mikrokontroler AVR ATmega8535(L): 130 instruksi dengan mayoritas hanya 1 clock-cycle 100,000 kali kemampuan program-ulang 32 x 8-bit register (r0 – r31) 8K Byte Flash-ROM 512 Byte EEPROM 512 Byte Internal SRAM 4 x 8-bit Programmable I/O (Port A, Port B, Port C, Port D) 8-Kanal ADC 10-bit pada Port A Dua buah 8-bit Timer/Counters dengan Separate Prescalers dan Compare Modes Satu buah 16-bit Timer/Counter dengan Separate Prescalers, Compare Mode, dan Capture Mode Real Time Counter (RTC) dengan Osilator yang terpisah Gambar 2. Atmega 8535
  • 4. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 4 4-Kanal PWM Programmable Serial USART Master/Slave SPI Serial Interface • Tegangan Sumber – 2.7 – 5.5V untuk ATmega8535L – 4.5 – 5.5V untuk ATmega8535 • Kecepatan Maksimal – 0 – 8 MHz untuk ATmega8535L – 0 – 16 MHz untuk ATmega8535
  • 5. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 5 AVR “LED Control” Pada dasarnya setiap mikrokontroler memiliki bahasa dasar atau ASSEMBLER yang khusus diperuntukkan baginya. Begitu-pun dengan AVR. Namun berdasarkan pandangan kami, bahasa ASSEMBLER AVR lebih rumit untuk dipelajari dibandingkan dengan bahasa yang tingkatannya lebih tinggi, seperti bahasa “Basic” ataupun bahasa “C”. Karena itu, penjelasan kali ini adalah penggunaan bahasa “Basic” dengan menggunakan “BASCOM” sebagai program compiler-nya. Materi kali ini adalah pengendalian 8 buah LED yang dirangkaikan pada PORTC dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L), ATmega163(L), ATmega323(L)) seperti yang terlihat pada gambar berikut. Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami DI- Smart AVR System sebagai media praktik. Adapun langkah-langkah dalam pembuatan sistemnya adalah sebagai berikut: 1. Modul yang dibutuhkan DI-Smart AVR System. (Merangkai komponen- komponen sesuai dengan gambar skematik rangkaian). Gambar 3. Skematik Sismin Atmega8535 dengan Led Controller
  • 6. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 6 2. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam. (Jika anda menyusun dari awal, maka pastikan sistem mendapatkan tegangan 5V [VCC = 5V]). 3. Atur jumper JP3 pada posisi “LED CONNECTED” pada DI-Smart AVR System. 4. Unduh skrip program berikut (menggunakan BASCOM): $regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip ATmega8535 $crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada rangkaian = 4MHz „Jika anda menggunakan DI-Smart AVR System, maka crystal = 8000000 = 8MHz Config Portc = Output „Deklarasi PORTC sebagai output = keluaran LED „Membuat seluruh LED berkedip Portc = 0 „Nilai desimal 0 = seluruh pin Portc berlogika 0 = LED MENYALA Wait 1 „Waktu tunda = 1 detik Portc = 255 „Nilai desimal 255 = seluruh pin Portc berlogika 1 = LED PADAM Wait 1 Portc = &B1111_1110 „LED L0 = menyala (&B = Biner) Do Rotate Portc , Left , 1 „Data pada Portc digeser ke kiri sebanyak 1-bit Waitms 500 „Tunda selama 500ms Loop „Loop seterusnya End *Modul Depok Instruments yang Memudahkan Pembelajaran: DI-Smart AVR System DI-Smart AVR ISP DI-Low Cost USB AVR ISP (USB AVR Downloader)
  • 7. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 7 AVR “Membaca Input ADC dan Ditampilkan di Komputer” Materi kali ini adalah membaca input tegangan analog (0-5V) pada PORTA.0 dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L), ATmega163(L), ATmega323(L)) kemudian mengirimkan data tersebut ke serial komputer (DB9) untuk dibaca. Rangkaian yang diperlukan seperti yang terlihat pada gambar berikut. Gambar 4. Skematik Sismin Atmega8535 untuk membaca Input ADC
  • 8. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 8 Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami, DI- Smart AVR System, sebagai media praktik. Adapun langkah-langkah dalam pembuatan sistemnya adalah sebagai berikut: 1. Modul yang dibutuhkan DI-Smart AVR System, DI-Smart Extension Board, dan DI-Cable Serial. (Merangkai komponen-komponen sesuai dengan gambar skematik rangkaian). 2. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam. (Jika anda menyusun dari awal, maka pastikan sistem mendapatkan tegangan 5V [VCC = 5V]). 3. Hubungkan DI-Smart Extension Board dengan PORTA DI-Smart AVR System. 4. Hubungkan input analog dengan salah satu terminal pada DI-Smart Extension Board (pada contoh digunakan terminal PORTA.0). 5. Hubungkan DI-Cable Serial dengan port serial dari DI-Smart AVR System dan komputer. 6. Atur jumper JP1 pada posisi “RXD SERIAL PORT”. 7. Atur jumper JP2 pada posisi “TXD SERIAL PORT”. 8. Aktifkan program Hyper Terminal pada PC/LAPTOP, baudrate = 9600 bps. 9. Unduh skrip program berikut (menggunakan BASCOM atau yang CVAVR): PROGRAM BASCOM: $regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip ATmega8535 $crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada rangkaian = 4MHz „Jika anda menggunakan DI-Smart AVR System, maka crystal = 11059200 = 11.0592MHz $baud = 9600 „penge-set-an baudrate, dan yang digunakan adalah 9600 bps „inisialisasi ADC: Config Adc = Single , Prescaler = Auto
  • 9. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 9 Start Adc Dim Data_adc As Word „memesan variable Data_adc bertipe word Do „Data adc pada kanal-0 (PORTA.0) disimpan dalam variabel Data_adc Data_adc = Getadc(0) „Kirim Data_adc ke serial port, „chr(13) meletakkan kursor pada posisi paling kiri tampilan Print Data_adc ; Chr(13); Waitms 500 „Tunda selama 500ms (0.5 detik) Loop End PROGRAM CVAVR: /***************************************************** This program was produced by the CodeWizardAVR V2.03.5 Evaluation Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 20/01/2011 Author : Freeware, for evaluation and non-commercial use only Company : Comments: Chip type : ATmega8535 Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 128 *****************************************************/ #include <mega8535.h> // Standard Input/Output functions #include <stdio.h> #include <delay.h>
  • 10. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 10 #define ADC_VREF_TYPE 0×00 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0×40; // Wait for the AD conversion to complete while ((ADCSRA & 0×10)==0); ADCSRA|=0×10; return ADCW; } // Declare your global variables here unsigned int dataadc; 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=0×00; DDRA=0xff; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0×00; UCSRB=0×08; UCSRC=0×86; UBRRH=0×00; UBRRL=0×33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0×80; SFIOR=0×00;
  • 11. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 11 // ADC initialization // ADC Clock frequency: 921,600 kHz // ADC Voltage Reference: AREF pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0×83; SFIOR&=0xEF; while (1) { // Place your code here dataadc=read_adc(0); printf(“%drn”,dataadc); delay_ms(500); }; } *Modul Depok Instruments yang Memudahkan Pembelajaran: DI-Smart AVR System DI-Smart Extension Board DI-Smart AVR ISP DI-Low Cost USB AVR ISP (USB AVR Downloader)
  • 12. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 12 AVR “Menampilkan Karakter ke LCD” Materi kali ini adalah pengendalian LCD 16X2 karakter yang dirangkaikan pada PORTB dari ATmega8535(L) (bisa pula untuk IC ATmega16(L), ATmega32(L), ATmega163(L), ATmega323(L)) seperti yang terlihat pada gambar berikut. Gambar 5. Skematik Sismin Atmega8535 untuk menampilkan karakter ke LCD Untuk memudahkan pembelajaran, sebaiknya menggunakan modul kami DI- Smart AVR System dan DI-Smart LCD16X2 Board sebagai media praktik. Adapun langkah-langkah dalam pembuatan sistemnya adalah sebagai berikut: 1. Modul yang dibutuhkan DI-Smart AVR System dan DI-Smart LCD16X2 Board. (Merangkai komponen-komponen sesuai dengan gambar skematik rangkaian). 2. Hubungkan DI-Smart LCD16X2 Board pada PORTC DI-Smart AVR System. 3. Hubungkan adaptor DC pada JACK-DC. Tetapkan tegangan adaptor pada kisaran 9 s/d 12 VDC. Pastikan kutub positif berada pada bagian dalam. (Jika anda menyusun dari awal, maka pastikan sistem mendapatkan tegangan 5V [VCC = 5V]). 4. Unduh skrip program berikut (menggunakan BASCOM):
  • 13. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 13 $regfile = “m8535.dat” „Lokasi source code BASCOM untuk chip ATmega8535 $crystal = 4000000 „Sesuai dengan xtal0 = crystal yang digunakan pada rangkaian = 4MHz „Jika anda menggunakan DI-Smart AVR System, maka crystal = 8000000 = 8MHz Config Lcd = 16 * 2 „inisialisasi LCD 16X2 Const _lcdport = Portb „LCD port = portb Const _lcdddr = Ddrb Const _lcdin = Pinb Const _lcd_e = 2 „LCD enable = portb.2 Const _lcd_rw = 1 „LCD rw = portb.2 Const _lcd_rs = 0 „LCD rs = portb.2 Cursor Off Do „Looping Forever Cls „bersihkan layar Lcd Waitms 500 „tunda 500ms Lcd ” Smart LCD16X2 ” „” Smart LCD16X2 ” di „baris atas Lowerline „set Cursor di kolom „paling kiri, baris „bawah Lcd “DepokInstruments” „”DepokInstruments” di „baris bawah Waitms 1000 „delay 1000ms Loop End *Modul Depok Instruments yang Memudahkan Pembelajaran: DI-Smart AVR System DI-Smart LCD16X2 Board DI-Smart AVR ISP DI-Low Cost USB AVR ISP (USB AVR Downloader)
  • 14. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 14 Source Code CVAVR for RTC DS1307 #include <mega8535.h> #include <stdio.h> // I2C Bus functions #asm .equ __i2c_port=0×12 ;PORTD .equ __sda_bit=5 .equ __scl_bit=4 #endasm #include <i2c.h> // DS1307 Real Time Clock functions #include <ds1307.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0×18 ;PORTB #endasm #include <lcd.h> // Declare your global variables here unsigned char jm, mn, dt, tg, bl, th, bstr[16]; 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=0×00; DDRA=0×00; // 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=0×00; DDRB=0×00; // 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
  • 15. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 15 PORTC=0×00; DDRC=0×00; // 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=0×00; DDRD=0×00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0×00; TCNT0=0×00; OCR0=0×00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0×00; TCCR1B=0×00; TCNT1H=0×00; TCNT1L=0×00; ICR1H=0×00; ICR1L=0×00; OCR1AH=0×00; OCR1AL=0×00; OCR1BH=0×00; OCR1BL=0×00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0×00;
  • 16. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 16 TCCR2=0×00; TCNT2=0×00; OCR2=0×00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0×00; MCUCSR=0×00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0×00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0×80; SFIOR=0×00; // I2C Bus initialization 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); // LCD module initialization lcd_init(20); /*****setup time and date*****/ jm=12;mn=11;dt=00; rtc_set_time(jm,mn,dt); tg=26;bl=10;th=11; rtc_set_date(tg,bl,th); /*****************************/ while (1) { // Place your code here rtc_get_time(&jm,&mn,&dt); rtc_get_date(&tg,&bl,&th); sprintf(bstr,”Time %02d:%02d:%02d”,jm,mn,dt); lcd_gotoxy(0,0); lcd_puts(bstr);
  • 17. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 17 sprintf(bstr,”Date %02d-%02d-%02d”,tg,bl,th); lcd_gotoxy(0,1); lcd_puts(bstr); }; }
  • 18. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 18 Source Code CVAVR For DI-Smart KEY4X4 Input (KEYPAD 4X4) #include <mega8535.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0×18 ;PORTB #endasm #include <lcd.h> #define pinkey PINC #define portkey PORTC // Declare your global variables here char datakey, buffer; //program pembacaaan key apa yang ditekan oleh user //keypad yang digunakan mengunakan metode scanning char get_key(void) { buffer=‟-'; //portkey=0xFF; delay_ms(1); portkey.4=0; delay_us(1); //untuk memberikan waktu pada mikrokontrolller mencapture penekanan if (pinkey.0==0) buffer=‟1′; else if (pinkey.1==0) buffer=‟2′; else if (pinkey.2==0) buffer=‟3′; else if (pinkey.3==0) buffer=‟A'; portkey.4=1; portkey.5=0; delay_us(1); if (pinkey.0==0) buffer=‟4′; else if (pinkey.1==0) buffer=‟5′; else if (pinkey.2==0) buffer=‟6′; else if (pinkey.3==0) buffer=‟B'; portkey.5=1; portkey.6=0; delay_us(1);
  • 19. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 19 if (pinkey.0==0) buffer=‟7′; else if (pinkey.1==0) buffer=‟8′; else if (pinkey.2==0) buffer=‟9′; else if (pinkey.3==0) buffer=‟C'; portkey.6=1; portkey.7=0; delay_us(1); if (pinkey.0==0) buffer=‟*'; else if (pinkey.1==0) buffer=‟0′; else if (pinkey.2==0) buffer=‟#'; else if (pinkey.3==0) buffer=‟D'; portkey.7=1; return buffer; } //fungsi untuk mendeteksi tombol selesai di tekan void key_up (void) { portkey=0x0F; delay_us(1); while (pinkey != 0x0F); delay_ms(10); } void main(void) { // 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=0×00; DDRB=0×00; // Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In // State7=1 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P PORTC=0xFF; DDRC=0xF0; // LCD module initialization lcd_init(16); //program utama menampilkan penekanan tombol ke LCD while (1)
  • 20. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 20 lcd_clear(); { // Place your code here datakey=get_key(); if (datakey != „-‟) lcd_putchar(datakey); // key yang ditekan ditampilkan di LCD key_up(); // tunggu sd key di-release (dilepas) delay_ms(100); }; }
  • 21. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 21
  • 22. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 22 Source Code BASCOM-AVR for SHT11 $regfile = “m8535.dat” $crystal = 11059200 „$lib “lcd4busy.lib” $baud = 9600 „Const _lcdport = Porta „Const _lcdddr = Ddra „Const _lcdin = Pina „Const _lcd_e = 2 „Const _lcd_rw = 1 „Const _lcd_rs = 0 Ddrc = 255 Portc = 255 Ddra = 255 Porta = 255 „Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3 „Config Lcd = 16 * 2 „Config Adc = Single , Prescaler = Auto , Reference = Avcc „Start Adc Dim Ctr As Byte Dim Dataword As Word Dim Command As Byte Dim Dis As String * 20 Dim Calc As Single
  • 23. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 23 Dim Calc2 As Single Dim Rhlinear As Single Dim Rhlintemp As Single Dim Tempc As Single Dim Tempf As Single Dim A As Word , I As Integer Sck Alias Portc.0 Dataout Alias Portc.1 Datain Alias Pinc.1 Declare Sub Getit() Declare Sub Connectionreset Call Connectionreset Const C1 = -4 Const C2 = 0.0405 Const C3 = -0.0000028 Const T1c = 0.01 Const T2 = 0.00008 „Const T1f = .018 Do „Cls „Do „continually read the tempfature and humidity Command = &B00000011 Call Getit „Get the temperature, puts result in “dataword” for us
  • 24. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 24 ‟Tempf = T1f * Dataword ‟Tempf = Tempf – 40 Tempc = T1c * Dataword ‟get celcius for later calculations and for “the rest of the world” Tempc = Tempc – 40 Dis = Fusing(tempc , “###.##”) Print “Temp = ” ; Dis ; “C” ‟Lcd “Temp = ” ; Dis ; Chr(0) ; “C” ‟Portc = Tempc ‟Reset Portc.7 ‟Porta = Tempc ‟Reset Porta.0 Waitms 250 ‟Waitms 250 Command = &B00000101 Call Getit „get the humidity Calc = C2 * Dataword Calc2 = Dataword * Dataword „that “2″ in the datasheet sure looked like a footnote for a couple days, nope it means “squared”! Calc2 = C3 * Calc2 Calc = Calc + C1 Rhlinear = Calc + Calc2 Dis = Fusing(rhlinear , “##.##”) Print “Humidity adjusted for linear = ” ; Dis Calc = T2 * Dataword
  • 25. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 25 Calc = Calc + T1c Calc2 = Tempc – 25 Calc = Calc2 * Calc Rhlintemp = Calc + Rhlinear Dis = Fusing(rhlintemp , “##.##”) Print “Humidity adjusted for temperature = ” ; Dis Print ‟Locate 2 , 1 ‟Lcd “Humi = ” ; Dis ; ” %” ‟Portc = Rhlintemp ‟Set Portc.7 ‟Porta = Rhlintemp ‟Set Porta.7 Waitms 250 ‟Waitms 250 Cls Loop Sub Connectionreset() Ddrc = &B11111111 „all port b are output Config Pinc.0 = Output ‟sck Config Pinc.1 = Output „datain Set Dataout For Ctr = 1 To 10 Set Sck
  • 26. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 26 Waitms 2 Reset Sck Waitms 2 Next Ctr Set Sck Reset Dataout Reset Sck Set Sck Set Dataout Reset Sck End Sub Sub Getit() Local Datavalue As Word Local Databyte As Byte ‟start with “transmission start” Set Sck Reset Dataout Reset Sck Set Sck Set Dataout Reset Sck ‟now send the command Shiftout Dataout , Sck , Command , 1 Ddrc = &B1111_1101 „datain is now input
  • 27. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 27 Config Pinc.1 = Input „datain Set Sck „click one more off Reset Sck Waitus 10 ‟no idea why, but it doesn‟t work without it! Bitwait Pinc.1 , Reset „wait for the chip to have data ready Shiftin Datain , Sck , Databyte , 1 „get the MSB Datavalue = Databyte Ddrc = &B1111_1111 Config Pinc.1 = Output Reset Dataout „this is the tricky part- Lot‟s of hair pulling- have to tick the ack! Set Sck Reset Sck Ddrc = &B1111_1101 „datain is now input Config Pinc.1 = Input Shiftin Datain , Sck , Databyte , 1 „get the LSB Shift Datavalue , Left , 8 Datavalue = Datavalue Or Databyte ‟don‟t tick the clock or ack since we don‟t need the CRC value, leave it hanging! Dataword = Datavalue Ddrc = &B1111_1111 Config Pinc.1 = Output Reset Dataout Set Sck
  • 28. Modul Belajar Atmega8535 by Kennedy 2013 Source : depokinstrument.com Page 28 Reset Sck Ddrc = &B1111_1101 „datain is now input Config Pinc.1 = Input Shiftin Datain , Sck , Databyte , 1 „not using the CRC value for now- can‟t figure it out! Anybody know how to impliment? ‟Print “CRC value was – ” ; Databyte Ddrc = &B1111_1111 Config Pind.1 = Output Set Dataout Set Sck Reset Sck End Sub