BAB II
LANDASAN TEORI

2.1.	Mikrokontroler AT89C2051 Dan AT89C51
Mikrokontroler AT89C2051 mempunyai 20 pin 15 diantaranya adalah saluran I/O yang terbagi menjadi 2 port serbaguna yang masing-masing dikenal sebagai port  1 dan 3. Nomor masing- masing jalur (pin) dari port paralel mulai 0 sampai 7, jalur (pin) pertama port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah P3.7.  
Sedagkan pada Mikrokontroler AT89C51 mempunyai 40 pin 32 diantaranya adalah saluran I/O yang terbagi menjadi 4 port serbaguna yang masing-masing dikenal sebagai port  0, port 1, port 2 dan port 3. Nomer masing- masing jalur (pin)  port paralel mulai dari 0 sampai 7, jalur (pin) pertama port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah P3.7. Secara umum arsitektur mikrokontroler AT89C2051 seperti pada diagram blok gambar 2.1 dan untuk AT89C51 seperti pada diagram blok gambar 2.2. 

Gambar 2.1 Diagram Blok Arsitektur AT89C2051

Gambar 2.2 Diagram Blok Arsitektur AT89C51
2.1.1	Konfigurasi PIN AT89C2051 dan AT89C51

AT89C2051

			   
			  
AT89C51

Gambar 2.3 Diagram pin Mikrokontroler AT89C2051 dan AT89C51
Gambar 2.3 adalah susunan pin mikrokontroler AT89C2051 dan AT89C51 yang mempunyai fungsi sebagai berikut:
1.	 VCC, merupakan sumber tegangan +5V.
2.	 GND, dihubungkan ke tanah(ground).
3.	 RST, berfungsi sebagai masukan reset. Jika RST diberi logika tinggi dalam waktu 2 siklus mesin maka mikrokontroler akan direset.
4.	 ALE/ (Address Latch Enable) (Pada AT89C2051 tidak ada), pulsa keluaran ALE untuk menahan byte rendah alamat, selama pengaksesan ke memory luar. Selain itu juga sebagai pulsa masukan pulsa (program) selama pemrograman flash.
5.	 (Program Store Enable) (Pada AT89C2051 tidak ada), merupakan tanda (Strobe) baca untuk memperbolehkan membaca memori program eksternal.
6.	/VPP (External Acces Enable) (Pada AT89C2051 tidak ada), selalu terhubung ke ground, jika mikrokontroler akan mengeksekusi program dari memori eksternal lokasi 0000H hingga FFFFH. Selain itu,  harus dihubungkan ke Vcc agar mikrokontroler mengakses program secara internal. Kaki ini juga berfungsi menerima tegangan 12 Volt (Vpp) selama pemrograman flash.
7.	Xtal 1
Masukan ke pembalik penguat osilator dan masukan ke rangkaian clock internal, kaki ini dihubungkan dengan salah satu kaki kristal eksternal.
8.	Xtal 2
Keluran ke pembalik penguat osilator dan masukan ke rangkaian clock internal. Kaki ini dihubungkan dengan salah satu kaki kristal eksternal.   

2.1.2	Spesifikasi masing-masing port
Berikut ini disajikan ringkasan spesifikasi dari masing-masing port dari mikrokontroler AT89C2051 dan AT89C51.
a.	Port 0 (Pada AT89C2051 tidak ada)
Port 0 merupakan port keluaran/masukan (I/O) bertipe saluran terbuka dua arah. Sebagai port keluaran, masing-masing kaki dapat menyerap arus delapan masukan TTL (sekitar 3,8 mA). Pada saat ‘1’ dituliskan ke kaki-kaki port 0 ini, maka kaki-kaki Port 0 dapat digunakan sebagai masukan berimpedansi tinggi. Port 0 juga dapat dikonfigurasikan sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Port 0 juga menerima kode-kode yang dikirimkan kepada selama proses pemrograman dan mengeluarkan kode-kode selama proses verifikasi program yang telah tersimpan dalam flash, dalam hal ini dibutuhkan pullup eksternal selama proses verifikasi program. 
b.	Port 1
Port 1 merupakan Port I/O dwi-arah yang dilengkapi dengan pullup internal. Penyangga keluaran Port 1 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA), Port 1 memberikan alamat bagian rendah (low byte) selama pemrograman dan verifikasi flash. Jika logika satu dituliskan pada port 1 maka keluaran akan berlogika satu dan dapat digunakan sebagai masukan. Fungsi lain port 1 untuk mikrokontroler AT89C2051 adalah Port 1 sebagai masukan byte kode program saat pemrograman dan keluaran kode program saat verifikasi. Port P1.0 dan P1.1 membutuhkan resistor pullup dan mempunyai fungsi lain yaitu:
Tabel 2.1 Fungsi lain P1.0 dan P1.1 pada AT89C2051
Pin	Fungsi	
P1.0	Masukan positif (AN0) untuk komparator analog	
P1.1	Masukan negatif (AN1) untuk komparator analog	

c.	Port 2 (Pada AT89C2051 tidak ada)
Port 2 merupakan Port I/O dwi-arah dengan dilengkapi pullup internal. Penyangga keluaran Port 2 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika “1” dituliskan kekaki-kaki port 2, maka masing-masing kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai masukan. Port 2 memberikan byte alamat bagian tinggi (high byte) selama pengambilan intruksi dari memori program eksternal dan selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 16-bit.
d.	Port 3
Port 3 merupakan Port I/O dwi-arah dengan dilengkapi pullup internal. Penyangga keluaran Port 3 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika logika satu dituliskan pada Port 3 maka keluaran akan berlogika satu dan dapat digunakan sebagai masukan. Selain sebagai masukan/keluaran biasa, Port 3 juga mempunyai fungsi khusus seperti pada tabel 2.2.
Tabel 2.2 Fungsi Khusus Port 3
Pin	Fungsi Khusus	AT89C51	AT89C2051	
P3.0	RXD (port masukan serial)	Ada	Ada	
P3.1	TXD (port keluaran serial)	Ada	Ada	
P3.2	INT0 (interupsi eksternal 0, aktif rendah)	Ada	Ada	
P3.3	INT1 (interupsi eksternal 1, aktif rendah)	Ada	Ada	
P3.4	T0 (masukan eksternal timer 0)	Ada	Ada	
P3.5	T1 (masukan eksternal timer 1)	Ada	Ada	
P3.6	WR (signal tulis untuk memori eksternal, aktif rendah)	Ada	Tidak Ada	
P3.7	RD (signal baca untuk memori eksternal, aktif rendah)	Ada	Tidak Ada	

2.1.3	Struktur Memori
Mikrokontroler AT89C2051 dan AT89C51 mempunyai struktur memori yang terdiri atas:
a.	RAM internal, memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variabel atau data yang bersifat sementara.
b.	Special Function Register (register fungsi khusus), memori yang berisi register-register yang mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler tersebut, seperti timer, serial dan lain-lain.
c.	Memori program, memori yang digunakan untuk menyimpan intruksi-intruksi MCS-51.   

2.1.3.1	RAM Internal
RAM internal terdiri atas:
a.	Register Bank
AT89C2051 dan AT89C51 memunyai delapan buah register yang terdiri atas R0 hingga R7. kedelapan buah register ini selalu terletak pada alamat 00H hingga 07H pada setiap kali sistem direset. Namun posisi R0 hingga R7 dapat dipindah ke Bank 1, Bank 2 dan Bank 3 dengan mengatur bit RS0 dan RS1 (lihat gambar 2.4 RAM Internal).
b.	Bit Addressable RAM
RAM pada alamat 20H hingga 2FH dapat diakses secara pengalamatan bit (bit addressable) sehingga hanya dengan sebuah intruksi saja setiap bit dalam area ini dapat diset, clear, AND dan OR.
c.	RAM keperluan umum
RAM keperluan umum dimulai dari alamat 30H hingga 7FH dan dapat diakses dengan pengalamatan langsung maupun tak langsung.  

Gambar 2.4 RAM Internal.

2.1.3.2	Register Fungsi Khusus
Register Fungsi khusus (Special Function Register) merupakan register khusus yang digunakan sebagai kendali, buffer atau fungsi khusus lainnya. Special Function Register dipetakan mulai alamat 80H hingga 0FFH. Tidak seluruh ruang alamat diimplementasikan dengan suatu register. Beberapa register dapat dialamati perbit. Secara lengkap SFR pada ATMEL 51 adalah seperti pada gambar 2.5.

Gambar 2.5 Ruang SFR (Special Function Register)

2.1.3.2.1	Penjelasan Singkat Fungsi SFR
P0 (Port 0, alamat 80H, pengalamatan bit)
Merupakan register penyangga  (buffer) port 0. masing-masing bit SFR dihubungkan dengan satu pin port 0 mikrokontroler.  
SP (Stack Pointer, alamat 81H)
Ini merupakan pointer tumpukan (stack pointer) pada mikrokontroler. SFR ini menunjukkan lokasi yang akan dituliskan atau dibaca dari tumpukan (stack) pada RAM internal.
DPL/DPH (Data Pointer Low/High, alamat 82H/83H)
SFR DPL dan DPH bekerja bersama-sama membentuk 16-bit yang dikenal dengan pointer data (DPTR). Pointer data (DPTR) digunakan dalam operasi yang melibatkan RAM eksternal maupun beberapa intruksi yang melibatkan memori program.
PCON (Power Control, alamat 87H)
SFR ini digunakan untuk mengendalikan mode power control.
TCON (Timer/Counter Control, alamat 88H, pengalamatan bit)
SFR ini digunakan untuk mengkonfigurasi dan memodifikasi operasi timer/counter 0 dan 1 pada ATMEL-51. SFR ini mengendalikan masing-masing timer/counter apakah berjalan atau berhenti dan juga terdapat flag yang menandakan masing-masing timer/counter sudah melimpah (overflow).
TMOD (Timer/Counter Mode, alamat 89H)
SFR ini digunakan untuk mengkonfigurasi mode operasi setiap timer/counter. Dengan SFR ini program dapat memodifikasi timer sebagai timer 16 bit, timer 8 bit autoreload, timer/counter 13 bit atau dua timer/counter yang terpisah.
TL0/TH0 (Timer/Counter 0 Low/High, alamat 8AH/8CH)
TL0 dan TH0 bersama–sama membentuk timer/counter 0. Kelakuan timer/counter ini dikendalikan oleh TMOD sebagaimana penjelasan diatas.
TL1/TH1 (Timer/Counter 1 Low/High, alamat 8BH/8DH)
TL1 dan TH1 bersama–sama membentuk timer/counter 1. Kelakuan timer/counter ini dikendalikan oleh TMOD sebagaimana penjelasan diatas.
P1 (Port 1, alamat 90H, pengalamatan bit)
Ini merupakan masukan/keluaran. Masing-masing bit SFR dihubungkan dengan satu pin mikrokontroler.
SCON (Serial Control, alamat 98H, pengalamatan bit)
SFR ini digunakan untuk mengkonfigurasi kelakuan port Serial ATMEL-51, kecepatan boud, apakah diaktifkan menerima data dan juga terdapat flag yang menandakan pengiriman dan penerimaan data sukses.
SBUF (Serial Buffer, alamat 99H)
Serial buffer digunakan untuk mengirim maupun menerima data melalui masukan/keluaran port serial. Data yang dituliskan pada SBUF akan dikirimkan melalui pin TXD. 
P2 (Port 2, alamat A0H, pengalamatan bit)
Ini merupakan masukan/keluaran. Masing-masing bit SFR dihubungkan dengan satu pin mikrokontroler.
IE (Interupt Enable, alamat A8H)
SFR ini digunakan untuk mengaktifkan atau menonaktifkan interupsi tertentu. Bit ke 7 digunakan untuk mengaktifkan atau menonaktifkan semua interupsi.
P3 (Port 3, alamat B0H, pengalamatan bit)
Ini merupakan masukan/keluaran. Masing-masing bit SFR dihubungkan dengan satu pin mikrokontroler.
IP (Interupt Priority, alamat B8H, pengalamatan bit)
SFR ini digunakan untuk mengatur prioritas interupsi satu terhadap yang lainya. Prioritas rendah dinyatakan dengan logika rendah (0) dan prioritas tinggi dinyatakan dengan logika tinggi (1).

ACC (Accumulator, alamat E0H, pengalamatan bit)
ACC adalah SFR yang banyak digunakan dalam intruksi diantaranya adalah operasi aritmatika, pengaksesan external RAM dll.
B (Register B, alamat F0H, pengalamatan bit)
Register B digunakan dalam intruksi perkalian dan pembagian. Register ini juga biasa digunakan sebagai temporari.
PSW (Program Status Word, alamat D0H, pengalamatan bit)
SFR ini digunakan untuk menyimpan bit-bit yang penting yang akan diset maupun diclear oleh intruksi MCS-51. PSW berisi bit carry flag, auxiliary carry flag, overflow flag dan parity flag. PSW juga ada tambahan bit yang digunakan untuk memilih bank register.

2.1.3.3	Memori Program
Gambar 2.6 mempelihtkan bagian bawah dari memori program. Setelah direset CPU memulai eksekusi dari 0000H. Setiap intruksi ditempatkan pada sebuah lokasi tertentu di dalam memori. Interupsi menyebabkan CPU melompat ke lokasi tersebut, ketika interupsi memulai eksekusi routine layanan. Jika sebuah layanan interupsi cukup pendek, maka dapat menempati seluruh interval sebanyak 8 byte. Routine layanan yang lebih panjang dapat menggunakan sebuah perintah loncatan untuk melewati lokasi interupsi, jika interupsi lain sedang digunakan. Pengalamatan bertujuan untuk menghindari terjadinya 2 alat yang bekerja secara bersamaan dalam satu satuan waktu, sehingga memungkinkan terjadinya kesalahan atau kerusakan.

8 BYTES

(0033H)

002BH

0023H

001BH

0013H

000BH

0003H

0000H

RESET

   LOKASI
INTERUPSI

Timer 2

Port Serial

Timer 1

Interupsi Eksternal 1

Timer 0

Interupsi Eksternal 0

Gambar 2.6 Memori Program

8 BYTES

(0033H)

002BH

0023H

001BH

0013H

000BH

0003H

0000H

RESET

   LOKASI
INTERUPSI

Timer 2

Port Serial

Timer 1

Interupsi Eksternal 1

Timer 0

Interupsi Eksternal 0

Alamat penyimpan data, baik RAM maupun ROM mempunyai alamat yang setiap alamatnya dapat diisi data 1 byte atau 8-bit.

2.1.4	Register Pengatur Timer
	Register TMOD dan register TCON merupakan register pembantu untuk mengatur kerja Timer 0 dan Timer 1, kedua register ini dipakai bersama oleh Timer 0 dan Timer 1. Susunan bit register TMOD dan TCON masing-masing ditunjukan pada gambar 2.7 dan gambar 2.8 dan tabel 2.3 untuk memilih mode kerja timer.

Bit 7        Bit 6          Bit 5         Bit 4        Bit 3         Bit 2         Bit 1        Bit0

TMOD – Timer Mode Register (89H)

GATE	C/~T	M1	M0	GATE	C/~T	M1	M0	
           Timer 1	  Timer 0

Gambar 2.7 Susunan bit dalam Register TMOD
Tabel 2.3 Untuk  Menentukan Mode Kerja Timer
M1	M0	MODE	
0	0	0	
0	1	1	
1	0	2	
1	1	3	

TCON – Timer Control Register (88H)	

Bit 7        Bit 6          Bit 5         Bit 4        Bit 3         Bit 2         Bit 1        Bit0

TF1	TR1	TF0	TR0	IE1	IT1	IE0	IT0	
         Timer 1                      Timer 0  
Gambar 2.8 Susunan bit dalam Register TCON

Penjelasan dari masing-masing register TMOD dan TCON adalah sebagai berikut:
1.	Denah susunan bit dalam register TMOD 
Register TMOD dibagi menjadi 2 bagian secara simitris, bit 0 sampai 3 register TMOD (TMOD bit 0 .. TMOD bit 3) dipakai untuk mengatur Timer 0, bit 4 sampai 7 register TMOD (TMOD bit 4 .. TMOD bit 7) dipakai untuk mengatur Timer 1, pemakaiannya sebagai berikut :
a.	Bit M0 dan M1 dipakai untuk menentukan Mode Timer seperti yang terlihat dalam tabel 2.3 dan Gambar 2.8.
b.	Bit C/T dipakai untuk mengatur sumber sinyal denyut yang diumpankan ke pencacah biner. Jika C/T=0 sinyal denyut diperoleh dari osilator kristal yang frekuensinya sudah dibagi 12, sedangkan jika C/T=1 maka sinyal denyut diperoleh dari kaki T0 (untuk Timer 0) atau kaki T1 (untuk Timer 1).
c.	Bit GATE merupakan bit pengatur saluran sinyal denyut. Bila bit GATE=0 saluran sinyal denyut hanya diatur oleh bit TRx (maksudnya adalah TR0 atau TR1 pada register TCON). Bila bit GATE=1 kaki INT0 (untuk Timer 0) atau kaki INT1 (untuk Timer 1) dipakai juga untuk mengatur saluran sinyal denyut. 
2.	Denah susunan bit dalam register TCON 
Register TCON dibagi menjadi 2 bagian, 4 bit pertama (bit 0 .. bit 3) dipakai untuk keperluan mengatur kaki INT0 dan INT1, ke-empat bit ini dibahas dibagian lain. Sisa 4 bit dari register TCON (bit 4..bit 7) dibagi menjadi 2 bagian secara simitris yang dipakai untuk mengatur Timer0/Timer 1, sebagai berikut :
a.	Bit TFx (maksudnya adalah TF0 atau TF1) merupakan bit penampung limpahan (lihat Gambar 2.9), TFx akan menjadi ‘1’ setiap kali pencacah biner yang terhubung padanya melimpah (kedudukan pencacah berubah dari FFFFH kembali menjadi 0000H). Bit TFx di-nol-kan dengan istruksi CLR TF0 atau CLR TF1. Jika sarana interupsi dari Timer 0/Timer 1 dipakai, TRx di-nol-kan saat MCS51 menjalankan rutin layanan interupsi (ISR  Interupt Service Routine).
b.	Bit TRx (maksudnya adalah TR0 atau TR1) merupakan bit pengatur saluran sinyal denyut, bila bit ini =0 sinyal denyut tidak disalurkan ke pencacah biner sehingga pencacah berhenti mencacah. Bila bit GATE pada register TMOD =1, maka saluran sinyal denyut ini diatur bersama oleh TRx dan sinyal pada kaki INT0/INT1.
2.1.5	Sistem Interupsi
Proses reset merupakan peristiwa perangkat keras (sinyal reset diumpankan ke kaki Reset) yang dipakai untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program prosesor (mengisi Program Counter dengan vektor reset). Jika permintaan interupsi dilayani prosesor, Program Counter akan diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor interupsi (interrupt vector), yang merupakan nomor awal memori program yang menampung program yang dipakai untuk melayani permintaan interupsi tersebut. 
Program yang dijalankan dengan cara interupsi, dinamakan sebagai program layanan interupsi (Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan, selesai menjalankan ISR prosesor kembali menjalankan program utama.

2.1.5.1	Mengaktifkan dan Menon-Aktifkan Interupsi
Semua sumber permintaan interupsi yang di bahas di atas, masing-masing bisa diaktifkan atau dinonaktifkan secara tersendiri lewat bit-bit yang ada dalam register IE (Interrupt Enable Register). Bit EX0 dan EX1 untuk mengatur interupsi eksternal INT0 dan INT1, bit ET0 dan ET1 untuk mengatur interupsi timer 0 dan timer 1, bit ES untuk mengatur interupsi port serial, seperti yang digambarkan dalam Gambar 2.11 dan tabel 2.4. Di samping itu ada pula bit EA yang bisa dipakai untuk mengatur semua sumber interupsi sekali gus. Setelah reset, semua bit dalam  register IE bernilai ‘0’, artinya sistem interupsi dalam keadaan non-aktif. Untuk mengaktipkan salah satu sistem interupsi, bit pengatur interupsi bersangkutan diaktipkan dan juga EA yang mengatur semua sumber interupsi. Misalnya intruksi yang dipakai untuk mengaktifkan interupsi ekternal INT0 adalah SETB EX0  disusul dengan SETB EA.
EA	-	ET2	ES	ET1	EX1	ET0	EX0	

Gambar 2.9 Susunan Bit dalam Register IE
Tabel 2.4 Keterangan Register IE
Simbol	Posisi	Fungsi	
EA	IE.7	Untuk menghidupkan diisi 1 dan mematikan diisi 0 untuk seluruh interupsi secara serempak	
-	IE.6	Cadangan	
ET2	IE.5	Bit aktifitas interupsi timer 2 Overflow	
ES	IE.4	Bit aktifitas interupsi port serial	
ET1	IE.3	Bit aktifitas interupsi timer 1Overflow	
EX1	IE.2	Bit aktifitas interupsi eksternal 1	
ET0	IE.1	Bit aktifitas interupsi timer 0 Overflow	
EX0	IE.0	Bit aktifitas interupsi eksternal 0	

2.1.5.2	Vektor Interupsi
Saat MCS-51 menanggapi permintaan interupsi, Program Counter diisi dengan sebuah nilai yang dinamakan sebagai vektor interupsi, yang merupakan nomor awal dari memori program yang menampung ISR untuk melayani permintaan interupsi tersebut. Pada tabel 2.5 ditunjukan daftar vektor interupsi yang terdapat pada AT89C51. 
Tabel 2.5 Vektor-Vektor Interupsi AT89C51
Interupsi	Tanda (Flag)	Alamat Vektor	
Reset Sistem	RST	0000H	
Eksternal 0	IE0	0003H	
Timer 0	TF0	000BH	
Eksternal 1	IE1	0013H	
Timer 1	TF1	001BH	
Port Serial	RI atau TI	0023H	
Timer 2	TF2 atau EXF2	002BH	
2.1.5.3	Tingkatan Perioritas Interupsi
Masing-masing sumber interupsi bisa ditempatkan pada dua tingkatan perioritas yang berbeda. Pengaturan tingkatan perioritas isi dilakukan dengan bit-bit yang ada dalam register IP (Interrupt Priority). Setelah reset, semua bit dalam register IP bernilai ‘0’, artinya semua sumber interupsi ditempatkan pada tingkatan tanpa perioritas. 
Tabel 2.6 Register IP (Interupt Priority) untuk memilih Prioritas Interupsi
Bit	Simbol	Alamat Bit	Keterangan	
IP.7	-	-		
IP.6	-	-		
IP.5	PT2	BDH	Prioritas untuk Interupsi Timer 2	
IP.4	PS	BCH	Prioritas untuk Interupsi Port Serial	
IP.3	PT1	BBH	Prioritas untuk Interupsi Timer 1	
IP.2	PX1	BAH	Prioritas untuk Interupsi Eksternal 1	
IP.1	PT0	B9H	Prioritas untuk Interupsi Timer 0	
IP.0	PX0	B8H	Prioritas untuk Interupsi Eksternal 0	

2.1.6	Mode Pengalamatan Dalam MCS51
Mode pengalamatan ini secara garis besar terdiri dari pengalamatan tak langsung, pengalamatan langsung, pengalamatan segera, pengalamatan bit dan pengalaman kode.
2.1.6.1	Mode Pengalamatan Segera (Immediate Addressing Mode)
Pengalamatan segera pada sebuah operasi dilakukan dengan memberikan data secara langsung tanpa perantara dari alamat tertentu. Biasanya pengalamatan segera ini diawali dengan tanda #.
Contoh :
MOV A,#10H
Intruksi ini melakukan operasi memindahkan data 10H kedalam akumulator.
2.1.6.2	Mode Pengalamatan Langsung (Direct Addressing Mode)
Pengalamatan langsung pada sebuah operasi dilakukan dengan memberikan data secara langsung ke sebuah alamat register.
Contoh :
MOV A,10H
Intruksi ini melakukan operasi memindahkan data pada alamat 10H ke dalam akumulator.
2.1.6.3	Mode Pengalamatan Tak Langsung (Indirect Addressing Mode)
Pada pengalamatan tak langsung, intruksi menunjuk pada sebuah register yang berisi alamat memori yang akan dituju. Pengalamatan tak langsung ini biasanya menggunakan simbol @ yang maksudnya menunjuk alamat memori yang terdapat pada register tersebut.
Contoh :
MOV A,@R1
Intruksi ini melakukan operasi memindahkan data dari alamat memori yang ditunjuk oleh register R1 ke akumulator.
2.1.6.4	Mode Pengalamatan Bit
 Pengalamatan bit pada sebuah operasi digunakan untuk mengalamati suatu alamat secara bit.
Contoh :
Setb A.1
Intruksi ini memberi data bit pada alamat A.1 dari akumulator dengan nilai 1.

2.1.6.5	Mode Pengalamatan Kode
Pada pengalamatan kode ini, proses pengalamatannya ditujukan langsung pada kode atau sering sering disebut sebagai rutin.
Contoh :
Call delay
Intruksi ini melakukan proses pemanggilan subrutin delay.

2.2.	Remote Control TV Sony
Remote Control TV Sony ini menggunakan jenis pengkodean Pulses coded jenis ini mengatur panjang pulsanya, sehingga pulsanya divariasi untuk menunjukkan data itu berlogic high atau low. Yang dijadikan variasi adalah pulsa highnya. 

Gambar 2.10 Pulses 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 2.11 sebagai contoh yang dikirimkan adalah header:

Gambar 2.11 Hubungan Antara Sinyal TX dan RX

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. Sedangkan sinyal informasi sebesar 4T=2200s (454.54 Hz) akan diterima begitu juga pulsa lownya sebesar 1T=550s (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. 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:
		Hxxxxxxyyyyyy
	Header   LSB      MSB 
xxxxxx : command		
yyyyyy : address
Jarak antara data dengan data adalah 25ms.
 Remote Sony ini memiliki karakteristik yaitu memiliki periode (1T)=550 s 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). 

Gambar 2.12 Pulsa Remote Sony Sebelum Melalui Inverter

 Pengamatan 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 melewati gerbang inverter.

Gambar 2.13 Sinyal Remote Sony Setelah Melalui Inverter

Tabel 2.7 Tabel Fungsi Tombol dan Data Yang Diterima oleh
Rangkaian Penerima
Nama tombol	Data Hexa	Fungsi Tombol	Data Hexa	Fungsi Tombol	Data Hexa	
Tombol 1	#080	Volume -	#093	Sharpness -	#0A3	
Tombol 2	#081	Mute	#094	TV/Video	#0A5	
Tombol 3	#082	Power(toggle)	#095	Balance L	#0A6	
Tombol 4	#083	Normal value	#096	Balance R	#0A7	
Tombol 5	#084	Picture +	#098	Power on	#0AE	
Tombol 6	#085	Picture -	#099	Power off	#0AF	
Tombol 7	#086	Colour +	#09A	Input line A	#0C0	
Tombol 8	#087	Colour -	#09B	Input line B	#0C1	
Tombol 9	#088	Brightness +	#09E	Input AV	#0C3	
Tombol 0	#089	Brightness -	#09F	Input digital	#0C5	
Ch +	#090	Hue +	#0A0	Input Vtr	#0C7	
Ch -	#091	Hue -	#0A1	Sharpness -	#0A3	
Volume +	#092	Sharpness +	#0A2