antarmuka LED September 20, 2007
Posted by edipermadi in Uncategorized.add a comment
LED merupakan singkatan dari Light Emitting Diode. LED merupakan komponen aktif semikonduktor bipolar. LED hanya dapat menghantarkan arus 1 arah saja.
Karena hemat daya, ekonomis dan tahan lama. LED banyak digunakan sebagai indikator visual, transmisi sinyal bahkan penerangan.
Artikel ini membahas bagaimana membuat antarmuka rangkaian digital dengan LED.
Secara umum antamuka rangkaian digital dengan LED dapat dilakukan dengan 2 cara:
- Menghubungkan anoda dengan Vcc dan keluaran rangkaian digital dengan katoda. Pada modus ini, LED akan menyala jika keluaran rangkaian digital berada pada kondisi logika “0″
- Menghubungkan katoda dengan Gnd dan keluaran rangkaian digital dengan anoda. Pada modus ini, LED akan menyala jika keluaran rangkaian digital berada pada kondisi logika “1″
Pada rangkaian digital, cara pengantarmukaan yang pertama memberikan lebih banyak keuntungan, sehingga lebih banyak diterapkan. Pada modus ini rangkaian digital hanya difungsikan untuk menyerap arus dan mengubungkan rangkaian ke ground.
Lebih jauh lagi, dalam pengantarmukaan LED dikenal juga multiplexing. multiplexing
merupakan cara pendayagunaan I/O yang terbatas jumlahnya, untuk menangani jumlah LED yang banyak. Prinsipnya, LED dinyalakan satu per satu pada frekwensi tertentu hingga seolah olah terlihat menyala semua.
Jika dikelompokkan cara pengantarmukaan LED secara multipleks datat diimplementasikan dengan 6 cara:
- multiplexing paralel ke serial, dengan bantuan shift register.
- multiplexing semi serial, dengan bantuan shift register.
- multiplexing coded paralel & paralel, dengan bantuan decoder/demultiplexer
- multiplexing dengan matrikx LED.
- multiplexing multibit synchronous shifting, dengan bantuan shift register/flip-flop
- multiplexing dengan pemasangan LED secara komplementer
artikel selengkapnya dapat dibaca dan didownload dari link berikut:
File : antarmuka LED
Program LED jalan pakai Assembly September 11, 2007
Posted by eepu in 8051 arch.add a comment
Program berikut digunakan untuk menyalakan 32 lampu LED yang bergerak secara satu-persatu. Program ini belum melalui proses optimisasi, tapi semoga berguna.
;by Fandi Gunawan
mulai:
mov p0,#0 ; pindah “0″ -> register port 0
mov p1,#0
mov p2,#0
mov p3,#0
inisialisasi:
mov p0,#255
mov p1,#255
mov p2,#255
mov p3,#255
putar_lagi:
geser_led_0 :
mov a,#254 ; pindah “FE” hex -> akumulator
mov p0,a ; pindah isi reg akumulator -> register port 0
mov r0,#8 ; pindah “8″ -> register 0
putar0:
call delay ; panggil rutin delay
rl a ;geser kiri akumulator
mov p0,a ; pindahkan isi akumulator ke register port 0
djnz r0,putar0 ;kurangi isi r0 jika tidak 0 maka lompat ke putar 0
mov p0,#255
mov p1,#255
mov p2,#255
mov p3,#255
geser_led_1 :
mov a,#254 ; pindah “FE” hex -> akumulator
mov p1,a ; pindah isi reg akumulator -> register port 1
mov r0,#8 ; pindah “8″ -> register 0
putar1:
call delay ; panggil rutin delay
rl a ;geser kiri akumulator
mov p1,a ; pindahkan isi akumulator ke register port 1
djnz r0,putar1 ;kurangi isi r0 jika tidak 0 maka lompat ke putar1
mov p0,#255
mov p1,#255
mov p2,#255
mov p3,#255
geser_led_2 :
mov a,#254 ; pindah “FE” hex -> akumulator
mov p2,a ; pindah isi reg akumulator -> register port 2
mov r0,#8 ; pindah “8″ -> register 0
putar2:
call delay ; panggil rutin delay
rl a ;geser kiri akumulator
mov p2,a ; pindahkan isi akumulator ke register port 2
djnz r0,putar2 ;kurangi isi r0 jika tidak 0 maka lompat ke putar2
mov p0,#255
mov p1,#255
mov p2,#255
mov p3,#255
geser_led_3 :
mov a,#254 ; pindah “FE” hex -> akumulator
mov p3,a ; pindah isi reg akumulator -> register port 3
mov r0,#8 ; pindah “8″ -> register 0
putar3:
call delay ; panggil rutin delay
rl a ;geser kiri akumulator
mov p3,a ; pindahkan isi akumulator ke register port 3
djnz r0,putar3 ;kurangi isi r0, jika tidak 0 maka lompat ke putar3
mov p0,#255
mov p1,#255
mov p2,#255
mov p3,#255
sjmp putar_lagi
delay:
mov r1,#255
lompat2:mov b,#0ah
lompat1:djnz b,lompat1
djnz r1,lompat2
ret
end
Electrical Engineering Student Gathering September 11, 2007
Posted by eepu in Misc.add a comment
Electrical Engineering Student Gathering (EE StutGarg) is an event in which EE students share their knowledge and experiences as well as a place for increase student’s relationship.
The first gathering will be this Saturday in Old Canteen in President University dormitory at 9.30 PM. The event will be held periodically.
Cheap emergency lamp using double NiCd batteries September 10, 2007
Posted by eepu in Project.add a comment
This circuit in the left side is the solution to cheap emergency lamp which utilize no transformer.
During these several weeks I was doing emergency lamp which should follow the following specification:
1. Supplied by 2 NiCd batteries
2. The batteries should be charged
3. It has some modes which can be customized by the user
4. The lamp is LED (super bright)
Holtek HT48C50 C code for Piano September 10, 2007
Posted by eepu in Microcontroller.add a comment
Currently I (Fandi Gunawan) am playing around with Holtek’s microcontroller series. This is the example of Piano’s code in C language since I do not want to touch assembly language.
//Piano.c
//
//Body: HT48C50-1
//Mask option
//BZ/BZB : All Disable
//the others use the default value
#include <ht48c50-1.h>
#pragma vector isr_4 @ 0×4
#pragma vector isr_8 @ 0×8
#pragma vector isr_c @ 0xc
//ISR for safequard
void isr_4(){} // external ISR
void isr_8(){} // timer/event 0
//initialize registers for safeguard
void safeguard_init(){
_intc = 0;
_tmr0c = 0;
_tmr0 = 0;
_tmr1c = 0;
_tmr1h = 0;
_tmr1l = 0;
_pac = 0xff;
_pbc = 0xff;
_pcc = 0xff;
_pdc = 0xff;
}
#define _tmr1c4 _11_4 //timer1 enable bit
const unsigned char frq[16] = {
0×21, 0xfe, 0×58, 0xfe, 0×84, 0xfe, 0×99, 0xfe,
0xc1, 0xfe, 0xe3, 0xfe, 0×2, 0xff, 0×11, 0xff};
unsigned char frq_idx;
void initial();
void wait_key_press();
void wait_key_release();
void start_sound();
void stop_sound();
void main(){
safeguard_init();
initial();
while(1){
wait_key_press();
start_sound();
wait_key_release();
stop_sound();
}
}
void wait_key_press(){
unsigned char i, key;
key = 0;
while(!key)
key = ~_pa;
for(i=0; i<8; i++){
if (key & 0×1){
frq_idx = i << 1;
break;
}
key >>= 1;
}
}
void wait_key_release(){
unsigned char key;
key = 1;
while(key)
key = ~_pa;
}
void start_sound(){
_intc = 9; //enable timer1
_tmr1c = 0×80; //timer mode
_tmr1l = frq[frq_idx]; //load sound freq.
_tmr1h = frq[frq_idx+1];
_tmr1c4 = 1; //start timer1
}
void stop_sound(){
_tmr1c4 = 0; //stop timer1
_pb = 0;
}
void isr_c(){ // timer1
_pb = ~_pb; // generate square wave
}
void initial(){
_pac = 0xff; //set port A to input port
_pbc = 0; //set port B to output port
_pb = 0;
}
The first post for EEPU weblog September 10, 2007
Posted by eepu in Misc.add a comment
This is the first post for EEPU weblog. Some contributors has been invited to join this weblog. This weblog is designed as a medium for Electrical Engineering students of President University to bound their relation and share knowledge.