قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 04-09-2012, 11:11 PM المشاركة 9   
افتراضي



كود البرنامج :

كود:
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
// Global date/time variables
char seconds, minutes, hours, day, month, year; 
//----- Reads time and date information from RTC (DS1307)
void Read_Time() {
  I2C1_Start();                // Issue start signal
  I2C1_Wr(0xD0);             // Address DS1307, see DS1307 datasheet
  I2C1_Wr(0);                // Start from address 0>> SEC
  
  I2C1_Repeated_Start();      // issue I2C signal repeated start
  I2C1_Wr(0xD1);             // Address DS1307 for reading R/W=1
  seconds = I2C1_Rd(1);      // Read seconds byte
  minutes = I2C1_Rd(1);      // Read minutes byte
  hours = I2C1_Rd(1);        // Read hours byte
  day = I2C1_Rd(1);          // Read year/day byte
  month = I2C1_Rd(0);        // Read weekday/month byte
  I2C1_Stop();                 // Issue stop signal
 }
//-------------------- Formats date and time
void Transform_Time() {
  seconds  =  ((seconds & 0xF0) >> 4)*10 + (seconds & 0x0F);  // Transform seconds
  minutes  =  ((minutes & 0xF0) >> 4)*10 + (minutes & 0x0F);  // Transform months
  hours    =  ((hours & 0xF0)  >> 4)*10  + (hours & 0x0F);    // Transform hours
  year     =   (day & 0xC0) >> 6;                             // Transform year
  day      =  ((day & 0x30) >> 4)*10    + (day & 0x0F);       // Transform day
  month    =  ((month & 0x10)  >> 4)*10 + (month & 0x0F);     // Transform month
}
//-------------------- Output values to LCD
void Display_Time() {
   Lcd_Chr(1, 6, (day / 10)   + 48);    // Print tens digit of day variable
   Lcd_Chr(1, 7, (day % 10)   + 48);    // Print oness digit of day variable
   Lcd_Chr(1, 9, (month / 10) + 48);
   Lcd_Chr(1,10, (month % 10) + 48);
   Lcd_Chr(1,15,  year        + 48);    // Print year variable  (start from year 2010)
   Lcd_Chr(2, 6, (hours / 10)   + 48);
   Lcd_Chr(2, 7, (hours % 10)   + 48);
   Lcd_Chr(2, 9, (minutes / 10) + 48);
   Lcd_Chr(2,10, (minutes % 10) + 48);
   Lcd_Chr(2,12, (seconds / 10) + 48);
   Lcd_Chr(2,13, (seconds % 10) + 48);
}
//------------------ Performs project-wide init
void Init_Main() {
  TRISB = 0;
  PORTB = 0xFF;
  TRISB = 0xff;
  //ANSEL  = 0;                // Configure AN pins as digital I/O
  //ANSELH = 0;
  //C1ON_bit = 0;              // Disable comparators
  //C2ON_bit = 0;
  I2C1_Init(100000);         // initialize I2C communication
  Lcd_Init();                // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);       // Clear LCD display
  Lcd_Cmd(_LCD_CURSOR_OFF);  // Turn cursor off
  Lcd_Out(1,1,"Date:");      // Prepare and output static text on LCD
  Lcd_Chr(1,8,'.');
  Lcd_Chr(1,11,'.');
  Lcd_Chr(1,16,'.');
  Lcd_Out(2,1,"Time:");
  Lcd_Chr(2,8,':');
  Lcd_Chr(2,11,':');
  Lcd_Out(1,12,"201");       // start from year 2010
}
//----------------- Main procedure
void main() {
  Delay_ms(500);
  Init_Main();               // Perform initialization
  while (1) {                // Endless loop
    Read_Time();             // Read time from RTC(PCF8583)
    Transform_Time();        // Format date and time
    Display_Time();          // Prepare and display on LCD
  }
}

اعلانات

الصورة الرمزية هيثم العليمي
هيثم العليمي
:: مهندس جيد ::
تاريخ التسجيل: Mar 2012
الدولة: yemen
المشاركات: 236
نشاط [ هيثم العليمي ]
قوة السمعة:
قديم 05-09-2012, 12:56 AM المشاركة 10   
افتراضي


مهما كتبت من كلمات الشكر والثنا فلن اوفيك حقك يا بش مهندس

بس اقول جزاك الله الف خير على هذا المجهود ...

الشرح اكثر من رائع زاد الله من امثالك ..

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 19-06-2015, 06:32 PM المشاركة 11   
افتراضي


بارك الله فيك اخي
ممكن اربع منبهات يتم خزن قيمها في الابروم


abdewidad
:: مهندس متميز ::
تاريخ التسجيل: Dec 2013
الدولة: casablanca
المشاركات: 712
نشاط [ abdewidad ]
قوة السمعة:
قديم 23-06-2015, 03:47 PM المشاركة 12   
افتراضي


وما توفيقي إلا بالله العلي العظيم


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 12-04-2016, 12:03 AM المشاركة 13   
افتراضي


استاذنا العزيز ممكن تكملة الموضوع؟
كيف يكون ضبط الوقت و باقي البيانات من فظلك ؟


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 12-04-2016, 01:21 AM المشاركة 14   
افتراضي


استاذنا العزيز ممكن تكملة الموضوع؟
كيف يكون ضبط الوقت و باقي البيانات من فظلك ؟
أخى الكريم شكرا جزيلا لك

شكرا على مرورك الكريم

برجاء الاطلاع على الرابط التالى وأرجو أن يكون مفيد إن شاء الله.

http://microcontrollerslab.com/digit...ck-ds1307-pic/

مع تمنياتى بدوام التوفيق


الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 12-04-2016, 01:22 AM المشاركة 15   
افتراضي


الموضوع ممتاز ...وارجو التكمله


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 12-04-2016, 02:00 PM المشاركة 16   
افتراضي


شكرا جزيلا
بارك الله في جهودك



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:43 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)