Elektronik Periyodik Cetvel

Başlatan olcayakgn, 14 Ekim 2012, 12:56:32

olcayakgn

Elektronik periyodik cetvel temel olarak butona basıldığında örneğin atom numarası girildiğinde atomun adını simgesini vs. gösterebilecek bir şey.Böyle bir şeyi Bilim Teknik dergisinin kendimiz yapalım bölümünden öğrendim,Yavuz Erol'un yazdığı projedir.

KAYNAK KODLARI;
#include <C:\Users\w7\Desktop\Elektronik Periyodik Cetvel>
#include <16F877.h> 
#include <lcd.c>
#include <stdio.h>

#define yuzler RC0
#define onlar RC1
#define birler RC2
#define onay RC3

// Konfigürasyon ayarları
__CONFIG(XT&WDTDIS&PWRTEN&LVPDIS);

unsigned char dizi2[]="AN:   "; 
unsigned char dizi3[]="KN:    "; 
unsigned char dizi1[]="                "; 
unsigned char atomno;
unsigned char sayacyuzler,sayaconlar,sayacbirler;


void bekle(void){
   DelayMs(250);}

//---------------------------------------
//       Atom no yazan alt program
//---------------------------------------
void LCD_yaz(void){
lcd_clear(); 
lcd_goto(0x00); lcd_puts("ATOM NUMARASI= ?"); 
atomno=100*sayacyuzler+10*sayaconlar+sayacbirler;
// Girilen atom numarasını 2. satırın ortasına yaz
lcd_goto(0x46);
sprintf(dizi1,"%d%d%d",sayacyuzler,sayaconlar,sayacbirler); 
lcd_puts(dizi1);
}
//----------------------------------------

//----------------------------------------
//       Kütle no yazan alt program
//----------------------------------------
void degeryaz(float kutleno){
lcd_goto(0x40); sprintf(dizi2+3,"%d",atomno); lcd_puts(dizi2);
lcd_goto(0x46); sprintf(dizi3+3,"%3.3f",kutleno); lcd_puts(dizi3);
}
//----------------------------------------

//----------------------------------------
//             ANA PROGRAM
//----------------------------------------
main (void)
{
unsigned char a;

// Port konfigürasyonu
TRISB=0; // PORTB çıkış  
TRISA=0; // PORTA çıkış
TRISC=0x0F; // ilk 4 pin giriş 
ADCON1=0x06; // PORTA dijital giriş/çıkış

PORTA=0; PORTB=0; PORTC=0;

// LCD işlemleri
DelayMs(250); // 250ms bekle
lcd_init(); // LCD'yi hazırla 
lcd_clear(); // LCD'yi temizle
lcd_write(0x0C); // imleci gizle

// Giriş yazısını yaz
lcd_goto(0x00); lcd_puts("   ELEKTRONiK   "); 
lcd_goto(0x40); lcd_puts("PERiYODiK CETVEL"); 

// 2s bekle
for(a=0;a<8;a++)bekle();

// 1. satıra git Atom numarasi= ? yaz
lcd_clear();
lcd_goto(0x00); lcd_puts("ATOM NUMARASI= ?"); 

for(;;){
sayacyuzler=0; sayaconlar=0; sayacbirler=0;
// Butonları kontrol et ve değeri LCD'de yazdır
for(;;){
   if(yuzler==1){
      sayacyuzler++; bekle();
      if(sayacyuzler==2)sayacyuzler=0;
      LCD_yaz();
   }
   if(onlar==1){
      sayaconlar++; bekle();
      if(sayaconlar==10)sayaconlar=0;
      LCD_yaz();
   }
   if(birler==1){
      sayacbirler++; bekle();
      if(sayacbirler==10)sayacbirler=0;
      LCD_yaz();
   }
   if(onay==1)break;
}

// Element bilgilerini LCD'ye yazdır
lcd_clear(); lcd_goto(0x00);

     if(atomno==0){lcd_puts("ATOM NO>0 OLMALI");}
else if(atomno==1){lcd_puts("Hidrojen (H)"); degeryaz(1.007);}
else if(atomno==2){lcd_puts("Helyum (He)"); degeryaz(4.002);}
else if(atomno==3){lcd_puts("Lityum (Li)"); degeryaz(6.941);}
else if(atomno==4){lcd_puts("Berilyum (Be)"); degeryaz(9.012);}
else if(atomno==5){lcd_puts("Bor (B)"); degeryaz(10.811);}
else if(atomno==6){lcd_puts("Karbon (C)"); degeryaz(12.011);}
else if(atomno==7){lcd_puts("Azot (N)"); degeryaz(14.006);}
else if(atomno==8){lcd_puts("Oksijen (O)"); degeryaz(15.999);}
else if(atomno==9){lcd_puts("Flor (F)"); degeryaz(18.998);}
else if(atomno==10){lcd_puts("Neon (Ne)"); degeryaz(20.179);}
else if(atomno==11){lcd_puts("Sodyum (Na)"); degeryaz(22.989);}
else if(atomno==12){lcd_puts("Magnezyum (Mg)"); degeryaz(24.305);}
else if(atomno==13){lcd_puts("Aluminyum (Al)"); degeryaz(26.981);}
else if(atomno==14){lcd_puts("Silisyum (Si)"); degeryaz(28.085);}
else if(atomno==15){lcd_puts("Fosfor (P)"); degeryaz(30.973);}
else if(atomno==16){lcd_puts("Kukurt (S)"); degeryaz(32.060);}
else if(atomno==17){lcd_puts("Klor (Cl)"); degeryaz(35.452);}
else if(atomno==18){lcd_puts("Argon (Ar)"); degeryaz(39.948);}
else if(atomno==19){lcd_puts("Potasyum (K)"); degeryaz(39.098);}
else if(atomno==20){lcd_puts("Kalsiyum (Ca)"); degeryaz(40.078);}
else if(atomno==21){lcd_puts("Skandiyum (Sc)"); degeryaz(44.955);}
else if(atomno==22){lcd_puts("Titanyum (Ti)"); degeryaz(47.880);}
else if(atomno==23){lcd_puts("Vanadyum (V)"); degeryaz(50.941);}
else if(atomno==24){lcd_puts("Krom (Cr)"); degeryaz(51.996);}
else if(atomno==25){lcd_puts("Manganez (Mn)"); degeryaz(54.938);}
else if(atomno==26){lcd_puts("Demir (Fe)"); degeryaz(55.847);}
else if(atomno==27){lcd_puts("Kobalt (Co)"); degeryaz(58.933);}
else if(atomno==28){lcd_puts("Nikel (Ni)"); degeryaz(58.695);}
else if(atomno==29){lcd_puts("Bakir (Cu)"); degeryaz(63.546);}
else if(atomno==30){lcd_puts("Cinko (Zn)"); degeryaz(65.390);}
else if(atomno==31){lcd_puts("Galyum (Ga)"); degeryaz(69.723);}
else if(atomno==32){lcd_puts("Germanyum (Ge)"); degeryaz(72.610);}
else if(atomno==33){lcd_puts("Arsenik (As)"); degeryaz(74.921);}
else if(atomno==34){lcd_puts("Selenyum (Se)"); degeryaz(78.960);}
else if(atomno==35){lcd_puts("Brom (Br)"); degeryaz(79.904);}
else if(atomno==36){lcd_puts("Kripton (Kr)"); degeryaz(83.800);}
else if(atomno==37){lcd_puts("Rubidyum (Rb)"); degeryaz(85.467);}
else if(atomno==38){lcd_puts("Stronsiyum (Sr)"); degeryaz(87.620);}
else if(atomno==39){lcd_puts("itriyum (Y)"); degeryaz(88.905);}
else if(atomno==40){lcd_puts("Zirkonyum (Zr)"); degeryaz(91.224);}
else if(atomno==41){lcd_puts("Niyobyum (Nb)"); degeryaz(92.906);}
else if(atomno==42){lcd_puts("Molibden (Mo)"); degeryaz(95.940);}
else if(atomno==43){lcd_puts("Teknesyum (Tc)"); degeryaz(98.000);}
else if(atomno==44){lcd_puts("Rutenyum (Ru)"); degeryaz(101.070);}
else if(atomno==45){lcd_puts("Rodyum (Rh)"); degeryaz(102.905);}
else if(atomno==46){lcd_puts("Palladyum (Pd)"); degeryaz(106.420);}
else if(atomno==47){lcd_puts("Gumus (Ag)"); degeryaz(107.868);}
else if(atomno==48){lcd_puts("Kadmiyum (Cd)"); degeryaz(112.411);}
else if(atomno==49){lcd_puts("indiyum (In)"); degeryaz(114.820);}
else if(atomno==50){lcd_puts("Kalay (Sn)"); degeryaz(118.710);}
else if(atomno==51){lcd_puts("Antimon (Sb)"); degeryaz(121.757);}
else if(atomno==52){lcd_puts("Tellur (Te)"); degeryaz(127.600);}
else if(atomno==53){lcd_puts("iyot (I)"); degeryaz(126.904);}
else if(atomno==54){lcd_puts("Ksenon (Xe)"); degeryaz(131.290);}
else if(atomno==55){lcd_puts("Sezyum (Cs)"); degeryaz(132.905);}
else if(atomno==56){lcd_puts("Baryum (Ba)"); degeryaz(137.327);}
else if(atomno==57){lcd_puts("Lantan (La)"); degeryaz(138.905);}
else if(atomno==58){lcd_puts("Seryum (Ce)"); degeryaz(140.115);}
else if(atomno==59){lcd_puts("Praseodim (Pr)"); degeryaz(140.907);}
else if(atomno==60){lcd_puts("Neodim (Nd)"); degeryaz(144.240);}
else if(atomno==61){lcd_puts("Prometyum (Pm)"); degeryaz(145.000);}
else if(atomno==62){lcd_puts("Samaryum (Sm)"); degeryaz(150.360);}
else if(atomno==63){lcd_puts("Evropyum (Eu)"); degeryaz(151.965);}
else if(atomno==64){lcd_puts("Gadolinyum (Gd)"); degeryaz(157.250);}
else if(atomno==65){lcd_puts("Terbiyum (Tb)"); degeryaz(158.925);}
else if(atomno==66){lcd_puts("Disprosiyum (Dy)"); degeryaz(162.500);}
else if(atomno==67){lcd_puts("Holmiyum (Ho)"); degeryaz(164.930);}
else if(atomno==68){lcd_puts("Erbiyum (Er)"); degeryaz(167.260);}
else if(atomno==69){lcd_puts("Tulyum (Tm)"); degeryaz(168.934);}
else if(atomno==70){lcd_puts("iterbiyum (Yb)"); degeryaz(173.040);}
else if(atomno==71){lcd_puts("Lutesyum (Lu)"); degeryaz(174.967);}
else if(atomno==72){lcd_puts("Hafniyum (Hf)"); degeryaz(178.490);}
else if(atomno==73){lcd_puts("Tantal (Ta)"); degeryaz(180.947);}
else if(atomno==74){lcd_puts("Tungsten (W)"); degeryaz(183.850);}
else if(atomno==75){lcd_puts("Renyum (Re)"); degeryaz(186.207);}
else if(atomno==76){lcd_puts("Osmiyum (Os)"); degeryaz(190.200);}
else if(atomno==77){lcd_puts("iridyum (Ir)"); degeryaz(192.220);}
else if(atomno==78){lcd_puts("Platin (Pt)"); degeryaz(195.080);}
else if(atomno==79){lcd_puts("Altin (Au)"); degeryaz(196.966);}
else if(atomno==80){lcd_puts("Civa (Hg)"); degeryaz(200.590);}
else if(atomno==81){lcd_puts("Talyum (Tl)"); degeryaz(204.383);}
else if(atomno==82){lcd_puts("Kursun (Pb)"); degeryaz(207.200);}
else if(atomno==83){lcd_puts("Bizmut (Bi)"); degeryaz(208.980);}
else if(atomno==84){lcd_puts("Polonyum (Po)"); degeryaz(209);}
else if(atomno==85){lcd_puts("Astatin (At)"); degeryaz(210);}
else if(atomno==86){lcd_puts("Radon (Rn)"); degeryaz(222);}
else if(atomno==87){lcd_puts("Fransiyum (Fr)"); degeryaz(223);}
else if(atomno==88){lcd_puts("Radyum (Ra)"); degeryaz(226.025);}
else if(atomno==89){lcd_puts("Aktinyum (Ac)"); degeryaz(227);}
else if(atomno==90){lcd_puts("Toryum (Th)"); degeryaz(232.038);}
else if(atomno==91){lcd_puts("Protaktinyum(Pa)"); degeryaz(231.035);}
else if(atomno==92){lcd_puts("Uranyum (U)"); degeryaz(238.028);}
else if(atomno==93){lcd_puts("Neptunyum (Np)"); degeryaz(237.048);}
else if(atomno==94){lcd_puts("Plutonyum (Pu)"); degeryaz(244);}
else if(atomno==95){lcd_puts("Amerikyum (Am)"); degeryaz(243);}
else if(atomno==96){lcd_puts("Kuriyum (Cm)"); degeryaz(247);}
else if(atomno==97){lcd_puts("Berkelyum (Bk)"); degeryaz(247);}
else if(atomno==98){lcd_puts("Kaliforniyum (Cf)"); degeryaz(251);}
else if(atomno==99){lcd_puts("Aynstaynyum (Es)"); degeryaz(252);}
else if(atomno==100){lcd_puts("Fermiyum (Fm)"); degeryaz(257);}
else if(atomno==101){lcd_puts("Mendelevyum (Md)"); degeryaz(258);}
else if(atomno==102){lcd_puts("Nobelyum (No)"); degeryaz(259);}
else if(atomno==103){lcd_puts("Lavrensiyum (Lr)"); degeryaz(260);}
else if(atomno==104){lcd_puts("Rutherfordium Rf"); degeryaz(261);}
else if(atomno==105){lcd_puts("Dubniyum (Db)"); degeryaz(262);}
else if(atomno==106){lcd_puts("Seaborgiyum (Sg)"); degeryaz(263);}
else if(atomno==107){lcd_puts("Bohriyum (Bh)"); degeryaz(262);}
else if(atomno==108){lcd_puts("Hassiyum (Hs)"); degeryaz(265);}
else if(atomno==109){lcd_puts("Meitneriyum (Mt)"); degeryaz(266);}
else if(atomno==110){lcd_puts("Darmstadtiyum Ds"); degeryaz(271);}
else if(atomno==111){lcd_puts("Rontgenyum (Rg)"); degeryaz(272);}
else if(atomno==112){lcd_puts("Ununbiyum (Uub)"); degeryaz(277);}
else if(atomno==113){lcd_puts("Ununtriyum (Uut)"); degeryaz(284);}
else{lcd_puts("Atom No HATALI");}

DelayMs(250);
} // işlemleri tekrarla
} // Programın sonu




Projenin bütün resimlerine lehim yüzeyine pcbsine bu adresten ulaşbilirsiniz;
http://www.biltek.tubitak.gov.tr/gelisim/elektronik/index.htm


Birde ben buna yeni değerler eklemek istiyorum ama complie edmiyorum bana yardımcı olursanız sevinirim