Ok sambil menunggu seminar skripsi iseng-iseng nambah lagi postingan di blog ini. Meneruskan teknik scaning pada postingan sebelumnya yaitu menampilkan data dengan 7 segment kita akan memanfaatkan teknik scaning ini untuk membuat running text dengan dot matrix. Bongkar file lagi deh dikompi....untung masih ada...jadi inget dulu butuh waktu hampir 1 bulanan untuk mengerti bagaimana cara kerja sampai membuat dot matriks ini. Sebelumnya kita perlu mengetahui prinsip kerja dari dot matrik terlebih dahulu. Lihat gambar dibawah ini
Sama dengan 7 segment jenis dot matriks ada 2 yaitu coloumn cathode dan column anode. Perbedaanya hanya bagaimana cara menghidupkankan. Ringkasnya jika yang satu untuk menghidupkan nya perlu di beri logika 1 maka tipe yang satunya diberi kebalikannya yaitu 0 agar hidup.
1. Project 1
Berhubung udah jm 11 mlem..udah ngntuk bnget....berikut project yang saya disain sendiri..untuk penjelasan menyusul kemudian...
Program CAVR nya sebagai berikut:
Spoiler :
Spoiler :
#include <mega8535.h>
#include <delay.h>
#define data_hi PORTB.0=1
#define data_lo PORTB.0=0
int i,c,geser,ulang;
unsigned char D[]={
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,// E
0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,// T
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,// E
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,// K
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,// N
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,// O
};
void clock()
{
PORTB.1=0; //Clock
PORTB.2=1; //Latch
PORTB.1=1; //Clock
PORTB.2=0; //Latch
delay_us(900);
}
void main(void)
{
DDRB=0xFF; // Driver Baris
PORTB=0x00;
DDRA=0xFF; // Driver Kolom
PORTA=0x00;
while(1)
{
for (geser=0;geser<48;geser++){
for(ulang=0;ulang<2;ulang++){ //speed
for(i=0;i<28;i++) // i=jumlah kolom dot matrix 1 kolom =7
{
c=i-(28-geser);
PORTA=~D[c];
if(i==1)
data_hi;
else
data_lo;
clock();
}
}
}
for (geser=0;geser<48;geser++){
for(ulang=0;ulang<2;ulang++){ //speed
for(i=0;i<28;i++) // i=jumlah kolom dot matrix 1 kolom =7
{
c=i-(-24+geser);
PORTA=~D[c];
if(i==1)
data_hi;
else
data_lo;
clock();
}
}
}
};
}
0 komentar:
Posting Komentar