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

أدوات الموضوع

ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 11-05-2016, 05:01 AM المشاركة 1   
افتراضي سؤال في برمجة الPic بلغة الC Twitter FaceBook Google+



السلام عليكم

اخواني الكرام


لدي استفسار عن برمة الpic ب لغة السي

مشروعي كالتالي :

1- عدد اثنين input
2- عدد اثنين output

في حين وجود اشارة على المدخل الاول يكون هناك خرج عالمخرج الاول

وفي حين وجود اشارة على المدخل الثاني يكون هناك خرج عالمخرج الثاني



الى هنا كتبت البرنامج ويعمل بشكل جيد وتم تطبيقه عالمايكروكنترولر


اللي ابغى اعمله الان هو ان اعمل عملية latch مثل ال D latch ولكن بدون استخدام ic هل اقدر اعملها بلغة السي او لا

في انتظار الخبراء

وشكرا لكم

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 11-05-2016, 06:25 AM المشاركة 2   
sun


بسم الله الرحمن الرحيم

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

اخى العزيز وضح ما تريد بتفسير مصطلح latch عن طريق ارفاق truth tabel او صورة .
كما وضحت الجزئية الاولى من كلامك بالضبط .

و الله الموفق



الله مولانا ولا مولى لهم

انى عذت بربى و ربكم ان ترجمون

الله يرفع عنك سوريا - كلنا حلب و غزة



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

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 13-05-2016, 04:07 AM المشاركة 3   
افتراضي


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

الموضوع سهل جدااا ان شاء الله ولا يحتاج الا 3 دائق لتنفيذة ...
بس المهم هو توضيح بعض النقات ...
ما نوع الميكروكنترولر المستخدم وايضااا رقمه ..
ما نوع اﻹشارة الداخله للبك هل .. سالبة .. او .. موجبه ..
ويجب شرح حتى لو قليل عن اﻷله او المشروع الذى تريد تنفيذة ..
بعد هذة اﻹستفسارات يمكن ﻷى حد مساعدتك انا معك ان شاء الله


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-05-2016, 05:59 AM المشاركة 4   
افتراضي


نعم تستطيع و لكنك كما ذكر الاخوه لم تذكر التفاصيل ...

كود:
#define button1     porta.f0
#define button2     porta.f1
#define led1        portb.f0
#define led2        portb.f1
void main()
 {trisa=3;trisb=0;portb=0;
 cmcon=7;
 while(1)
         {
          if(button1==0){while(button1==0){}led1=~led1;}
          if(button2==0){while(button2==0){}led2=~led2;}
         }

}

حيدر علاج حسن

ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 13-05-2016, 01:25 PM المشاركة 5   
افتراضي


بسم الله الرحمن الرحيم

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

اخى العزيز وضح ما تريد بتفسير مصطلح latch عن طريق ارفاق truth tabel او صورة .
كما وضحت الجزئية الاولى من كلامك بالضبط .

و الله الموفق





الله مولانا ولا مولى لهم

انى عذت بربى و ربكم ان ترجمون

الله يرفع عنك سوريا - كلنا حلب و غزة



اعتذر على عدم التوضيح

اقصد ان في حين وجود نبضة عالدخل يكون الخرج واحد وفي حين وجود نبضة اخرى يكون الخرج صفر وهكذا نبضة واحد ونبضة صفر


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

الموضوع سهل جدااا ان شاء الله ولا يحتاج الا 3 دائق لتنفيذة ...
بس المهم هو توضيح بعض النقات ...
ما نوع الميكروكنترولر المستخدم وايضااا رقمه ..
ما نوع اﻹشارة الداخله للبك هل .. سالبة .. او .. موجبه ..
ويجب شرح حتى لو قليل عن اﻷله او المشروع الذى تريد تنفيذة ..
بعد هذة اﻹستفسارات يمكن ﻷى حد مساعدتك انا معك ان شاء الله

نوع الميكروكونترولر pic16f877a
الاشارة الداخلة موجبة
الهدف من المشروع عمل ريموت كونترول ir للتحكم بدائرة الكترونية ك مفتاح لتشغيلها واطفائها

الريموت هو عبارة عن مفتاح pushbotton في حين الضغط يكون 5 فولت

العمل النهائي راح يكتب بلغة الاسمبلي بس اول ابغى افهم الالية بالسي ثم اطبقها بالاسمبلي



نعم تستطيع و لكنك كما ذكر الاخوه لم تذكر التفاصيل ...

كود:
#define button1     porta.f0
#define button2     porta.f1
#define led1        portb.f0
#define led2        portb.f1
void main()
 {trisa=3;trisb=0;portb=0;
 cmcon=7;
 while(1)
         {
          if(button1==0){while(button1==0){}led1=~led1;}
          if(button2==0){while(button2==0){}led2=~led2;}
         }

}

شكرا لك وضحت الفكرة



راح اكتب العمل النهائية بلغة الاسمبلي واعرضه عليكم للتصحيح اذا كان يوجد اخطاء


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 13-05-2016, 02:25 PM المشاركة 6   
افتراضي


هذا هو الكود بالاسمبلي

كود:

_main:

;d_latch.c,5 ::                 void main()
;d_latch.c,6 ::                 {trisa=3;trisb=0;portb=0;
        MOVLW      3
        MOVWF      TRISA+0
        CLRF       TRISB+0
        CLRF       PORTB+0
;d_latch.c,7 ::                 cmcon=7;
        MOVLW      7
        MOVWF      CMCON+0
;d_latch.c,8 ::                 while(1)
L_main0:
;d_latch.c,10 ::                 if(button1==0){while(button1==0){}led1=~led1;}
        BTFSC      PORTA+0, 0
        GOTO       L_main2
L_main3:
        BTFSC      PORTA+0, 0
        GOTO       L_main4
        GOTO       L_main3
L_main4:
        MOVLW      1
        XORWF      PORTB+0, 1
L_main2:
;d_latch.c,11 ::                 if(button2==0){while(button2==0){}led2=~led2;}
        BTFSC      PORTA+0, 1
        GOTO       L_main5
L_main6:
        BTFSC      PORTA+0, 1
        GOTO       L_main7
        GOTO       L_main6
L_main7:
        MOVLW      2
        XORWF      PORTB+0, 1
L_main5:
;d_latch.c,12 ::                 }
        GOTO       L_main0
;d_latch.c,14 ::                 }
L_end_main:
        GOTO       $+0
; end of _main

حيدر علاج حسن

ahmad alharbi
:: مهندس ::
تاريخ التسجيل: May 2016
المشاركات: 17
نشاط [ ahmad alharbi ]
قوة السمعة:0
قديم 19-05-2016, 06:40 PM المشاركة 7   
افتراضي


شكل الكود النهائي

شكرا لمن ساعدني


كود:
btfss PORTA,0
goto loop
movlw 0x01
xorwf PORTB,1
call delay1sec

loop:
btfss PORTA,1
goto loop1
movlw 0x02
xorwf PORTB,1
call delay1sec

loop1:
goto  main


ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 453
نشاط [ ahmed idris ]
قوة السمعة:0
قديم 19-05-2016, 07:02 PM المشاركة 8   
افتراضي


شكل الكود النهائي

شكرا لمن ساعدني


كود:
btfss PORTA,0
goto loop
movlw 0x01
xorwf PORTB,1
call delay1sec

loop:
btfss PORTA,1
goto loop1
movlw 0x02
xorwf PORTB,1
call delay1sec

loop1:
goto  main
شكرا أخي على الكود لكن لو تضعه كاملا يكون أفضل يعني ملف الاسمبلي كاملا بما فيه تعليمات delay1sec
ولدي سؤال؟
لماذا كان طلبك بلغة السي ولم يكن مباشرة بلغة الاسمبلي؟

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025