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

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 22-12-2010, 02:26 PM المشاركة 17   
افتراضي



[quote=emad hesen;482854]
السلام عليكم ورحمه الله وبركاته
جزاك الله خير يا استاذ فتح الله وننتظر بفارغ الصبر باقى الشرح ونفس الاسلوب الرائع[/QUOTEننتظر ونتابع بشغف شديد
وفققكم اللة الى ما يحب ويرضى

وعليكم السلام ورحمة الله وبركاته

امين

اخى الكريم

شكرا جزيلا لك

جارى الاعداد

الجزء القادم هو "الوظيفة function " فى البرمجة بلغة السى وهو فى رأى يعتبر من اهم الاجزاء التى تؤدى الى البرمجة بسهولة ويسر

ان شاء الله نكمل

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

اعلانات

الصورة الرمزية fathi-mohmed
fathi-mohmed
:: مهندس متميز ::
تاريخ التسجيل: Aug 2010
الدولة: القاهرة
المشاركات: 513
نشاط [ fathi-mohmed ]
قوة السمعة:
قديم 31-12-2011, 10:47 AM المشاركة 18   
افتراضي


الف شكر علي المجهود الرائع في الشرح
اكمل والله هو المعين

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

رسول العراق
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2009
المشاركات: 90
نشاط [ رسول العراق ]
قوة السمعة:
قديم 31-12-2011, 02:03 PM المشاركة 19   
افتراضي


السلام عليكم
مشكور اخي الكريم لما تقدمه من اعمال
بارك الله بك

بالنسبة للبيك 16f873a عملت هذا الكود وهو يعمل
في برنامج المحاكاة بشكل جيد ولكن في التطبيق
العملي لا يعمل اذا ممكن المساعدة مشكور

كود:
void main(){ADCON1=0X06; TRISA=0; TRISB=0;  TRISC=0B00011111;

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

PORTB.F7=1; delay_ms(2000);PORTB.F7=0;delay_ms(200);
PORTB.F6=1; delay_ms(2000);PORTB.F6=0;delay_ms(50);

loop:

if(PORTC.F4==1&&PORTC.F3==1&&PORTC.F2==0&&PORTC.F1==0&&PORTC.F0==1){


PORTB.F5=1; delay_ms(1200);PORTB.F5=0; delay_ms(75);

PORTB.F4=1; delay_ms(1200);PORTB.F4=0; delay_ms(75);

PORTB.F3=1; delay_ms(1200);PORTB.F3=0; delay_ms(75);

PORTB.F2=1; delay_ms(1200);PORTB.F2=0; delay_ms(75);

PORTB.F1=1; delay_ms(1200);PORTB.F1=0; delay_ms(75);

PORTB.F0=1; delay_ms(1200);PORTB.F0=0; delay_ms(75);

PORTC.F7=1; delay_ms(1200);PORTC.F7=0; delay_ms(75);

PORTC.F6=1; delay_ms(1200);PORTC.F6=0; delay_ms(75);

PORTC.F5=1; delay_ms(1200);PORTC.F5=0; delay_ms(75);}else{PORTB=0;PORTA=0;PORTC=0;};
 
 goto loop;
}


hocinech
:: مهندس ::
تاريخ التسجيل: Oct 2009
المشاركات: 43
نشاط [ hocinech ]
قوة السمعة:
قديم 03-01-2012, 10:34 PM المشاركة 20   
افتراضي


جزاك الله خير


Nasri
:: مهندس ::
تاريخ التسجيل: Apr 2012
المشاركات: 1
نشاط [ Nasri ]
قوة السمعة:
قديم 30-04-2012, 03:33 PM المشاركة 21   
افتراضي طلب مساعدة


لدي مشروع إلكتروني يتطلب برمجة للميكركونترلر 16F877 أريد أن أضيف إليه تعديلات على مستوى البرمجة لجعله يتماشى مع مايتطلبه
كود:
#include "source.h"
#include "LCD.C"
#include "PCF8583.C"
#include "2432.C"
#include <ctype.h>

long int chartoint(char code[3])
{long int param;
param=(code[1]-48 +(code[0]-48)*10);
return param;
}
char bytetochar(byte x)
{char param [3];
param[0]=x/100+48;
param[1]=x/10-((param[0]-48)*10);
param[2]=x-((param[0]-48)*100)-((param[1]-48)*10);
return x;
}
void main()
{int page,an,a,x; long int timeout;
char c;
char code[2];
date_time_t dt;

timeout=0;

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   lcd_init();
   init_ext_eeprom();
   PCF8583_init();
   an=read_eeprom(0);
   printf("Voulez vous regler le  temps/date du\n\r");

   printf("SYSTEME ? (O/N)\n\r");
   SET_TRIS_C(0x86);
   output_low(PIN_C0);



while(1)
  {
   while (!kbhit()&&(++timeout<3000)) {delay_ms(1);++timeout;lcd_gotoxy(1,1);lcd_putc("Init...");}
   if (timeout >3000){break;}
   c = getc();
   c = toupper(c);

   if(c == 'O')
     {
   L1:printf("\n\r");
      printf("donnez le mois Format:XX\n\r");
      while(!kbhit());gets(code);
      dt.month   = chartoint(code);
      if (dt.month >12){printf("format Incorrect ?\n\r");goto L1;}
      printf("\n\r");
   L2:printf("donnez le jour Format:XX\n\r");
      while(!kbhit());gets(code);
      dt.day     = chartoint(code); printf("\n\r");
      if (dt.day >31){printf("format Incorrect ?\n\r");goto L2;}
   L3:printf("donnez année Format:XX\n\r");
      while(!kbhit());gets(code);
      an    = chartoint(code);printf("\n\r");
      if (an <7){printf("Date invalide ?\n\r");goto L3;}
      if (an >99){printf("Date invalide ?\n\r");goto L3;}
      write_EEPROM(0,an);
   L4:printf("donnez heure Format:XX\n\r");
      while(!kbhit());gets(code);
      dt.hours   = chartoint(code);printf("\n\r");
      if (dt.hours >23){printf("format Incorrect ?\n\r");goto L4;}
   L5:printf("donnez minute Format:XX\n\r");
      while(!kbhit());gets(code);
      dt.minutes = chartoint(code);printf("\n\r");
      if (dt.minutes >59){printf("format Incorrect ?\n\r");goto L5;}
      dt.seconds = 0;
      dt.weekday = 0;

      PCF8583_set_datetime(&dt);
      printf("\n\r");
      printf("Nouvelle date/temps est ecrite dans le PCF8583.\n\r");
      break;
     }

   if(c == 'N')
      break;

  }

printf("\n\r");
printf("Voulez vous lire les données de\n\r");
printf("systéme ? (O/N)\n\r");
timeout=0;
while(1)
  {
   while (!kbhit()&&(++timeout<3000)) {delay_ms(1);++timeout;lcd_gotoxy(1,1);lcd_putc("Init...");}
   if (timeout >3000){break;}
   c = getc();
   c = toupper(c);

   if(c == 'O')
     {
      for (c=1;c<10;c=c+1)
      {              printf("GARDIEN N");
                     putc(bytetochar(x));
      for (page=1;page<31;page=page+1)
                     {

                     dt.day=read_ext_eeprom(page+c-48);putc(dt.day); printf("  ");
                     dt.month=read_ext_eeprom(page+c-48+256);putc(dt.month);printf("  ");
                     dt.hours=read_ext_eeprom(page+c-48+512);putc(dt.hours);printf("  ");
                     dt.minutes=read_ext_eeprom(page+c-48+1024);putc(dt.minutes);printf("  ");printf("\n\r");
                     }
      }
      break;
     }

   if(c == 'N')
      break;

  }

printf("\n\r");

lcd_gotoxy(1,1);
lcd_putc("PFE ISSAT MAHDIA\n");
lcd_putc("NASRI & HELA");
  delay_ms(3000);

printf("Démarrage de SYSTEME avec succé \n\r");
while(1)
  {
   delay_ms(1000);

   PCF8583_read_datetime(&dt);
   lcd_gotoxy(1,1);
   printf(LCD_putc," %u/%u/%02u, %u:%02u:%02u\n\r",
            dt.day, dt.month, an,
           dt.hours, dt.minutes, dt.seconds);
   lcd_gotoxy(1,2);lcd_putc("Inserez votre carte");
   if (input(PIN_C1) && (a==1))
                    { a=0;
                     lcd_gotoxy(1,2);lcd_putc("Lecture de la carte");
                     output_high(PIN_C0);delay_ms(500);

                     //while(!kbhit());c=getc(); // à activer pour le test réel de la carte et non en simulation
                     lcd_gotoxy(1,2);lcd_putc("Gardien Présent            ");
                     page  = chartoint(dt.day);
                     write_ext_eeprom(page+c-48,dt.day);
                     write_ext_eeprom(page+c-48+256,dt.month);
                     write_ext_eeprom(page+c-48+512,dt.hours);
                     write_ext_eeprom(page+c-48+1024,dt.minutes);
                     delay_ms(1000);
                     while(input(PIN_C1)){lcd_gotoxy(1,2);lcd_putc("Retirer la carte     ");}


                    }
    if (input(PIN_C1)==0){a=1;}
  }

}
اخواني أريد أن أضيف عليه تعديلات لجعله يتماشى مع المثال الهندسي التالي [IMG]C:\Users\Badreddine\Desktop\Schema.gif[/IMG]



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