Pertemuan 17 Pemrograman Mikrokontroler 8051 (Lanjutan) Matakuliah : H0194/ Aplikasi Mikroprosesor dan Interfacing Tahun : 2005 Versi : 1.0 Pertemuan 17 Pemrograman Mikrokontroler 8051 (Lanjutan)
Mendemonstrasikan pemrograman mikrokontroler 8051 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mendemonstrasikan pemrograman mikrokontroler 8051
Pemrograman Mikrokontroller Lanjutan Data Block Transfer Routines Table Look-Up Procedures ASCII Conversion Routines N-Way Branching Pemrogramman Mikrokontroler dengan bahasa C
Data Block Transfer Routines Transfer sekumpulan data dari memori eksternal ke lokasi yang lain mov dptr, #0ff00h mov P2, #2 mov r0, #80 mov r1, #2Fh Transfer: movx a, @r0 movx @dptr, a inc r0 inc dptr djnz r1, transfer
Table Look-Up Procedures Mengimplementasikan suatu fungsi dengan tabel di memory prime: inc a movc a,@a+pc ret db 2 db 3 db 5 db 7 db 11 db 13 db 17 db 19
ASCII Conversion Routines Mengkonversi data biner ke ASCII atau sebaliknya
N-Way Branching Melakukan lompatan ke N kemungkinan tujuan
Pemrogramman Mikrokontroler dengan bahasa C Inisialisasi Variable #define HIGH 1 //define variable perbit #define START_BYTE 0xAB //define variable perbyte #define DATA_LCD P0 sbit LED = P1^2; //define nama port perbit unsigned char namaVar; //perhatikan penggunaan unsigned unsigned char idata namaVar[10]; //array unsigned char code namaVar=(0x98,0x45); //LookUp tabel
Pemrogramman Mikrokontroler dengan bahasa C Struktur Program #include <AT89X52.H> //prototipe untuk ATMEL 89x52 //init variable & prototipe void delay(unsigned int n); //prototipe untuk prosedur delay void main(void) { while(TRUE){ // program dimulai disini } void delay(unsigned int n) // prosedur delay di uC for ( ;n>0; n--);
Pemrogramman Mikrokontroler dengan bahasa C Prosedur Interrupt #include <AT89X52.H> //prototipe untuk ATMEL 89x52 oninterrupt(void) interruptx // prosedur interrupt x { // 0(EX0),1(ET0),2(EX0),3(ET1), // 4(ES),5(ET2) // program interrupt // dimulai disini } void main(void) { while(TRUE) // program dimulai dari while(TRUE)