Organisasi Memori Dasar-dasar Pemrograman Bahasa Assembler

external. Sedangkan pada saat Flash Programming PROG berfungsi sebagai pulsa input selama proses pemrograman. Pin 31 Berfungsi sebagai EAVPP. Pada kondisi low, pin ini akan berfungsi sebagai External Access Enable EA yaitu mikrokontroler akan menjalankan program yang ada pada memori external. Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal. Pin ini juga berfungsi sebagai masukkan tegangan pemrograman selama proses pemrograman. Pin 32 – 39 Berfungsi sebagai D7 – D0 A7-A0. Pin 32 sampai 39 adalah port 0 yang merupakan saluran IO 8 bit open collector dan dapat juga digunakan sebagai multiplex bus alamat rendah dan bus data selama adanya akses ke memori program external, pada mode ini port 0 mempunyai internal pull up. Saat proses pemrograman dan verifikasi, port 0 membutuhkan eksternal pull up, dan digunakan sebagai saluran data. Pin 40 Berfungsi sebagai VCC. Pin 40 merupakan masukkan sumber tegangan positif bagi mikrokontroler.

2.2 Organisasi Memori

Semua divais 8051 mempunyai ruang alamat yang terpisah untuk memori program dan memori data, secara logika dari memori program dan data, mengijinkan memori data untuk diakses dengan pengalamatan 8 bit, yang dengan cepat dapat disimpan dan dimanipulasi dengan CPU 8 bit. Selain itu, pengalamatan memori data 16 bit dapat juga dibangkitkan melalui register DPTR. Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Memori program ROM, EPROM dan FLASH hanya dapat dibaca, tidak ditulis. Memori program dapat mencapai sampai 64K byte. Pada 89S51, 4K byte memori program terdapat didalam chip. Untuk membaca memori program eksternal mikrokontroller mengirim sinyal PSEN program store enable . Memori data RAM menempati ruang alamat yang terpisah dari memori program. Pada keluarga 8051, 128 byte terendah dari memori data, berada didalam chip. RAM eksternal maksimal 64K byte. Dalam pengaksesan RAM Eksternal, mikrokontroller mingirimkan sinyal RD baca dan WR tulis . Gambar 2.3 Struktur memori mikrokontroller keluarga MCS51

2.3 Dasar-dasar Pemrograman Bahasa Assembler

Dalam menjalankan program, mikrokontroler akan melakukan pembacaan data yang tersimpan dalam memori program internal atau eksternal. Alamat memori yang harus dibaca disimpan dalam sebuah register yang dinamakan program counter PC. Data yang terbaca akan diartikan sebagai perintah yang harus dikerjakan oleh mikrokontroler. Perintah ini bisa berbentuk pemindahan data data transfer, pengolahan data data processing atau mengubah alur program program control. Setelah melaksanakan perintah, mikrokontroler akan Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. memperbaharui isi PC dengan alamat memori selanjutnya sehingga mikrokontroler bisa mengeksekusi perintah selanjutnya. Keluarga Atmel AT89S51 memiliki instruksi yang kompatibel dengan instruksi MCS51 dari Intel. Berikut ini dijelaskan beberapa instruksi dasar yang umum digunakan pada pemrograman Mikrokontroller AT89S51. Andi Offset, 2007 MOV,MOVC dan MOVX a Instruksi MOV digunakan untuk menyalin data antara 2 operand. b Instruksi MOVC digunakan untuk menyalin data yang terdapat pada memori program internal. c Instruksi MOVX digunakan untuk menyalin data yang terdapat pada memori program external. Tabel 2.3 Contoh Syntax Assembler MOV,MOVC dan MOVX Contoh Syntax Keterangan MOV A,R1 Salin nilai R1 ke akumulator MOV A,R1 Salin isi lokasi yang ditunjukan R1 ke A MOV A,P1 Salin data pada Port 1 ke akumulator MOV P1,A Salin data pada akumulator ke Port 1 MOC A,X+DPRT Salin data int. yang di tunjuk DPTR ke A MOV A,DPRT Salin data eks. Yang ditunjuk DPRT ke A MOVX DPTR,A Salin data akumulator ke lokasi yang ditunjuk DPTR Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. ADD dan SUBB a Instruksi ADD digunakan untuk melakukan operasi penjumlahan akumulator dengar suatu operand dan hasilnya disimpan dalam akumulator. b Instruksi SUBB digunakan untuk melakukan operasi pengurangan akumulator dangan suatu operand dan hasilnya disimpan dalam akumulator. Tabel 2.4 Contoh Syntax Assembler ADD dan SUBB Contoh Syntax Keterangan ADD A,20 A = A + 20 ADD A,RO A = A + [R0] SUBB A,B A = A – B SUBB A,10 A = A - 10 MUL AB dan DIV AB a Instruksi MUL AB digunakan untuk melakukan operasi perkalian antara akumulator dengan register B. Hasilnya berupa data 16 bit dengan low byte pada A dan high byte pada B. a. Contoh : misal A = 50h B = A0h Mul a,b Hasil = 3200h maka : A= 00h B = 32h b Instruksi DIV AB digunakan untuk melakukan operasi pembagian antara akumulator dengan register B. Hasilnya, pembagian disimpan pada akumulator dan sisa pembagian disimpan pada register B. a. Contoh: misal A = FBh B = 12h Mul a,b Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Hasil = 0Dh maka: A = 0Dh B = 11H Karena, Fbh = 0d x 12 + 11 DEC dan INC a Instruksi DEC digunakan untuk melakukan pengurangan sebesar satu pada suatu operand. b Instruksi INC digunakan untuk melakukan penambahan sebesar satu pada suatu operand. Tabel 2.5 Contoh Syntax Assembler DEC dan INC Contoh Syntax Keterangan DEC A A = A – 1 DEC R0 [R0] = [R0] – 1 INC A A = A + 1 INC DPTR DPTR = DPTR + 1 ORL, ANL dan CPL a Instruksi ORL digunakan untuk melakukan operasi OR antara dua operand. b Insrtuksi ANL digunakan untuk melakukan operasi AND antara dua operand. c Instruksi CPL digunakan untuk melakukan operasi komplemen suatu operand. Tabel 2.6 Contoh Syntax Assembler ORL,ANL dan CPL Contoh Syntax Akumulator Register B Hasil ORL A,B 0011 1010 1111 0000 1111 1010 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. Contoh Syntax Akumulator Register B Hasil ANL A,B 0011 1010 1111 0000 0011 0000 CPL A 0011 1010 ---- ---- 1100 0101 RR, RL dan SWAP a Instruksi RR digunakan untuk melakukan operasi pergeseran ke kanan sebanyak 1 bit. b Instruksi RL digunakan untuk melakukan operasi penggeseran ke kiri sebanyak 1 bit. c Insrtuksi SWAP digunakan untuk melakukan operasi pertukaran data low nible dan high nible. Tabel 2.7 Contoh Syntax Assembler RR,RL dan SWAP Contuh Syntax Akumulator Hasil RR A 0011 1010 0001 1101 RL A 0011 1010 0111 0100 SWAP A 0011 1010 1010 0011 SETB dan CLR a Instruksi SETB digunakan untuk memberikan logic 1 pada bit operand. b Instruksi CLR digunakan untuk memberikan logic 0 pada bit operand. Contoh: Mulai: Setb p2.0 Setb acc.0 Clr p2.1 Clr acc.1 Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. PUSH dan POP a Instruksi PUSH digunakan untuk menyimpan operand ke dalam stack. b Instruksi POP digunakan untuk mengembalikan nilai operand dari stack. Contoh : PUSH 7 PUSH 6 PUSH 5 MOV R7,04H LUPA: MOV R6,0FFH LUPB: MOV R5,0FFH djnz R5, djnz R6,LUPB POP 5 POP 6 POP 7 JMP, JB, JNB, JZ, JNZ dan CJNE a JMP Jump digunakan untuk melakukan lompatan ke suatu blok program. b JB Jump if Bit dan JNB Jump if Not Bit digunakan untuk melakukan lompatan ke suatu blok program jika nilai operand 1 Bit atau 0 Not Bit. c JZ Jump if Zero dan JNZ Jump if Not Zero digunakan untuk melakukan lompatan ke suatu blok program jika nilai operand 0 Zero atau 0 Not Zero. d CJNE Compare and Jump if Not Equal digunakan untuk melakukan pembandingan dua operand dan lompat ke blok program lain jika tidak sama. CALL dan RET a Instruksi CALL digunakan untuk mamanggil prosedur tertentu dalam program subprogram Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber. b Instruksi RET digunakan untuk mengembalikan ke baris program yang melakukan CALL. Contoh: org 00h Kedip: setb p2.0 call tunda clr p2.0 call tunda sjmp utama tunda: mov r7,20h la: mov r6,0ffh lb: mov r50ffh djnz r5, djnz r6,lb djnz r7,la ret end

2.4 Liquid Crystal Display LCD