[Resimleri görebilmek için üye olun veya giriş yapın.]Bir çok havada yazı yazma uygulamasına göre daha üstün bir uygulama
visual basic ile hazırlanan kontrol programı sayesinde istenilen yazı,
belirlenen rekte yazdırılıyor.
Havada yazı yazma devresinde kullanılan mikrodenetleyici pic16f877 kod
[Linkleri görebilmek için üye olun veya giriş yapın.] C ile hazırlanmış 8 adet rgb led kullanılıyor.
Hazırlayan:
Korhan USLU – Emeği geçen hazırlayan kişilere teşekkürler
Visual Basic code generator rgb programının kullanımı;[Resimleri görebilmek için üye olun veya giriş yapın.]Yazı ve şekilleri oluşturmak için Visual Basic’de bir
program yazdım. Program oluşturduğum şeklin oluşması için gereken
kodları ve şeklin dizi halini C: de rgb.txt ve rgb1.txt dosyalarına
oluşturuyor. ilk başta direk sıralı kodları kullanıyordum yazıyı
oluşturmak için ama bu şekilde pic’in hafızası yetmiyordu, ben de şekli
dizi halinde tanımlayıp döngüyle göstermeyi denedim ve çok daha az yer
kapladı. tavsiyem
rgb1.txt içine oluşan dizileri
kullanın. rgb1.txt içinde fazladan oluşan 255 leri silin bi harfi 6
byte dan oluşturun sondaki bir 255 bir boşluk anlamında. harfleri
birleştirip yazıyı oluşturun.
ccs c kodlarına
bakarsanız anlarsınız zaten. programda her oluşturduğunuz harf in
dizisi rgb1.txt nin içine eklenecek. yani içindeki bilgiler silinmeyecek
oraya dikkat edit
/***************************************************************
* Proje : RGB LED'lerle havaya yazı yazma *
* Name : picproje2.c *
* Author : [KORHAN USLU] *
* Notice : Copyright (c) 2010 [KORHAN USLU] *
* : All Rights Reserved *
* Date : 30.12.2010 *
* Version : 4.4 *
*
[Linkleri görebilmek için üye olun veya giriş yapın.] *
*
[Linkleri görebilmek için üye olun veya giriş yapın.] *
****************************************************************
*/
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use fast_io(b) //Port yönlendirme komutları B portu için geçerli
#use fast_io(c) //Port yönlendirme komutları C portu için geçerli
#use fast_io(d)
#use fast_io(a)
//#HEXCOMMENT KORHAN USLU
int1 a=1;
unsigned int i=0;
unsigned int16 k=1;
unsigned int j=0;
unsigned int w=0;
unsigned int s=0;
unsigned int z=255;
unsigned int r1=(0b00111001);
unsigned int g1=(0b11100001);
unsigned int b1=(0b10001101);
unsigned int r2=0;
unsigned int g2=0;
unsigned int b2=0;
//_______________________
unsigned int32 kesme=0; // Tamsayı tipinde 16 bitlik değişken tanımlanıyor
unsigned int b=45;
unsigned int c=39;
unsigned int d=33;
unsigned int r_1[8]={0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,};
unsigned int r_2[8]={0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,};
unsigned int g_1[8]={0xff,0x00,0x00,0x00,0xff,0xff,0x00,0xff,};
unsigned int g_2[8]={0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,};
unsigned int b_1[8]={0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,};
unsigned int b_2[8]={0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,};
//------------------------------
unsigned int ayyildiz[21]={195, 129, 24, 60, 126,
189, 219, 255, 255, 119,
55, 131, 129, 192, 129,
131, 55, 119, 255, 255,
255,};//ay yıldız dizisi
unsigned int korhan[36]={ 0, 231, 219, 60, 126, 255, //K [0]-[5]
129, 126, 126, 126, 129, 255, //O [6]-[11]
0, 230, 214, 185, 127, 255, //R [12]-[17]
0, 239, 239, 239, 0, 255, //H [18]-[23]
3, 237, 238, 237, 3, 255, //A [24]-[29]
0, 249, 231, 159, 0, 255, //N [30]-[35]
};
unsigned int uslu[24]={ 128, 127, 127, 127, 128, 255, //U [0]-[5]
185, 118, 118, 110, 157, 255, //S [6]-[11]
0, 127, 127, 127, 127, 255, //L [12]-[17]
128, 127, 127, 127, 128, 255, //U [18]-[23]
};
unsigned int kou[18]={ 0, 231, 219, 60, 126, 255, //K [0]-[5]
129, 126, 126, 126, 129, 255, //O [6]-[11]
131, 126, 127, 126, 131, 255, //Ü [12]-[17]
};
unsigned int mekatronik[58]={0, 249, 231, 249, 0, 255, //M
0, 110, 110, 110, 110, 255, //E
0, 231, 219, 60, 126, 255, //K
3, 237, 238, 237, 3, 255, //A
254, 254, 0, 254, 254, 255, //T
0, 230, 214, 185, 127, 255, //R
129, 126, 126, 126, 129, 255, //O
0, 249, 231, 159, 0, 255, //N
123, 2, 123, 255, //İ
0, 231, 219, 60, 126, 255, //K
};
unsigned int mekatronik1[58]={255,255,255,255,255,255,//geçici değişken
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,
255,255,255,255,255,255,};
//sinüsoidal dalgalar
unsigned int dalgakirmizi[15]={231, 219, 189, 126, 189,
219, 231, 231, 219, 189,
126, 126, 189, 219, 231,};
unsigned int dalgamor[15]={239, 223, 191, 127, 191,
223, 239, 247, 251, 253,
254, 254, 253, 251, 247,};
//****** Dış Kesme Fonksiyonu *****************
#int_ext // Dış (External) RB0/INT kesmesi
void ext_kesmesi ()
{ // Dış kesme fonksiyonu
kesme=kesme+1;//her tur kesme 1 artar
a=1;
i=1;
if (kesme>680){ // animasyonlar bittiğinde başa döner
kesme=0;
b=45;
c=39;
d=33;
k=0;
w=0;
z=7;
s=0;
for(w=0;w<58;w++)
{
mekatronik1[w]=255;
}
}
}
/********* ANA PROGRAM FONKSİYONU********/
void goster(){
while(kesme<5){//pwm ile renk geçişleri
output_a(0x01);
output_b(0xff);
output_d(0xff);
output_c(0xff);
for(w=0;w<8;w++){
for (k=1;k<1000;k++){
for(j=1;j<3;j++){
output_a(r_1[w]);
output_b(r_1[w]);
output_d(g_1[w]);
output_c(b_1[w]);
delay_us(k);
output_a(r_2[w]);
output_b(r_2[w]);
output_d(g_2[w]);
output_c(b_2[w]);
delay_us(1000-k);
if(kesme>5){
break;
}
}
if(kesme>5){//motor dönmeye başlayınca 5 tur sonra döngüden çık
break;
}
}
if(kesme>5){//motor dönmeye başlayınca 5 tur sonra döngüden çık
break;
}
k=1;
}
}
while((kesme<120)&&(kesme>5)){//çiçek
output_b(dalgakirmizi[w]);//kırmızı
output_a(dalgakirmizi[w]);//kırmızı
output_d(255);//yeşil
output_c(dalgamor[w]);//mavi
delay_ms(1);
w=w+1;
if ((w>15)||(a==1)){
a=0;//!!dalganın kaymasını düzelt!!
w=0;//dalga döngüsü taşınca döngü başa alınır.
//görüntüde kayma olmaması için kesme geldiğinde dalga döngüsü başa alınır.
}
}
//-------------------------------------\
if(kesme>120){//şelale
if(kesme<160){
w=w+1;
if(w>4){
w=0;
output_b(r1);//kırmızı
output_a(r1);//kırmızı
output_d(g1);//yeşil
output_c(b1);//mavi
r2=r1<<1;//bit dizisi sola kaydırlır
g2=g1<<1;//bit dizisi sola kaydırlır
b2=b1<<1;//bit dizisi sola kaydırlır
if(bit_test(r1,7)){
r2=r2+1;
}
if(bit_test(g1,7)){
g2=g2+1;
}
if(bit_test(b1,7)){
b2=b2+1;
}
r1=r2;
g1=g2;
b1=b2;
}
}
}
//---------------------------
if(kesme>160){//kayan koü
if(kesme<280){
w=0;
delay_ms(b);
for (w=0;w<6;w++){//kırmızı K kayarak başa gelir
output_b(kou[w]);//kırmızı
output_a(kou[w]);//kırmızı
output_d(255);//yeşil-sönük
output_c(255);//mavi-sönük
delay_ms(1);
}
if(b<4){
w=5;
delay_ms(c);
for (w=5;w<12;w++){//yeşil O kayarak K'nın yanına gelir
output_b(255);//kırmızı-sönük
output_a(255);//kırmızı-sönük
output_d(kou[w]);//yeşil
output_c(255);//mavi-sönük
delay_ms(1);
}
if(c<3){
delay_ms(d);
w=11;
for (w=11;w<18;w++){//mavi Ü kayarak O'nun yanına gelir
output_b(255);//kırmızı
output_a(1);//kırmızı
output_d(255);//yeşil
output_c(kou[w]);//mavi
delay_ms(1);
}
if(d<3){
d=3;
}
c=3;
d=d-1;
}
c=c-1;
b=3;
}
b=b-1;
}
}
//-------------------kırmızı kou
if((kesme>280)&&(kesme<320)){
w=0;
for (w=0;w<18;w++){
output_b(kou[w]);
output_a(kou[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
}
//--------------------yeşil kou
if((kesme>320)&&(kesme<360)){
w=0;
for (w=0;w<18;w++){
output_b(255);
output_a(255);
output_d(kou[w]);
output_c(255);
delay_ms(1);
}
}
if((kesme>360)&&(kesme<440)){
s=s+1;
if (kesme<362){
j=0;
z=7;
}
if (kesme>362){
if (j<
![Cool](https://2img.net/i/fa/i/smiles/icon_cool.gif)
{
if (s>9)
s=0;
for (w=0;w<58;w++){
mekatronik1[w]=mekatronik1[w]<<1;
if((bit_test(mekatronik[w],z))==0){
bit_clear(mekatronik1[w],0);//mekatronik dizisi bitleri sondan
} //mekatronik1in başına aktarılır
else
{
bit_set(mekatronik1[w],0);
}
}
j=j+1;
z=z-1;
}
}
for (w=0;w<58;w++){
output_b(255);
output_a(255);
output_d(mekatronik1[w]);
output_c(255);
delay_ms(1);
}
}
//--------------mekatronik
if((kesme>440)&&(kesme<480)){//mavi mekatronik
w=0;
for (w=0;w<58;w++){
output_b(255);
output_a(255);
output_d(255);
output_c(mekatronik[w]);
delay_ms(1);
}
}
//-------------------------
if((kesme>480)&&(kesme<520)){//kırmızı mekatronik
w=0;
for (w=0;w<58;w++){
output_b(mekatronik[w]);
output_a(mekatronik[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
}
//-------------------------
if((kesme>520)&&(kesme<560)){//turkuaz mekatronik
w=0;
for (w=0;w<58;w++){
output_b(0);
output_a(0);
output_d(mekatronik[w]);
output_c(mekatronik[w]);
delay_ms(1);
}
}
//----------------TÜRK BAYRAĞI
if((kesme>560)&&(kesme<620)){
w=0;
for (w=0;w<21;w++){
output_b(0);
output_a(0);
output_d(ayyildiz[w]);
output_c(ayyildiz[w]);
delay_ms(1);
}
}
//-----------------korhan uslu
if((kesme>620)&&(kesme<680)){
w=0;
for (w=0;w<36;w++){
output_b(korhan[w]);
output_a(korhan[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
w=0;
for (w=0;w<24;w++){
output_b(uslu[w]);
output_a(uslu[w]);
output_d(uslu[w]);
output_c(255);
delay_ms(1);
}
}
//------------------
}
void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1
[Linkleri görebilmek için üye olun veya giriş yapın.]sı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
set_tris_b(0x01); //B0 pini giriş,diğer uçlar çıkış
set_tris_c(0x00); //c portu çıkış
set_tris_d(0x00); //d portu çıkış
set_tris_a(0x00); //a portu çıkış
output_b(0x00); // B portu çıkışı ilk anda sıfırlanıyor
ext_int_edge(H_TO_L); // INT_EXT kesmesinin düşen kenarda aktif olacağını belirtir
enable_interrupts(INT_EXT); // INT_EXT kesmesini aktif yapar
enable_interrupts(GLOBAL); // Aktif edilen kesmelere izin ver
b=45;
c=39;
d=33;
r1=(0b00111001);
g1=(0b11100001);
b1=(0b10001101);
output_b(254);
output_d(255);
output_c(255);
output_a(1);
basla:
if(a==1){ //kesme gelince a=1 olur ve göster fonksiyonuna gidilir
goster();
a=0;//fonksiyondan dönünca a=0 olur ve tekrar kesme gelmesi beklenir.
i=0;
}
goto basla;
/***************************************************************
* Proje : RGB LED'lerle havaya yazı yazma *
* Name : picproje2.c *
* Author : [KORHAN USLU] *
* Notice : Copyright (c) 2010 [KORHAN USLU] *
* : All Rights Reserved *
* Date : 30.12.2010 *
* Version : 4.4 *
*
[Linkleri görebilmek için üye olun veya giriş yapın.] *
*
[Linkleri görebilmek için üye olun veya giriş yapın.] *
****************************************************************
*/
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use fast_io(b) //Port yönlendirme komutları B portu için geçerli
#use fast_io(c) //Port yönlendirme komutları C portu için geçerli
#use fast_io(d)
#use fast_io(a)
//#HEXCOMMENT KORHAN USLU
int1 a=1;
unsigned int i=0;
unsigned int16 k=1;
unsigned int j=0;
unsigned int w=0;
unsigned int s=0;
unsigned int z=255;
unsigned int r1=(0b00111001);
unsigned int g1=(0b11100001);
unsigned int b1=(0b10001101);
unsigned int r2=0;
unsigned int g2=0;
unsigned int b2=0;
//_______________________
unsigned int32 kesme=0; // Tamsayı tipinde 16 bitlik değişken tanımlanıyor
unsigned int b=45;
unsigned int c=39;
unsigned int d=33;
unsigned int r_1[8]={0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,};
unsigned int r_2[8]={0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,};
unsigned int g_1[8]={0xff,0x00,0x00,0x00,0xff,0xff,0x00,0xff,};
unsigned int g_2[8]={0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,};
unsigned int b_1[8]={0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,};
unsigned int b_2[8]={0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,};
//------------------------------
unsigned int ayyildiz[21]={195, 129, 24, 60, 126,
189, 219, 255, 255, 119,
55, 131, 129, 192, 129,
131, 55, 119, 255, 255,
255,};//ay yıldız dizisi
unsigned int korhan[36]={ 0, 231, 219, 60, 126, 255, //K [0]-[5]
129, 126, 126, 126, 129, 255, //O [6]-[11]
0, 230, 214, 185, 127, 255, //R [12]-[17]
0, 239, 239, 239, 0, 255, //H [18]-[23]
3, 237, 238, 237, 3, 255, //A [24]-[29]
0, 249, 231, 159, 0, 255, //N [30]-[35]
};
unsigned int uslu[24]={ 128, 127, 127, 127, 128, 255, //U [0]-[5]
185, 118, 118, 110, 157, 255, //S [6]-[11]
0, 127, 127, 127, 127, 255, //L [12]-[17]
128, 127, 127, 127, 128, 255, //U [18]-[23]
};
unsigned int kou[18]={ 0, 231, 219, 60, 126, 255, //K [0]-[5]
129, 126, 126, 126, 129, 255, //O [6]-[11]
131, 126, 127, 126, 131, 255, //Ü [12]-[17]
};
unsigned int mekatronik[58]={0, 249, 231, 249, 0, 255, //M
0, 110, 110, 110, 110, 255, //E
0, 231, 219, 60, 126, 255, //K
3, 237, 238, 237, 3, 255, //A
254, 254, 0, 254, 254, 255, //T
0, 230, 214, 185, 127, 255, //R
129, 126, 126, 126, 129, 255, //O
0, 249, 231, 159, 0, 255, //N
123, 2, 123, 255, //İ
0, 231, 219, 60, 126, 255, //K
};
unsigned int mekatronik1[58]={255,255,255,255,255,255,//geçici değişken
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255,255,
255,255,255,255,
255,255,255,255,255,255,};
//sinüsoidal dalgalar
unsigned int dalgakirmizi[15]={231, 219, 189, 126, 189,
219, 231, 231, 219, 189,
126, 126, 189, 219, 231,};
unsigned int dalgamor[15]={239, 223, 191, 127, 191,
223, 239, 247, 251, 253,
254, 254, 253, 251, 247,};
//****** Dış Kesme Fonksiyonu *****************
#int_ext // Dış (External) RB0/INT kesmesi
void ext_kesmesi ()
{ // Dış kesme fonksiyonu
kesme=kesme+1;//her tur kesme 1 artar
a=1;
i=1;
if (kesme>680){ // animasyonlar bittiğinde başa döner
kesme=0;
b=45;
c=39;
d=33;
k=0;
w=0;
z=7;
s=0;
for(w=0;w<58;w++)
{
mekatronik1[w]=255;
}
}
}
/********* ANA PROGRAM FONKSİYONU********/
void goster(){
while(kesme<5){//pwm ile renk geçişleri
output_a(0x01);
output_b(0xff);
output_d(0xff);
output_c(0xff);
for(w=0;w<8;w++){
for (k=1;k<1000;k++){
for(j=1;j<3;j++){
output_a(r_1[w]);
output_b(r_1[w]);
output_d(g_1[w]);
output_c(b_1[w]);
delay_us(k);
output_a(r_2[w]);
output_b(r_2[w]);
output_d(g_2[w]);
output_c(b_2[w]);
delay_us(1000-k);
if(kesme>5){
break;
}
}
if(kesme>5){//motor dönmeye başlayınca 5 tur sonra döngüden çık
break;
}
}
if(kesme>5){//motor dönmeye başlayınca 5 tur sonra döngüden çık
break;
}
k=1;
}
}
while((kesme<120)&&(kesme>5)){//çiçek
output_b(dalgakirmizi[w]);//kırmızı
output_a(dalgakirmizi[w]);//kırmızı
output_d(255);//yeşil
output_c(dalgamor[w]);//mavi
delay_ms(1);
w=w+1;
if ((w>15)||(a==1)){
a=0;//!!dalganın kaymasını düzelt!!
w=0;//dalga döngüsü taşınca döngü başa alınır.
//görüntüde kayma olmaması için kesme geldiğinde dalga döngüsü başa alınır.
}
}
//-------------------------------------\
if(kesme>120){//şelale
if(kesme<160){
w=w+1;
if(w>4){
w=0;
output_b(r1);//kırmızı
output_a(r1);//kırmızı
output_d(g1);//yeşil
output_c(b1);//mavi
r2=r1<<1;//bit dizisi sola kaydırlır
g2=g1<<1;//bit dizisi sola kaydırlır
b2=b1<<1;//bit dizisi sola kaydırlır
if(bit_test(r1,7)){
r2=r2+1;
}
if(bit_test(g1,7)){
g2=g2+1;
}
if(bit_test(b1,7)){
b2=b2+1;
}
r1=r2;
g1=g2;
b1=b2;
}
}
}
//---------------------------
if(kesme>160){//kayan koü
if(kesme<280){
w=0;
delay_ms(b);
for (w=0;w<6;w++){//kırmızı K kayarak başa gelir
output_b(kou[w]);//kırmızı
output_a(kou[w]);//kırmızı
output_d(255);//yeşil-sönük
output_c(255);//mavi-sönük
delay_ms(1);
}
if(b<4){
w=5;
delay_ms(c);
for (w=5;w<12;w++){//yeşil O kayarak K'nın yanına gelir
output_b(255);//kırmızı-sönük
output_a(255);//kırmızı-sönük
output_d(kou[w]);//yeşil
output_c(255);//mavi-sönük
delay_ms(1);
}
if(c<3){
delay_ms(d);
w=11;
for (w=11;w<18;w++){//mavi Ü kayarak O'nun yanına gelir
output_b(255);//kırmızı
output_a(1);//kırmızı
output_d(255);//yeşil
output_c(kou[w]);//mavi
delay_ms(1);
}
if(d<3){
d=3;
}
c=3;
d=d-1;
}
c=c-1;
b=3;
}
b=b-1;
}
}
//-------------------kırmızı kou
if((kesme>280)&&(kesme<320)){
w=0;
for (w=0;w<18;w++){
output_b(kou[w]);
output_a(kou[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
}
//--------------------yeşil kou
if((kesme>320)&&(kesme<360)){
w=0;
for (w=0;w<18;w++){
output_b(255);
output_a(255);
output_d(kou[w]);
output_c(255);
delay_ms(1);
}
}
if((kesme>360)&&(kesme<440)){
s=s+1;
if (kesme<362){
j=0;
z=7;
}
if (kesme>362){
if (j<
![Cool](https://2img.net/i/fa/i/smiles/icon_cool.gif)
{
if (s>9)
s=0;
for (w=0;w<58;w++){
mekatronik1[w]=mekatronik1[w]<<1;
if((bit_test(mekatronik[w],z))==0){
bit_clear(mekatronik1[w],0);//mekatronik dizisi bitleri sondan
} //mekatronik1in başına aktarılır
else
{
bit_set(mekatronik1[w],0);
}
}
j=j+1;
z=z-1;
}
}
for (w=0;w<58;w++){
output_b(255);
output_a(255);
output_d(mekatronik1[w]);
output_c(255);
delay_ms(1);
}
}
//--------------mekatronik
if((kesme>440)&&(kesme<480)){//mavi mekatronik
w=0;
for (w=0;w<58;w++){
output_b(255);
output_a(255);
output_d(255);
output_c(mekatronik[w]);
delay_ms(1);
}
}
//-------------------------
if((kesme>480)&&(kesme<520)){//kırmızı mekatronik
w=0;
for (w=0;w<58;w++){
output_b(mekatronik[w]);
output_a(mekatronik[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
}
//-------------------------
if((kesme>520)&&(kesme<560)){//turkuaz mekatronik
w=0;
for (w=0;w<58;w++){
output_b(0);
output_a(0);
output_d(mekatronik[w]);
output_c(mekatronik[w]);
delay_ms(1);
}
}
//----------------TÜRK BAYRAĞI
if((kesme>560)&&(kesme<620)){
w=0;
for (w=0;w<21;w++){
output_b(0);
output_a(0);
output_d(ayyildiz[w]);
output_c(ayyildiz[w]);
delay_ms(1);
}
}
//-----------------korhan uslu
if((kesme>620)&&(kesme<680)){
w=0;
for (w=0;w<36;w++){
output_b(korhan[w]);
output_a(korhan[w]);
output_d(255);
output_c(255);
delay_ms(1);
}
w=0;
for (w=0;w<24;w++){
output_b(uslu[w]);
output_a(uslu[w]);
output_d(uslu[w]);
output_c(255);
delay_ms(1);
}
}
//------------------
}
void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1
[Linkleri görebilmek için üye olun veya giriş yapın.]sı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
set_tris_b(0x01); //B0 pini giriş,diğer uçlar çıkış
set_tris_c(0x00); //c portu çıkış
set_tris_d(0x00); //d portu çıkış
set_tris_a(0x00); //a portu çıkış
output_b(0x00); // B portu çıkışı ilk anda sıfırlanıyor
ext_int_edge(H_TO_L); // INT_EXT kesmesinin düşen kenarda aktif olacağını belirtir
enable_interrupts(INT_EXT); // INT_EXT kesmesini aktif yapar
enable_interrupts(GLOBAL); // Aktif edilen kesmelere izin ver
b=45;
c=39;
d=33;
r1=(0b00111001);
g1=(0b11100001);
b1=(0b10001101);
output_b(254);
output_d(255);
output_c(255);
output_a(1);
basla:
if(a==1){ //kesme gelince a=1 olur ve göster fonksiyonuna gidilir
goster();
a=0;//fonksiyondan dönünca a=0 olur ve tekrar kesme gelmesi beklenir.
i=0;
}
goto basla;
}
}