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

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

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 05-01-2014, 07:24 AM المشاركة 1   
ha كيفيه أنشاء داله خاصه بنا + أقتراح أنشاء دوال خاصه Twitter FaceBook Google+



السلام عليكم

كيف اعمل داله جديده طبعا بلغه مايكروسي برو
يعني اريد انشأ داله وهذه داله أستخدمها في اي مشروع بس مشكله تواجهني هي اشلون انشأ هذه الداله
المشاكل التي تواجهني
1- بدون اضافه main يعني لما انشا اي داله انت لاتحتاج الى main وعند build يعطيني error لانه يخبرني اين داله main
2- اذا كان هناك بداله احتاج لها بعض التعريف مثلا على سبيل المثال 74hc595 لها ثلاث مداخل يجب ان اربطها الى مايكرو من اعمل لهذه ايسي داله بيحث أستخدمها في اي مشروع فاني محتاج التعامل مع هذه المداخل وهي (ds, st_cp, sh_cp) كيف اعرف هذه مداخل بالنسبه لهذه الداله
لما نكتب البرنامج بدون استدعاء اي دوال خارجيه كنا مثلا نكتب هذه التعريفات
كود:
#define ds              porta.f4
#define sh_cp           porta.f5
#define st_cp           porta.f6
#define ds_dir          trisa.f4
#define sh_cp_dir       trisa.f5
#define st_cp_dir       trisa.f6
وطبعا انا محتاج هذه التعريفات لكي تمشي امور معاي مشكله هي اني حدد بورتات الي اتعامل معها اذا كنت اريد جعل 74hc595 داله عامه هل لازم اقوم بتغير بورتات حسب نوع الربط ام كيف جعلها عامه لاي بورت

بأختصار اريد اعمل داله خاصه بنا مثلا للشاشه او سفن سكمنت او ايسي كذا بحيث اعرف كيف يعمل انشأ له داله كما في مكتبات مايكروسي وهذه دوال بالتأكيد تسهل علينا كتابه الكود وجعله مفهوم اكثر

ولكم جزيل الشكر والتقدير


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 05-01-2014 الساعة 09:57 AM
اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 05-01-2014, 10:19 AM المشاركة 2   
افتراضي


السلام عليكم
قمت بكتابه كود لايسي 74hc595 وهذا كود يمكنك من اجعل اي بت =1 او جعله=0
داله تحتاج الى ثلاث متغيرات الاول يمثل رقم الارجل بأيسي 74hc595 (( ترقيم يبدأ من 1)) ومتغير الثاني حاله البت هل =1 او =0 ومتغير الثالث تمثل مصفوفه لخزن البيانات ثم عرضها بعد ذلك
ولكن المشكله هي كيف جعلها داله بحيث اقوم انا بألحاقها واستخدامها مع اي برنامج
وادعو الى تطويرها بجعلها داله عامه ومن ثم نشأ داله اخرى لحساس معين او لسفن سكمنت او .........

كود:
char hc=1;
#define ds              porta.f0
#define sh_cp           porta.f1
#define st_cp           porta.f2
#define ds_dir          trisa.f0
#define sh_cp_dir       trisa.f1
#define st_cp_dir       trisa.f2
void *ic_74hc595(char bit1,char bit2,char *data_ic_74hc595)
{
 char size=0;
 ds_dir=0;
 sh_cp_dir=0;
 st_cp_dir=0;
 size=sizeof(data_ic_74hc595);
size=size *8;
 data_ic_74hc595[bit1-1]=bit2;
 for(hc=0;hc<size ;hc++)
                  {
                   ds=data_ic_74hc595[(size-1)-hc];
                   sh_cp=1;  sh_cp=0; // pulse shift
                  }

 st_cp=1; st_cp=0;// pulse clock
}

void main()
{
 char text[8];
 while(1)
       {
       
         ic_74hc595(4,1,text);
        ic_74hc595(1,1,text);
        ic_74hc595(8,1,text);
        delay_ms(1000);
        ic_74hc595(1,0,text);
        delay_ms(1000);
       
       }
}
http://img02.arabsh.com/uploads/imag...4c4964f606.png


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 05-01-2014 الساعة 10:26 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية احمدمعاطى
احمدمعاطى
:: مهندس جيد ::
تاريخ التسجيل: Apr 2009
الدولة: مدينة الاسكندريه
المشاركات: 271
نشاط [ احمدمعاطى ]
قوة السمعة:0
قديم 05-01-2014, 02:00 PM المشاركة 3   
افتراضي


ما رايك اخى حسن فى استخدام الامر
كود:
#include "اسم الملف.c"
وعند عمل اى برنامج ومحتاج لهذه الداله اضيف هذا الكود مع اضافة الملف الناتج
الى فولدر المشروع



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


ما رايك اخى حسن فى استخدام الامر
كود:
#include "اسم الملف.c"
وعند عمل اى برنامج ومحتاج لهذه الداله اضيف هذا الكود مع اضافة الملف الناتج
الى فولدر المشروع

السلام عليكم
هو أخي اساس مشكله هو كيف أنشأ هذا ملف وبعد ذلك الاضافه ملف الى مشروع الامر بسيط ولكن مشكله في انشائه
تحياتي


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 05-01-2014, 04:40 PM المشاركة 5   
افتراضي


السلام عليكم
قمت بأنشاء داله لــ 74hc595 تعطيها رقم بت في ايسي وقيمته ومصفوفه الازمه لخزن البتات فيها ونتيجه هذه الداله تجعلك اي بت اختاريته=1 او =0 اي حسب مطلوب
هذا هو كود

كود:
sbit ds              at RA0_bit;
sbit sh_cp          at RA1_bit;
sbit st_cp          at RA2_bit;
sbit ds_dir        at trisa0_bit;
sbit sh_cp_dir     at trisa1_bit;
sbit st_cp_dir     at trisa2_bit;
char text[8];
#include "74hc595.h"
void main()
{
  ic_74hc595(2,1,text);
  ic_74hc595(4,1,text);
  ic_74hc595(7,1,text);
  delay_ms(3000);
   ic_74hc595(2,0,text);
  ic_74hc595(8,1,text);
  ic_74hc595(7,1,text);
}
تلاحظون كود بلون الاحمر هي داله تم أنشائها وهذا كود داله خاصه اما لون اخضر هي تعاريف لمداخل الايسي

كود:
extern sfr ds ;
extern sfr sh_cp;
extern sfr st_cp ;
extern sfr ds_dir ;
extern sfr sh_cp_dir ;
extern sfr st_cp_dir  ;
static char hc=0 ;
//static char data_ic_74hc595[8];
static void ic_74hc595( static char bit1,static char bit2,static char *data_ic_74hc595)
{
 char size=0;

 size=sizeof(data_ic_74hc595);
 size=size *8;
 data_ic_74hc595[bit1-1]=bit2;
 for(hc=0;hc<size ;hc++)
                  {
                   ds=data_ic_74hc595[(size-1)-hc];
                   sh_cp=1;  sh_cp=0; // pulse shift
                  }

 st_cp=1; st_cp=0;// pulse clock
}
عموما هذا كود كاملا لمن يريد مساعده في تطوير الداله خاصه لــ 74hc595
http://www.mediafire.com/download/90...ic_74hc595.rar

عندي سؤال شنو معنى extern , static , sfr ومتى تستخدم


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 05-01-2014 الساعة 04:52 PM

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 05-01-2014, 05:08 PM المشاركة 6   
افتراضي


وهذه طريقه اخرى ولكن تكمن هنا المشكله انك لازم تعدل على ابعاد مصفوفه في ملف
74hc595.h و 74hc595.c
وهذا كود داله خاصه
كود:
char hc=1;
extern sfr ds ;
extern sfr sh_cp ;
extern sfr st_cp ;
extern sfr ds_dir ;
extern sfr sh_cp_dir ;
extern sfr st_cp_dir ;
char data_ic_74hc595[8];
void ic_74hc595(char bit1,char bit2)
{
 char size=0;
 ds_dir=0;
 sh_cp_dir=0;
 st_cp_dir=0;
 size=sizeof(data_ic_74hc595);
 size=size *8;
 data_ic_74hc595[bit1-1]=bit2;
 for(hc=0;hc<size ;hc++)
                  {
                   ds=data_ic_74hc595[(size-1)-hc];
                   sh_cp=1;  sh_cp=0; // pulse shift
                  }

 st_cp=1; st_cp=0;// pulse clock
}
تلاحظ انا خليت عدد ابعاد مصفوفه =8 لان عندي ايسي واحد واذا عندك 2 لازم تجعلهم 16 وهكذا يعني مضاعفات 8

ونتيجه النهائيه للكود

كود:
sbit ds              at RA0_bit;
sbit sh_cp          at RA1_bit;
sbit st_cp          at RA2_bit;
sbit ds_dir        at trisa0_bit;
sbit sh_cp_dir     at trisa1_bit;
sbit st_cp_dir     at trisa2_bit;
#include "74hc595.h"
void main()
{
  ic_74hc595(2,1);
  ic_74hc595(4,1);
  ic_74hc595(7,1);
  delay_ms(3000);
   ic_74hc595(2,0);
  ic_74hc595(8,1);
  ic_74hc595(7,1);
}

http://www.mediafire.com/download/4b..._74hc595-2.rar

إضافة رد

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

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

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


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

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