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

   

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 27-04-2015, 12:44 AM المشاركة 41   
افتراضي



أهلا بك أخي
يعني مثلا السطر الاول في الكود الاصلي هو:
case 0: return 192 ;
192 بالعشري تعني 1000000 تنائي
وهو لإظهار 0 على العارضة من نوع ca .
نلاحظ هنا أن تشغيل الليدات التي تكون الرقم " 0 " يتم بإعطائها الحالة المنطقية "0 " اي توصيلها مع الارضي (داخل البيك)
إذا أردنا إظهار 0 بعارضة كاتود مشترك (CC) فإن التعليمة case 0: return 192 ;
تتحول إلى مقلوبها ( العدد 192 هو المعني طبعا) :
case 0: return 63 ;
لان 63 عشري = 0111111 تنائي ..
و في كومبيلر الميكروسي أداة مساعدة تسهل عليكم التحويل :


طبعا هذا حسب فهمي للموضوع والفكرة تحتاج لتجربة قبل الحكم عليها .

من جهة أخرى يمكن طبعا الاحتفاظ بكود العارضات كما هو وذلك بإضافة بوابات عاكسة بين خروج المنفذ "د" ودخول uln2003 لكن الكلفة سترتفع ودرجة تعقيد الدائرة ستزيد فهو حل غير عملي ..

وعلى فكرة هذه المتاهات البرمجية هي التي جعلتني أتردد من البداية في وضع ترانزيستورات للمنفذ "د"


التعديل الأخير تم بواسطة : Logic بتاريخ 27-04-2015 الساعة 12:58 AM
اعلانات

hamadalada
:: مهندس ::
تاريخ التسجيل: Feb 2010
المشاركات: 20
نشاط [ hamadalada ]
قوة السمعة:
قديم 27-04-2015, 01:19 AM المشاركة 42   
افتراضي


أهلا بك أخي
يعني مثلا السطر الاول في الكود الاصلي هو:
case 0: return 192 ;
192 بالعشري تعني 1000000 تنائي
وهو لإظهار 0 على العارضة من نوع ca .
نلاحظ هنا أن تشغيل الليدات التي تكون الرقم " 0 " يتم بإعطائها الحالة المنطقية "0 " اي توصيلها مع الارضي (داخل البيك)
إذا أردنا إظهار 0 بعارضة كاتود مشترك (CC) فإن التعليمة case 0: return 192 ;
تتحول إلى مقلوبها ( العدد 192 هو المعني طبعا) :
case 0: return 63 ;
لان 63 عشري = 0111111 تنائي ..
و في كومبيلر الميكروسي أداة مساعدة تسهل عليكم التحويل :


طبعا هذا حسب فهمي للموضوع والفكرة تحتاج لتجربة قبل الحكم عليها .

من جهة أخرى يمكن طبعا الاحتفاظ بكود العارضات كما هو وذلك بإضافة بوابات عاكسة بين خروج المنفذ "د" ودخول uln2003 لكن الكلفة سترتفع ودرجة تعقيد الدائرة ستزيد فهو حل غير عملي ..

وعلى فكرة هذه المتاهات البرمجية هي التي جعلتني أتردد من البداية في وضع ترانزيستورات للمنفذ "د"
شاكر اخى على الرد والاهتمام وجزاك الله خيرا
ممكن بقا لو تقدر تفيدنى انا إن شاء المولى ناوى اعمل ال bcp ممكن لو مش حضايقك تفيدنى فى الادوات المطلوبة ومكان الشراء وخطوات تنفيذها والتكليف
معلش انا عارف انى طلبى كبير وكتير لاكنى طمعان فى الاستفاده من خبرة حضرتك فى هذا المجال وطبعا اكون عاجز عن الشكر

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

Logic
:: عضو فضي ::
تاريخ التسجيل: Mar 2014
المشاركات: 682
نشاط [ Logic ]
قوة السمعة:
قديم 27-04-2015, 02:01 AM المشاركة 43   
افتراضي


أخي لا توجد اية مضايقات .
بالنسبة للمواد وطريقة صنع اللوح المطبوع توجد عدة مواضيع تشرح ذلك :
مثل هذا الموضوع :
http://www.qariya.info/vb/showthread.php?t=157731
وهذا:
http://www.qariya.info/vb/showthread.php?t=161345
ومواضيع أخرى ابحث عنها في هذا قسم منتدى الالكترونيات:
http://www.qariya.info/vb/forumdisplay.php?f=5
و تجدها طبعا في محلات بيع القطع الالكترونية في بلدك
أما أنا فمن المغرب .
أرجو لكم كامل التوفيق ..


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 27-04-2015, 05:26 AM المشاركة 44   
افتراضي


كود:

unsigned short mask(unsigned short num);


char Window;
char Num7SegmentU = '*';
char Num7SegmentT = '*';
char Num7SegmentH = '*';

int x = 0 ;
int yy = 0 ;

void interrupt()
{
  if(UART1_Data_Ready())
  {

        trisa.b5 = 0 ;
        porta.b5 = 1 ;

        

        yy++;
        
        if (yy==1) {Window = UART1_Read();}
        
        if (yy==2)
        {
        if (Window == 'a' ) {Num7SegmentU = UART1_Read();Num7SegmentT = '0' ;Num7SegmentH = '0' ;}
        }
        
        
        if (yy==3)
        {
        if (Window == 'a') {Num7SegmentT = UART1_Read();}
        }
        
        if (yy==4) 
        {
        if (Window == 'a') {Num7SegmentH = UART1_Read();}
        }
        
        if (yy > 4) yy=0 ;


   pir1.f5=0;
   
       
        trisa.b5 = 0 ;
        porta.b5 = 0 ;
   
   return;
   }
}



void main()
{
 cmcon=0x07;
 INTCON.f7=1;INTCON.F6=1;
 PIE1.f5=1;
 trisb = 0 ;
 portb = 0 ;
 trisd = 0 ;
 portd = 0 ;
 

 
UART1_Init (9600) ;
delay_ms(100) ;



for (;;)
     {       
              trisa.b1 = 0 ;
              porta.b1 = 1 ;
         
              if (Num7SegmentU == '*' ) {portb = 1 ; portd = 191;}
              if (Num7SegmentU == '0' ) {portb = 1 ; portd = mask(0);}
              if (Num7SegmentU == '1' ) {portb = 1 ; portd = mask(1);}
              if (Num7SegmentU == '2' ) {portb = 1 ; portd = mask(2);}
              if (Num7SegmentU == '3' ) {portb = 1 ; portd = mask(3);}
              if (Num7SegmentU == '4' ) {portb = 1 ; portd = mask(4);}
              if (Num7SegmentU == '5' ) {portb = 1 ; portd = mask(5);}
              if (Num7SegmentU == '6' ) {portb = 1 ; portd = mask(6);}
              if (Num7SegmentU == '7' ) {portb = 1 ; portd = mask(7);}
              if (Num7SegmentU == '8' ) {portb = 1 ; portd = mask(8);}
              if (Num7SegmentU == '9' ) {portb = 1 ; portd = mask(9);}

              delay_ms(2);
             
              if (Num7SegmentT == '*' ) {portb = 2 ; portd = 191;}
              if (Num7SegmentT == '0' ) {portb = 2 ; portd = mask(0);}
              if (Num7SegmentT == '1' ) {portb = 2 ; portd = mask(1);}
              if (Num7SegmentT == '2' ) {portb = 2 ; portd = mask(2);}
              if (Num7SegmentT == '3' ) {portb = 2 ; portd = mask(3);}
              if (Num7SegmentT == '4' ) {portb = 2 ; portd = mask(4);}
              if (Num7SegmentT == '5' ) {portb = 2 ; portd = mask(5);}
              if (Num7SegmentT == '6' ) {portb = 2 ; portd = mask(6);}
              if (Num7SegmentT == '7' ) {portb = 2 ; portd = mask(7);}
              if (Num7SegmentT == '8' ) {portb = 2 ; portd = mask(8);}
              if (Num7SegmentT == '9' ) {portb = 2 ; portd = mask(9);}

              delay_ms(2);
              if (Num7SegmentH == '*' ) {portb = 4 ; portd = 191;}
              if (Num7SegmentH == '0' ) {portb = 4 ; portd = mask(0);}
              if (Num7SegmentH == '1' ) {portb = 4 ; portd = mask(1);}
              if (Num7SegmentH == '2' ) {portb = 4 ; portd = mask(2);}
              if (Num7SegmentH == '3' ) {portb = 4 ; portd = mask(3);}
              if (Num7SegmentH == '4' ) {portb = 4 ; portd = mask(4);}
              if (Num7SegmentH == '5' ) {portb = 4 ; portd = mask(5);}
              if (Num7SegmentH == '6' ) {portb = 4 ; portd = mask(6);}
              if (Num7SegmentH == '7' ) {portb = 4 ; portd = mask(7);}
              if (Num7SegmentH == '8' ) {portb = 4 ; portd = mask(8);}
              if (Num7SegmentH == '9' ) {portb = 4 ; portd = mask(9);}

              delay_ms(2);

     }


}//end main


unsigned short mask(unsigned short num){
 switch(num){
 case 0: return  192 ;
 case 1: return  249 ;
 case 2: return  164 ;
 case 3: return  176 ;
 case 4: return  153 ;
 case 5: return  146 ;
 case 6: return  130 ;
 case 7: return  248 ;
 case 8: return  128 ;
 case 9: return  144 ;
 }
}

هذا هو الكود الذي أعمل عليه
السلام عليكم
أخي العزيز أكتب كود portd=255 لغرض أطفاء سفن سكمنت اي
كود:
for (;;)
     {
              trisa.b1 = 0 ;
              porta.b1 = 1 ;
               portd=255;//OFF segment
               
              if (Num7SegmentU == '*' ) {portb = 1 ; portd = 191;}
              if (Num7SegmentU == '0' ) {portb = 1 ; portd = mask(0);}
              if (Num7SegmentU == '1' ) {portb = 1 ; portd = mask(1);}
              if (Num7SegmentU == '2' ) {portb = 1 ; portd = mask(2);}
              if (Num7SegmentU == '3' ) {portb = 1 ; portd = mask(3);}
              if (Num7SegmentU == '4' ) {portb = 1 ; portd = mask(4);}
              if (Num7SegmentU == '5' ) {portb = 1 ; portd = mask(5);}
              if (Num7SegmentU == '6' ) {portb = 1 ; portd = mask(6);}
              if (Num7SegmentU == '7' ) {portb = 1 ; portd = mask(7);}
              if (Num7SegmentU == '8' ) {portb = 1 ; portd = mask(8);}
              if (Num7SegmentU == '9' ) {portb = 1 ; portd = mask(9);}

              delay_ms(2);
               portd=255;//OFF segment
              if (Num7SegmentT == '*' ) {portb = 2 ; portd = 191;}
              if (Num7SegmentT == '0' ) {portb = 2 ; portd = mask(0);}
              if (Num7SegmentT == '1' ) {portb = 2 ; portd = mask(1);}
              if (Num7SegmentT == '2' ) {portb = 2 ; portd = mask(2);}
              if (Num7SegmentT == '3' ) {portb = 2 ; portd = mask(3);}
              if (Num7SegmentT == '4' ) {portb = 2 ; portd = mask(4);}
              if (Num7SegmentT == '5' ) {portb = 2 ; portd = mask(5);}
              if (Num7SegmentT == '6' ) {portb = 2 ; portd = mask(6);}
              if (Num7SegmentT == '7' ) {portb = 2 ; portd = mask(7);}
              if (Num7SegmentT == '8' ) {portb = 2 ; portd = mask(8);}
              if (Num7SegmentT == '9' ) {portb = 2 ; portd = mask(9);}

              delay_ms(2);
               portd=255;//OFF segment
              if (Num7SegmentH == '*' ) {portb = 4 ; portd = 191;}
              if (Num7SegmentH == '0' ) {portb = 4 ; portd = mask(0);}
              if (Num7SegmentH == '1' ) {portb = 4 ; portd = mask(1);}
              if (Num7SegmentH == '2' ) {portb = 4 ; portd = mask(2);}
              if (Num7SegmentH == '3' ) {portb = 4 ; portd = mask(3);}
              if (Num7SegmentH == '4' ) {portb = 4 ; portd = mask(4);}
              if (Num7SegmentH == '5' ) {portb = 4 ; portd = mask(5);}
              if (Num7SegmentH == '6' ) {portb = 4 ; portd = mask(6);}
              if (Num7SegmentH == '7' ) {portb = 4 ; portd = mask(7);}
              if (Num7SegmentH == '8' ) {portb = 4 ; portd = mask(8);}
              if (Num7SegmentH == '9' ) {portb = 4 ; portd = mask(9);}

              delay_ms(2);

     }


moutazyahia
:: مهندس ::
تاريخ التسجيل: Apr 2015
المشاركات: 44
نشاط [ moutazyahia ]
قوة السمعة:
قديم 28-04-2015, 03:40 AM المشاركة 45   
افتراضي


مشكورين جداً أظن الموضوع استوفى حقه وأجبتم ووفيتم جزاكم الله خيراً



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