UTS No 2 uP uC




1. Soal
[Kembali]

Rancanglah dan simulasikan suatu rangkaian aplikasi sistem minimum 8086  yang terdiri dari:

·         uP 8086

·         RAM-0 6264

·         RAM-1 6116

·         ROM 2732

·         PPI 8255

·         ≥ 2 input sensor dll dan ≥ 2 output motor dll

·         serta komponen pendukung lainnya.

2. Komponen
[Kembali]

Komponen Input 

- LM35 (Sensor Suhu)



- Keypad 4x3 



Komponen Output


- LM016L (Display LCD)

- MOTOR



Komponen Lain

- Transistor 2N2222



- IC 74LS138

- IC 74LS139



- IC 74LS245

- IC 74LS373

- RESISTOR


- RAM 6116



- PPI 8255



- ROM 27128



- ADC0804



- CAPASITOR



- DIODE-ZEN


3. Dasar Teori
[Kembali]

a) LCD
- Keterangan

1.      GND : catu daya 0Vdc

2.      VCC : catu daya positif

3.      Constrate : untuk kontras tulisan pada LCD

4.      RS atau Register Select :

·         High : untuk mengirim data

·         Low : untuk mengirim instruksi

5.      R/W atau Read/Write

·         High : mengirim data

·         Low : mengirim instruksi

·         Disambungkan dengan LOW untuk pengiriman data ke layar

6.      E (enable) : untuk mengontrol ke LCD ketika bernilai LOW, LCD tidak dapat diakses

7.      D0 – D7 = Data Bus 0 – 7

8.      Backlight + : disambungkan ke VCC untuk menyalakan lampu latar

9.      Backlight – : disambungkan ke GND untuk menyalakan lampu latar


Tabel Konfigurasi LCD LM016L


LCD (Liquid Crystal Display) atau display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD merupakan lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertical depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan.13 Bentuk fisik dari LCD 20x4 ditunjukkan pada gambar di bawah

Fungsi Pin LCD (Liquid Cristal Display)

Pada LCD terdiri dari pin- pin sebagai berikut:

~ DB0 – DB7 adalah jalur data (data bus) yang berfungsi sebagai jalur komunikasi untuk mengirimkan dan menerima data atau instruksi dari mikrokontroler ke modul LCD.

~ RS adalah pin yang berfungsi sebagai selektor register (register sellect) yaitu dengan memberikan logika low (0) sebagai register perintah dan logika high (1) sebagai register data.

~ R/W adalah pin yang berfungsi untuk menentukan mode baca atau tulis dari data yang terdapat pada DB0 – DB7 yaitu dengan memberikan logika low (0) untuk fungsi read dan logika high (1) untuk mode write.

~ Enable (E), berfungsi sebagai Enable Clock LCD, logika 1 setiap kali pengiriman atau pembacaan data.


b) LM35 (Sensor Suhu)

LM 35 adalah sensor temperatur sederhana yang banyak digunakan untuk aplikasi  kontrol suhu karena selain harganya cukup murah, linearitasnya cukup bagus.  LM35 tidak membutuhkan kalibrasi eksternal yang menyediakan akurasi  ±¼°C  pada temperatur ruangan dan ±¾°C pada  kisaran  -55 to +150°C.  LM35 dioperasikan pada -55° hingga +150°C, sedangkan  LM35C pada  -40°C hingga +110°C, dan LM35D pada kisaran 0-100°C. Sensor LM35 bekerja secara linear dimana kenaikan tegangan sebesar 10mV untuk setiap kenaikan suhu  1°C (300mV pada 30 °C). Untuk menggunakan LM35, cukup menhubungkan keluaran dari pin Vout untuk dapat dihubungkan langsung ke ADC (misal ADC 0804 8 bit).




c) IC 74LS138

IC 74138 adalah sebuah aplikasi demultiplexer. Demultiplexer adalah perangkat elektronik yang berfungsi untuk memilih salah satu data dari banyak data menggunakan suatu data input. Demultiplexer sering disebut sebagai perangkat dengan sedikit input dan banyak output ic ini cocok untuk pengguna mikrokontroler yang membutuhkan  output.

Demultiplexer 74LS138 berfungsi untuk memilih salah satu dari 8 jalur dengan memberikan data BCD 3 bit pada jalur masukan A0 – A2. Demultiplexer 74LS138 memiliki 8 jalur keluaran Q0 – Q7, 3 jalur masukan A0 – A2 dan 3 jalur kontrol expansi E1 – E3.

 



d) 
IC 74LS245

IC TTL 74LS245 yang menurut data Sheet adalah ‘ Octal Bus Tranceiver, 3 State’. Yaitu IC TTL yang dapat digunakan sebagai masukan dan keluaran pada kaki yang sama, tiga kondisi tersebut adalah: Masukan, Keluaran, Pengunci, dan tidak membalikkan keadaan logika pada input ke output.

Cara Kerja Rangkaian :

IC TTL 74LS245 dapat menangani 8 buah jalur masukan maupun keluaran, dengan dikontrol oleh kaki DIR dan kaki E. Jika kaki 1 (DIR) IC diberi Logika 1 dan kaki 19 (E) IC diberi Logika 0, maka kaki 2-9 (A) IC menjadi Input dan kaki 11-18 (B) menjadi Output. Sebaliknya jika kaki 1 (DIR) IC diberi logika 0 dan kaki 19 (E) IC juga diberi logika 0, maka kaki 11-18 (B) menjadi Input dan kaki 2-9 (A) IC menjadi output. Dan jika kaki 1 dan 19 IC diberi logika 1 atau kaki 1 IC diberi logika 0 dan kaki 19 IC diberi logika 1 (DIR=1 dan E=1 atau DIR=0 dan E=1), maka IC menjadi kondisi impedansi tinggi atau logika tidak diketahui sama sekali atau data terisolasi.

 e) IC 74LS373

Adapun konfigurasi pin pada 74LS373 adalah sebagai berikut:

a.       D0 – D7 adalah data input (Dn).

b.      LE adalah input Latch Enable yang aktif ketika berlogika high.

c.       OE adalah input Output Enable yang aktif ketika berlogika low.

d.      Q1 – Q7 adalah data output (Qn).

 

    IC 74LS373 terdiri dari delapan D flip flop yang melaluinya masukan diberikan ke masing-masing pin IC. Data Flip flop berubah secara asinkron ketika Latch enable (LE) dalam keadaan High. Seperti yang kita ketahui pengoperasian flip flop itu masukan apapun ke pin D pada keadaan sekarang akan diberikan sebagai keluaran pada siklus jam berikutnya. Tetapi ketika Pin Pengunci Latch ditarik rendah, data akan terkunci sehingga data muncul secara instan memberikan aksi Latching.

    Pin Output Enable juga berperan penting dalam cara kerja IC 74LS373 ini. Saat pin (OE) low input data akan muncul di output, namun saat OE tinggi maka output akan berada dalam keadaan impedansi tinggi. IC beroperasi dengan maksimum 5 V dan banyak digunakan di berbagai jenis peralatan elektronik.

f) RAM 6116


RAM 6116 yang dipakai didalam sistem minimum mempunyai pin CS (Chip Select) untuk mengaktifkan IC tersebut, pin OE (Output Enable) sebagai pin sinyal kontrol RD untuk membaca data dan pin WE (Write Enable) sebagai pin sinyal kontrol WR untuk menulis data seperti gambar 2. Selain itu,  terdapat pin-pin untuk addresing A0-A10, pin data D0-D7 untuk masukan dan keluaran data 8 bit. Sisa bus address mulai A11-A19 dipergunakan untuk rangkaian decoding bagi RAM yang bersangkutan.

g) Resistor




 Resistor atau hambatan yaitu salah satu komponen elektronika yang punya nilai hambatan tertentu, dimana hambatan ini akan menghambat arus listrik yang mengalir melaluinya. Sebuah resistor biasanya terbuat dari bahan campuran Carbon. Tapi tidak sedikit juga resistor yang terbuat dari kawat nikrom, sebuah kawat yang punya resistansi yang cukup tinggi dan tahan pada arus kuat. Contohnya, penggunaan kawat nikrom bisa dilihat pada elemen pemanas setrika. Jika elemen pemanas tersebut dibuka, maka ada seutas kawat spiral yang biasa disebut dengan kawat nikrom.

Satuan Resistor yaitu Ohm (Ω) yang merupakan satuan SI buat Resistansi listrik.

Fungsi Resistor

Ada beberapa fungsi dari Resistor yang harus kamu ketahui, yaitu:

~ Fungsi resistor yaitu buat membatasi arus listrik yang mengalir.

~ Fungsi resistor buat aplikasi DC yang membutuhkan keakuratan yang sangat tinggi. Contoh, aplikasi penggunaan resistor ini yaitu DC Measuring equipment, dan reference gulators buat voltage regulator dan decoding Network.

~ Fungsi resistor sebagai standart didalam verifikasi keakuratan dari suatu alat ukur resistive.

~ Fungsi resistor buat pengatur tegangan output pada power supplay.

~ Fungsi resistor buat aplikasi power, karena membutuhkan frekuensi respon yang baik, daya yang tinggi dan nilai yang lebih besar dari pada power wirewound resistor.

~ Fungsi resistor pembagi tegangan.

 

Karakteristik Resistor

Ada beberapa karakteristik utama pada sebuah resistor, yaitu sebagai berikut:

~ Resistansi terhadap daya listrik yang dapat boros

~ Koefisien suhu, desah listrik, dan induktansi

~ Resistor bersifat resistif

~ Terbuat dari bahan karbon


h) Motor



Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).


a) Program

; You may customize this and other start-up templates;

; The location of this template is c:\emu8086\inc\0_com_template.txtorg 100h

; PROGGRAM9.ASM DIGUNAKAN UNTUK MENAMPILKAN INPUT KEYPAD

; DAN DATA  SENSOR SUHU KE LCD DAN MENGONTROL SUHU

; Data LCD: Port A

; E        : PC0

; RS    : PC1

; Data ADC : Port B17 s/d Port B10, kontrol PC10,

; PC11 dan PC14

; Data DAC : dari Port A17 s/d Port A10

CODE_SEG SEGMENT

ASSUME CS:CODE_SEG,DS:CODE_SEG,SS:CODE_SEG

ORG 100H

start:     jmp mulai

porta     equ 00h

portb     equ 01h

portc     equ 02h

cw         equ 03h

port1a     equ 10h

port1b     equ 11h

port1c     equ 12h

cw1        equ 13h

DISPCLR        EQU 00000001B

FUNCSET        EQU 00111000B

ENTRMOD        EQU 00000110B

DISPON        EQU 00001100B

awal    db ?

kolom    db ?

data    db ?

data_teks    db ?

data_keypad1    db ?

data_keypad2    db ?

data_keypad3    db ?

ratusan    db ?

puluhan    db ?

satuan  db ?

setting    db ?

ADC :

keypad_ke    db ?

status    db ?

data_setting    db ?

dataADC    db ?

dataDAC    db ?

akhir   db ?

mulai:

Mov     AX, CS

Mov     DS, AX

Xor     AX, AX

Mov     ES, AX

Mov     SS, AX

Lea     SI, Awal

Lea     CX, Akhir

Mov     DI, SI

Sub     CX, SI

Cld

Rep Movsb

Mov     SP,800h

Xor     AX,AX

Mov     DS,AX

Mov al,82h     ;Port A dan Port C = output dan

; Port B = input

mov     dx,cw

out     dx,al

mov     al,82h     ;Port A dan Port C = output dan Port B

; = input

mov     dx,cw1

out     dx,al

call     initialisasi_LCD

balik:

call    display_set

call    display_hasil

;-------------------------

;Tekan Tombol ke-1

;--------------------------

tombol1:

mov        al,8Bh

mov        data,al

call        control_out

call        tombol_ditekan

je        tombol1

 

in        al,dx

and        al,00001111B

call        konversi_keypad_to_bin

mov        data_keypad1,al

 

mov        ah,0

add        ax,30h

mov        data,al

call        data_out

subanta:

call        tombol_dilepas

je        subanta

 

;-------------------------

;Tekan Tombol ke-2

;--------------------------

Tombol2:

mov        al,8Ch

mov        data,al

call        control_out

call        tombol_ditekan

je        tombol2

 

in        al,dx

and        al,00001111B

call        konversi_keypad_to_bin

mov        data_keypad2,al

 

mov        ah,0

add        ax,30h

mov        data,al

call        data_out

subanta2:

call        tombol_dilepas

je        subanta2

jmp     tombol3

baliak_ka_muko:

jmp balik

 

;-------------------------

;Tekan Tombol ke-3

;--------------------------

tombol3:

mov        al,8Dh

mov        data,al

call        control_out

call        tombol_ditekan

je        tombol3

 

in        al,dx

and        al,00001111B

call        konversi_keypad_to_bin

mov        data_keypad3,al

mov        ah,0

add        ax,30h

mov        data,al

call        data_out

subanta3:

call        tombol_dilepas

je        subanta3

;----------

;Cek status

;---------

cek:

call    tombol_ditekan

je    cek

 

in    al,dx

and    al,00001111B

call    konversi_keypad_to_bin

mov    status,al

subanta4:

call    tombol_dilepas

je    subanta4

mov    al,status

cmp    al,32        ; tombol * ditekan?

je    baliak_ka_muko

cmp    al,40        ; tombol # ditekan?

je    tampil

jne    cek

tampil:

xor    ax,ax

mov    al,data_keypad1

mov    bl,100

mul    bl

mov    ratusan,al

 

xor    ax,ax

mov    al,data_keypad2

mov    bl,10

mul    bl

mov    puluhan,al

xor    ax,ax

mov    al,data_keypad3

xor    bx,bx

mov    bl,puluhan

add    ax,bx

xor    bx,bx

mov    bl,ratusan

add    ax,bx

mov    dx,port1a

out    dx,al

mov    data_setting,al

looping:

call    delay

call    read_ADC

call    display_ADC

call ceksuhu

ja looping

call onmotor

call    delay

jmp    looping

;--------------

; on motor

;-------------

Onmotor proc near

Mov    dx,port1a

Mov    al,0ffh

Out    dx,al

ret

onmotor endp

;--------------

; cek suhu

;--------------

Ceksuhu proc near

Mov    al,data_setting

Mov    bl,dataADC

Cmp    al,bl

ret

ceksuhu endp

;---------------

; Test tombol ditekan

;------------

tombol_ditekan proc near

mov    dx,portb

in    al,dx

and    al,128

cmp    al,128

ret

tombol_ditekan endp

;------------

;Tes tombol dilepas

;-------------------

tombol_dilepas proc near

mov    dx,portb

in    al,dx

and    al,128

cmp    al,0

ret

tombol_dilepas endp

 

konversi_keypad_to_bin proc near

cmp    al,1

jne    keypad2

mov    al,1

ret

keypad2:

cmp    al,2

jne    keypad3

mov    al,2

ret

keypad3:

cmp    al,3

jne    keypad4

mov    al,3

ret

keypad4:

cmp    al,4

jne    keypad5

mov    al,4

ret

keypad5:

cmp    al,5

jne    keypad6

mov    al,5

ret

keypad6:

cmp    al,6

jne    keypad7

mov    al,6

ret

keypad7:

cmp    al,7

jne    keypad8

mov    al,7

ret

keypad8:

cmp    al,8

jne    keypad9

mov    al,8

ret

keypad9:

cmp    al,9

jne    keypad0

mov    al,9

ret

keypad0:

cmp    al,10

jne    keypadb

mov    al,0

ret

keypadb:

cmp    al,11

jne    keypadg

mov    al,2ah

ret

keypadg:

cmp    al,12

jne    keluar

mov    al,23h

ret

keluar:

ret

konversi_keypad_to_bin endp

 

; -------

; Baca ADC

; -------------

read_ADC proc near

mov    dx,port1c

mov    al,3

out    dx,al

call delay_lcd

 

mov    al,1

out    dx,al

call delay_lcd

 

mov    al,3

out    dx,al

call delay

 

mov    al,2

out    dx,al

call delay_lcd

 

mov    dx,port1b

in    al,dx

mov    dataADC,al

call    delay_lcd

 

mov    dx,port1c

mov    al,3

out    dx,al

call    delay_lcd

ret

read_ADC endp

 

;-----------

; Tampil data AD di LCD

;---------------------

display_ADC proc near

xor    ax,ax

mov    al,dataADC

mov    bl,10

mov    satuan,ah

mov    ah,0

mov    bl,10

div    bl

mov    puluhan,ah

mov    ratusan,al

 

mov        data,0CAh

call    control_out

xor        ax,ax

mov        al,ratusan

add        ax,30h

mov        data,al

call    data_out

 

mov        data,0CBh

call    control_out

xor        ax,ax

mov        al,puluhan

add        ax,30h

mov        data,al

call    data_out

 

mov        data,0CCh

call    control_out

xor        ax,ax

mov        al,satuan

add        ax,30h

mov        data,al

call    data_out

ret

display_ADC endp

 

;-------------------------

;  control instruction

;-------------------------

; E        : PC0

; RS    : PC1

control_out proc near

mov     dx,portc

mov    al,00000000b    ; E = 0, RS = 0

out    dx,al

call    delay_lcd

 

mov     dx,portc

mov    al,00000001b    ; E = 1, RS = 0

out    dx,al

call    delay_lcd

 

mov    dx,porta

mov    al,data

out     dx,al

call    delay_lcd

 

mov     dx,portc

mov    al,00000000b    ; E = 0, RS = 0

out    dx,al

call    delay_lcd

ret

control_out endp

 

;-------------------------

;  data instruction

;-------------------------

; E    : PC0

; RS    : PC1

 

data_out proc near

mov     dx,portc

mov    al,00000010b    ; E = 0, RS = 1

out    dx,al

call    delay_lcd

 

mov     dx,portc

mov    al,00000011b    ; E = 1, RS = 1

out    dx,al

call    delay_lcd

 

mov    dx,porta

mov    al,data

out     dx,al

call    delay_lcd

 

mov     dx,portc

mov    al,00000010b        ; E = 0, RS = 1

out    dx,al

call    delay_lcd

ret

data_out endp

 

;--------------------

;  inisialisasi LCD

;--------------------

initialisasi_LCD proc near

mov    data,DISPCLR

call    control_out

call    delay_lcd

 

mov     data,FUNCSET

call    control_out

call    delay_lcd

 

mov    data,ENTRMOD

call    control_out

call    delay_lcd

 

mov    data,DISPON

call    control_out

call    delay_lcd

ret

initialisasi_LCD endp

 

;---------------

; Tulis teks di baris pertama

;-------------------

baris1 proc near

mov        ah,0

mov        al,kolom

add        ax,80h

mov        data,al

call        control_out

 

mov        al,data_teks

mov        data,al

call        data_out

ret

baris1 endp

 

;---------------

; Tulis teks di baris ke-2

;-------------------

Baris2 proc near

mov        ah,0

mov        al,kolom

add        ax,0C0h

mov        data,al

call        control_out

 

mov        al,data_teks

mov        data,al

call        data_out

ret

baris2 endp

 

;----------

; Ambil data teks baris pertama ke memori LCD

;----------------

display_set proc near

mov    kolom,0

xor    bx,bx

lea    bx,setting

mov    cx,16

lagi1:

mov    dl,[bx]

mov    data_teks,dl

call    baris1

inc    bx

inc    kolom

loop    lagi1

ret

display_set endp

 

;----------

; Ambil data teks baris ke-2 ke memori LCD

;----------------

display_hasil proc near

mov    kolom,0

xor    bx,bx

lea    bx,akhir

mov    cx,16

lagi2:

mov    dl,[bx]

mov    data_teks,dl

call    baris2

inc    bx

inc    kolom

loop    lagi2

ret

display_hasil endp

 

delay_lcd proc near

push cx

mov cx,07fffh

loop $

pop cx

ret

delay_lcd endp

 

delay proc near

push cx

mov cx,0ffffh

loop $

pop cx

ret

delay endp

ORG 40F0H

DB 0EAH

DW 0100H

DW 0FBF0H

 

CODE_SEG ENDS

END START


4.  Rangkaian Simulasi
[Kembali]



5. Video



    
6. Link Download
[Kembali]

Tidak ada komentar:

Posting Komentar