16F88 VE DS1302 İLE İLGİLİ

Başlatan baran123, 22 Aralık 2013, 19:32:23

baran123

Merhaba arkadaşlar benim 2 sorum olacak :)
1)pıc 16f88' lcd de saat tarih sıcaklık gösterebilir miyim (ds1302 ve ds18b20 ile, pic uygun mu yani)?
2)Yine yapılmış bir saate zaman ayarı butonlarla arttırıp azaltacak şekilde nasıl yapabilirim ,nasıl bir yol izlemem lazım ?

Kolay Gelsin İyi Çalışmalar :)


Kabil ATICI

Normalde kırk yılda bir ayar yapılan bir sisteme o kadar buton koymaya gerek yok. Sadece artıracak şekilde saat ve dakika ayarı yeterli (2 buton).
ambar7

baran123

#3
Alıntı yapılan: xoom - 22 Aralık 2013, 19:44:19
http://ccspic.com/projeler/ds18b20-ve-ds1302-ile-lcd-termometre-saat.html
Linkteki 873 ile yapılmış benim kast ettiğim ise 16f88 yani bu pic uygun mu bu projeye yapılabişlir mi onu sormustum lcd ds1302 ds18b20 bağlanabilir mi ?

mesaj birleştirme:: 22 Aralık 2013, 20:25:15

Alıntı yapılan: ambar7 - 22 Aralık 2013, 19:57:09
Normalde kırk yılda bir ayar yapılan bir sisteme o kadar buton koymaya gerek yok. Sadece artıracak şekilde saat ve dakika ayarı yeterli (2 buton).
2 butonlar nasıl yapabilirim ? saat tarih bunların hepsini arttırakcak şekilde kısa bir mantık verir misiniz :)

xoom

Alıntı yapılan: baranekrem9 - 22 Aralık 2013, 20:23:55
Linkteki 873 ile yapılmış benim kast ettiğim ise 16f88 yani bu pic uygun mu bu projeye yapılabişlir mi onu sormustum lcd ds1302 ds18b20 bağlanabilir mi ?
Evet bahsettiğiniz uygulamayı seçtiğiniz picle yapabilirsiniz.

baran123


Kabil ATICI

bulduğun projedeki değer azaltan butonları ve kodlarını iptal et.
Ayarlar için;
-saat için; 24 saat modunda 0-23 aralığında sayacak butonla artırılan değer
-dakika için; 60 dakika 0-59 aralığında sayacak butonla artırılan değer
bildiğimiz saat mantığı tek farkla dakika 59 ->00 geçişinde saat artmıyor..

Yapılan ayarın kaydı için 00 saniye olduğu zaman kaydedittir . Böylece her butonu bastığında kaydettirmen gerekmez.

Başka kod kullanmadan sadece işlemci üzerinde çalışan saat yazmaya çalış. Çok şey öğreneceğinden emin olabilirsin.
ambar7

pwm.c

http://www.teknomerkez.net/sayfa.php?git=629
Buradaki devreyi PIC16F88 e uyarlamaya çalıştım.
şunu dene bakalım:

devre şeması:


CCS C kodları:
#include <16F88.h>
#FUSES NOWDT, XT, NOMCLR, NOBROWNOUT, NOLVP, NOFCMEN
#use delay(clock=4000000)


#include <DS1302.C>
#define LCD_RS_PIN      PIN_A0 
#define LCD_RW_PIN      PIN_B0
#define LCD_ENABLE_PIN  PIN_A1 
#define LCD_DATA4       PIN_B4 
#define LCD_DATA5       PIN_B5 
#define LCD_DATA6       PIN_B6 
#define LCD_DATA7       PIN_B7
#include <LCD.C>

int8 saniye,dakika,saat=1,gun=1,ay=1,yil=1,haftanin_gunu=1,durum=0,x=0;

void lcd(){
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%02u/%02u/%02u",gun,ay,yil);  
   lcd_gotoxy(9,1);
   lcd_send_byte(0x08,0x7e);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"%02u:%02u:%02u  ",saat,dakika,saniye);
   
}
void haftagunu(){
   lcd_gotoxy(10,1);
    switch(haftanin_gunu)  
      {                     
         case 1: printf(lcd_putc,"PAZAR     "); break; // Eğer "1" ise LCD'ye PAZAR yaz
         case 2: printf(lcd_putc,"P.TESI    "); break; // Eğer "2" ise LCD'ye P.TESI yaz
         case 3: printf(lcd_putc,"SALI      "); break; // Eğer "3" ise LCD'ye SALI yaz
         case 4: printf(lcd_putc,"CARS      "); break; // Eğer "4" ise LCD'ye CARS yaz
         case 5: printf(lcd_putc,"PERS      "); break; // Eğer "5" ise LCD'ye PERS yaz
         case 6: printf(lcd_putc,"CUMA      "); break; // Eğer "6" ise LCD'ye CUMA yaz
         case 7: printf(lcd_putc,"C.TESI    "); break; // Eğer "7" ise LCD'ye C.TESI yaz
      }
}
void ayar(){
   if(!input(pin_a3)){
      durum++;
      while(!input(pin_a3));}
   if(durum==1){
   lcd_gotoxy(4,1);
   lcd_send_byte(0x03,0x0d);
   lcd_gotoxy(5,1);
   lcd_send_byte(0x04,0x0d);}
   if(!input(pin_a2)&&durum==1){
      ay++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==1){
      ay--;
      while(!input(pin_a4));}
   
   if(durum==2){
   lcd_gotoxy(1,1);
   lcd_send_byte(0x01,0x0d);
   lcd_gotoxy(2,1);
   lcd_send_byte(0x01,0x0d);}
   if(!input(pin_a2)&&durum==2){
      gun++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==2){
      gun--;
      while(!input(pin_a4));}
   
   if(durum==3){
   lcd_gotoxy(7,1);
   lcd_send_byte(0x06,0x0d);
   lcd_gotoxy(8,1);
   lcd_send_byte(0x07,0x0d);}
   if(!input(pin_a2)&&durum==3){
      yil++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==3){
      yil--;
      while(!input(pin_a4));}
   
   if(durum==4){
   lcd_gotoxy(9,1);
   lcd_send_byte(0x08,0x0d);}
   if(!input(pin_a2)&&durum==4){
      haftanin_gunu++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==4){
      haftanin_gunu--;
      while(!input(pin_a4));}
   
   if(durum==5){
   lcd_gotoxy(1,2);
   lcd_send_byte(0x40,0x0d);
   lcd_gotoxy(2,2);
   lcd_send_byte(0x41,0x0d);}
   if(!input(pin_a2)&&durum==5){
      saat++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==5){
      saat--;
      while(!input(pin_a4));}
   
   if(durum==6){
   lcd_gotoxy(4,2);
   lcd_send_byte(0x43,0x0d);
   lcd_gotoxy(5,2);
   lcd_send_byte(0x44,0x0d);}
   if(!input(pin_a2)&&durum==6){
      dakika++;
      while(!input(pin_a2));}
   if(!input(pin_a4)&&durum==6){
      dakika--;
      while(!input(pin_a4));}
   
   if(durum==8){
   durum=0;
   printf(lcd_putc,"\f");}
      
   
   
}
void main()
{

   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   delay_ms(10);
   lcd_init();
   rtc_init();
   delay_ms(250);
   
   while(TRUE){
      lcd();
      ayar();
      haftagunu();
      
      if(durum==7){
      rtc_set_datetime(gun,ay,yil,haftanin_gunu,saat,dakika);
      delay_ms(10);
      printf(lcd_putc,"\f    AYARLAR\n   YUKLENIYOR");
      delay_ms(1000);
      durum=8;}
      if(durum==0){
      rtc_get_time(saat,dakika,saniye);
      rtc_get_date(gun,ay,yil,haftanin_gunu);}
      
      if(saat==24)saat=0;
      if(saat==255)saat=23;      
      if(dakika==60)dakika=0;
      if(dakika==255)dakika=59;
      if(ay==13)ay=1;
      if(ay==0)ay=12;
      if(yil==0)yil=0;
      if(haftanin_gunu==8)haftanin_gunu=1;
      if(haftanin_gunu==0)haftanin_gunu=7;
      if(ay==4||ay==6||ay==9||ay==11){
         if(gun==31)gun=1;
         if(gun==0)gun=30;}
      if(ay==1||ay==3||ay==5||ay==7||ay==8||ay==10||ay==12){
         if(gun==32)gun=1;
         if(gun==0)gun=31;}
         x=yil/4;
      if((x==1||x==2||x==3||x==4||x==5||x==6||x==7||x==8||x==9||x==10)&&ay==2){
         if(gun==30)gun=1;
         if(gun==0)gun=29;}
      
      
   }
}


hex dosyası:
:1000000005308A00132D0000D020DA205210201075
:10001000201000005017D422D324201020100001FB
:10002000D320CC242010201020100001C320D2297E
:100030002010201020100001D022D22920102010E2
:1000400020100001C32ACD20201020102010000114
:100050004317D422D3242010201000010C102010AC
:10006000A020D920522641290A102010D92A4B2637
:100070004527C92C4F2900002E3084008313000827
:10008000031950280130F800F701F70B4528F80B49
:1000900044284A30F700F70B4B284E28800B4228A3
:1000A000080034185528061256280616831606121C
:1000B0008312B4185D2886125E288616831686126F
:1000C000831234196528061366280617831606134B
:1000D0008312B4196D2886136E288617831686132B
:1000E00000008312851483168510762883128510EC
:1000F0008316851083120800B5018316061600309A
:100100008312061A0130B504831686160030831256
:10011000861A0130F7000310F70D7708B50483162F
:10012000061700308312061B0130F700F70DF70D9C
:10013000FC30F7057708B504831686170030831264
:10014000861B0130F700F70DF70DF70DF830F705B6
:100150007708B5043508F8000800831685100510E7
:10016000061083120510831605100616861606174C
:100170008617831206148316061000008312851456
:1001800083168510000083127C207808B400851047
:1001900083168510000083128514831685100000D5
:1001A00083127C207808B300851083168510061210
:1001B0008612061386138312340EF700F030F7050B
:1001C00077083304F8007808B300B31FE9288316D2
:1001D000B528B108031DEE280510EF280514831675
:1001E000051000008312061083160610000083120B
:1001F0008510831685108312320EB3000F30B305BD
:100200003308B400512032080F39B300B400512034
:1002100008002830AA000C30AB000130AC000630DA
:10022000AD00851083168510831205108316051006
:100230008312061083160610061286120613861302
:100240008510051006100F308312AE003C200130DF
:10025000A9002908033C031C35290330B4005120B0
:100260000530AE003C20A90A29290230B4005120F3
:100270000530AE003C20A9012908033C031C4C2991
:100280002A302907840083130008AE00B1012E082C
:10029000B200AD20A90A3C298A113B2DB3013308D5
:1002A000073C031C65290310B20C03185929861159
:1002B0005A29861583168611861083128614831692
:1002C000861083128610B30A4F2908008316061180
:1002D000831206153008B2004E213108B2004E21BB
:1002E0008316061183120611080083160611831265
:1002F00006152D08B2004E218316861500008312C4
:10030000AE012E08073C031C9A298316861583121A
:1003100086198C2903108D290314AF0C83168610BF
:1003200083128614932983168610831286109829C7
:10033000AE0A812983160611831206112F08F800D0
:1003400008008316061183120611A629831686104B
:10035000831286108E30B000B10166219030B0005B
:10036000A430B10066218130AD0075217808A90064
:10037000290880390319C0298030B000B1016621F5
:100380008A113C2D2E0BC529C8294030AF00C92940
:10039000AF0101302D02AF072F088038B000B10146
:1003A0003008B200AD2008003308F801320203180B
:1003B000DC293208F700E829F7010830B400B20D53
:1003C000F70D330877020318F700F80DB40BDF2997
:1003D00008002C08073A0319F7290B3A0319FC29DE
:1003E000063A0319042A023A03190A2A0F2A01308D
:1003F000AD00AE00C221142AB1010130B200AD201F
:100400000230AE003C20142A0130AD000230AE00B4
:10041000C221142AB1011030B200AD20142A0130DB
:10042000B1002C08B200AD20080078082908B200FD
:100430006430B300D4217708A90078083030031D58
:10044000282AAA1C2F2AAA192F2A2A1A20302B2A36
:10045000AA112A122A14F8077808AC00E921290801
:10046000B2000A30B300D4217708A90078083030F0
:10047000031D402AAA19442A2A1C442A2A1A203079
:10048000F8077808AC00E9213030A9072908AC004A
:10049000E92108000130AD00AE00C2212308A90007
:1004A0000130AA0015222F30AC00E9212408A90050
:1004B0000130AA0015222F30AC00E9212508A9003F
:1004C0000130AA0015220930AD000130AE00C22172
:1004D0000830B1007E30B200AD200130AD000230F6
:1004E000AE00C2212208A9000130AA0015223A302C
:1004F000AC00E9212108A9000130AA0015223A30F8
:10050000AC00E9212008A9000130AA001522203002
:10051000AC00E9212030AC00E9218A11402D83167E
:100520008515831285199A2AA70A831685158312C1
:10053000851D952A270BB02A0430AD000130AE008E
:10054000C2210330B1000D30B200AD200530AD0046
:100550000130AE00C2210430B1000D30B200AD2038
:100560008316051583120519BD2A270BBD2AA40A77
:10057000831605158312051DB82A831605168312E6
:10058000051ACA2A270BCA2AA40383160516831242
:10059000051EC52A2708023C031DE12A0130AD00D3
:1005A000AE00C2210130B1000D30B200AD200230EA
:1005B000AD000130AE00C2210130B1000D30B200FB
:1005C000AD208316051583120519F02A2708023C71
:1005D000031DF02AA30A831605158312051DEB2AB5
:1005E000831605168312051AFF2A2708023C031DED
:1005F000FF2AA303831605168312051EFA2A27086D
:10060000033C031D172B0730AD000130AE00C221A3
:100610000630B1000D30B200AD200830AD00013021
:10062000AE00C2210730B1000D30B200AD208316FC
:10063000051583120519262B2708033C031D262BBD
:10064000A50A831605158312051D212B8316051691
:100650008312051A352B2708033C031D352BA503F0
:10066000831605168312051E302B2708043C031D34
:10067000432B0930AD000130AE00C2210830B1007B
:100680000D30B200AD208316051583120519522BCB
:100690002708043C031D522BA60A83160515831256
:1006A000051D4D2B831605168312051A612B27088D
:1006B000043C031D612BA603831605168312051E39
:1006C0005C2B2708053C031D782B0130AD00023060
:1006D000AE00C2214030B1000D30B200AD2002307A
:1006E000AD00AE00C2214130B1000D30B200AD20EE
:1006F0008316051583120519872B2708053C031D52
:10070000872BA20A831605158312051D822B8316DB
:1007100005168312051A962B2708053C031D962BF8
:10072000A203831605168312051E912B2708063C8B
:10073000031DAE2B0430AD000230AE00C2214330A9
:10074000B1000D30B200AD200530AD000230AE007A
:10075000C2214430B1000D30B200AD208316051522
:1007600083120519BD2B2708063C031DBD2BA10ACA
:10077000831605158312051DB82B831605168312E3
:10078000051ACC2B2708063C031DCC2BA10383168E
:1007900005168312051EC72B2708083C031DD42B02
:1007A000A7010C30AC00E9218A11412D0B08A900EA
:1007B0008B13831603178C170C1400000000831290
:1007C0000313A91B8B1703170C087F3903192A2C55
:1007D0000313A90003170D080313AA0003170F083A
:1007E0000313AB002908AC00E9212A0803178D0088
:1007F00003132B0803178F0003130B08AC008B1394
:10080000831603178C170C140000000083120313C7
:10081000AC1B8B1703170C0D0E0D7F3903192A2CF7
:100820000313A90003170D080313AA0003170F08E9
:100830000313AB002908AC00E9212A0803178D0037
:1008400003132B0803178F008D0A03198F0A031354
:10085000D62B0317031308000A30AD000130AE0099
:10086000C22101302602F93E03186F2C073E712C7D
:10087000043003178D0000308F000313D6236F2C34
:100880000A3003178D0000308F000313D6236F2C1E
:10089000103003178D0000308F000313D6236F2C08
:1008A000163003178D0000308F000313D6236F2CF2
:1008B0001C3003178D0000308F000313D6236F2CDC
:1008C000223003178D0000308F000313D6236F2CC6
:1008D000283003178D0000308F000313D6238A11B0
:1008E000422D0A108A100A158207382C402C482CF9
:1008F000502C582C602C682CF701F801320803109A
:100900003318F707F70CF80CB318F707F70CF80CC7
:100910003319F707F70CF80CB319F707F70CF80CB5
:10092000331AF707F70CF80CB31AF707F70CF80CA3
:10093000331BF707F70CF80CB31BF707F70CF80C91
:1009400008002F08B2000A30B300D4217808B000A4
:100950003008B2000A30B3007C2478082F02B100BE
:10096000300EF700F030F70577083104F800080082
:100970002908AF00A1247808AF008630B0007808BD
:10098000B10066212A08AF00A1247808AF008830A2
:10099000B0007808B10066212B08AF00A1247808C8
:1009A000AF008C30B0007808B10066212C08AF0091
:1009B000A1247808AF008A30B0007808B100662121
:1009C0002D08AF00A1247808AF008430B00078086B
:1009D000B10066212E08AF00A1247808AF00823054
:1009E000B0007808B1006621AF01A1247808AF00FB
:1009F0008030B0007808B10066218A11532D2E088E
:100A0000AF002F0EF7000F30F7057708B100B200E6
:100A10000A30B3007C247808AE002F080F39AE07E7
:100A20002E08F800080003081F3983000130A200D7
:100A3000A300A400A500A600A701A80183161F1209
:100A40009F121B0880399B0007309C0083130730DE
:100A50009C00050885000230F700F70B2D2D302D86
:100A600000001C0883120D1383169D010A308312A7
:100A7000AE003C200929A129FA30AE003C204A2AC8
:100A80008F2A2C2C2708073C031D662D2308A9005C
:100A90002408AA002508AB002608AC002208AD00F7
:100AA0002108AE00B82C0A30AE003C202E300317CF
:100AB0008D0000308F000313D6230430A900FA30D4
:100AC000AE003C20A90B5F2D0830A700A708031D2E
:100AD000A82D8530AD0075217808A900AE00FF244F
:100AE0007808A2008330AD0075217808A900AE0017
:100AF000FF247808A1008130AD0075217808A90095
:100B0000AE00FF247808A0008730AD00752178087A
:100B1000A900AE00FF247808A3008930AD0075213C
:100B20007808A900AE00FF247808A4008D30AD003D
:100B300075217808A900AE00FF247808A5008B3045
:100B4000AD0075217808A900AE00FF247808A60042
:100B50002208183C0319A201220FB02D1730A20061
:100B600021083C3C0319A101210FB82D3B30A10005
:100B700024080D3C031DBE2D0130A400A408031D54
:100B8000C32D0C30A400A5080319A5012608083CB4
:100B9000031DCC2D0130A600A608031DD12D073062
:100BA000A6002408043C0319E12D2408063C03197F
:100BB000E12D2408093C0319E12D24080B3C031DF9
:100BC000EC2D23081F3C031DE72D0130A300A308D3
:100BD000031DEC2D1E30A300240BEF2D072E24083F
:100BE000033C0319072E2408053C0319072E24088B
:100BF000073C0319072E2408083C0319072E240874
:100C00000A3C0319072E24080C3C031D122E23084E
:100C1000203C031D0D2E0130A300A308031D122E3E
:100C20001F30A300250CA800A80C3F30A805280BF6
:100C30001A2E3E2E2808023C03193E2E2808033C9B
:100C400003193E2E2808043C03193E2E2808053CB3
:100C500003193E2E2808063C03193E2E2808073C9F
:100C600003193E2E2808083C03193E2E2808093C8B
:100C700003193E2E28080A3C031D4D2E2408023C71
:100C8000031D4D2E23081E3C031D482E0130A300DA
:0E0C9000A308031D4D2E1D30A3003F2D630051
:04400E00013FFE3F31
:00000001FF
;PIC16F88
;CRC=810B  CREATED="22-Ara-13 20:52"
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

baran123

kodlar için teşekkürler ama cok karısık olmus korkuttu acıkcası :D
soyle yapmayı dusundum 2 buton 1 i saati diğer dakikayı arttıracak o kadar dakika 59 dan sonra sıfırlancak saat de 24 de bunu nasıl yapabilirim