1. KONDISI [KEMBALI]
Gambar 39 Rangkaian kontrol suhu ruangan dengan display Dot Matrik
2. KOMPONEN [KEMBALI]
- Dot Matriks
- IC 8255A
- Keypad/Button
- IC 74LS 138
- IC 27128
- IC 8086
- IC 74LS 273
- LM335
- ADC0804
CODE_SEG SEGMENT
ASSUME
CS:CODE_SEG,DS:CODE_SEG,SS:CODE_SEG,ES: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
awal db ?
VAR1 DB ?
VAR2 DW ?
DATA DB
7EH,09H,09H,09H,7EH,00H ;A
DB
7FH,49H,49H,49H,36H,00H ;B
DB
3EH,41H,41H,41H,41H,00H ;C
DB
7FH,41H,41H,41H,3EH,00H ;D
DB
7FH,49H,49H,49H,49H,00H ;E
DB 7FH,09H,09H,09H,09H,00H ;F
DB
3EH,41H,49H,49H,39H,00H ;G
DB
7FH,08H,08H,08H,7FH,00H ;H
DB 7FH,00H ;I
DB
00H,30H,41H,41H,3FH,00H ;J
DB
7FH,08H,14H,22H,41H,00H ;K
DB
7FH,40H,40H,40H,40H,00H ;L
DB
7FH,02H,04H,02H,7FH,00H ;M
DB
7FH,02H,04H,08H,7FH,00H ;N
DB
3EH,41H,41H,41H,3EH,00H ;O
DB
7FH,09H,09H,09H,06H,00H ;P
DB
3EH,41H,49H,51H,3EH,00H ;Q
DB
7FH,09H,19H,29H,46H,00H ;R
DB
26H,49H,49H,49H,32H,00H ;S
DB
01H,41H,7FH,41H,01H,00H ;T
DB
3FH,40H,40H,40H,3FH,00H ;U
DB 03H,1CH,60H,1CH,03H,00H ;V
DB
7FH,30H,18H,30H,7FH,00H ;W
DB
63H,36H,1CH,36H,63H,00H ;X
DB
03H,06H,1CH,06H,03H,00H ;Y
DB
61H,30H,1CH,06H,16H,00H ;Z
DB
00H,00H,00H,00H,00H,00H
DB
00H,00H,00H,00H,00H,00H
DB
00H,00H,00H,00H,00H,00H
DB
00H,00H,00H,00H,00H,00H
DB
00H,00H,00H,00H,00H,00H
kolom db ?
data db ?
data_teks db ?
data_keypad1 db ?
data_keypad2 db ?
data_keypad3 db ?
ratusan db ?
puluhan db ?
satuan db ?
setting db
'Setting:
hasil 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 ; init ppi
mov
dx,cw ; pada 80H MODE = 0
out
dx,al ; port AC = output, B = input
Tampil:
CALL huruf
JMP Tampil
huruf PROC NEAR
MOV CX,01H
PUTAR: PUSH CX
LEA BX,DATA
MOV VAR1,37H
MOV VAR2,00H
DEC VAR1
LOP1: MOV SI,VAR2
MOV AH,37H
LOP: DEC AH
DEC SI
MOV DX,PA
MOV AL,BYTE PTR[BX+SI]
OUT DX,AL
CALL OUT0
CALL DELAY
LOP2: CMP AH,VAR1
JNE LOP
MOV SI,VAR2
INC VAR2
MOV AH,VAR1
DEC VAR1
CMP VAR1,00H
JNE LOP1
JMP LOP13
PUTAR1: JMP PUTAR
LOP13: MOV VAR2,00H
LOP4: MOV SI,VAR2
MOV VAR1,00H
LOP3: MOV DX,PA
MOV AL,BYTE PTR[BX+SI]
OUT DX,AL
CALL OUT1
CALL DELAY
INC VAR1
CMP SI,90H
JE LOP5
INC SI
LOP5: CMP VAR1,37H
JNE LOP3
MOV SI,VAR2
INC VAR2
CMP VAR2,90H
JNE LOP4
CALL DELAY
MOV DX,PA
MOV AL,00H
OUT DX,AL
CALL DELAY
POP CX
LOOP PUTAR1
RET
huruf ENDP
OUT1 PROC NEAR
MOV DX,PC
MOV AH,VAR1
MOV AL,AH
OUT DX,AL
RET
OUT1 ENDP
OUT0 PROC NEAR
MOV DX,PC
MOV AL,AH
OUT DX,AL
RET
OUT0 ENDP
DELAY PROC NEAR
MOV CX,10 ;
1ffh
LAGI: PUSH CX
MOV CX,10 ;
18h
LOOP $
POP CX
LOOP LAGI
RET
DELAY ENDP
ORG
40F0H
DB 0EAH
DW 0100H
DW 0FBF0H
CODE_SEG ENDS
END start
5. VIDEO [KEMBALI]
6. PRINSIP KERJA [KEMBALI]
Rangkaian
sistem ini 8086 yang di inputkankan oleh keypad yang dimana keypad
roses scaning untuk membaca penekanan tombol pada matrix keypad 4×4
untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom
dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke
4. Program untuk scaning matrix keypad 4×4 dapat bermacam-macam, tapi
pada intinya sama. Misal kita asumsikan keyapad aktif LOW (semua line
kolom dan baris dipasang resistor pull-up) dan dihubungkan ke port
mikrokontrolr dengan jalur kolom
Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan tombol keypad. Sehingga tiap tombol pada matrix keypad 4×4 diatas dengan teknik scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut.
SW1 = 0111 0111 SW9 = 0111 1101
SW2 = 1011 0111 SW10 = 1011 1101
SW3 = 1101 0111 SW11 = 1101 1101
SW4 = 1110 0111 SW12 = 1110 1101
SW5 = 0111 1011 SW13 = 0111 1110
SW6 = 1011 1011 SW14 = 1011 1110
SW7 = 1101 1011 SW15 = 1101 1110
SW8 = 1110 1011 SW16 = 1110 1110
Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scaning matrix keypad 4×4 diatas.
Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan tombol keypad. Sehingga tiap tombol pada matrix keypad 4×4 diatas dengan teknik scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut.
SW1 = 0111 0111 SW9 = 0111 1101
SW2 = 1011 0111 SW10 = 1011 1101
SW3 = 1101 0111 SW11 = 1101 1101
SW4 = 1110 0111 SW12 = 1110 1101
SW5 = 0111 1011 SW13 = 0111 1110
SW6 = 1011 1011 SW14 = 1011 1110
SW7 = 1101 1011 SW15 = 1101 1110
SW8 = 1110 1011 SW16 = 1110 1110
Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scaning matrix keypad 4×4 diatas.
7. LINK DOWNLOAD [KEMBALI]
=> Download Rangkaian
=> Download Video
=> Download HTML
Tidak ada komentar:
Posting Komentar