Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

download Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

of 13

Transcript of Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    LAPORAN

    PRAKTIKUM MIKROKONTROLLER

    PERCOBAAN DISPLAY 7 SEGMEN

    Nama : Dwinta Mussetyarsih

    Nim : P27838012044

    Kelas : 2A(3,4)

    LABORATORIUM MIKROKONTROLLER

    JURUSAN TEKNIK ELEKTROMEDIK

    POLTEKKES KEMENKES SURABAYA

    2013

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    1. Gambar Rangkaian dan penjelasan percobaan Display 7 Segment .

    Gambar Rangkaian

    Penjelasan cara kerja rangkaian :

    Rangkaian diatas merupakan Rangkaian decoder dan driver 7 segmen,

    display 7 segmen yang digunakan pada percobaan ini adalah 7 segmen common

    anoda, dengan driver transistor PNP dan decoder 74LS138

    untuk scanning 7 segmen.

    seven segmen yang hidup tergantung pada output dari dekoder 74LS138

    apabila ada logika low pada basis transistor, maka 7 segment akan nyala dan

    sebaliknya akan padam. sehingga dari 8 buah display tersebut, selalu hanya satudisplay yang akan dihidupkan. Agar display tampak nyala secara bersamaan maka

    ketiga display tersebut harus dihidupkan secara bergantian dengan waktu tunda

    tertentu.

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    2. Flow Chart masing-masing percobaan

    Flowchart Percobaan display 7 segmen

    Start

    Inisialisasi

    PORTC,PORTD

    Case 0

    END

    Case 3

    Case 2

    Case 1

    Case 6

    Case 5

    Case 4

    Case 8

    Case 7

    Case 9

    PORTC=0xff;

    Data=5;

    Convert(){

    PORTC=0b11000000

    PORTC=0b11111001

    PORTC=0b10100100

    PORTC=0b10000000

    PORTC=0b11111000

    PORTC=0b10000010

    PORTC=0b10010010

    PORTC=0b10011001

    PORTC=0b10110000

    PORTC=0b10010000

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    Flowchart Percobaan Display 7 segmen increment data 0 sd 9

    Yes

    Start

    Inisialisasi data,

    PORTC, PORTD

    Case 0 PORTC=0b11000000

    Case 5

    Case 6

    Case 1

    Case 2

    Case 3

    Case 4

    Case 7

    PORTC=0b11111001

    PORTC=0b10100100

    PORTC=0b10110000

    PORTC=0b10110000

    PORTC=0b1001001

    PORTC=0b10000010

    PORTC=0b11111000

    PORTC=0xff

    Stop

    Case 9

    Case 8 PORTC=0b10000000

    PORTC=0b10010000

    data==1

    convert();

    data=data+1;

    data=0;

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    Flowchart Percobaan Display 7 Segmen dengan Simulasi Setting data

    No

    Start

    Inisialisasi data,

    PORTC, PORTD

    Case 0 PORTC=0b11000000

    Case 5

    Case 6

    Case 1

    Case 2

    Case 3

    Case 4

    Case 7

    PORTC=0b11111001

    PORTC=0b10100100

    PORTC=0b10110000

    PORTC=0b10110000

    PORTC=0b1001001

    PORTC=0b10000010

    PORTC=0b11111000

    PORTC=0xff

    Stop

    Case 9

    Case 8 PORTC=0b10000000

    PORTC=0b10010000

    PINB.2==1

    data=data+1;dataTemp=dataSat;convert();

    delay_ms(30);

    dataTemp=dataPul;

    convert();

    delay_ms(30);

    PORTC=0x00;

    PINB.0==0 PINB.1==0

    data=data-1;

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    3. Penjelasan kode program masing-masing percobaan :

    Perintah untuk mencetak sebuah karakter ke 7 segmen, mengkonversikan data decimal

    ke 7 segmen.

    #include

    #includeUnsigned char data;

    Void convert(){

    Switch(data)

    {

    // gfedcba

    Case 0: PORTC=0b11000000;break;

    Case 1: PORTC=0b11111001;break;

    Case 2: PORTC=0b10100100;break;

    Case 3: PORTC=0b10110000;break;

    Case 4: PORTC=0b10011001;break;

    Case 5: PORTC=0b10010010;break;

    Case 6: PORTC=0b10000010;break;

    Case 7: PORTC=0b11111000:break;

    Case 8: PORTC=0b10000000;break;

    Case 9: PORCT=0b10010000;break;

    Default: PORTC=0Xff;

    }

    }

    Void main (void)

    {

    DDRC=DDRD=PORTC=0Xff;PortD.5=1;

    PORTD.6=1;

    PORTD.7=1;

    While(1)

    {

    Data=5;

    Convert();

    }

    }

    #include Menginputkan library mega8535 agar perintah-perintah yang akan kita gunakan dapat

    dibaca oleh program.

    #include

    Menginputkan library delay agar perintah yang akan kita gunakan dapat dibaca oleh

    program.

    Unsigned char data;

    Mendeklarasikan variabel data dengan tipe data unsigned char data .

    Switch(data)

    {

    Case 0: PORTC=0b11000000;break;

    . . . .

    . . . .

    Case 9: PORCT=0b10010000;break;

    }

    Switch case untuk pemilihan data, sama dengan pernyataan if. Jika kita memlih case 0

    maka yang akan muncul di 7 segmen adalah angka 0. Jika case 1 maka yang akan muncul

    angka 1 begitu seterusnya sampai angka 9.

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    Default: PORTC=0Xff;

    Kondisi awal LED dalam keadaan mati.

    Void main (void)

    {

    }Struktur awal program(harus selalu ada)

    DDRC=DDRD=PORTC=0Xff;

    Memberikan perintah pada PORTC &PORTD sebagai outputan dan keadaan awal

    PORTC dalam keadaan mati .

    PortD.5=1;

    PORTD.6=1;

    PORTD.7=1;

    Perintah untuk input mengkonfigurasi PORTD.5, PORTD.6, PORT.7 sebagai input untukmenyalakan segmen. (member logika 1 pada basis transistor agar saturasi) karena semua

    selector mendapat logika 1, maka 7 segmen akan muncul di Y7.

    While(1)

    {

    Perintah yang akan terus mengeksekusi program selama program bernilai benr (1).

    Data=5;

    Convert();

    }}

    Mencetak data ke 5 yang outputannya sudah di tentukan di fungsi convert.

    (pemanggilan fungsi convert) .

    Perintah untuk menampilkan data secara berurutan mulai dari 0 sd 9 , dengan fungsi

    delay untuk setiap kenaikan angka .

    #include

    #include

    unsigned char data;void convert(){

    switch(data)

    {

    // gfedcba

    case 0: PORTC=0b11000000;break;

    case 1: PORTC=0b11111001;break;

    case 2: PORTC=0b10100100;break;

    case 3: PORTC=0b10110000;break;

    case 4: PORTC=0b10011001;break;

    case 5: PORTC=0b10010010;break;

    case 6: PORTC=0b10000010;break;case 7: PORTC=0b11111000;break;

    case 8: PORTC=0b10000000;break;

    case 9: PORTC=0b10010000;break;

    default: PORTC=0xff;

    }

    }

    void main (void)

    {

    DDRC=DDRD=PORTC=0xff;

    PORTD.5=1;

    PORTD.6=1;

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    while(1)

    {

    convert();

    data=data+1;

    if(data==10)

    {data=0;

    };

    Delay_ms(1000);

    }

    }

    #include

    Menginputkan library mega8535 agar perintah-perintah yang akan kita gunakan dapat

    dibaca oleh program.

    #include

    Menginputkan library delay agar perintah yang akan kita gunakan dapat dibaca oleh

    program.

    Unsigned char data;

    Mendeklarasikan variabel data dengan tipe data unsigned char data .

    Switch(data)

    {

    Case 0: PORTC=0b11000000;break;. . .

    . . .

    Case 9: PORCT=0b10010000;break;

    }

    Switch case untuk pemilihan data, sama dengan pernyataan if. Jika kita memlih case 0

    maka yang akan muncul di 7 segmen adalah angka 0. Jika case 1 maka yang akan muncul

    angka 1 begitu seterusnya sampai angka 9.

    Default: PORTC=0Xff;

    Kondisi awal LED dalam keadaan mati.

    Void main (void)

    {

    }

    Struktur awal program(harus selalu ada)

    DDRC=DDRD=PORTC=0Xff;

    Memberikan perintah pada PORTC &PORTD sebagai outputan dan keadaan awal

    PORTC dalam keadaan mati .

    PortD.5=1;

    PORTD.6=1;

    Perintah untuk input mengkonfigurasi PORTD.5, PORTD.6, sebagai input untuk

    menyalakan segmen. (member logika 1 pada basis transistor agar saturasi) karena semua

    selector mendapat logika 1, maka 7 segmen akan muncul di Y3.

    while(1)

    {

    Perintah yang akan terus mengeksekusi program selama program bernilai benr (1).

    {

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    convert();

    data=data+1;

    if(data==10)

    {

    data=0;

    };Memanggil fungsi convert dan mencetak data yang dimulai dari 0 secara increment maju

    (0,1,2,....dst). Jika data mempunyai outpu 10, maka data langsung kembali ke 0. Jadi nilai

    akhir increment adalah angka 9 (setelah 10 kembali lagi ke 0).

    delay_ms(1000);

    Delay digunakan jika kita ingin mempause atau menghentikan program hanya beberapa

    saat saja. Dalam code diatas menggunakan satuan milisekon. Jadi jika kita menginputkan

    1000 maka outputannya menjadi 1 sekon.

    Perintah untuk mensimulasikan setting data dengan display pada 7 segmen.

    #include

    #include

    void convert();

    int data,dataTemp,dataPul,dataSat;

    void main(void)

    {

    DDRC=0xFF;

    DDRB=0x00;

    PORTB=0xFF;

    PORTC=0xFF;DDRD=0xFF;

    data=00;

    while(PINB.2==1)

    {

    if (PINB.0==0)

    {

    data=data+1;

    }

    else if (PINB.1==0)

    {

    data=data-1;

    }

    dataTemp=data;

    dataSat = dataTemp % 10; // sat=sisa data dibagi 10

    dataPul = dataTemp / 10;

    dataTemp=dataSat;

    convert();

    PORTD.5=1;

    PORTD.6=0;

    delay_ms(30);

    dataTemp=dataPul;convert();

    PORTD.5=0;

    PORTD.6=0;

    delay_ms(30);

    }

    PORTC=0x00;

    delay_ms(2000);

    }

    void convert()

    {

    switch(dataTemp){ // pg fe dcba

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    case 0: PORTC=0b11000000;break;

    case 1: PORTC=0b11111001;break;

    case 2: PORTC=0b10100100;break;

    case 3: PORTC=0b10110000;break;

    case 4: PORTC=0b10011001;break;

    case 5: PORTC=0b10010010;break;case 6: PORTC=0b10000010;break;

    case 7: PORTC=0b11111000;break;

    case 8: PORTC=0b10000000;break;

    case 9: PORTC=0b10010000;break;

    default: PORTC=0xff;

    }

    }

    #include

    Menginputkan library mega8535 agar perintah-perintah yang akan kita gunakan dapat

    dibaca program.

    #include

    Menginputkan library delay agar perintah yang akan kita gunakan dapat dibaca program.

    void convert()

    Membuat suatu fungsi dengan nama convert.

    int data,dataTemp,dataPul,dataSat;

    Mendeklarasikan variabel data, dataTemp, dataPul, dan dataSat dengan tipe data int.

    void main(void)

    {

    }

    Struktur awal program (harus selalu ada)

    DDRC=0xFF;

    Perintah untuk mengkonfigurasi PORT C sebagai Output.

    DDRB=0x00;Perintah untuk mengkonfigurasi PORT B sebagai Input.

    PORTB=0xFF;

    Kondisi awal button aktif (berlogika 1).

    PORTC=0xFF;

    Perintah untuk mematikan semua LED pada PORTC.

    DDRD=0xFF;

    Perintah untuk mengkonfigurasi PORT D sebagai Output.

    data=00;

    Kondisi awal data bernilai 0.

    while(PINB.2==1)

    if (PINB.0==0)

    {

    data=data+1;

    }

    else if (PINB.1==0)

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    {

    data=data-1;

    }

    Jika button pertama ditekan maka variabel data akan mengeluarkan outputan increament

    (0, 1, 2, 3, .... dst). Sedangkan jika button kedua ditekan maka outputan data akan

    mengeluarkan outputan descreament (9, 8, 7, .... dst).

    dataTemp=data;

    Variabel dataTemp berisi nilai dari variabel data.

    dataSat = dataTemp % 10; // sat=sisa data dibagi 10

    Variabel dataSat didapat dari sisa hasil bagi (modulus 10) dari dataTemp.

    dataPul = dataTemp / 10;

    Variabel dataPul didapat dari hasil pembagian 10 dari dataTemp .

    dataTemp=dataSat;

    Nilai dari Variabel dataTemp sama dengan nilai dari variabel dataSat.

    convert();

    Pemanggilan fungsi convert.

    PORTD.5=1;

    PORTD.6=0;

    Perintah untuk input mengkonfigurasi PORTD5 , dan PORTD6 sebagai input untuk

    menyalakan segmen. (memberi logika 1 pada basis transistor agar saturasi). Karena

    selector A yang mendapat logika 1 dan selector B mendapat logika 0, maka 7segmen

    akan muncul di Y1.

    delay_ms(30);

    Mempause / memberi waktu jeda program selama 30 milisekon.

    dataTemp=dataPul;

    Nilai dari Variabel dataTemp sama dengan nilai dari variabel dataPul.

    convert();

    Pemanggilan fungsi convert.

    PORTD.5=0;

    PORTD.6=0;

    Perintah untuk input mengkonfigurasi PORTD5 , dan PORTD6 sebagai input untuk

    menyalakan segmen. (memberi logika 1 pada basis transistor agar saturasi). Karena kedua

    selector (selector A dan selector B) mendapat logika 0, maka 7segmen akan muncul di

    Y0.

    delay_ms(30);

    Mempause / memberi waktu jeda program selama 30 milisekon.

    PORTC=0x00;

    Kondisi awal semua led menyala.

    delay_ms(2000);

    Mempause / memberi waktu jeda program selama 2000 milisekon (2 sekon).

    switch(dataTemp)

    {

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    case 0: PORTC=0b11000000;break;

    .....

    case 9: PORTC=0b10010000;break;

    default:PORTC=0xff;

    }

    Switch case untuk pemilihan data yang terdapat pada variabel dataTemp, sama halnyadengan pernyataan if. Jika kita memilih case 0 maka yang akan muncul di 7segmen

    adalah angka 0. Jika case 1 yang akan muncul angka 1 begitu seterusnya sampai angka 9.

    Dan kondisi awal semua led akan mati.

    4. Simulasi masing-masing percobaan

    Simulasi proteus percobaan konversi data decimal ke 7 segmen .

    Simulasi proteus percobaan menampilkan data secara berurutan mulai dari 0 sd 9,

    dengan waktu tunda 1 detik untuk setiap kenaikan angka .

    Simulasi proteus tampilan data urutan ke 0

  • 5/24/2018 Gambar Rangkaian Dan Penjelasan Percobaan Display 7 Segment

    http:///reader/full/gambar-rangkaian-dan-penjelasan-percobaan-display-7-segmen

    Simulasi proteus tampilan data urutan ke 9.

    Simulasi proteus percobaan mensimulasikan setting data dengan display pada 7

    segment.