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

   

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 01-01-2015, 08:40 AM المشاركة 209   
x6 بوركت وطاب مسعاك



السلام عليكم
اوكي ممكن تعطيني الرسم الحقيقي لكي أعطيك الكود
لان ظهور الارقام 111111 بنفس الوقت يعني هناك خطأ بالكود
تحياتي
وعليكم السلام ورحمة الله وبركاته
الملفات كلها موجوده بالمشاركة رقم 204
بارك الله لك

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 01-01-2015, 07:30 PM المشاركة 210   
افتراضي


وعليكم السلام ورحمة الله وبركاته
الملفات كلها موجوده بالمشاركة رقم 204
بارك الله لك
السلام عليكم
نعم أطلعت عليها وان شالله مشكله بسيطه وهي محصوره في الاخراج البيانات الى سفن سكمنت
لذا أخي اريد رسمه ترانزستور لانك غيرتها الى PNP يكفي ان ترسملي لليد واحد يعني اريد اعرف الربط ومنها أستنتج متى يعمل ترنزستور وبتالي أضع كود مناسب له

تحياتي

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

hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 02-01-2015, 05:30 PM المشاركة 211   
x6 بوركت وطاب مسعاك


السلام عليكم
نعم أطلعت عليها وان شالله مشكله بسيطه وهي محصوره في الاخراج البيانات الى سفن سكمنت
لذا أخي اريد رسمه ترانزستور لانك غيرتها الى PNP يكفي ان ترسملي لليد واحد يعني اريد اعرف الربط ومنها أستنتج متى يعمل ترنزستور وبتالي أضع كود مناسب له

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


هذه صورة قيادة الشاشة بالترانزيستورات
بارك الله لك


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-01-2015, 05:54 PM المشاركة 212   
افتراضي


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


هذه صورة قيادة الشاشة بالترانزيستورات
بارك الله لك
السلام عليكم
لكي تعمل سفن سكمنت يحتاج PNP الى جهد 0
enable يحتاج الى 5 فولت
سأعطيك الان الكود بمشيئه الله
تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 02-01-2015 الساعة 06:08 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-01-2015, 06:06 PM المشاركة 213   
افتراضي


السلام عليكم
أظن لكي تعمل سفن سكمنت يحتاج PNP الى جهد 0
enable يحتاج الى 5 فولت
سأعطيك الان الكود بمشيئه الله
تحياتي
السلام عليكم
الكود
كود:
#define Check_bit(var,pos)  var&(1<<pos)
#define on    1
#define off   0

//***************************************************************//
sbit ST1 at RB0_bit; // for display
sbit DS1 at RB1_bit;
sbit SH1 at RB2_bit;


////////********************************************************************///
char num[]={1,2,3,4,5,6};// for data and clock,
const char segment[]={63,6,91,79,102,109,125,7,127,111}; //for CC
const char segbit[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
char  x ;
char colomn , enable=0  ,ggg=0 ,cont, dd=0 ;
void display_7seg();

//**********************************************************//
//Timer0
//Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 2 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG         = 0x82;
  TMR0                 = 6;
  INTCON         = 0xA0;
}

//************************ read from computer ******************************//
void Interrupt()
{
  if (TMR0IF_bit)
                {
                 TMR0IF_bit         = 0;
                 TMR0                 = 6;
                 //Enter your code here
                 cont++;

                }
}
//**********************************************************//
void main() 
{
 trisb=0;
 portb=0;
 CMCON=7;
 InitTimer0();
 Delay_ms(200);
  while(1)
     {
       if(cont>=1) { cont=0;display_7seg();}// ??? ??? ????? ???? ?????? ?? 2 ??? ?????
     }
}

//*****************************************************************//
void display_7seg()
{
  char y;
  GIE_bit=0;
for(x=0;x<8;x++){ds1=0;sh1=1;sh1=0;}// OFF all 7 seg
for(x=0;x<8;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;

 for(x=0;x<8;x++) //
                {
                 if(Check_bit(segbit[7-colomn],7-x))ds1=0;
                 else DS1=1;
                 SH1=0;SH1=1;
                }

 for(x=0;x<8;x++) //
               {
                 if(Check_bit(segment[num[colomn]],7-x))DS1=0;
                 else DS1=1;
                 SH1=0;SH1=1;
               }
  ST1=1; ST1=0;
  colomn++;
  if(colomn==6)colomn=0;

 GIE_bit=1;
}


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 02-01-2015 الساعة 06:48 PM السبب: تعديل الكود

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 02-01-2015, 06:46 PM المشاركة 214   
Smile


السلام عليكم
الكود
كود:
#define Check_bit(var,pos)  var&(1<<pos)
#define on    1
#define off   0

//***************************************************************//
sbit ST1 at RB0_bit; // for display
sbit DS1 at RB1_bit;
sbit SH1 at RB2_bit;


////////********************************************************************///
char num[]={1,2,3,4,5,6};// for data and clock,
const char segment[]={63,6,91,79,102,109,125,7,127,111}; //for CC
const char segbit[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
char  x ;
char colomn , enable=0  ,ggg=0 ,cont, dd=0 ;
void display_7seg();

//**********************************************************//
//Timer0
//Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 2 ms

//Place/Copy this part in declaration section
void InitTimer0(){
  OPTION_REG         = 0x82;
  TMR0                 = 6;
  INTCON         = 0xA0;
}

//************************ read from computer ******************************//
void Interrupt()
{
  if (TMR0IF_bit)
                {
                 TMR0IF_bit         = 0;
                 TMR0                 = 6;
                 //Enter your code here
                 cont++;

                }
}
//**********************************************************//
void main() 
{
 trisb=0;
 portb=0;
 CMCON=7;
 InitTimer0();
 Delay_ms(200);
  while(1)
     {
       if(cont>=1) { cont=0;display_7seg();}// ??? ??? ????? ???? ?????? ?? 2 ??? ?????
     }
}

//*****************************************************************//
void display_7seg()
{
  char y;
  GIE_bit=0;
for(x=0;x<8;x++){ds1=0;sh1=1;sh1=0;}// OFF all 7 seg
for(x=0;x<8;x++){ds1=1;sh1=1;sh1=0;}// OFF all 7 seg
 ST1=1;st1=0;

 for(x=0;x<8;x++) //
                {
                 if(Check_bit(segbit[7-colomn],7-x))ds1=0;
                 else DS1=1;
                 SH1=0;SH1=1;
                }

 for(x=0;x<8;x++) //
               {
                 if(Check_bit(segment[num[colomn]],7-x))DS1=0;
                 else DS1=1;
                 SH1=0;SH1=1;
               }
  ST1=1; ST1=0;
  colomn++;
  if(colomn==6)colomn=0;

 GIE_bit=1;
}
السلام عليكم
أخي حمدلله تم تعديل الكود لان لم أنتبه للخطأ الموجود في رسمه الدائره على بروتيس وسبب انك في رسم وضعت دائره نفي لمدخل البيانات للمتكامله 74hc595 الثانيه ومسؤوله عن enable وبالطبع هذا خطأ يعني مفروض خط البيانات تصل من مخرج متكامله الاولى الى مدخل متكامله الثانيه ولهذا قمت بتعديل على الكود

جرب ونحن معك ان شالله
تحياتي


hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 03-01-2015, 11:13 AM المشاركة 215   
افتراضي


السلام عليكم
أخي حمدلله تم تعديل الكود لان لم أنتبه للخطأ الموجود في رسمه الدائره على بروتيس وسبب انك في رسم وضعت دائره نفي لمدخل البيانات للمتكامله 74hc595 الثانيه ومسؤوله عن enable وبالطبع هذا خطأ يعني مفروض خط البيانات تصل من مخرج متكامله الاولى الى مدخل متكامله الثانيه ولهذا قمت بتعديل على الكود

جرب ونحن معك ان شالله
تحياتي
وعليكم السلام ورحمة الله وبركاته
جزاكم الله بكل خير ان شاء الله اجرب واتابع معك النتائج


hamadalla31
:: مهندس متميز ::
تاريخ التسجيل: Mar 2009
المشاركات: 585
نشاط [ hamadalla31 ]
قوة السمعة:
قديم 05-01-2015, 10:57 AM المشاركة 216   
x6 بوركت وطاب مسعاك


وعليكم السلام ورحمة الله وبركاته
جزاكم الله بكل خير ان شاء الله اجرب واتابع معك النتائج
السلام عليكم
ارجوا من الله ان يبارك فيك وفي جهدك وعملك
مازال الوضع كما هو : -
1 - لابد من اضافة تاخير قبل السطر الأخير حتي تضئ الشاشة
2 - هو رقم واحد تكتبة الشاشات كلها 1111111-2222222-333333-4444444 .... الخ كما بالفيديو الذي رفعته
3 - نريد ان تكتب الشاشة 123456 موزعة علي الستة شاشات
4 - ارجو كتابة التعليقات بجوار كل سطر حتي اتعلم مافائدة هذا السطر للبرنامج

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



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