Elektrotekno.com Ana Sayfa || Pic ve diğer işlemci ve denetleyiciler ile yapılmış devreler, projeler || Kayan yazı ve matrix led devreleri (led message projects)


C ile bilgisayar kontrollu-kayan yazi-pic18f452-VB-NEM-Tarih-Saat-Termometre

Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Tamamlanmış Elektronik Devreler, Projeler kategorisi içerisindeki Kayan yazı ve matrix led devreleri (led message projects) forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "8 Satır Sutun Sayısı Artırılabilir Kayan Yazı(VB+Pic Basic+Ares+İsis)" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Kayıt: 26 Mar 2007
Mesajlar: 40
Konum: ankara
Offline
mir_hendise
Tarih: 04 03 2010 09:59

C ile bilgisayar kontrollu-kayan yazi-pic18f452-VB-NEM-Tarih-Saat-Termometre
Atila ULUDAĞ ın hazırladığı Bilgisayar kontrollü kayan yazı uygulaması PIC18F452 SHT11 DS1302 , MAX485 74HC595 (satır tarama) entegreleri üzerine kurulu kontrol için hazırlanmış bilgisayar yazılımı kaynak Visual Basic kodları ve c dili ile hazırlanmış PIC yazılımı var.

Kayan yazı devresi bilgisayar üzerinden yazı gönderebiliyor tarih, saat, sıcaklık, neb bilgisini gösteriyor

Uygulamanın çalışıp çalışmadığını bilmiyorum fakat kaynak kodların verilmiş olması farklı projelerde faydalı olabilir kaynak dosyalar (kodlar, isis simülasyon, Visual Basic):
C ile bilgisayar kontrollu-kayan yazi-pic18f452-VB-NEM-Tarih-Saat-Termometre
C dili ile hazırlanmış olması daha güzel bir örnek oluşturuyor

En son mir_hendise tarafından 04.03.2010, 16:03 tarihinde değiştirildi, toplam 1 kere değiştirildi

79 Kullanıcı bu konu için onurbilke arkadaşımıza teşekkür ettiler

Kayıt: 30 Arl 2006
Mesajlar: 104

Offline
elektronikci43
Tarih: 04 03 2010 11:46

ustam bu devre yi çalıştırdınızmı ?
Başa dön
Kayıt: 26 Mar 2007
Mesajlar: 40
Konum: ankara
Offline
mir_hendise
Tarih: 04 03 2010 14:06

kod aşağıdadır


kardeş denemedim ama malzemeleri sipariş verdim çalışmaması için bir promlem yok, c kodu aşağıdaki gibidir,
////////////////////////////////////////////////////////////////////////////
//// bilgisayar kontrollü kayan yazı uygulaması ////
//// (satır tarama 74hc595) ////
//// sıcaklık , nem , saat , tarih ////
//// sht11 , ds1302 , max 485 ////
////////////////////////////////////////////////////////////////////////////
//// 16 / 04 / 2008 çarşamba ////
////////////////////////////////////////////////////////////////////////////
//// atila uludag ////
//// ////
//// elektrik-elektronik mühendisi ////
////////////////////////////////////////////////////////////////////////////

#include <18f452.h>
#include <string.h>
#fuses nowdt,wdt128,xt,noprotect,nooscsen,nobrownout,borv20,noput,stvren,nodebug,nolvp,nowrt,nowrtd,nowrtb,nowrtc,nocpd,nocpb,noebtr,noebtrb
#use delay(clock=40000000)
#use rs232(baud=9600,parity=n,xmit=pın_c6,rcv=pın_c7,bits=8)
#include <sht75.c>
#include <ds1302.c>

#define clock pin_a0
#define latch pin_a1
#define ds1 pin_a2

#use fast_io(a)
#use fast_io(b)
#use standard_io(c)
#use fast_io(d)
#use fast_io(e)

unsigned int16 adres_sec;
char mesaj_1[55],sutun_1[320]
,isi[17]="rh>%00.0 +00.0`c"
,saat[17]=" * 00:00:00 * "
,tarih[17]=" 00/00/2008 cum ";
unsigned int yinele,data;
unsigned int karakter[]={0x3f,0x48,0x48,0x48,0x3f,0x00 //a
,0x7f,0x49,0x49,0x49,0x36,0x00 //b
,0x3e,0x41,0x41,0x41,0x22,0x00 //c
,0x7f,0x41,0x41,0x41,0x3e,0x00 //d
,0x7f,0x49,0x49,0x49,0x41,0x00 //e
,0x7f,0x48,0x48,0x48,0x40,0x00 //f
,0x3e,0x41,0x49,0x49,0x2e,0x00 //g
,0x7f,0x08,0x08,0x08,0x7f,0x00 //h
,0x41,0x7f,0x41,0x00 //ı
,0x11,0x5f,0x11,0x00 //i
,0x02,0x01,0x41,0x7e,0x40,0x00 //j
,0x7f,0x08,0x14,0x22,0x41,0x00 //k
,0x7f,0x01,0x01,0x01,0x01,0x00 //l
,0x7f,0x20,0x18,0x20,0x7f,0x00 //m
,0x7f,0x10,0x08,0x04,0x7f,0x00 //n
,0x3e,0x41,0x41,0x41,0x3e,0x00 //o
,0x7f,0x48,0x48,0x48,0x30,0x00 //p
,0x3e,0x41,0x45,0x42,0x3d,0x00 //q
,0x7f,0x48,0x4c,0x4a,0x31,0x00 //r
,0x32,0x49,0x49,0x49,0x26,0x00 //s
,0x40,0x40,0x7f,0x40,0x40,0x00 //t
,0x7e,0x01,0x01,0x01,0x7e,0x00 //u
,0x1e,0x41,0x01,0x41,0x1e,0x00 //ü
,0x7c,0x02,0x01,0x02,0x7c,0x00 //v
,0x7e,0x01,0x0e,0x01,0x7e,0x00 //w
,0x63,0x14,0x08,0x14,0x63,0x00 //x
,0x70,0x08,0x07,0x08,0x70,0x00 //y
,0x43,0x45,0x49,0x51,0x61,0x00 //z
,0x00,0x00,0x00,0x00,0x00,0x00 //space
,0x3e,0x45,0x49,0x51,0x3e,0x00 //0
,0x21,0x7f,0x01,0x00 //1
,0x21,0x43,0x45,0x49,0x31,0x00 //2
,0x42,0x41,0x51,0x69,0x46,0x00 //3
,0x0c,0x14,0x24,0x7f,0x04,0x00 //4
,0x72,0x51,0x51,0x51,0x4e,0x00 //5
,0x1e,0x29,0x49,0x49,0x06,0x00 //6
,0x40,0x47,0x48,0x50,0x60,0x00 //7
,0x36,0x49,0x49,0x49,0x36,0x00 //8
,0x30,0x49,0x49,0x4a,0x3c,0x00 //9
,0x1e,0x61,0x21,0x61,0x1e,0x00 //ö
,0x03,0x03,0x00 //.
,0x1b,0x1b,0x00 //:
,0x60,0x90,0x90,0x60,0x00 //'
,0x09,0x09,0x09,0x09,0x09,0x00 //=
,0x08,0x08,0x08,0x08,0x08,0x00 //-
,0x01,0x01,0x01,0x01,0x01,0x00 //_
,0x04,0x04,0x1f,0x04,0x04,0x00 //+
,0x60,0x92,0x94,0x68,0x16,0x29 //%
,0x49,0x06,0x00 //%
,0x11,0x0f,0x11,0x10,0x08,0x00 //r
,0x08,0x08,0x08,0x2a,0x1c,0x08,0x00 //>
,0x1c,0x22,0x41,0x59,0x49,0x2a,0x1c,0x00//*
,0x03,0x0c,0x30,0xc0,0x00}; ///

void data_sec()
{
switch (data)
{
case 'a':
adres_sec=0 ; yinele=5 ; break ;
case 'b':
adres_sec=6 ; yinele=5 ; break;
case 'c':
adres_sec=12 ; yinele=5 ; break;
case 'd':
adres_sec=18 ; yinele=5 ; break;
case 'e':
adres_sec=24 ; yinele=5 ; break;
case 'f':
adres_sec=30 ; yinele=5 ; break;
case 'g':
adres_sec=36 ; yinele=5 ; break;
case 'h':
adres_sec=42 ; yinele=5 ; break;
case 'ı':
adres_sec=48 ; yinele=3 ; break;
case 'i':
adres_sec=52 ; yinele=3 ; break;
case 'j':
adres_sec=56 ; yinele=5 ; break;
case 'k':
adres_sec=62 ; yinele=5 ; break;
case 'l':
adres_sec=68 ; yinele=5 ; break;
case 'm':
adres_sec=74 ; yinele=5 ; break;
case 'n':
adres_sec=80 ; yinele=5 ; break;
case 'o':
adres_sec=86 ; yinele=5 ; break;
case 'p':
adres_sec=92 ; yinele=5 ; break;
case 'q':
adres_sec=98 ; yinele=5 ; break;
case 'r':
adres_sec=104 ; yinele=5 ; break;
case 's':
adres_sec=110 ; yinele=5 ; break;
case 't':
adres_sec=116 ; yinele=5 ; break;
case 'u':
adres_sec=122 ; yinele=5 ; break;
case 'ü':
adres_sec=128 ; yinele=5 ; break;
case 'v':
adres_sec=134 ; yinele=5 ; break;
case 'w':
adres_sec=140 ; yinele=5 ; break;
case 'x':
adres_sec=146 ; yinele=5 ; break;
case 'y':
adres_sec=152 ; yinele=5 ; break;
case 'z':
adres_sec=158 ; yinele=5 ; break;
case ' ':
adres_sec=164 ; yinele=5 ; break;
case '0':
adres_sec=170 ; yinele=5 ; break;
case '1':
adres_sec=176 ; yinele=3 ; break;
case '2':
adres_sec=180 ; yinele=5 ; break;
case '3':
adres_sec=186 ; yinele=5 ; break;
case '4':
adres_sec=192 ; yinele=5 ; break;
case '5':
adres_sec=198 ; yinele=5 ; break;
case '6':
adres_sec=204 ; yinele=5 ; break;
case '7':
adres_sec=210 ; yinele=5 ; break;
case '8':
adres_sec=216 ; yinele=5 ; break;
case '9':
adres_sec=222 ; yinele=5 ; break;
case 'ö':
adres_sec=228 ; yinele=5 ; break;
case '.':
adres_sec=234 ; yinele=2 ; break;
case ':':
adres_sec=237 ; yinele=2 ; break;
case '`':
adres_sec=240 ; yinele=4 ; break;
case '=':
adres_sec=245 ; yinele=5 ; break;
case '-':
adres_sec=251 ; yinele=5 ; break;
case '_':
adres_sec=257 ; yinele=5 ; break;
case '+':
adres_sec=263 ; yinele=5 ; break;
case '%':
adres_sec=269 ; yinele=8 ; break;
case 'r':
adres_sec=278 ; yinele=5 ; break;
case '>':
adres_sec=284 ; yinele=6 ; break;
case '*':
adres_sec=291 ; yinele=7 ; break;
case '/':
adres_sec=299 ; yinele=4 ; break;
default:
adres_sec=164 ; yinele=5 ;
break;
}
}

/**************sütun bilgisi**************/
void sutun_reg(char str[],int16 b) //sutun_reg() alt programı.
{
unsigned int j=0,i=0; //
unsigned int16 y=0,stn_index; //
for(i=0;i<strlen(str);i++) //
{ //
data=str[i]; //
data_sec(); //
for(j=0;j<=yinele;j++,adres_sec++,y++)//
sutun_1[y]=karakter[adres_sec]; //
} //
for(stn_index=y;stn_index<b;stn_index++)//
sutun_1[stn_index]=0; //
y=0; //
} //

/**********matrislere karakter gönder*******/
void ekran_yaz(int tekrar)
{
int s=0,i=0,j=0;
for(j=0;j<tekrar;j++)
{
for(s=0;s<8;s++)
{
for(i=0;i<96;i++)
{
output_bit(ds1,bit_test(sutun_1[i],s));
output_high(clock);
delay_us(1);
output_low(clock);
}
output_b(0x00);
output_high(latch);
delay_us(1);
output_low(latch);
output_b(s+1);
}
}
}

/********yazıyı kaydır*******/
void efekt_1(int16 kay , int mod)
{
int reg_0=0;
int16 n=0,k=0;
for(n=0;n<kay;n++)
{
ekran_yaz(10);
disable_interrupts(ınt_rda);
switch (mod)
{
case 0:
reg_0=sutun_1[0];
for(k=0;k<(kay-1);k++)
sutun_1[k]=sutun_1[k+1];
sutun_1[kay-1]=reg_0;
break;
case 1:
for(k=0;k<(kay-1);k++)
sutun_1[k]=sutun_1[k+1];
sutun_1[kay-1]=0;
break;
default:
break;
}
enable_interrupts(ınt_rda);
}
}

/********sıcaklık-nem hesabı************/
void isi_nem()
{
signed int16 t=0;
unsigned int16 rh=0;
unsigned int t1;
float temp=0,truehumid=0;

sht_rd (temp, truehumid);
t=temp*10 ; rh=truehumid*10;
if(t<0){
t=~t+1 ; isi[9]='-' ;}
else
isi[9]='+';

if(t<100)
{
t1=t%10 ; isi[13]=48+t1;
t/=10 ; isi[11]=48+t ;
isi[10]=' ';
}
if((t>=100) & (t<1000))
{
t1=t%10 ; isi[13]=48+t1;
t/=10 ; t1=t%10 ; isi[11]=48+t1;
t/=10 ; isi[10]=48+t;
}

if(rh<100)
{
t1=rh%10 ; isi[7]=48+t1;
rh/=10 ; isi[5]=48+rh ;
isi[4]=' ';
}
if((rh>=100) & (rh<1000))
{
t1=rh%10 ; isi[7]=48+t1;
rh/=10 ; t1=rh%10 ; isi[5]=48+t1;
rh/=10 ; isi[4]=48+rh;
}
sutun_reg(isi,96);

/*********integer to strıng************/
void int_to_str(char term[] , int value , int str_pos1 , int str_pos2)
{
int info=0;
info=value%10 ; term[str_pos2]=48+info;
value/=10 ; term[str_pos1]=48+value;
}

/*********saat-tarih bilgisi okuma***********/
void saat_()
{
byte sn,dk,hr;
rtc_get_time(hr,dk,sn);

int_to_str(saat,hr,4,5);
int_to_str(saat,dk,7,8);
int_to_str(saat,sn,10,11);

sutun_reg(saat,96);
}
void tarih_()
{
byte gun,ay,yil,haftanin_gunu;
rtc_get_date(gun,ay,yil,haftanin_gunu);
switch(haftanin_gunu)
{
case 1: tarih[12]='p';tarih[13]='a';tarih[14]='z';break;
case 2: tarih[12]='p';tarih[13]='z';tarih[14]='t';break;
case 3: tarih[12]='s';tarih[13]='a';tarih[14]='l';break;
case 4: tarih[12]='c';tarih[13]='r';tarih[14]='s';break;
case 5: tarih[12]='p';tarih[13]='e';tarih[14]='r';break;
case 6: tarih[12]='c';tarih[13]='u';tarih[14]='m';break;
case 7: tarih[12]='c';tarih[13]='t';tarih[14]='s';break;
}
int_to_str(tarih,gun,1,2);
int_to_str(tarih,ay,4,5);
int_to_str(tarih,yil,9,10);

sutun_reg(tarih,96);

}

/*********kesme alt programı*************/
#int_rda //rs232'den bilgi geliyor kesmesi.
void rda_isr(void) //
{
int msj_index=0; //
disable_interrupts(ınt_rda); //rs232 bilgi giriş kesmesi pasif.
output_b(0x00);

/***********1'inci satır bilgisi*****************/
gets(mesaj_1); //klavyeden girilen string ifade mesaj_1[]
printf("%s"mesaj_1);
for(msj_index=strlen(mesaj_1);msj_index<55;msj_index++)//dizisine yerleştiriliyor. yeni ifadenin
mesaj_1[msj_index]=0; //haricindeki dizi elemanları temizleniyor.
for(msj_index=0;msj_index<55;msj_index++) //mesaj_1[]dizisi dahili eeproma
write_eeprom(msj_index,mesaj_1[msj_index]);//yazılıyor.
/*----------------------------------------------------------------------------*/
//sutun_reg(mesaj_1,320); //sutun_reg() alt programını çağır
enable_interrupts(ınt_rda); //rs232 bilgi giriş kesmesi aktif
} //

/* ana program */
void main()
{
int i=0;

/*_____port giriş-çıkış işlemleri_______*/
set_tris_a(0x00) ; set_tris_b(0x00) ;//pin_c7(rx) giriş,giğer
set_tris_d(0x00) ; set_tris_e(0x00) ;//pinler çıkış
output_a(0x00) ; output_b(0x00) ;//bütün çıkışları
output_d(0x00) ; output_e(0x00) ;//temizle
/*----------------------------------------------------------------*/
setup_adc_ports(no_analogs); //adc pinleri digital
setup_adc(adc_off); //adc kapalı
setup_psp(psp_dısabled); //psp kapalı
setup_spi(spı_ss_dısabled); //spı kapalı
setup_wdt(wdt_off); //wdt kapalı
setup_timer_0(rtcc_ınternal); //timer0 dahili kaynak
setup_timer_1(t1_dısabled); //timer1 kapalı
setup_timer_2(t2_dısabled,0,1); //timer2 kapalı
setup_timer_3(t3_dısabled|t3_dıv_by_1);//timer3 kapalı
/*------------------------------------------------------------------*/
enable_interrupts(ınt_rda); //rs232 bilgi giriş kesmesi aktif
enable_interrupts(global); //tüm kesmelere izin ver
/*-------------------------------------------------------------------*/

rtc_init();
while(true)
{
/*********eeprom'dan satır bilgilerini okuma ve sutun regıster'ına yazma*******/
for(i=0;i<55;i++) //dahili eepromdan 55 karakter oku
mesaj_1[i]=read_eeprom(i); //mesaj_1[] dizisine kopyala
sutun_reg(mesaj_1,320); //sutun_reg() alt programını çağır

/******mesaj rutini******** **/
ekran_yaz(100);
efekt_1(320,1);

/********sıcaklık rutini*******/
isi_nem();
ekran_yaz(255);
//efekt_1(96,0);
//ekran_yaz(255);

/********saat-tarih rutini*****/
for(i=0;i<100;i++)
{
saat_();
ekran_yaz(10);
//efekt_1(96,0);
//ekran_yaz(255);
}
tarih_();
ekran_yaz(255);
//efekt_1(96,0);
//ekran_yaz(255);
}
}
/*____________son_____________*/
Başa dön



C ile bilgisayar kontrollu-kayan yazi-pic18f452-VB-NEM-Tarih-Saat-Termometre


Benzer Konular
- bilgisayar mühendisliği staj defteri
- 7 led ile digital saat
- Sakarya Üniversitesi Bilgisayar Organizasyonu DERS NOTLARI

- picli uçan saat devresi

- PicBasic de 16F877 ile lcd saat örneği (Microchip deneme kartında testedildi)
- [bilgisayar ağları ]sınav sorusu
- 1 Nisan tarihinden itibaren cep telefonlarına kontör yüklemek tarih oluyor...
- 74 serisi entegrelerle Dijital Ayarlanabilir Kurmali Saat
- resim slaytlı takvimli saat 18f452 glcd

- 2 veya daha fazla alarm çıkışlı picle yapılmış digital saat devre lazım arkadaşl

- USB termometre ( seri portsuz )

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72