Top Banner
Modul Belajar Atmega8535 by Kennedy 201 3 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. Source : depokinstrument.com Page 1
39

Modula t Mega 8535

Jan 20, 2016

Download

Documents

tutorial
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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’)

Source : depokinstrument.com Page 1

Gambar 1. Contoh Mikrokontroler AVR

Page 2: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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.

Source : depokinstrument.com Page 2

Page 3: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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

Source : depokinstrument.com Page 3

Gambar 2. Atmega 8535

Page 4: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

Capture Mode

Real Time Counter (RTC) dengan Osilator yang terpisah

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

Source : depokinstrument.com Page 4

Page 5: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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.

Source : depokinstrument.com Page 5

Gambar 3. Skematik Sismin Atmega8535 dengan Led Controller

Page 6: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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).

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 berkedipPortc = 0                           ‘Nilai desimal 0 = seluruh pin Portc berlogika 0 = LED MENYALAWait 1                               ‘Waktu tunda = 1 detikPortc = 255                       ‘Nilai desimal 255 = seluruh pin Portc berlogika 1 = LED PADAMWait 1

Portc = &B1111_1110         ‘LED L0 = menyala (&B = Biner)

DoRotate Portc , Left , 1         ‘Data pada Portc digeser ke kiri sebanyak 1-bitWaitms 500                       ‘Tunda selama 500msLoop                                 ‘Loop seterusnyaEnd

*Modul Depok Instruments yang Memudahkan Pembelajaran:

Source : depokinstrument.com Page 6

Page 7: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

DI-Smart AVR System

DI-Smart AVR ISP

DI-Low Cost USB AVR ISP (USB AVR Downloader)

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.

Source : depokinstrument.com Page 7Gambar 4. Skematik Sismin Atmega8535 untuk membaca Input ADC

Page 8: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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

Source : depokinstrument.com Page 8

Page 9: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

Start AdcDim Data_adc As Word    ‘memesan variable Data_adc bertipe word

Do

‘Data adc pada kanal-0 (PORTA.0) disimpan dalam variabel Data_adcData_adc = Getadc(0)

‘Kirim Data_adc ke serial port,‘chr(13) meletakkan kursor pada posisi paling kiri tampilanPrint Data_adc ; Chr(13);

Waitms 500     ‘Tunda selama 500ms (0.5 detik)

Loop End

PROGRAM CVAVR:

/*****************************************************This program was produced by theCodeWizardAVR V2.03.5 EvaluationAutomatic Program Generator© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :Version :Date    : 20/01/2011Author  : Freeware, for evaluation and non-commercial use onlyCompany :Comments:

Chip type           : ATmega8535Program type        : ApplicationClock frequency     : 8,000000 MHzMemory model        : SmallExternal RAM size   : 0Data Stack size     : 128*****************************************************/

#include <mega8535.h>

// Standard Input/Output functions#include <stdio.h>

Source : depokinstrument.com Page 9

Page 10: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

#include <delay.h>

#define ADC_VREF_TYPE 0×00

// Read the AD conversion resultunsigned int read_adc(unsigned char adc_input){ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);// Delay needed for the stabilization of the ADC input voltagedelay_us(10);// Start the AD conversionADCSRA|=0×40;// Wait for the AD conversion to completewhile ((ADCSRA & 0×10)==0);ADCSRA|=0×10;return ADCW;}

// Declare your global variables hereunsigned 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=TPORTA=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: 9600UCSRA=0×00;UCSRB=0×08;UCSRC=0×86;UBRRH=0×00;UBRRL=0×33;

// Analog Comparator initialization// Analog Comparator: Off

Source : depokinstrument.com Page 10

Page 11: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0×80;SFIOR=0×00;

// ADC initialization// ADC Clock frequency: 921,600 kHz// ADC Voltage Reference: AREF pin// ADC High Speed Mode: Off// ADC Auto Trigger Source: NoneADMUX=ADC_VREF_TYPE & 0xff;ADCSRA=0×83;SFIOR&=0xEF;

while (1){// Place your code heredataadc=read_adc(0);printf(“%d\r\n”,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)

Source : depokinstrument.com Page 11

Page 12: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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.

Source : depokinstrument.com Page 12

Page 13: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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):

$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 16X2Const _lcdport = Portb  ‘LCD port = portbConst _lcdddr = DdrbConst _lcdin = PinbConst _lcd_e = 2       ‘LCD enable = portb.2Const _lcd_rw = 1 ‘LCD rw = portb.2Const _lcd_rs = 0 ‘LCD rs = portb.2

Cursor Off

Do    ‘Looping Forever

Cls   ‘bersihkan layar LcdWaitms 500  ‘tunda 500ms

Lcd ” Smart LCD16X2 ” ‘” Smart LCD16X2 ” di ‘baris atasLowerline   ‘set Cursor di kolom ‘paling kiri, baris ‘bawahLcd “DepokInstruments”      ‘”DepokInstruments” di ‘baris bawahWaitms 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)

Source : depokinstrument.com Page 13

Page 14: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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 hereunsigned 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=TPORTA=0×00;DDRA=0×00;

Source : depokinstrument.com Page 14

Page 15: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

// 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=TPORTB=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=TPORTC=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=TPORTD=0×00;DDRD=0×00;

// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=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: OffTCCR1A=0×00;TCCR1B=0×00;TCNT1H=0×00;TCNT1L=0×00;ICR1H=0×00;

Source : depokinstrument.com Page 15

Page 16: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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: DisconnectedASSR=0×00;TCCR2=0×00;TCNT2=0×00;OCR2=0×00;

// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0×00;MCUCSR=0×00;

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0×00;

// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0×80;SFIOR=0×00;

// I2C Bus initializationi2c_init();

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

// LCD module initializationlcd_init(20);

/*****setup time and date*****/jm=12;mn=11;dt=00;rtc_set_time(jm,mn,dt);

Source : depokinstrument.com Page 16

Page 17: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

tg=26;bl=10;th=11;rtc_set_date(tg,bl,th);/*****************************/

while (1){// Place your code herertc_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);

sprintf(bstr,”Date %02d-%02d-%02d”,tg,bl,th);lcd_gotoxy(0,1);lcd_puts(bstr);};}

Source : depokinstrument.com Page 17

Page 18: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

Rangkaian Minimum ATmega 8535/16/32Diposting oleh : acep sopian

Kategori: Modul Robotic - Dibaca: 2727 kali

Dalam merancang sistem minimum mikrokontroler diperlukan bebarapa komponen antara lain:

1. Mikrokontroller ATmega8535/16/32 berfungsi sebagai chip

2. Socket 2x20 berfungsi sebagai tempat chip

3. Resistor 4K7 berfungsi sebagai resistor pull up untuk tombol reset

4. Push button sebagai tombol reset

5. Capasitor 100uf

6. Capasitor 22pf

7. Xtall (Crystal) untuk osilasi eksternal

Agar mikrokontroler bekerja tentunya memerlukan supply tegangan dan tegangan kerja untuk

mikrokontroller itu kurang lebih sebesar 5 volt, jadi kita memerlukan lagi rangkain power supply

untuk supply tegangan.

 

Source : depokinstrument.com Page 18

Page 19: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

List komponen :

1. Dioda Bridge sebagai penyearah

2. LED sebagai indikator 

3. Resistor 1K

4. Capasitor 2200 uf

5. IC Regulator 7805 sebagai penstabil tegangan keluaran

Setelah semua sudah lengkap selanjutnya dapat kamu buat design layout untuk kita cetak pada

papan PCB seperti gambar di bawah:

 

 

 

 

Source : depokinstrument.com Page 19

Page 20: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

Rangkaian Minimum Sistem AVR Atmega8535

Posted on 11/05/2013 by mikroelektroniika

Dalam suatu project atau rangkaian elektronika AVR mikrokontroler akan berfungsi dengan baik jika dirangkai dengan sistem minimum pada chip AVR agar bekerja dengan optimal. Pada postingan terdahulu, digambarkan konfigurasi pin mikrokontroler Atmega8535. Pada pin 12 dan pin 13 adalah pin Crystal eksternal yang harus dirangkaikan dengan Crystal sebagai sumber clock eksternal pada chip Atmega8535. Dan pada pin 9 adalah pin RESET yang harus dirangkaikan dengan rangkaian reset, yang berfungsi sebagai pe-RESET program apabila terjadi error saat program berjalan.

 Komponen yang dibutuhkan untuk rangkaian sumber clock eksternal adalah :

1 buah Crystal 8 MHz atau 11.0592 MHz sesuai dengan kebutuhan chip AVR

2 buah Kapasitor 22nF

Dan komponen yang dibutuhkan untuk rangkaian Reset adalah :

1 buah Resistor 10K 1 buah Kapasitor Elco 10uF 1 buah Push Button sebagai tombol Reset

Untuk rangkaiannya digambarkan sebagai berikut :

Source : depokinstrument.com Page 20

Page 21: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

http://mikroelektroniika.wordpress.com/2013/05/11/rangkaian-minimum-sistem-avr-atmega8535/

http://www.robotbandung.com/berita-19-rangkaian-minimum-atmega-85351632.html

http://depokinstruments.com/tag/rangkaian-sistem-minimum-avr-atmega8535/

Source : depokinstrument.com Page 21

Page 22: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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 herechar datakey, buffer;

//program pembacaaan key apa yang ditekan oleh user//keypad yang digunakan mengunakan metode scanning

Source : depokinstrument.com Page 22

Page 23: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

char get_key(void){buffer=’-';//portkey=0xFF;delay_ms(1);

portkey.4=0;delay_us(1); //untuk memberikan waktu pada mikrokontrolller mencapture penekananif (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);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;

Source : depokinstrument.com Page 23

Page 24: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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=TPORTB=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=PPORTC=0xFF;DDRC=0xF0;

// LCD module initializationlcd_init(16);

//program utama menampilkan penekanan tombol ke LCDwhile (1)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);};}

Source : depokinstrument.com Page 24

Page 25: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

Source : depokinstrument.com Page 25

Page 26: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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

Source : depokinstrument.com Page 26

Page 27: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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

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()

Source : depokinstrument.com Page 27

Page 28: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

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

 ’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

Source : depokinstrument.com Page 28

Page 29: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

 ’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

 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 ; ” %”

Source : depokinstrument.com Page 29

Page 30: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

 ’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

 Waitms 2

 Reset Sck

 Waitms 2

Next Ctr

 Set Sck

 Reset Dataout

 Reset Sck

 Set Sck

 Set Dataout

Source : depokinstrument.com Page 30

Page 31: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

 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

 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

Source : depokinstrument.com Page 31

Page 32: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

 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

 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

Source : depokinstrument.com Page 32

Page 33: Modula t Mega 8535

Modul Belajar Atmega8535 by Kennedy 2013

 Set Sck

 Reset Sck

End Sub

Source : depokinstrument.com Page 33