Pemrograman 7 - Segmen dengan bahasa Assembly

Pembahasan kali ini adalah tentang tentang pemrograman menggunakan bahasa Assembly untuk menggerakkan 7-segmen.Langkah pertama dalam proses pemrograman dengan Assembly adalah menyiapkan compiler Assembly, dalam hal ini saya akan menjelaskan tentang penggunaan compile ASM51. ASM51 ini digunakan untuk mengkompile file asm menjadi file obj dan dari file obj ke file hex, dan dapat juga mengkmpile file hex ke kode binner. Penulisan program Assembly dapat menggunakan editor bawaan Windows seperti Notepad.
Langkah - langkah untuk mengkompile file asm menjadi file hex adalah sebagai berikut :
Buka Command Prompt, dan masuk ke direktori yang di dalamnya terdapat compiler ASM51. Hal yang perlu diperhatikan adalah file asm tersebut harus disimpan di folder yang sama dengan ASM51. Ketikkan langkah - langkah berikut pada Command Prompt.
1. ams51 nama_file.asm dan tekan enter
(catatan: anda telah berada di direktori ASM51)
2. oh nama_file.obj tekan enter
sampai di sini anda telah mempunyai file dengan ekstensi hex yang dapat anda download ke mikrokontroler, tentunya dengan memanfaatkan software downloader seperti TS Control Emulator 8085 dan lain - lain.Silahkan googling sendiri saja. Jika ingin mengknversi ke file biner, caranya seperti langkah ke-3 berikut
3. h nama_file.hex nama_file.bin tekan enter
Langkah selanjutnya adalah mendownload kode mesin tersebut ke mikrokontroler
Oke, sekarang kita kembali ke pokok bahasan kita, yakni memprogram mikrokontrler untuk menggerakkan seven segmen. Dalam hal ini port mikrokontroler yang digunakan adalah PORT0 (Mikrokontroler AT89S51). Silahkan ketik program berikut pada editor windows misalnya Notepad. Yang perlu diperhatikan adalah perintah "mov P0,#bil_hex".bil_hex harus disesuaikan dengan 7-segmen yang digunakan. Program berikut akan menampilkan angka 0 sampai 9 pada 7-segmen. Ubahlah bil_hex agar dapat menampilkan angka - angka yang diinginkan.

org 0h
mulai:
mov P0,#22h
acall delay
mov P0,#77h
acall delay
mov P0,#0A4h
acall delay
mov P0,#25h
acall delay
mov P0,#71h
acall delay
mov P0,#29h
acall delay
mov P0,#28h
acall delay
mov P0,#67h
acall delay
mov P0,#20h
acall delay
mov P0,#21h
acall delay
sjmp mulai
;subrutin delay
delay: Mov R0,#2h
Delay1: Mov R1,#0FFh
Delay2: Mov R2,#0
Djnz R2,$
Djnz R1,Delay2
Djnz R0,Delay1
Ret
End

Simpan program di atas dengan nama .asm pada folder yang sama dengan ASM51.
Catatan: pada Save Type As pilih All Files.
Silahkan download source code di atas di sini, lengkap dengan penjelasannya.
Sebagai bonus untuk yang telah meluangkan waktu untuk membaca, silahkan download penjelasan tentang sintaks bahasa Assembly.
Anda juga dapat mendownload contoh - contoh aplikasi bahasa Assembly pada link download di samping.
Selengkapnya..

Pemrograman Keypad To LCD menggunakan Code Vision AVR

Pertama - tama kita membuat interfacing keypad ke mikrokontroler, yang mana hasil penekanan tombol keypad (input) dikeluarkan ke LCD (output).
LCD dihubungkan ke PORTC sedangkan rangkaian keypad dihubungkan ke PORTD.  Setelah itu buat project baru dengan Code Vision.
1. Setting  chip dan clock dari ATMega yang digunakan.
2. Setting Port untuk LCD dan Keypad seperti gambar berikut



3. Generate file , save and exit
simpan program tersebut dengan nama yang sama, misalnya keyped2.c, keypad2.prj dan keypad2.cwp
Selanjutnya, tambahkan listing program ini  pada program anda, dan compile programnya. Jika tidak ada error, anda dapat mengupload program tersebut ke mikrokontroler ATMega8535.

Mengenal instuksi LCD pada Code Vision AVR

unsigned char lcd_init(unsigned char lcd_columns);  //yang berfungsi untuk menginisialisasi LCD.
contoh : lcd_init(16);  //angka di dalam kurung (16) sesuai dengan type LCD.

unsigned char lcd_read_byte(unsigned char addr); //berfungsi membaca karakter RAM LCD
contoh : data = lcd_read_byte(0x10);

void lcd_clear(void); //untuk menghapus tampilan LCD dan menempatkan kursor pada baris 0 kolom 0
contoh : lcd_clear();

void lcd_gotoxy(unsigned char x,unsigned char y); //untuk menempatkan kursor pada kolom x baris y
cotoh : lcd_gotoxy(0,1);

void lcd_putchar(char c); //untuk menampilakn karakter
contoh : lcd_putchar(0x41); //menampilkan karakter A

void lcd_putsf(char flash *str); //untuk menampilkan string
contoh : lcd_putsf("Baharudin"); // menampilkan string Baharudin

void lcd_puts(char *str); // menampilkan string yang ada di SRAM. Jadi sebelum menggunakan fungsi ini string harus sudah ada di SRAM
                //instruksi ini memerlukan pustaka stdio.h
contoh :
char buf[33];
lcd_init(16);
lcd_gotoxy(0,0);       
lcd_putsf("Menampilkan");   
lcd_gotoxy(0,1);       
sprintf(buf,"Angka %x",14);    //menyimpan string Angka 0x14 (E) bke SRAM
lcd_puts(buf);        //menampilkan ke LCD

Contoh untuk menampilakan karakter khusus, gunakan instruksi berikut :
sprintf(buf, "Angka %d \xf4",50); // menyimpan ke memory LCD dan ditampilakan
Selengkapnya..

Pemrograman Keypad To LED menggunakan Code Vision AVR

Pertama - tama kita membuat interfacing keypad ke mikrokontroler, yang mana hasil penekanan tombol keypad (input) dikeluarkan ke LED (output). LED dihubungkan ke PORTB sedangkan rangkaian keypad dihubungkan ke PORTD.  Setelah itu buat project baru dengan Code Vision.
1. Setting  chip dan clock dari ATMega yang digunakan.
2. Setting Port untuk LED dan Keypad dan keypad seperti gambar berikut




3. Generate file , save and exit
Simpan program tersebut dengan nama yang sama, misalnya keyped.c, keypad.prj dan keypad.cwp
Langkah selanjutnya, tambahkan listing program yang ada di sini  pada program anda, dan compile programnya. Jika tidak ada error, anda dapat mengupload program tersebut ke mikrokontroler ATMega8535.
Selengkapnya..