[i]16F628A ile rtc saat tarih lcd[/i]

Başlatan cettoceviz, 30 Nisan 2016, 13:52:03

cettoceviz

Alıntı yapılan: kareli - 03 Mayıs 2016, 13:01:57
pickıt3 ben kullanıorum. pıkkıt3 un yan kısmında 3 adet soket var kartın arkasında nerelerı nereye takacagını soyluyor oraya bakarak 16f628a gore ayarlaman lazım sonra pıcı yıne kartın uste belırtıgı gıbı yerlestır
ben şu şemaya göre yapıyorum bağlantıyı.


overlok

Bu arada kodlarda osilatör ayarlarını düzeltip tekrar derledin mi kodları? Devreyi çalıştırabildin mi?
Hanımların dikkatine, overlok makinesi ayağınıza geldi!

sadogan

Alıntı yapılan: cettoceviz - 03 Mayıs 2016, 12:43:29

tavsiyende haklısın.
1. aşamayı şuan uyguladım.
pic wizard penceresinden 16f628a, oscilator frequency 4.000.000 hz ve fuses başlığı altından crystal osc yi seçip tamam dedim.
c dosyasına şu kodları yazdım.
#include "C:\Users\cet\Desktop\led\led.h"
#include <16F628A.h>

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1););
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

set_tris_a(0x00000000);
set_tris_b(0x00000000);
int y;

while(1)
{
asdf:
output_high(PIN_B0); 
delay_ms(500);
output_low(PIN_B0);
delay_ms(500);
goto asdf;
}

}


ve build all yaptığımda, hata veriyor ve hex dosyasını oluşturmuyor. neden?
set_tris_a(0x00000000);
set_tris_b(0x00000000);
Bunlardan dolayı 0X hexsadecimal tanımlama şekli bit tanımlama
0B00000000 şeklin de olmalı

cettoceviz

#18
Alıntı yapılan: kareli - 03 Mayıs 2016, 13:01:57
pickıt3 ben kullanıorum. pıkkıt3 un yan kısmında 3 adet soket var kartın arkasında nerelerı nereye takacagını soyluyor oraya bakarak 16f628a gore ayarlaman lazım sonra pıcı yıne kartın uste belırtıgı gıbı yerlestır

bendeki pic kit 3 bu.
yanda soket yok.






ve şu şemaya göre programlama yapıyorum.






mesaj birleştirme:: 03 Mayıs 2016, 23:36:56

Alıntı yapılan: sadogan - 03 Mayıs 2016, 22:35:08
set_tris_a(0x00000000);
set_tris_b(0x00000000);
Bunlardan dolayı 0X hexsadecimal tanımlama şekli bit tanımlama
0B00000000 şeklin de olmalı

o kısmı düzelttikten sonra yine build all yapınca hex'i vermiyor.





cettoceviz

#19
arkadaşlar iyi akşamlar,
biraz uğraşmayla lcd ye veri getirmeyi sağladım.
fakat devreyi kurduğumda ayar aşamasında sorun var, ayar için butona bastığımda program duruyor. ayar için nasıl bir düzenleme yapmalıyım ?

kodlar
#include <last.h>

#use delay(clock=4MHz)

#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#define RTC_SCLK PIN_A1
#define RTC_IO   PIN_A0
#define RTC_RST  PIN_B3
#include <lcd.c>
#include <DS1302.C>

int8 saniye,dakika,saat,gun,ay,yil,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);
//   lcd_gotoxy(11,2);
//   printf(lcd_putc,"F.Koca");
}
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_a2)){
      durum++;
      while(input(pin_a2));}
   if(durum==1){
   lcd_gotoxy(4,1);
   lcd_send_byte(0x03,0x0d);
   lcd_gotoxy(5,1);
   lcd_send_byte(0x04,0x0d);}
   if(input(pin_a4)&&durum==1){
      ay++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==1){
      ay--;
      while(input(pin_a3));}
   
   if(durum==2){
   lcd_gotoxy(1,1);
   lcd_send_byte(0x01,0x0d);
   lcd_gotoxy(2,1);
   lcd_send_byte(0x01,0x0d);}
   if(input(pin_a4)&&durum==2){
      gun++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==2){
      gun--;
      while(input(pin_a3));}
   
   if(durum==3){
   lcd_gotoxy(7,1);
   lcd_send_byte(0x06,0x0d);
   lcd_gotoxy(8,1);
   lcd_send_byte(0x07,0x0d);}
   if(input(pin_a4)&&durum==3){
      yil++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==3){
      yil--;
      while(input(pin_a3));}
   
   if(durum==4){
   lcd_gotoxy(9,1);
   lcd_send_byte(0x08,0x0d);}
   if(input(pin_a4)&&durum==4){
      haftanin_gunu++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==4){
      haftanin_gunu--;
      while(input(pin_a3));}
   
   if(durum==5){
   lcd_gotoxy(1,2);
   lcd_send_byte(0x40,0x0d);
   lcd_gotoxy(2,2);
   lcd_send_byte(0x41,0x0d);}
   if(input(pin_a4)&&durum==5){
      saat++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==5){
      saat--;
      while(input(pin_a3));}
   
   if(durum==6){
   lcd_gotoxy(4,2);
   lcd_send_byte(0x43,0x0d);
   lcd_gotoxy(5,2);
   lcd_send_byte(0x44,0x0d);}
   if(input(pin_a4)&&durum==6){
      dakika++;
      while(input(pin_a4));}
   if(input(pin_a3)&&durum==6){
      dakika--;
      while(input(pin_a3));}
   
   if(durum==8){
   durum=0;
   printf(lcd_putc,"\f");}
}
void main()
{  
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   rtc_set_datetime(13,05,16,21,10,00);
   delay_ms(10);
   set_tris_a(0b11111111);  
   set_tris_b(0b00001000);  
   lcd_init();
   rtc_init();
   delay_ms(10);
   
   printf(lcd_putc,"\f    cetin'in \n  hediyesidir");
   delay_ms(2000);
   printf(lcd_putc,"\f");

   while(TRUE)
   {

      lcd_gotoxy(11,2);
      printf(lcd_putc,"F.Koca");
      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(2000);
      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;}
         
   }

}








cettoceviz

arkadaşlar yok mu yardımcı olan?
bir de bu resimdeki saniyeden sonra "19" yazıyor. bu neden kaynaklanır?



mehmet

Biraz mantık biraz da öncelik hatalarınız
var.
Durum7 de sadece ayar mı olacak?
Ayar olacaksa rutin rtc okuma oradan
main içine tasinmali. Rtc ilk kurma,
rtc init fonksiyonundan sonra olmalı. Vs... 

LG-D855 cihazımdan Tapatalk kullanılarak gönderildi

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

cettoceviz

#22
Alıntı yapılan: mehmet - 14 Mayıs 2016, 10:07:41
Biraz mantık biraz da öncelik hatalarınız
var.
Durum7 de sadece ayar mı olacak?
Ayar olacaksa rutin rtc okuma oradan
main içine tasinmali. Rtc ilk kurma,
rtc init fonksiyonundan sonra olmalı. Vs... 

LG-D855 cihazımdan Tapatalk kullanılarak gönderildi

durum7 ayar olacak. main içinde ilk ayarları yaptığımız
rtc_set_datetime(15,05,16,21,10,00);
satırı mevcut. durum7 nin içinden neden main içine taşınmalı anlamadım?

diğerinde haklısın rtc init i öne aldım.

mesaj birleştirme:: 14 Mayıs 2016, 11:59:01

rtc_set_datetime(15,05,16,21,10,00); satırını taşımadım.
şuan düzeldi nasıl oldu anlamadım ama ayar bölümünde takılmıyor artık istediğim gibi ayar yapabiliyorum:)
teşekkürler

mehmet

Olduysa dokunmayın...

LG-D855 cihazımdan Tapatalk kullanılarak gönderildi

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr