Nim Adc

  • Uploaded by: Nurul Furqon Rohmat
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Nim Adc as PDF for free.

More details

  • Words: 1,024
  • Pages: 19
Laporan Microcontroler “Menampilkan NIM pada 7 segmen dengan kendali level tegangan ”

Disusun oleh: Kelompok : Maxtor Adi Pramono (2B / 01 / 0731130019 ) Lina Ernani (2B / 15 / 0731130046) Nurul Furqon R (2B / 20 / 0731130073)

JURUSAN TEKNIK ELEKTRO

PROGRAM STUDI TEKNIK TELEKOMUNIKASI

POLITEKNIK NEGERI MALANG 2008

A. Tujuan 1. Menampilkan NIM pada 7 segmen common anoda dengan kendali

microcontroler Atmega 8535. 2. Mengetahui cara menampilkan angka pada 7 segmen yang ditulis dalam

hexadecimal. 3. Pemprograman bahasa C untuk memprogram microcontroller AT mega 8535 dengan bantuan Code Vision AVR. 4. Memprogram microcontroller Atmega 8535 sebagai Analog to Digital

converter. B. Teori dasar input output 7 segmen common anoda piranti display yang mempuyai input dalam bentuk level tegangan , jika tegangan pada pin tersebut adalah “high” maka led yang terhubung pada pin tersebut mati dan sebaliknya jika tegangan pada pin tersebut “low” maka led yang tersebut akan menyala. Logika diatas dapat kita gunakan untuk mengkontrol 7 segmen untuk menanmpilkan angka sesuai dengan kebutuhan kita dengan menggunakan kontrol microcontroller Atmega 8535. Dengan menghubungkan salah satu port I/O microcontroller pada 7 segmen kita dapat mengatur logika pin yang ada pada port I/O ter sebut sehingga menampilkan angka pada 7 segmen sesuai dengan kebutuhan kita. Dibawah ini adalah tabel hubungan antara angka hexadecimal microcontroller dan output tampilan pada 7 segmen display.

Nyala

0

P P P P P P P P Mati 1 7 6 5 4 3 2 1 0 tampilan desim hexadesi al mal . g f e d c b a 7 segmen 1 0xF9 1 1 1 1 1 0 0 1

b

c

2 0xA4

1

0

1

0

0

1

0

0

a

b e g

d

3 0xB0

1

0

1

1

0

0

0

0

a

b

c

d

f b

g c

4 0x99 5 0x92

1 1

0 0

0 0

1 1

1 0

0 0

0 1

1 0

a

f

g c

d

6 0x82

1

0

0

0

0

0

1

0

a

f

e g c

d

1 0xF8 7

1

1

1

1

0

0

0

a

b

c

8 0x80

1

0

0

0

0

0

0

0

a

f b e g c

d

9 0x90

1

0

0

1

0

0

0

0

a

f b

g c

d

0 0xC0

1

1

0

0

0

0

0

0

a

f b e c

d

Jika kita menghubungan pin input pada suatu rangkaian analog untuk diambil level tegangannya, kemudian kita memprogram microcontroller sebagai ADC ( Analog to Digital Converter ), maka nilai tegangan analog tersebut akan di konversi menjadi tegangan dalam bentuk sinyal digital dengan menggunakan metode sampling kemudian hasil sampling tersebut dikuantisasi terhadap tegangan referensi. Hasil tersebut dikodekan dalam bentuk kode biner dan disimpan dalam suatu register. Jika pernyataan diatas, kita membuat suatu perintah pengendali NIM yang ditampilkan pada 7 segmen dengan cara membaca kode biner dalam register tersebut, jika nilai biner tersebut mempunyai nilai yang telah ditetapkan, maka output akan menampilkan NIM sesuai yang kita inginkan. C. Gambar Rangkaian

D. Flow Char

start

Input pin ADC.0

Process conversi ADC (ADCH)

Level=ADCH

F Level<0x64

T

Level>0x64 & level>0xc8

F

F T

Level>0xc8

T

Tampilkan NIM 0731130073

E. Program

Tampilkan NIM 0731130046

Tampilkan NIM 0731130019

#include <mega8535.h> #include <delay.h> void nim (unsigned char level); unsigned char level; void main(void) { PORTB=0x00; DDRB=0xff; ADMUX=0x60; ADCSRA=0x84; SFIOR=0x1f; while(1) { ADMUX=0x00|0x60; ADCSRA|=0x40; while((ADCSRA&0x10)==0); { ADCSRA|=0x10; level=ADCH; nim (level); }; }; } void nim (unsigned char level) { if (level<0x64) //furqon { PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf8; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850);

PORTB=0xff; delay_ms(450); PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf8; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(2500);} else if((level>0x64)&&(level<0xc8)) { PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf8; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(450);

//ninet

PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0x99; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0x82; delay_ms(850); PORTB=0xff; delay_ms(2500); }

else if (level>0xc8) { PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf8; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xf9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xb0; delay_ms(850); PORTB=0xff; delay_ms(450);

//adi

PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xc0; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0xF9; delay_ms(850); PORTB=0xff; delay_ms(450); PORTB=0x90; delay_ms(850); PORTB=0xff; delay_ms(2500);} }

F. Analisis 1. Code DDRB=0xff PORTB=0x00 menunjukkan perintah port B sebagai output dan nilai awalnya adalah 0x00 yang berati semua led pada 7 segmen display menyala. 2. Code ADCMUX=0x60 berarti tegangan referensi yang digunakan adalah

tegangan VCC dan pin input ADC terletak pada ADC.0 atau pin nomor 40. 3. Code ADCSRA=0x84 adalah perintah untuk mengaktifkan fungsi ADC pada

PORT A, serta mengatur frekuensi sampling dari ADC sebesar 1/16 dari frekuensi oscilator.

4. Register SFIOR yang mempuyai nilai 0x1f berfungsi mengatur mode kerja

dari sumber picu start sampling ADC. Mode kerja diatas diset pada free running yang berarti ADC melakukan sampling terhdapa tegangan input ADC secara terus menerus. 5. Perintah didalam while adalah fungsi yang melakukan sampling ADC

kemudian menyimpannya di register ADCH. 6. Perintah level=ADCH berarti kita mengkopi nilai ADCH ke variabel level 7. Perintah if pada baris selanjutnya mempunyai arti jika nilai level < 0x64 (100)

maka output pada 7 segmen menampilkan NIM 0731130073. 8. Jika nilai level > 0x64 (100) dan level < 0xc8 (200) maka 7 segmen akan

menampilkan NIM 0731130046. 9. Jika nilai level < 0xc8 (200) maka 7 segmen akan menampilkan NIM

0731130019. 10. Perintah pada penjelasan nomor 1 sampai nomor 9 akan diulangi terus

menerus sampai ada interupsi reset dari pin reset, dan eksekusi program kembali mulai baris yang pertama. G. Kesimpulan 1. Microcontroller ATmega 8535 mempunyai fungsi ADC yang build in dengan

chip microcontroller tersebut. 2. Microcontroller dapat difungsikan sebagai pengendali 7 segmen display dengan cara mengatur logika dari pin-pin dari port I/O microcontroller tersebut. 3. Pemilihan keluaran / respons output dari microcontroller dapat dikendalikan dari luar dengan cara membaca level tegangan dari masing – masing pin input. 4. Cara penulisan code untuk 7 segmen common anoda dan common katoda

berbeda hal ini dikarenakan logikan pin yang dibutuhkan untuk mengendalikan led – led pada dua 7 segmen tersebut berbeda.

Related Documents

Nim Adc
November 2019 41
Adc
July 2020 17
Nim
August 2019 44
Adc
May 2020 18
Adc
August 2019 36
Nim
November 2019 39

More Documents from ""

Waluyo
November 2019 43
Isi
November 2019 46
Codevisio Avr
November 2019 42
Codevision Avr
November 2019 40
Data Link Layer
November 2019 50
Am Dsb
November 2019 39