Remote Control Pengatur Kecepatan Motor DC

Saturday, November 19th, 2016 - Aplikasi Mikrokontroler

Remote Control Pengatur Kecepatan Motor DC

Dalam artikel ini dibahas rangkaian dan cara kerja dari 12V dc motor controller berdasarkan PWM (Pulse Width Modulation.) Motor dikontrol kecepatannya secara remote, menggunakan LCD Epson SED1200 sebagai sistem tampilan kecepatan.

Kecepatan yang ditampilkan pada LCD dinyatakan dengan satuan RPS (rotation per second). Dipakai remote control buatan Sony yang biasa dipakai untuk TV, tombol volume plus pada remote control Sony digunakan untuk menaikkan kecepatan dari motor dc sedangkan tombol volume minus untuk menurunkan kecepatan.

Blok Diagram Remote Control Pengatur Kecepatan Motor DC

Blok Diagram Komponen Penyusun Motor DC,Remote Control Pengatur Kecepatan Motor DC

Gambar 1. Blok Diagram Komponen Penyusun Motor DC

Makalah ini dibagi menjadi 4 bagian yaitu bagian remote control, memutar kipas, menghitung kecepatan serta menampilkan ke LCD.

Remote Control

Pada remote control terdapat dua bagian yang utama yaitu : bagian transmiter dan bagian receiver. Bagian transmitter dalam hal ini menggunakan remote yang sudah jadi, yaitu remote untuk TV. Sedangkan bagian penerimanya dibangun dari dioda infra merah, filter, dan penguat sinyal/amplifier.

Rangkaian Receiver

Untuk dapat mengambil data yang dipancarkan oleh remote maka harus dibuat rangkaian penerima yang terdiri dari op-amp, IC 74LS04 (inverter), multiturn variable resistor, IR diode (receiver) dan beberapa komponen penunjang. Rangkaian receivernya dapat dilihat pada gambar 2. Penggunaan dari op-amp ini untuk mengatur penguatan dari sinyal yang diterima oleh IR diode. Sinyal yang diterima oleh IR diode ini akan dimasukkan rangkaian high pass filter (C dan R). Kombinasi nilai dari C dan R ini diperoleh dengan menggunkanan rumus :

Sinyal yang diterima oleh IR diodeSinyal yang keluar dari rangkaian high pass filter dikuatkan dua kali. Rangkaian penguat 1 adalah non-inverting amplifier dengan menggunakan op-amp LM358. Kemudian output dari rangkaian penguat 1 dikuatkan sekali lagi dengan penguatan non inverting amplifier juga dengan op-amp LM358. Sinyal yang keluar dari rangkaian penguat 2 ini masih mengandung sinyal carrier. Untuk itu sinyal carriernya perlu dihilangkan dengan cara menambahkan rangkaian low pass filter (R dan C).

Sinyal yang keluar dari rangkaian penguatPenggunaan rangkaian high pass filter dan low pass filter ini untuk membatasi frekuensi yang diterima, sinyal yang berada di bawah 159.23 Hz dan di atas 7.24 kHz tidak dilewatkan. Dengan rangkaian low pass filter tersebut maka sinyal carrier dari remote TV Sony tidak akan dilewatkan Kemudian sinyal itu disempurnakan dengan menambahkan rangkaian comparator dengan mengunakan op-amp tipe LM339. Komparator ini berfungsi jika tegangan yang masuk kurang dari tegangan referensinya maka outputnya akan low sebaliknya jika tegangan yang masuk melebihi tegangan referensi maka outputnya akan high. Output dari LM339 ini akan dimasukkan IC 74LS04 sebagai inverter.

Rangkaian Receiver Remote

Gambar 2. Rangkaian Receiver Remote

Remote Control TV Sony

Remote Control dibagi menjadi 3 menurut jenis pengkodeannya :

  1. Pulses coded
    Jenis ini mengatur panjang pulsanya, sehingga pulsanya divariasi untuk menunjukkan data itu berlogic high atau low. Yang dijadikan variasi adalah pulsa highnya. Metode ini dipakai oleh remote Sony.

    Pulses Coded

    Gambar 3. Pulses Coded

  2. Space coded
    Metode ini juga mengatur panjang pulsanya untuk menunjukkan data tersebut berlogic low atau high. Tetapi yang diatur adalah lebar pulsa lownya. Jenis ini diterapkan oleh remote Panasonic

    Space Coded

    Gambar 4. Space Coded

  3. Shift coded
    Metode ini yang paling berbeda diantara kedua metode di atas. Metode ini menggunakan prinsip perbedaan fase untuk menunjukkan data yang dikirim berlogic low atau high. Metode pengiriman data ini diterapkan oleh remote Philips.

    Shift Coded

    Gambar 5. Shift Coded

Penggunaan infra red sangat bagus dalam komunikasi dan kontrol suatu sistem. Infra red adalah frekuensi radiasi yang bekerja di bawah tingkat sensitivitas mata manusia. Jadi manusia tidak dapat melihat sinar tersebut. Gambaran sinyal yang dikirimkan oleh transmitter dan diterima oleh IR demodulator dapat dilihat pada gambar 3 sebagai contoh yang dikirimkan adalah header:

Hubungan Antara Sinyal TX dan RX

Gambar 6. Hubungan Antara Sinyal TX dan RX

Jika transmitter mengirimkan sinyal on dan off maka pada receiver juga menerima sinyal on dan off. Tetapi receiver hanya mendeteksi ada carrier atau tidak. Jika ada data carrier maka pulsa yang dikirimkan adalah high sebaliknya jika tidak ada carrier maka pulsa yang dikirimkan adalah low. Sinyal carrier sebesar 40 kHz yang diterima oleh receiver akan hilang, karena pada receiver sudah dibatasi dengan menggunakan rangkaian high pass filter dan low pass filter, frekuensi yang kurang dari 159.23 Hz dan lebih dari 7.24 kHz tidak dilewatkan. Sedangkan sinyal informasi sebesar 4T=2200ms (454.54 Hz) akan diterima begitu juga pulsa lownya sebesar 1T=550ms (1.82 kHz) akan diterima untuk diolah sebagai data header. Salah satu contoh aplikasi dari penggunaan infra red adalah pada TV/VCR remote control. Infra red ini bekerja pada range frekuensi antara 30-60 kHz.

Dengan melihat karakteristik ini maka remote control menggunakan frekuensi carrier sekitar 36-40kHz. Untuk membangkitkan sinyal dengan frekuensi 40kHz tidak sulit tetapi untuk menerima sinyal dengan frekuensi 40 kHZ itu membutuhkan filters, penguatan sinyal, dan menghilangkan sinyal carrier sehingga data yang diterima benar-benar valid.

Remote yang digunakan dalam hal ini adalah remote TV Sony. Format data dari remote Sony terdiri dari 12 bits data. Data yang dikirimkan pertama kali adalah header selanjutnya baru data.

Format data:Format data dari remote Sony

Remote Sony ini memiliki karakteristik yaitu memiliki periode (1T)=550 ms dan carrier 40Khz. Untuk remote Sony memiliki header high 4T dan low 1T, untuk logic 1 memiliki pulsa high sepanjang 2T dan low 1T, dan untuk logic 0 memiliki pulsa high 1T dan low 1T. Ini merupakan format aslinya sedangkan jika mengamati sinyal yang dikirimkan remote melalui IR modul kebalikannya karena padda IR modul ada inverternya. Berikut contoh bentuk gambar pulsa dari header, logic 1 dan logic 0 dari remote TV Sony yang sebenarnya (belum melalui gerbang inverter).

Pulsa Remote Control Sony

Gambar 7. Pulsa Remote Control Sony

Tabel Fungsi Tombol dan Data Yang Diterima oleh Rangkaian Penerima

Tabel 1. Tabel Fungsi Tombol dan Data Yang Diterima oleh Rangkaian Penerima

Untuk dapat mengamati bentuk sinyal yang dipancarkan oleh remote maka diperlukan osiloskop. Dengan osiloskop akan diketahui bentuk sinyal dari masing-masing tombol pada remote.

Berikut ini adalah bentuk-bentuk sinyal dari remote Sony setelah keluar dari titik B pada gambar 2 (setelah melalui gerbang inverter).

Format Sinyal Remote Control Sony

Gambar 8. Format Sinyal Remote Control Sony

Untuk membaca berapa besarnya header, logika1 dan logika 0, maka digunakan timer untuk menghitungnya jadi yang dibaca high dan lownya.

Potongan Program 1: Program Untuk Membaca Remote

1:       .DATA
2:       TMP  DS   15
3:
4:       .CODE
5:       CLR  EX0               ;MATIKAN INTERUPT
6:       MOV  R0,#TMP           ;Isi R0 dengan alamat TMP
7:       MOV  TH1,#0            ;TH1 DIISI 0
8:       MOV  TL1,#0            ;TL1 DIISI 0     
9:       SETB TR1               ;JALANKAN TIMER 1
10: LOP1:
11:      JNB  2,*               ;CEK P3.2 LOW TETAP KE LOP1
12: LOP2:
13:      JNB  2,LOP3            ;P3.2, APAKAH SUDAH LOW ? JIKA SUDAH KE LOP3   
14:      MOV  A,TH1             ;TH1 DIISIKAN KE A
15:      CJNE A,#$0C,LOP2       ;TUNGGU SAMPAI OVERFLOW
16:      SJMP EXIT              ;DATA SELESAI DITERIMA SEMUA,
17:                             ;LOMPAT KE EXIT  
18: LOP3: CLR TR1               ;MATIKAN TIMER 1
19:      MOV  @R0,TH1           ;TH1 DIMASUKKAN KE ALAMAT DARI R0
20:      INC  R0                ;NAIKKAN R0
21:      SJMP IR                ;KEMBALI AMBIL DATA
22: EXIT:

Setelah datanya diambil maka dilihat apakah datanya berupa header, logic 1, logic 0. Dengan menggunakan timer maka dapat diketahui nilai dari headernya sebesar 0A, untuk logika 1 sebesar 06, sedangkan data highnya sebesar 06 dan untuk data lownya sebesar 04. Kemudian data yang masuk dikurangi oleh 05 jika ada carry berarti data low sebaliknya jika tidak ada carry berarti data high. Kemudian carrynya dikomplemen dan selanjutnya digeser dengan perintah RRC(rotate right dengan carry). Proses ini akan dilakukan sebanyak 8 kali pergeseran. Berikut ini program untuk mengolah data yang masuk. Proses ini akan dilakukan sebanyak 8 kali pergeseran.

Potongan Program 2 :

1:       EXIT:
2:       CLR      TR1         ;MATIKAN TIMER
3:       MOV      R0,#TMP     ;ALAMAT TEMP DIISIKAN KE R0
4:       MOV      A,@R0       ;ISINYA R0 DIISIKAN KE A                 
5:       CLR      C           ;CLEAR CARRY
6:       SUBB     A,#9        ;CEK APAKAH HEADERNYA SONY
7:                            ;DENGAN DIKURANGI 9(HEADERNYA SONY=0A)               
8:       JNC      SONY        ;TIDAK ADA CARRY,BERARTI SONY
9:       SETB     EX0         ;ADA CARRY AKTIFKAN EXTERNAL INTERUPT
10:      SJMP     COBA
11: SONY:
12:      INC      R0          ;R0 DIINCREMENT
13: DATA:
14:      MOV      R7,#8       ;DIAMBIL 8 BIT DATA
15:      MOV      R6,#0       ;NILAI AWAL R6 DIISI 0
16: LDATA:
17:      MOV      A,@R0       ;ALAMAT DARI R1 DISIKAN KE A
18: CEKBIT:
19:       CLR      C          ;CLEAR CARRY
20:       SUBB     A,#5       ;DIKURANGI 5(DATA HIGH SONY=06
21:                           ;DATA LOW SONY=04)
22:       CPL      C          ;CARRY DIKOMPLEMEN
23:       MOV      A,R6       ;R6 DIISIKAN KE A
24:       RRC      A          ;A DIGESER BERSAMA CARRY
25:       MOV      R6,A       ;DISIMPAN DI R6
26:       INC      R0
27:       DJNZ     R7,LDATA   ;TERUS SAMPAI 8 BIT DATA

Pengaturan Kecepatan Putar Kipas

Untuk menjalankan kipas digunakan rangkaian transistor yang disusun secara Darlington. Transistor yang dipakai adalah transistor jenis NPN tipe BC 547 yang memiliki faktor penguatan dc (hfe) sebesar 125 dan mampu mengalirkan sampai arus 100 mA DC. Rangkaian untuk menjalankan transistor dapat dilihat pada gambar 9:

Rangkaian Untuk Menjalankan Motor

Gambar 9. Rangkaian Untuk Menjalankan Motor

Untuk mengatur kecepatan kipas digunakan teknik PWM( Pulse Width Modulation), yakni mengatur besarnya dutycycle, frekuensinya tetap tetapi lebar pulsa high dan lownya dapat diatur. Untuk itu digunakan timer untuk mengatur pulsa high dan pulsa lownya. Jadi dutycyclenya akan dimulai dari 20%,30%,40%,50%,60%,70%,80%,90%. Semakin besar dutycyclenya maka semakin cepat pula putaran dari motor. Berikut ini merupakan potongan program untuk menjalankan kipas dengan prinsip PWM:

Potongan Program 3 :Pengaturan Kecepatan Kipas

1: PWM:
2:       MOV      A,R4            ;NILAI AWAL R4 DIISIKAN KE A
3:       MOV DPTR,#TABELH1        ;ALAMAT TABELH1 DIISIKAN KE DPTR
4:       MOVC A,@A+DPTR           ;A SEBAGAI PENUNJUK TABELH1 KEMUDIAN DIISIKAN KE A
5:       MOV TABH,A               ;TABH DIISI A
6:       MOV A,R4                
7:       MOV DPTR,#TABELH2        ;ALAMAT TABELH2 DIISIKAN KE DPTR
8:       MOVC A,@A+DPTR           ;A SEBAGAI PENUNJUK TABELH2 KEMUDIAN DIISIKAN KE A
9:       MOV TABH+1,A             ;A DIISIKAN KE TABH+1
10:      CLR TR0
11:      CJNE R3,#0,LOW           ;BANDINGKAN R3 DENGAN 0 TIDAK SAMA KE LOW
12:      SETB 1
13:      MOV TH0,TABH             ;TABH DIISIKAN KE TH0
14:      MOV TL0,TABH+1           ;TABH+1 DIISIKAN KE TL0
15:      MOV R3,#1                ;R3 DIISI 1
16:      SETB TR0                 ;JALANKAN TIMER
17:      SJMP SELESAI
18: LOW:
19:      MOV      A,R4             
20:      MOV DPTR,#TABELL1
21:      MOVC A,@A+DPTR
22:      MOV TABL,A
23:      MOV A,R4
24:      MOV DPTR,#TABELL2
25:      MOVC A,@A+DPTR
26:      MOV TABL+1,A
27:      CLR 1
28:      MOV TH0,TABL
29:      MOV TL0,TABL+1
30:      SETB TR0
31: RET
32: TABELH1 DB $FF,$FF,$FE,$FE,$FE,$FD,$FD,$FC,$FC,$FC
33: TABELH2 DB $FF,$38,$D4,$70,$0C,$A8,$44,$E0,$7C,$19
34: TABELL1 DB $FC,$FC,$FD,$FD,$FE,$FE,$FE,$FF,$FF,$FF
35: TABELL2 DB $19,$E0,$44,$A8,$0C,$70,$D4,$38,$9C,$FF 

Penghitungan Kecepatan Putar Kipas

Untuk menghitung kecepatan dari motor maka digunakan rangkaian photo transistor. Prinsip dari photo transistor ini adalah mirip dengan transistor lainnya. Wujud dari rangkaian photo transistor ini dapat dilihat pada gambar 10:

Rangkaian Photo Transistor Dan 74LS14

Gambar 10. Rangkaian Photo Transistor Dan 74LS14

Prinsip dari rangkaian ini adalah :

  • Jika antara transistor dan LED dihalangi maka transistor akan off sehingga output dari kolektor akan berlogic high
  • Sebaliknya jika antara transistor dan LED tidak dihalangi maka transistor akan on sehingga outputnya akan berlogic low.

Dengan mengetahui prinsip dari photo transistor ini maka harus dibuat penghalang antara transistor dan LED, pada penghalang itu diberi lobang sedikit. Penghalang itu harus dibuat seporos dengan kipas dc tersebut. Sehingga ketika berputar output dari transistor akan mengalami high dan low. Agar output dari rangkaian ini menjadi lebih akurat maka ditambahkan schmitt trigger (74LS14). Program untuk menghitung kecepatan dapat dilihat sebagai berikut:

Potongan Program 3 : Menghitung kecepatan Putar Kipas

1: LOOP:
2:     JB 4,*              
3:     JNB 4,*
4:     INC COUNT
5:     SJMP LOOP

Tampilan-SED1200

Tampilan yang dipakai adalah LCD Epson SED1200. LCD ini digunakan untuk menampilkan kecepatan putaran dari kipas dalam satuan RPS (Rotation per second). LCD Epson SED1200 ini dilengkapi dengan 4 jalur data (DB0…DB3) yang dipakai untuk menampilkan kode ASCII maupun perintah untuk mengatur kerjamya SED1200. Kode ASCII maupun perintah tersebut semuanya merupakan kode 8 bit maka kode-kode itu dikirimkan dua kali, yang pertama dikirimkan adalah 4 bit yang bernilai besar (D4..D7). baru kemudian 4 bit sisanya(D0..D3). Selain dilengkapi dengan jalur data maka LCD Epson SED1200 ini dilengkapi dengan CS,WR, dan A0. A0 digunakan untuk membedakan data yang dikirimkan berupa perintah atau kode ASCII. Jika A0=0 maka data yang dikirimkan adalah perintah untuk mengatur kerja SED1200 sebaliknya jika A0=1 maka data yang dikirim adalah kode ASCII yang ingin ditampilkan.

  • Sinyal CS digunakan untuk mengaktifkan proses pengiriman data, selama proses ini berlangsung CS diaktifkan pada level tegangan ‘0’
  • Data yang dikirimkan ke SED1200 disiapkan di DB0..DB3, seperti yang telah dibicarakan dipecah menjadi 2 kali pengiriman yaitu pengiriman D4..D7 dan selanjutnya D0..D3.
  • Sinyal WR dijadikan sebagai sinyal ’komando’, pengambilan data terjadi pada saat WR berubah dari ‘0’ menjadi ‘1’
Hubungan SED1200 ke AT89C2051,remote control pengatur kecepatan motor dc,12v dc motor controller berdasarkan pwm,rangkaian receiver remote,remote control tv sony,hubungan antara sinyal tx dan rx remote tv sony,format data dari remote sony,pulsa remote control sony,fungsi tombol dan data yang diterima oleh rangkaian penerima,format sinyal remote control sony,program untuk membaca remote,pengaturan kecepatan putar kipas,rangkaian untuk menjalankan motor,pengaturan kecepatan kipas,penghitungan kecepatan putar kipas

Gambar 11. Hubungan SED1200 ke AT89C2051

Pada potongan program 4 ini akan ditunjukkan bagaimana mengendalikan SED1200.

  • Subrutin KirimPerintah bekerja pada saat A0=’0’ berarti data yang dikirimkan AT89C2051 ke SED1200 berupa perintah untuk mengatur tata kerja SED1200. Subrutin KirimASCII bekerja pada saat A0=’1’ berarti data yang dikirimkan AT89C2051 sebagai kode ASCII yang akan ditampilkan.
  • Selama proses pengiriman data CS diaktifkan pada level tegangan ‘0’.
  • Data pada Akumulator A dikirimkan sebanyak dua kali yaitu 4 bit pertama A4..A7 dan 4 bit kedua A0..A3.
  • Karena AT89C2051 tidak mempunyai sinyal ALE maka dibuat 16 pulsa clock yang dibutuhkan oleh SED1200

Potongan Program 4 : Mengatur Tampilan LCD

1: ;****DAFTAR PERINTAH PENGATUR SED1200*****
2: RESETSED1200   EQU   %00010000
3: TAMPILAN1BARIS EQU   %00010010
4: TAMPILAN2BARIS EQU   %00010011
5: DISPLAYOFF     EQU   %00001100
6: DISPLAYON      EQU   %00001101
7: TANPACURSOR    EQU   %00001110
8: PAKAICURSOR    EQU   %00001111
9: GARISBAWAH     EQU   %00001000
10: BLOK          EQU   %00001001
11: TIDAKKEDIP    EQU   %00001010
12: BERKEDIP      EQU   %00001011
13: CURSORKEKANAN EQU   %00000100
14: CURSORKEKIRI  EQU   %00000101
15: KEBARISSATU   EQU   %10000000
16: KEBARISDUA    EQU   %11000000
17:
18: ;****Konfigurasi PIN LCD****
19: WRITE    BIT   4
20: A0       BIT   5
21: CS       BIT   6
22: CLK      BIT   P1.7
23: LCD:
24:       ACALL    SIAPKANSED1200
25:       ACALL    HAPUSTAMPILAN
26:       MOV      A,#KEBARISSATU
27:       ACALL    KIRIMPERINTAH
28:       MOV      A,R1
29:       MOV      B,#100
30:       DIV      AB
31:       ADD      A,#$30
32:       ACALL    TAMPILKANHURUF
33:       MOV      A,B
34:       MOV      B,#10
35:       DIV      AB
36:       ADD      A,#$30
37:       ACALL    TAMPILKANHURUF
38:       MOV      A,B
39:       ADD      A,#$30
40:       ACALL    TAMPILKANHURUF
41:       MOV      A,#$52
42:       ACALL    TAMPILKANHURUF
43:       MOV      A,#$50
44:       ACALL    TAMPILKANHURUF
45:       MOV      A,#$53
46:       ACALL    TAMPILKANHURUF
47:       MOV      A,R4
48:       ADD      A,#$30
49:       ACALL    TAMPILKANHURUF
50:       MOV      A,#KEBARISDUA
51:       ACALL    KIRIMPERINTAH
52:       RET
53:
54: ;****MEMPERSIAPKAN TATA KERJA SED1200*****
55: SIAPKANSED1200:
56:       SETB     Write             ;LEVEL TEGANGAN BAKU
57:       SETB     CLK
58:       CLR      CS
59:       MOV      A,#RESETSED1200
60:       ACALL    KIRIMPERINTAH
61:       MOV      A,#TAMPILAN2BARIS
62:       ACALL    KIRIMPERINTAH
63:       MOV      A,#KEBARISSATU
64:       ACALL    KIRIMPERINTAH
65:       MOV      A,#GARISBAWAH
66:       ACALL    KIRIMPERINTAH
67:       MOV      A,#PAKAICURSOR
68:       ACALL    KIRIMPERINTAH
69:       MOV      A,#BERKEDIP
70:       ACALL    KIRIMPERINTAH
71:       MOV      A,#DISPLAYON
72:       ACALL    KIRIMPERINTAH
73:       MOV      A,#KEBARISDUA
74:       ACALL    KIRIMPERINTAH
75:       MOV      A,#GARISBAWAH
76:       ACALL    KIRIMPERINTAH
77:       MOV      A,#PAKAICURSOR
78:       ACALL    KIRIMPERINTAH
79:       MOV      A,#BERKEDIP
80:       ACALL    KIRIMPERINTAH
81:       MOV      A,#DISPLAYON
82:       ACALL    KIRIMPERINTAH
83:       RET
84:
85: ; ***** Menghapus Tampilan SED1200 *****
86: HapusTampilan:
87:       MOV      A,#KeBarisSatu          ;BARIS SATU DIHAPUS
88:       ACALL    HapusBaris
89:       MOV      A,#KEBARISDUA
90:       ACALL    HAPUSBARIS
91: HapusBaris:         
92:       ACALL    KirimPerintah           ;UNTUK PINDAH BARIS
93:       MOV      R7,#10                  ;10 HURUF PER BARIS
94: HapusLagi:
95:       MOV      A,#’ ‘                  ;MENAMPILKAN SPASI
96:       ACALL    TAMPILKANHURUF          ;TAMPILKAN SPASI
97:       DJNZ     R7,HapusLagi           
98:       RET
99:
100: ;***** Tampilkan String yang ada di Memori Program *****
101: TAMPILKANHURUF:
102:       ACALL    KIRIMASCII
103:       RET
104:
105: ;*****SUBRUTIN SED1200****
106: KirimPerintah:
107:       CLR      A0                      ; A0=0 : COMMAND MODE
108:       SJMP     OutByte
109: KirimASCII:
110:       SETB     A0                      ; A0=1 : CHARACTER MODE
111: OutByte:
112:       CLR      CS
113:       PUSH     A                       ; SIMPAN DULU
114:       SWAP     A                       ; A0..A3 DAN A4..A7 TUKAR TEMPAT
115:       ACALL    OutNibble               ; OUTPUTKAN A4..A7
116:       POP      A                       ; AMBIL KEMBALI SIMPANAN
117:       ACALL    OutNibble               ; OUTPUTKAN A0..A3
118:       SETB     CS
119:
120: ;***** Membuat 16 pulsa CLK ****
121:       MOV      R6,#32
122: Buat16CLK:
123:       CPL      CLK                     ; CLK DIBALIK, ‘0’->’1′ DAN ‘1’->’0′
124:       DJNZ     R6,Buat16CLK            ; SEBANYAK 32 KALI
125:       RET
126: OutNibble:
127:       ANL      A,#$0F                  ; HANYA A.0..A.3 YANG DIPAKAI
128:       MOV      R6,A                    ; SIMPAN DULU
129:       MOV      A,P1                    ; AMBIL NILAI YANG SUDAH ADA DI P1
130:       ANL      A,#$F0                  ; PERTAHANKAN NILAI A.4..A.7
131:       ORL      A,R6                    ; GABUNGKAN DENGAN SIMPANAN A.0..A.3
132:       MOV      P1,A                    ; SIAPKAN KE SED1200
133:       CLR      Write                   ; ‘0’-KAN DULU KAKI WR SEED1200
134:       SETB     Write                   ; DATA DIAMBIL SED1200
135:       RET

Semoga informasi tentang “Remote Control Pengatur Kecepatan Motor DC” diatas mudah dipahami.

Title : Remote Control Pengatur Kecepatan Motor DC
Archive : Aplikasi Mikrokontroler

You may also like, related Remote Control Pengatur Kecepatan Motor DC