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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 06-11-2011, 12:01 PM المشاركة 1   
افتراضي البرمجة الأساسية باستخدام مسجل الإزاحة 74HC595 والتحكم فى ليدات Twitter FaceBook Google+



البرمجة الأساسية باستخدام مسجل الإزاحة 74HC595 والتحكم فى ليدات

البرنامج الأساسى الأول :

الدائرة الكهربية


كود والبرنامج والتعليق عليه :

كود:
/**** البرنامج الأساسى الأول لبيان استخدام 595 والميكروسى *** التحكم فى 8 ليدات لعرض ضوء متحرك توصيل أطراف 595 بالميكروكونترولر كما يلى RB0=DS , RB1=SH-CP , RB2=ST-CP ********************************************/ /* نبدأ بتعريف الأطراف بأسماء متفق عليها ولتسهل فهم البرنامج ويمكن أستخدام (sbit) OR (#define) */ sbit DATA at PORTB.B0; // تعريف طرف البيانات sbit SH_CP at PORTB.B1; // تعريف طرف ساعة مسجل الإزاحة sbit ST_CP at PORTB.B2; // تعريف طرف ساعة سجل التخزين unsigned short count; // تعريف متغير العداد - نوعه واسمه void main () // الدالة الرئيسية { TRISB=0; // تهيئة أطراف المنفذ كمخارج PORTB=0; // تصفير سجل منفذ الخرج لضمان الحالة الابتدائية do { // إنشاء حلقة تتكرر بصفة مستمرة DATA=1; // نبدأ بوضع الواحد كبت بيانات على خط البيانات SH_CP=0; // ثم نحول خط ساعة مسجل الإزاحة ما بين المنخفض للمرتفع SH_CP=1; // لإدخال وإزاحة الواحد لتصح محتويات مسجل الإزاحة 10000000 ST_CP=0; // ثم نحول خط ساعة سجل التخزين ما بين المنخفض والمرتفع ST_CP=1; // لإمساك وإظهار محتويات مسجل الإزاحة على المخارج تبعا لترتيب البتات DELAY_MS(500); // تأخير زمنى لضمان الاستقرار /* نستخدم حلقة تتكرر 8 مرات لإدخال صفر على طرف البيانات وتكرار ما سبق وتكون النتيجة زحزحة الواحد بت فى كل تكرار ليعطى تأثير الضوء المتحرك */
for(count=0;count<8;count++) // حلقة تتكرر 8 مرات { // فى كل تكرا يتم مايلى DATA=0; // وضع صفر على خط البيانات SH_CP=0; // تحويل خط ساعة مسجل الإزاحة ما بين المنخفض SH_CP=1; // والمرتفع ST_CP=0; // تحويل خط ساعة مسجل التخزين ما بين المنخفض ST_CP=1; // والمرتفع DELAY_MS(500); // تأخير زمنى لضمان الاستقرار } // نهاية كلقة التكرار }while(1); // تكرار العملية بصفة مستمرة } // نهاية الدالة الرئيسية

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 06-11-2011, 12:04 PM المشاركة 2   
افتراضي


البرنامج الأساسى الثانى للتحكم فى 16 ليد

الدائرة الكهربية



كود البرنامج :
كود:
/* البرنامج الأساسى الثانى
استخدلم 2 مسجل إزاحة 595 للتحكم فى 16 ليد 
*/
// كما فى البرنامج الأول  
//RB0-----DS
//RB1-----SH-CP
//RB2-----ST-CP
sbit DATA at PORTB.B0;
sbit SH_CP at PORTB.B1;
sbit ST_CP at PORTB.B2;
 unsigned short count;
void main ()
{
TRISB=0;
do {
DATA=1;
SH_CP=0;
SH_CP=1;
ST_CP=0;
ST_CP=1;
DELAY_MS(1000);
for(count=0;count<16;count++)  // حلقة تتكرر 16 مرة 
{
DATA=0;
SH_CP=0;
SH_CP=1;
ST_CP=0;
ST_CP=1;
DELAY_MS(1000);
}
}while(1);
}

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

محمد بندق
:: زائر ::
المشاركات: n/a
نشاط [ محمد بندق ]
قوة السمعة:
قديم 21-01-2013, 07:00 PM المشاركة 3   
افتراضي توضيح


البرنامج الأساسى الثانى للتحكم فى 16 ليد

الدائرة الكهربية



كود البرنامج :
كود:
/* البرنامج الأساسى الثانى
استخدلم 2 مسجل إزاحة 595 للتحكم فى 16 ليد 
*/
// كما فى البرنامج الأول  
//RB0-----DS
//RB1-----SH-CP
//RB2-----ST-CP
sbit DATA at PORTB.B0;
sbit SH_CP at PORTB.B1;
sbit ST_CP at PORTB.B2;
 unsigned short count;
void main ()
{
TRISB=0;
do {
DATA=1;
SH_CP=0;
SH_CP=1;
ST_CP=0;
ST_CP=1;
DELAY_MS(1000);
for(count=0;count<16;count++)  // حلقة تتكرر 16 مرة 
{
DATA=0;
SH_CP=0;
SH_CP=1;
ST_CP=0;
ST_CP=1;
DELAY_MS(1000);
}
}while(1);
}
عند وضع البرنامج على الميكروسى تظهر رسالة خطا فى البرمجة برجاء وضع ملف للبرمجة حيث اننى مبتدا فى هذا المجال واريد ان استخدم مسجل الازاحة فى اللد ماتركس


محمد يسرى محمد
:: مهندس متميز ::
تاريخ التسجيل: Apr 2010
المشاركات: 525
نشاط [ محمد يسرى محمد ]
قوة السمعة:0
قديم 22-01-2013, 01:35 AM المشاركة 4   
افتراضي


ممكن دائرة للتحكم فى 24 ليد
مع وضع رسم pcb جاهز للطباعة للدائرة
وشكرا


goldfinger2
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2006
الدولة: egypt
المشاركات: 188
نشاط [ goldfinger2 ]
قوة السمعة:0
قديم 19-04-2013, 05:31 PM المشاركة 5   
افتراضي


السلام عليكم ورحمة الله
جزاك الله خيرا على المجهود المبذول
عندى استفسار ،كيف سنسجل الداتا المراد اظهارها فى الميكرو هل ستكون فى مصفوفة ام ماذا ،


الصورة الرمزية remon romany
remon romany
:: عضو نشط ::
تاريخ التسجيل: Feb 2011
المشاركات: 895
نشاط [ remon romany ]
قوة السمعة:0
قديم 19-04-2013, 09:05 PM المشاركة 6   
ha


هذة الطريقة للتحكم فى 8 ليدات فقط
ولكن اذا كنت اريد ان اتحكم فى ليد ماتريكس (يعنى صفوف واعمدة )
فكيف افعل ذلك


عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 176
نشاط [ عبدالله نعمان ]
قوة السمعة:0
قديم 26-07-2015, 07:24 PM المشاركة 7   
افتراضي


جزاكم الله خيرا


الصورة الرمزية fathi-mohmed
fathi-mohmed
:: مهندس متميز ::
تاريخ التسجيل: Aug 2010
الدولة: القاهرة
المشاركات: 518
نشاط [ fathi-mohmed ]
قوة السمعة:0
قديم 26-07-2015, 09:25 PM المشاركة 8   
افتراضي


الف شكر استاذي العزيز

إضافة رد

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

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

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


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

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