·
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.
Komponen Input
- LM35 (Sensor Suhu)
- LM016L (Display LCD)
Komponen Lain
- Transistor 2N2222
- IC 74LS138
- IC 74LS139
- IC 74LS245
- IC 74LS373
- RESISTOR
- RAM 6116
- PPI 8255
- ROM 27128
- ADC0804
- CAPASITOR
- DIODE-ZEN
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).
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.
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).
; 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
Tidak ada komentar:
Posting Komentar