Eng.KouRosH
کاربر انجمن-
تعداد ارسال ها
2569 -
تاریخ عضویت
-
آخرین بازدید
تمامی مطالب نوشته شده توسط Eng.KouRosH
-
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
زرنگ خانم این نوشته انگلیسی رو تو ترنسلیت بزنی هم میده -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
تقویت کننده است؟ -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
واسه ارسال دیتا و ارتباط خطوطه؟ -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
مربوط به مخابرات خط میشه -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
این جعبه واسه حفاظت کابل های نوری -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
من شیوه هامو لو نمیدم -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
Outdoor optic joint box -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
وضوح نداره -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
قدرتی بذار باشه؟ -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
خوشم میاد مثل من باهوش می باشی و سرنخو میگیری آورین -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
آورین اشتباه گفتی -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
نه .... -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
این چیه؟؟؟ -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
ایندفعه نوبت فازمتره؟واست بذارم ببینی؟ -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
ایندفعه یه چیزی میذارم تا بحال بشر کشف نکرده باشه -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
خب خب نوبتی هم باشه نوبت منه اصلا دوس دارم 1هفته هیچ عکسی نذارم حقمه دیگه -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
آثار پاک کردن نام سرو موتور تابلو بود -
آموزش گام به گام برنامه نویسی میکروکنترلرهای avr به زبان بیسکام
Eng.KouRosH پاسخی برای Eng.KouRosH ارسال کرد در موضوع : میکروکنترلرهای AVR
1- سلام خوبي 2- سلام من خوبم تو چطوري چكار مي كني 1- خوبم ولي يكم ناراحتم 2- چرا 1- بابا تمام اين مثال هايي رو كه گفته بودي توي نرم افزار BASCOM تست كردم همشون هم درست بود ولي چه فايده وقتي كه نمي تونم توي محيط BASCOM شبيه سازيشون كنم 2- خوب من كه بهت گفته بودم كه برو توي نرم افزار پروتوس تستش كن 1- اره گفته بودي ولي من كه ياد ندارم باهاش كار كنم 2- خوب بهت يك لينك داده بودم كه بري اونجا دربارش مطلب زياده 1- خوب درست ولي اگه توضيح بدي اونايي رو هم كه از توي لينك گرفتم باهاش اطلاعاتم كامل مي شه 2- خيلي خوب چاره چيه ما كه اين همه گفتيم اموزش پروتوس هم مي گيم ديگه چي ؟؟ 1- دمت گرم بابا خيلي حال دادي 2- فقط يك چيزي رو از همين الان بگم من اين نرم افزار پروتوس رو بهت مي گم و از اونجايي كه اين نرم افزار بعضي وقتا EROR هاي بدي ميده بايد مشكلتو خودت حل كني يا توي توي انجمن مشكلت رو بگي چون من فقط در حد كاركردن با اين نرم افزار سرم ميشه . 1- باشه هر چي كه تو بگي 2- خوب پس اين جلسه نحوه نصب و كاركردن با نرم افزار پروتوس ورژن 6 رو برات توضيح مي دم قبل از اينكه نحوه نصب رو برات توضيح بدم بزار يك مقدار درباره كاربرد نرم افزار برات بگم . اين نرم افزار پروتوس يك نوع شبيه ساز هستش كه علاوه بر شبيه سازي قادره يك مدار رو اناليز كنه و همچنين امكان كشيدن پشت فيبر مدار چاپي رو هم ميشه از امكاناتش شمرد . ما در اينجا فقط مي خوايم از امكان شبيه سازيش استفاده كنيم پروتوس يك شبيه ساز بسيار قدرت مند هستش كه شما مي توني هر مداري رو كه مي خاي توش شبيه سازي كني و نتيجه كارت رو ببيني . خود من هر وقت كه مي خام يك مداري رو درست كنم اول با پروتوس شبيه سازيش مي كنم بعد از اينكه نتيجه گرفتم مي روم و اونو روي برد پياده مي كنم . يكي از امكاناتي كه نرم افزار پروتوس در اختيار ما قرار داده شبيه سازي مدارات ميكروكنترل هستش و شما قبل از اين كه خاسته باشي مدارتو روي برد سوار كني مي توني توي پروتوس شبيه سازيش كني و بعد از اينكه نتيجه دلخواهت رو گرفتي اونو روي برد پياده كني . شما داخل اين پروتوس هر قطعه اي رو كه حتي تا حالا نديديش پيدا مي كني و باهاش كار كني . خوب حالا بريم سر نصب نرم افزار پروتوس ورژن6 : براي نصب نرم افزار PROTEUS ابتدا با اجرا كردن SETUP يا INSTALL ان انرا نصب مي كنيم بعد از اينكه نصب شد مي ريم داخل پوشه CRACK كه در داخل CD نرم افزارش هست . سه تا CRACK داخلش هست كه هر سه تاشون شبيه ادمك هستند و هر سه تا رو بايد كپي كني و در داخل پوشه BIN بريزي يعني PASTE كني حالا اين فايل BIN رو حتما از خود مي پرسي كه كجاست پوشه BIN همون جايي هستش كه نرم افزار رو ريختي بعد از اينكه اين كارا رو كردي نوبت مي رسه به اجرا كردن خود CRACK هايي كه ريختي كه بايد يكي يكي اونا رو اجرا كني بعد از اينكه هر كدوم رو اجرا كردي يك كادر كوچيك باز مي شه كه سه گزينه داره اولي NEXT دومي RESTORE و سومي PATCH مي باشد كه بعد از باز شدن پنجره بايد روي گزينه RESTORE يا PATCH كه دقيقا يادم نيست كدومشون هست كليك كني كه يك پنجره باز مي شه داخل اين پنجره جديد يك فايل هستش كه بايد اونو انتخاب كني و هي NEXT رو بزني تا وقتي كه پغام بده CRACK SUCCESSFUL بعد از اين كه هرسه تا رو اجرا كردي نرم افزار اماده اجرا هستش . 1- خوب تا اينجاش كه راحت بود حالا برو سر توضيح خود نرم افزار 2- باشه . خوب قصد من از اموزش اين نرم افزار PROTUES فقط شبيه سازي خود ميكروكنترلرAVR هستش .براي اين كه بتوني اين كار رو بكني پس از اينكه پروتوس رو باز كردي بايد روي يك شكل كه در بالاي نرم افزار است كليك كني كه اين شكل شبيه يك OPAMP است و از سمت چپ اولين شكل هستش كه اگر روي اين شكل موس رو نگه داري نوشته COMPONENT . پس از اين كه روي اين شكل كليك كردي يكم پايين تر از اين شكل دو تا گزينه پيدا ميشه كه اوليش هست P و دوميش هست L كه تو بايد روي P كليك كني تا كتابخانه قطعت ضاهر بشه كه بالاي پنجره اين كتابخانه نوشته PICK DEVICES . خوب تو بايد از داخل اين پنجره قطعاتي رو كه مي خاي انتخاب كني مثلا اگر يك ميكرو كنترلر AT90S8535 مي خاي بايد ابتدا روي گزينه MICRO كليك كني تا ليست كل ميكروكنترلر ها اعم از 8051-AVR-PIC رو برات نمايش بده كه ما براي انتخاب ميكروكنترلر AT90S8535 بايد روي ان دوبار كليك كنيم تا در كادر كناري سمت چپ نرم افزار ذخيره شود . اگر ميكروسوييچ مي خاستي در كادر بالايي همين پنجره گزينه ACTIVE رو انتخاب كني كه توش قصعاتي هستش كه كاربرد زيادي دارند مثل باطري – موتورDC-LED- و همچنين ميكروسوييچ . خوب براي اين كه ميكروسوييچ خاستي بياري بايد روي BUTTON دو بار كليك كني تا اون هم در كادر سمت چپ نرم افزار ذخيره بشه منظورم از كادر سمت چپ نرم افزار كادي هستش كه بالاش نوشته DEVICES و دقيقا زير همون LوP كه بهت گفتم قرار داره. در ضمن براي بزرگ نمايي صفحه نرم افزار بايد از F6 و F7 استفاده كني . يك نكته ديگه اون هم اينكه براي اين كه از VCC و GND نرم افزار استفاده كني بايد بري روي يك شكل ديگه كه علامت دوتا پيكان هستش كه مخالف جهت يكديگردن و اين شكل 7 تا شكل بعد از اون شكلي رو كه گفتم شكل OPAMP هستش به سمت راست قرار داره كه اگه روي اين شكل با موس وايستي نوشته INTER-SHEET TERMINAL كه بعد از كليك روي اين گزينه يك كادر در سمت چپ نرم افزار باز ميشه كه هم GND داره و هم VCC براي اينكه بتوني اين دوتارو روي صفحه بياري كافيه روش يك بار كليك چپ كني بعد بياي روي صفحه نرم افزار دو باره كليك چپ كني تا روي صفحه نرم افزار ضاهر يشه. براي ديگر قطعات هم بايد همين كار رو بكني يعني قطعاتي رو كه ذخيره كردي رو يك بار روش كليك چپ كني تا انتخاب بشه بعد بياي روي صفحه نرم افزار دوباره كليك چپ كني تا ضاهر بشه . براي پاك كردن قطعه از روي صفحه برنامه بايد روي اون دوبار كليك راست كني . براي تنضيمات يك قطعه مثلا عوض كردن مقدار يك مقاومت يا يك باطري بايد ابتدا يك بار روي اون كليك راست كني تا قطعه قرمز بشه بعد دوباره روش كليك چپ كني تا يك پنجره باز بشه و بتوني مقدار يا هر چيز ديگه شو عوض كني ولي مواظب باش كه يك وقت دوبار روي اون كليك راست نكي چون قطعه پاك بشه و اگر يك مومقع اين اشتباه رو كردي مي توني ctrl + z رو از روي صفحه كليد بزني تا قطعه برگرده . براي اين كه جاي يك قطعه رو روي صفحه عوض كني بايد ابتدا روي قطعه يك بار كليك راست كني تا انتخاب بشه بعد با كليك چپ هر طرف كه خاستي ببريش . بزار يك كار عملي انجام بديم تا طرز راه اندازي يا شبيه سازي ميكروكنترلر رو توي محيط برنامه ياد بگيري فرض كن كه مي خايم يك مدار ساده مثلا يك چشمك زن رو با AVR درست كني كه از اين ساده تر ديگه وجود نداره اين چشمك زن رو مي خايم با هشت LED درست كني كه همه هم زمان با هم روشن خاموش مي شن. براي اين كار اول مي يايم توي محيط پروتوس تا قطعات رو به هم وصل كنيم . خوب طبق همون روشي كه گفته بودم قطعات رو مي ياري ميكروكنترلر رو از نوع AT90S8535 انتخاب مي كنيم و همچنين اول ميكرو كنترلر رو مياريم در ضمن اند اين هشتا LED رو به ترتيب به پايه هاي A.0 تا A.7 وصل مي كنيم و سر ديگر اين LED ها رو به GND وصل كن GND رو هم همون طور كه بهت ياد دادم بيار بعد برو روي توي منوي FILE و روي گزينه SAVE DESING AS كليك كن و مسيري رو كه براي SAVE كردن مدار ازت مي خاد رو بده همون جايي كه نرم افزار رو نصب كردي يعني توي پوشه SAMPLE البته بهتره توي اين پوشه قبلش يك پوشه جديد ايجاد كني و مدارتو توي اين پوشه جيد SAVE كني . 1- من يك چيز رو نفهميدم برنامه اي نمي خاي براش بنويسي و برنامه رو چطوري مي خاي توش بريزي 2- اگه يكم صبر كني به اونجاشم مي رسيم . خوب تا اينجا كه قسمت سخت افزاري مدار رو انجام داديم حالا بايد براي اين مدار يك برنامه هم بنويسيم كه اونم خيلي راحته خوب BASCOM رو باز كن و يك صفحه جديد ايجاد كن و برنامه زير رو بنويس : CONFIG PORTA = OUTPUT DO TOGGLE PORTA WAITMS 100 LOOP براي انتخاب نوع ميكروكنترلر همونطور كه بهت ياد دادم برو از داخل خود BASCOM انتخابش كن و حتما AT90S8535 رو انتخاب كن و براي انتخاب فركانس كاري هم بازم همونطوري كه بهت ياد دادم از داخل خود نرم افزار انتخابش كن و بزارش روي 8000000 هرتز بعد كه اين تنظيمات رو انجام دادي و OK كردي بيا اول دكمه F7 رو بزن تا برنامه چك بشه تا خطا نداشته باشه وقتي كه اين دكمه F7 رو ميزني قبل از اينكه برنامه رو چك كنه ازت يك مسير ميخاد كه برنامه رو كجا ذخيره كنه كه شما بايد دقيقا ادرس رو همون جايي بدي كه مدارتو اونجا SAVE كردي خوب كار ما با BASCOM تمام شد و اگه حال كردي مي توني ببنديش و بري سر نرم افزار پروتوس . اول پروتوس رو باز كن بعد برو توي منوي FILE و گزينه LOAD DESING رو انتخاب كن تا يك پنجره باز بشه بعد از طريق اين پنجره برو اون جايي كه مدارتو SAVE كردي و مدارتو انتخاب كن تا روي صفحه بياد . خوب گفتي كه چطوري برنامه اي رو كه نوشتيم مي ريزيم توي ميكروكنترلر خوب الان بهت مي گم براي اين كار بايد روي ميكروكنترلر يك بار كليك راست كني تا انتخاب بشه و به رنگ قرمز در بياد بعد يك بار كليك چپ مي كني تا يك پنجره باز بشه داخل اين پنجره يك جايي نوشته PROGRAM FILE كه جلوش يك كادر هستش و جلوي اين كادر يك شكل زرد رنگ هستش كه بايد روي اين شكل كليك كني تا دوباره يك كادر ديگه باز بشه . به وسيله اين كادري كه الان باز شد بايد بري برنامه اي كه نوشتي رو از اونجايي كه SAVE قبلا كردي انتخاب كني منظور فايلي هستش كه با پسوند HEX هستش بعد كه انتخاب كردي و OK رو زدي برنامه خودكار توي ميكرو قرار مي گيره بعد بايد براي انتخاب فركانس كاري ميكرو بايد در كادري كه نوشته CLOCK FREQUENCY مقدار فركانس ميكرو رو بنويسي البته به مگا هرتز 8MHZ . خوب كار ديگه تموم شد OK رو مي زني تا پنجره بسته بشه بعد براي اجراي اين مدار بايد بري پايين صفحه و روي علامتي كه شبيه PLAY ضبط هستش كليك كني كه شبيه مثلث هستش و مي بيني كه هر هشتا LED دارن باهم ديگه هم زمان چشمك مي زنن. در ضمن اگر برنامه EROR داد اين ديگه تقصير من نيست چون من به قلق نرم افزاره مسلط نيستم موفق باشي. پايان قسمت پنجم- 60 پاسخ
-
- 16
-
-
آموزش گام به گام برنامه نویسی میکروکنترلرهای avr به زبان بیسکام
Eng.KouRosH پاسخی برای Eng.KouRosH ارسال کرد در موضوع : میکروکنترلرهای AVR
1- سلام خوبي 2- سلام قربانت تو چطوري چكار مي كني با اين ميكروكنترلر 1- منم خوبم . با اين ميكروكنترلر داريم حال مي كنيم والا قبلا براي طراحي يك مدار ساده ديجيتال مجبور بودم چند روز روش كار كنم ولي حالا ديگه نه . بعدشم يك چيزو يادت رفته بود بگي 2- چي؟؟ 1- از TOGGLE مثال نزدي 2- باشه توي اين درسي رو كه امروز بهت ميدم از اين دستور هم استفاده مي كنم كه ياد بگيري . خوب شروع كنيم 1- اره 2- خوب قرار بود از كجا شروع كنيم 1- قرار بود ورودي رو بهم بگي . گفته بود قبل از اينكه ورودي رو درس بدي بايد چند تا دستور شرط و ... رو برام بگي 2- اره اين جلسه قبل از اينكه ورودي يا همون PIN رو بهت بگم بايد . دستور حلقه – دستور پرش رو اول بگم بعد بريم سر ورودي . چون كه اين طوري بهتره 1- حرفي نيست بريم 2- خوب اول بريم سراغ حلقه . ببين به يك چيز توي برنامه هاي قبلي توجه كرده بودي 1- نه چي ؟؟ 2- ما ميومديم يك برنامه رو مي نوشتيم اين برنامه هم يك كاري رو برامون انجام ميداد و در نهايت برناه به END مي رسيد و برنامه كلا تمام مي شد . و براي شروع مجدد مجبور بوديم برنامه رو دوباره اجرا كنيم . خوب حالا فرض كن ما يك برنامه اي رو ميخايم كه مثلا PORTB.0 رو هر 40 ميلي ثانيه يك بار روشن و خاموش كنه و اين كار ادامه داشته باشه يعني اينكه 40 ميلي ثانيه روشن باشه و 40 ميلي ثانيه خاموش باشه . براي اين كار بايد از دستور استفاده كنيم كه برنامه هيچ وقت به پايان نرسه كه اين دستور اسمش هست حلقه 1- خوب حالا اين حلقه چكار ميكنه 2- اين حلقه باعث ميشه برنامه توي اين قسمت دور بزنه و هيچ وقت به END نرسه يعني برنامه تمام نشه مگر اينكه ما يك شرط بزاريم كه از حلقه بيرون بزاريم 1- چه شرطي 2- اونو تو قسمت دستور شرط برات مي گم 2- حلقله DO –LOOP براي گذاشتن حلقه DO رو اول مي نويسيم و در خط هاي بعدي برنامه اي كه بايد در حلقه باشد رو مي نويسيم و در نهايت LOOP رو مي نويسيم 1- من كه چيزي نفهميدم . يك مثال بزن همون مثالي رو كه PORTB.0 بايد SET و RESET بشه رو برات مي نويسم . از اين به بعد هم ديگه $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 رو نمي نويسم خودت اونا رو نوشته فرض كن خوب حالا برنامه اي كه گفتم: CONFIG PORTA = OUTPUT DO TOGGLE PORTA.0 WAITMS 40 LOOP END خوب حالا تحليل برنامه : اين برنامه هيچ گاه به END نمي رسد تا برنامه تمام شود خط اول رو كه PORTA رو به عنوان خروجي پيكره بندي كرديم خط دوم DO را گذاشتيم خط سوم با نوشتن TOGGLE PORTA.0 اين را رسانديم كه PORTA.0 در هر حالتي از حالت ها صفر يا يك كه بوده بايد وضعيتش معكوس شود يعني اگه صفر بوده حالا بايد يك شود . اگر يك بوده حالا بايد صفر شود خط چهارم هم اخر حلقه را گذاشتيم خط پنجم هم نوشتيم END البته برنامه هيچ گاه به خاطر اين كه ما يك حلقه گذاشتيم به END نمي رسد توجه كن كه ما برنامه اي رو كه مي خاستيم رو داخل اين حلقه گذاشتيم و برنامه داخل اين حلقه دور ميزند . بار اول برنامه TOGGLE PORTA.0 رو مي خونه و پايه A.0 رو SET يا همون يك مي كنه بعد 40 ميلي ثانيه صبر مي كنه و برنامه از خط بعد شروع مي شه خط بعد LOOP هستش كه ميكرو با خوندن LOOP دوباره بر ميگرده برنامه رو از خط پاييني DO شروع به خوندن مي كنه يعني دوباره همون TOGGLE PORTA.0 رو مي خونه اين بار چون پايه A.0 در حالت SET يا همون يك بوده اين بار ياد بشه عكس همين حالت بشه يعني RESET يا صفر ميشه بعد 40 ميلي ثانيه صبر ميكنه و ميكرو برنامه رو از خط بعدي ميخونه بعني دستور LOOP رو مي خونه . با خوانده شدن دستور LOOP ميكرو برنامه رو از خط زيري DO شروع به خوندن مي كنه يعني دوباره TOGGLE PORTA.0 رو مي خونه اين بار چون در حالت قبلي پايه A.0 در حالت صفر بوده اين بار يك مي شه برنامه به همين منوال ادامه داره و ادامه پيدا مي كنه و هيچ وقت به پايان نمي رسه 1- گرفتم چي مي گي ولي اگه ممكنه يك مثال ديگه هم بزن 2- باشه مثال دوم: CONFIG PORTB = OUTPUT DO SET PORTB.5 WAITMS 60 RESET PORTB.5 WAITMS 60 LOOP END خوب حالا بريم سر تحليل برنامه: برنامه از خط اول شروع ميشه و ميكرو خط اول رو مي خونه خط دوم كه DO هستش كه ابتداي حلقه ما هستش خط سوم SET PORTB.5 يعني پايه B.5 يك بشه خط چهارم يك تاخير در برنامه با مدت زمان 60 ميلي ثانيه گذاشتم خط پنجم RESET PORTB.5 يعني پايه B.5 صفر بشه خط ششم با گذاشتن دستور LOOP انتهاي حلقه رو مشخص كرديم خط هفتم هم نوشتيم END كه برنامه به خاط داشتن حلقه هيچ گاه به END نمي رسد برنامه به اين صورت است كه از خط اول شروع به خونده شدن توسط ميكرو ميشه و پيكره بندي رو مي خونه . بعد ميوفته توي حلقه و اولين عبارتي رو كه مي خونه SET PORTB.5 هستش كه در اين زمان ميكرو پايه B.5 رو يك مي كنه بعد توسط دستور WAITMS 60 حدود 60 ميلي ثانيه تاخير ايچاد مي كنه بعد از سپري شدن اين مدت زمان ميكرو برنامه رو از خط بعدي شروع به خوندن مي كنه يعني RESET PORTB.5 كه ميكرو توسط اين دستور پايه B.5 رو صفر مي كنه بعد توسط دستور WAITMS 60 ميكرو 60 ميلي ثانيه در اجراي برنامه دوباره تاخير ايجاد مي كنه بعد از سپري شدن اين مدت زمان ميكرو برنامه رو از خط بعدي يعني LOOP شروع به خوندن مي كنه كه با خوانده شدن LOOP برنامه مي پره از خط بعدي DO يعني SET PORTA.0 شروع ميشه و دوباره پايه B.5 يك ميشه و دوباره 60 ميلي ثانيه تاخير ايجاد ميشه دو باره پايه B.5 صفر ميشه و 60 ميلي ثانيه تاخير ايجاد ميشه بعد دوباره به LOOP مي رسه و دوباره ميكرو ميپره و برنامه رو از خط بعدي DO شروع به خوندن ميكنه و الي بي نهايت اين برنامه تكرار مي شه 1- عالي بود كامل گرفتم 2- خدارو شكر. جهنم ضرر يك مثال ديگه هم ميزنم كه LCD هم توش باشه DO CLS LCD "AHMAD" WAITMS 50 CLS LCD "MICRO" WAITMS 60 LOOP END خوب حالا نوبت مي رسه به تحليل برنامه : برنامه از DO شروع ميشه DO يعني ابتداي حلقه . در خط بعد با دستور CLS ال سي دي پاك مي شه و اماده نوشتن . در خط بعدي به ميكرو دستور مي ديم كه عبارت AHMAD رو روي LCD نمايش بده . در خط بعد فرمان ايجاد تاخير به مدت زمان 50 ميلي ثانيه را مي دهيم پس از سپري شدن اين مدت زمان ميكرو برنامه را از خط بعد مي خواند . خط بعدي با دستور CLS صفحه LCD را پاك كرديم تا براي نوشتن دوباره اماده شود. در خط بعد فرمان داديم كه عبارت MICRO روي صفحه LCD نمايش داده شود. در خط بعد دستور داديم كه 60 ميلي ثانيه تاخير ايجاد شود كه پس از سپري شدن اين تاخير برنامه از خط بعد اجرا مي شود. به خط بعدي يعني LOOP كه مي رسيم ميكرو تا اينكه اين دستور LOOP رو مي بينه بي درنگ مي پره ميره برنامه رو از خط بعدي DO شروع مي كنه به اجرا كردن . بعني از خط CLS و همينطور ادامه مي ده 3- رو حساب رفاقت مي خام يك مثال ديگه هم بزنم كه حالشو ببري DIM G AS BYTE G = 0 DO INCR G CLS LCD G WAITMS 50 LOOP END خط اول رو كه خودت مي دوني يعني اينكه ما يك متغيير داريم كه اسمش هست G و از نوع بايت خط دوم به متغيير G مقدار داديم خط سوم ابتداي حلقه را مشخص كرديم خط چهارم يك واحد به متغيير G اضافه كرديم خط پنجم با دستور CLS ال سي دي را براي نوشتن پاك كرديم خط ششم دستور داديم كه مقدار متغيير G روي LCD نمايش داده شود خط هفتم يك تاخير 50 ميلي ثانيه اي در برنامه ايجاد كرديم خط هشتم با دستور LOOP انتهاي حلقه را مشخص كرديم خوب حالا تحليل اصلي رو گوش كن : ميكرو مياد برنامه رو از خط اول شروع مي كنه به خوندن و مي فهممه كه يك متغيير از نوع بايت ايجاد شده . بعد خط دوم رو مي خونه كه نوشته مقدار اين متغيير هست صفر . خط سوم ابتداي حلقه مشخص شده است . خط چهارم با دستور INCR G يك واحد به متغيير G اضافه كرديم يعني اگه بوده صفر حالا كه يك واحد بهش اضاف شده ميشه 1 . خط بعدي با دستور CLS ال سي دي را پاك كرديم تا براي نوشتن حاضر شود . خط بعدي دستور داديم كه مقدار متغيير G كه الان هست 1 روي LCD نمايش داده شود . خط بعدي با دستور WAITMS 50 دستور تاخير به مدت 50 ميلي ثانيه را صادر كرديم . خط بعدي هست LOOP كه ميكرو وقتي كه به اين دستور مي رسه مي پره ميره و برنامه رو از خط زيري DO شروع مي كنه به خوندن توجه كن كه از خط بعدي DO شروع مي كنه به خوندن نه اينكه از بالا . داريم به جاي جالبش مي رسيم . خوب حالا بايد برنامه از خط بعدي DO خونده بشه خط بعد از DO نوشته چي نوشته INCR G خوب يعني اينكه يك واحد به متغيير G اضافه بشه خوب حالا اخرين مقدار متغيير G بوده 1 ( به دليل اينكه دفعه قبل با دستور INCR G يك واحد به ان اضاف كرده بوديم ) و حالا كه دوباره دستور داديم كه يك واحد ديگر به متغيير G اضافه بشه اينبار ميشه 2 . خط بعدي با دستور CLS ال سي دي را براي نوشتم دوباره پاك مي كنيم . در خط بعدي با دستور LCD G مقدار متغيير G را روي ال سي دي نمايش مي دهيم يعني مقدار جديد كه همان 2 است. خط بعدي دوباره يك تاخير ايجاد مي شود و پس از سپري شدن اين مدت زمان برنامه از خط بعدي اجرا مي شود . خط بعدي هست LOOP باز هم مثل دفعه قبل برنامه از خط زيري DO شروع مي شه وروز از نو روزي از نوع همينطور به متغيير G يكسره اضافه مي شه تا جايي كه متغيير G برسه به 255 وقتي كه به اين مقدار رسيد متغيير G پر مي شود ( چون از نوع بايت است و با 255 پر مي شود و با 256 سرريز مي شود) . وقتي كه اين 255 برسه به 256 متغيير سر ريز ميشه و دوباره از صفر شروع به شمردن مي كنه . ديگه از اين ساده تر نمي شد توضيح داد. 1- اقا يك سوال 2- بپرس 1- توي مثالات به يك نكته توجه كردي 2- نه چي 1- مثال توي قسمتي كه مي خاستي توي يك حلقه مثال LCD رو بزني نوشتي LCD "ALI" ولي وقتي كه خاستي مقدار يك متغيير رو نشون بدي اين نوشتي LCD G كه مقدار متغيير G رو نشون بده حالا سوال اينجاست چرا ALI رو داخل " " گذاشتي ولي متغيير G رو داخل " " نزاشتي 2- سوال خوبي بود . ببين هر وقت كه خاستي يك متغيير رو نشون بدي لازم نيست كه اونو داخل " " قرار بدي يعني نبايد داخل " " قرار بدي ولي هر وقت كه خاستي يك عبارت رو روي ال سي دي نمايش بدي بايد اونو داخل " " قرار بدي 1- فهميدم . اين حلقه تموم شد 2- اره 1- پس اگه خاستيم از داخل اين حلقه بيرون بيايم بايد چكار كنيم 2- اينو برات مي گم وقتي كه دستورات شرط رو گفتم خوب حالا رسيديم به دستورات شرط 1- چي هست اين دستور شرط 2- گاهي لازم است كه اگر يك حالتي كه براي ما مد نظر است اتفاق بيفته دستور شرط يك كاري رو مثلا يك پايه رو برامون يك مي كنه 1- ببين نفهميدم دوباره بگو 2- باشه برميگرديم سر دو تامثال قبل كه يك متغيير داخل يك حلقه بود و هر دفعه كه دو ر مي زد يك واحد به متغيير اضافه مي شد . خوب اگه اين كار ادامه پيدا كنه اين متغيير هي پرو ميشه با 255 و دوباره از صفر شروع مي كنه دوباره پر مي شه با 255 و دوباره از صفر شروع مي كنه به اضافه شدن حالا ما حال كرديم كه اگر اين متغيير G به مثلا 22 رسيد يك كاري رو برامون انجام بده حالا هر كاري رو كه حال كرديم رو بره برامون انجام بده مثلا يك پورت رو بياد برامونSET كنه يا اينكه بره رويه LCD يك چيزي بنويسه . كه ما بايد از دستور شرط استفاده كنيم . يك مثال ساده ديگه كه مي تونم برات بزنم اينه كه مثلا باباي تو بهت مي گه كه اگر اخر سال معدل تو 20 شد برات دوچرخه مي خرم . خوب بابات براي تو يك شرط گذاشته كه اگر اين شرط كه 20 شدن معدل تو است اجرا بشه . دستور شرط كه خريدن دوچرخه توسط بابات هست اجرا ميشه . حالا فهميدي 1- بابا ما از كوچيكي داريم 20 مي گيرم بابامون برامون هيچي نگرفته . ولي مطلبو خوب گرفتم 2- عاليه. خوب بريم سر دستور شرط IF همان دستور شرط است THEN يعني اگر شرط اجرا شود اين THEN مياد براي ما يك كاري رو انجام مي ده 1- مثال برن 2- همون مثال دوچرخه رو مي زنم . خوب باباي فلاني بهش گفته كه اگر معدلش 20 بشه يعني شرط IF . .. براش يك دچرخه مي خره يعني يك كاري رو در قبال شرطي رو كه گذاشته براي پسرش انجام مي ده يعني THEN 1- اها گرفتم. از مثال هاي برنامه هم برام بگو 2- باشه . بريم سر اون مثالي كه متغيير G رو توي يك حلقه قرار داده بوديم حالا ما مي خايم كه اگر اين متغيير G به 6 برسه بره و PORTA.0 رو SET كنه : CONFIG PORTA = OUTPUT DIM G AS BYTE G = 0 DO INCR G CLS LCD G IF G = 6 THEN SET PORTA.0 WAITMS 50 LOOP END برنامه بالا رو كه تا حدودي مي دوني چيه چون قبلا توضيحشو دادم فقط مي مونه خط هفتم كه نوشته IF G = 6 THEN SET PORTA.0 ما در اينجا با گذاشتن شرط يعني IF G = 6 شرط گذاشتيم كه اگر متغيير G به عدد 6 رسيد . ادامه نوشتيم THEN SET PORTA.0 بروي SET كن PORTA.0 . فهميدي 1- اره ولي مگه شرط بندي حروم نيست 2- چرا حرومه . ولي بايد مواظب باشي كه شرط رو نبازي خوب رسيديم به دستورات زير برنامه ( GOTO - GOSUB ) 1- چي هستن اين زير برنامه ها 2- با يك مثال برات توضيح مي دم توي مثال قبل اگر دقت كرده باشي متغيير G وقتي كه به عدد 6 مي رسيد مي رفت و PORTA.0 رو SET مي كرد و همينطوري به متغيير G اضافه مي شد . حالا اگر كه ما حال كرديم بعد از اين كه متغيير G به عدد 6 رسيد بره همون كاره خودشو يعني SET كردن PORTA.0 رو انجام بده ولي برنامه ديگه تموم بشه و ديگه شمارش نكنه يا به عبارتي به END برسه . خوب براي اين كار بايد از زير برنامه استفاده كنيم به مثال زير توجه كن : CONFIG PORTA = OUTPUT DIM G AS BYTE G = 0 DO INCR G CLS LCD G IF G = 6 THEN GOTO AHMAD WAITMS 50 LOOP AHMAD : SET PORTA.0 END خوب حالا بريم تحليل برنامه . برنامه رو كه مي دوني چجوريه منظورم معني خط ها هستش البته به غير از خط هشتم كه نوشته IF G = 6 THEN GOTO AHMAD خوب اين خط يعني اينكه اگر متغيير G رسيد به عدد 6 دستور شرط را اجرا كن كه دستور شرط اين است GOTO AHAD يعني بپر برو به زيربرنامه اي كه استش هست احمد . توجه كن كه به جاي اسم AHMAD هر اسم ديگه اي مي توني بزاري هر اسمي كه حال كردي . بعد از اينكه متغيير G بع عدد 6 رسيد دستور شرط اجرا مي شود و ميكروكنترلر برنامه را از خط بعدي زيربرنامه AHNAD مي خواند يعني خط SET PORTA.0 را مي خونه و پورت A.0 رو ست مي كنه بعد از اين كه ست كرد خط بعدي رو مي خونه كه نوشته END به محض اينكه اين دستور END رو خوند برنامه متوقف مي شه و به پايان مي رسه . پس فهميدي كه زير برنامه براي وقتي هستش كه ما مي خوايم يك دستور شرط رو اجرا كنيم به يك مثال ديگه توجه كن : CONFIG PORTA = OUTPUT DIM G AS BYTE METAL: G = 0 RESET PORTA.0 DO INCR G CLS LCD G IF G = 6 THEN GOTO AHMAD WAITMS 50 LOOP AHMAD: SET PORTA.0 WAITMS 50 GOTO METAL END خوب حالا تحليل برنامه قبل . ميكرو مياد برنامه رو از خط اول شروميكنه به خوندن كه خط اول مربوط به پيكره بندي PORTA به عنوان خروجي هستش . بعد مياد خط دوم رو مي خونه كه در اين خط ما يك متغيير كه اسمش هست G و از نوع بايت مي باشد رو تعريف كرده ايم. خط سوم يك زير برنامه هستش به نام METAL كه فعلا بهش كار ندارم تا بعد در ضمن اين نكته رو بايد يادت باشه كه هر وقت يك زير برنامه رو مي نويسي بايد جلوش دو نقطه رو بزاري اينطوري METAL: . خط بعدي به متغيير يك مقدار داديم كه صفر است . خط بعدي نوشتيم RESET PORTA.0 كه به اين هم فعلا كار نداريم . خط بعدي DO هستش كه ابتداي حلقه را مشخص مي كنه . خط بعدي نوشته INCR G يعني به مقدار متغيير G يك واحد اضاف كن يعني صفر كه بوده حالا كه يك واحد اضاف بشه مي شه يك . خط بعدي با دستور CLS ال سي دي را پاك كرديم تا براي نوشتن دوباره اماده شود . خط بعدي با فرمان LCD G اين را رسانديم كه مقدار متغيير G رو روي ال سي دي نمايش بده كه الان بايد عدد يك رو روي ال سي دي نمايش بده . در خط بعدي نوشتيم IF G = 6 THEN GOTO AHMAD يعني اگر متغيير G ما به عدد 6 رسيد برو دستور شرط رو كه هست THEN GOTO AHMAD اجرا كن بعني بپر برو توي زير برنامه AHMAD البته وقتي دستور شرط اجرا ميشه كه متغيير G به عدد 6 برسه . خط بعدي يك تاخير در برنامه با مدت زمان 50 ميلي ثانيه را گذاشتيم كه بعد از سپري شدن اين مدت زمان برنامه از خط بعدي شروع مي شه خوب تا اين جا كه متغيير ما عدد 1 هستش . بعد كه ميكرو ميرسه به دستور LOOP دوباره دور مي زنه و خط زيري DO رو مي خونه كه نوشته INCR G يعني يك واحد به متغيير G اضافه كن خوب متغيير G الان هستش 1 بعد كه به اين دستور رسيد اين دفعه يك واحد بهش اضافه مي شه و مي شه دو . اين عمل انقدر ادامه مي يابد تا متغيير G برسه به عدد 6 . همين كه به عدد 6 رسيد از اونجايي كه ما يك شرط با دستور IF G = 6 THEN GOTO AHMAD گذاشتيم يعني اينكه وقتي متغيير G به عدد شش رسيد يعني IF G = 6 برو دستور شرط رو كه هستش THEN GOTO AHMAD اجرا كن يعني اينكه بپر برو توي زير برنامه AHMAD خوب حالا ميكرو ميپره ميره برنامه رو از خط زيري زير برنامه AHMAD مي خونه كه نوشته SET PORTA.0 يعني پايه A.0 رو يك كن . بعدش نوشته WAITMS 50 يعني اينكه به مدت زمان 50 ميلي ثانيه در برنامه تاخير ايجاد كن كه در طول اين مدت PORTA.0 در وضعيت SET قرار دارد بعد از اين كه اين مدت زمان سپري شد برنامه از خط بعدي اجرا مي شه خط بعدي يعني GOTO METAL يعني اينكه بپر برو توي زير برنامه METAL و ميكرو هم همين كار رو مي كنه و مي پره مي ره توي زير برنامه METAL و برنامه از خط بعدي اين زير برنامه كه هستش G = 0 ادامه پيدا مي كنه اين خط به اين معني هستش كه متغيير G رو كه بوده 6 حالا بيا صفرش كن . در خط بعدي يعني RESET PORTA.0 يعني اينكه پايه A.0 رو كه ست كرده بودي حالا بيا ريستش كن يعني صفر كن. خوب حالا هم متغيير G ما صفر هستش هم اينكه PORTA.0 ما صفر يا همون ريست هستش . بعد ميكرو مي ياد برنامه رو از خط بعدي شروع ميكنه به خوندن كه نوشته DO بعني اول زيربرنامه . خط بعدي نوشته INCR G يعني يك واحد به متغيير G ما كه الان دوباره صفرش كرديم اضافه كن كه بشه يك . دوباره روز از نو روزي از نو يعني اينكه دوباره شروع مي كنه به اضافه كردن متغيير تا دوباره برسه به 6 بعد كه رسيد به 6 دوباره بپره بره به زير برنامه AHMAD اونجا باز PORTA.0 رو يك مي كنه بعدش تاخير ايجاد مي كنه بعد با دستور GOTO METAL مي پره ميره به زير برنامه METAL كه در بالاي برنامه هستش بعد دوباره متغيير رو كه 6 هستش رو صفر مي كنه به دنبالش PORTA.0 رو هم كه يك بوده صفر مي كنه باز دوباره................................... حالا رسيديم به دستور GOSUB اين دستور همان دستور GOTO هستش با اين تفاوت كه يك دستور ديگه همراهش هست به نام اقاي RETURN كه اين RETURN رو هر جاي برنامه كه بنويسيم ميكرو مياد برنامه رو از خط بعدي GOSUB شروع مي كنه به خوندن . كه دربارش وقتي كه خواستم ورودي رو بهت درس بدم مي گم . ورودي PIN : ورودي در ميكرو كاربرداي فراووني داره مثلا در ساده ترين حالت مي خاي يك ميكروسوييچ به ميكروكنترلر وصل كني كه با هر بار زدن اين ميكروسوييچ يك LED روشن و خاموش بشه در مراحل پيشرفته هم مثلا در ساخت يك ربات كاربرد داره به اين صورت كه يك سنسور مادون قرمز بهش وصل بشه و مثلا به يك خط سياه حساس باشه و از اين طور كارا خوب بريم سر دستور ورودي . باز هم مي خوام با يك مثال برات توضيح بدم فرض كن كه مي خايم با يك ميكرو سوييچ كه به ميكرو وصل كرديم يك LED رو يك بار روشن و يك بار خاموش كنيم كه برنامه به صورت زير است و خيلي خيلي ساده : CONFIG PINB.0 = INPUT DIM A AS BYTE Ali: DO DEBOUNCE PINB.0 , 1 , SONY LOOP END SONY: INCR A CLS LCD A GOTO ALI خوب حالا وقت تحليل برنامه هستش: درخط اول ما اومديم با نوشتن دستور CONFIG PINB.0 = INPUT پايه B.0 رو به عنوان ورودي تعريف كرديم . در خط بعد يك متغيير از نوع بايت كه اسمش رو گذاشتيم A تعريف كرديم . در خط بعدي يك زير برنامه به نام ALI گذاشتيم كه فعلا بهش كار نداريم و در ادامه توضيحش مي دم. در خط بعدي با نوشتن DO ابتداي حلقه را مشخص كرديم . در خط بعدي نوشتيم كه DEBOUNCE PINB.0 , 1 , SONY كه هر وقت خاستي كه يك ورودي رو تعريف كني بهتره از اين دستور استفاده كني يا به عبارتي حتما استفاده كني خوب حالا لابد از خودت مي پرسي كه اين دستورات چي هست اين دستور كه همش بايد توي يك خط نوشته بشن رو يكي يكي برات بازش مي كنم DRBOUNCE رو هميشه وقتي كه مي خاي يك ورودي رو تعريف كني اولش بايد بزاري و كاربردشم اينه كه يك تاخير خيلي خيلي كوچيك كه به چشم هم نمياد ايجاد مي كنه و باعث مي شه كه پايه ورودي نويز نگيره يك بار ديگه دوباره مي گم ما نوشتيم كه DEBOUNCE PINB.0 يعني پايه B.0 رو از نظر نويز محافضتش كن خوب اين تا بعدش علامت , رو گذاشتيم تا جملات از هم تفكيك شوند كه بايد حتما علامت , رو بزاري در ادامه ما نوشتيم كه 1 خوب حالا اين 1 يعني چي . اين 1 يعني اگر پايه B.0 يا يك 1 شد يا به عبارتي SET شد با ميتونيم بگيم كه يك نوع شرط است كه در مقابل يك شدن پايه B.0 گذاشته ايم و جلوي اين 1 دوباره علامت , گذاشتيم تا از جمله بعديش تفكيك بشه . در جمله بعديش نوشتيم SONY كه اين يعني اينكه اقا اگر اين پايه B.0 ما 1 شد بپر برو توي زيربرناه SONY كه به جاي اينSONY هر اسم دخواه ديگه اي هم مي توني بزاري . يك بار ديگه برات اين جمله رو به صورت كلي توضيح مي دم معني اين جمله دستوري اين هستش كه اگر PINB.0 ما 1 شد بپر برو توي زيربرنامه SONY و اگر صفر بود كه هيچي . در خط بعدي نوشتيم LOOP كه انتهاي حلقه را با اين كلمه مشخص كرديم . در خط بعدي نوشتيم END كه برنامه هيچگاه به END نمي رسد . در خط بعدي نوشتيم SONY كه SONY يك زيربرنامه است كه مي تونست هر اسم ديگه اي باشه . در خط بعدي نوشتيم INCR A كه به معني اضافه كردن يك واحد به متغيير A مي باشد . در خط بعدي نوشتيم كه CLS يعني پاك كن كل صفحه ال سي دي رو تا براي نوشتن اماده بشه. در خط بعدي نوشتيم GOTO ALI يعني بپر به زيربرنامه ALI . خوب حالا بريم سر طرز كار مدار : اين مدار در واقع يك شمارنده هستش . طرز كارش هم اينطوريه كه ميكرو مياد سه خط اول رو مي خونه بعد ميره مي يوفته توي حلقه DO - LOOP و اونجا داخل اين حلقه هي دور ميزنه تا كي تا وقتي كه PINB.0 ما يك بشه يعني شرطي كه گذاشته ايم اجرا بشه كه شرط ما اين هستش كه پايه B.0 يك بشه بعد از اينكه اين شرط اجرا شد ميكرو مياد دستور شرط رو اجرا مي كنه دستور شرط كدومه هموني كه بهت گفتم يعني پرش به زير برنامه SONY . وميكرو كه گوش به فرمان برنامه هست مي پره مي ره داخل زير برنامه SONY و از خط بعدي زير برنامه SONY كه نوشته INCR A رو مي خونه و طبق اين دستور يك واحد به اين متغيير A اضافه مي كنه يعني ميكنش 1 . بعدش مي ياد خط بعدي رو مي خونه كه نوشته CLS يعني اينكه كل ال سي دي پاك بشه تا براي نوشتن حاضر بشه . در خط بعدي نوشتيم كه LCD A به اين معني كه مقدار متغيير A رو كه هستش يك روي LCD نمايش بده . در خط بعدي نوشته GOTO ALI يعني اينكه بپر برو توي زير برنامه ALI و ميكرو هم همين كار رو مي كنه و مي پره مي ره اولين خط بعد از زير برنامه ALI رو كه نوشته DO رو مي خونه و دوباره ميوفته توي اين حلقه و باز هم دوباره انقدر توي اين حلقه هستش و توي اين حلقه دور مي زنه تا وقتي كه دوياره PINB.0 يك بشه يا به عبارتي SET بشه اونوقت دوباره روز از نو روزي از نو و ميپره دوباره توي زيربرنامه SONY و دستورات داخل اين زير برنامه رو دباره اجرا مي كنه كه در خط اول اين زير برنامه نوشته INCR A يعني دوباره يك واحد به متغيير A اضافه كن و ميكرو هم اين كار رو ميكنه و متغيير A كه يك بوده الان ميشه 2 بعد مياد دستور CLS رو مي خونه كه لازم به توضيح نيست . بعد مي يا دستور LCD A رو مي خونه كه مقدار جديد اين متغيير A رو كه الان هستش 2 رو روي LCD نمايش مي ده بعد مياد دستور GOTO ALI رو مي خونه و مي پره مي ره توي زير برنامه ALI دوباره ميوفته توي حلقه و الي اخر . با استفاده از اين برنامه مي توني يك شما رنده درست كني كه مي تونه از عدد 0 تا 255 رو بشماره و اگر خاستي رنج شمارشش از 255 بيشتر باشه مي توني به جاي BYTE توي برنامه بنويسي WORD . اين برنامه در كارخونه هم كاربرد داره البته باكمي تغييرات كوچيك در برنامه و مثلا بايك سنسور مي شه قطعات عبوري از روي خط توليد رو شمارش كرد. 1- از نظر اتصالات سخت افزاريش هم توضيح بده برام 2- اين كه خيلي ساده هستش كافيه تغذيه ميكرو رو وصل كني و با يك ميكروسوييچ كه يك سرش رفته باشه به VCC 5 ولت و سر ديگه ميكروسوييچ هم رفته باشه به پايه B.0 و اتصالات ال سي دي اين مدار رو كاملش كني. 1- جالب بود 2- تو به اين مي گي جالب بزار يكم راه بيوفتي اونوقت اين طور مدارا برات پيش پا افتاده هستش . وقتي كه ميتوني ميكروكنترلر رو از طريق تلفن .SMS و اينترنت كنترلر كني ديگه اين مدارات در نظرت بچه بازي هستش 1- چطوري از طريق اينايي كه گفتي كنترل مي كنن 2- ديگه بايد يكم اطلاعاتت در مورد پورتهاي كامپيوتر و PC INTERFACES كامل باشه كه بتوني از طريق مثلا اينترنت يك موتور رو كنترل كني وگرنه برنامه نويسي ميكرو كه چيز نيست 1- با اين PC INTERFACES چه كار ميتوني بكني و اصلا چي هستش 2- اندازه گيري و كنترل با استفاده از پورتهاي استاندار تحت ويندوز رو مي گن PC INTERFACES مثلا شما توي محيط نرم افزار ويرژال بيسيك يك برنامه اي مي نويسي كه اگر مثلا فلان دكمه كيبرد فشرده شد خروجي فلان پورت كامپيوتر رو يك كن كه اين خروجي ها از نظر استاندارد با استاندارد ميكروكنترلر فرق دارند و بايد از اي سي MAX232 استفاده كني كه از نظر استاندارد با هم مطابق شوند . 1- علم چقدر پيشرفت كرده ها 2- بله . بزار يك مثال ديگه هم بزنم ولي توضيحش رو خيلي خلاصه برات مي گم CONFIG PORTA = OUTPUT CONFIG PINB.0 = INPUT DIM A AS BYTE Ali: DO DEBOUNCE PINB.0 , 1 , SONY LOOP END SONY: INCR A CLS LCD A TOGGLE PORTA GOTO ALI در برنامه بالا فقط يك چيز اضافه شده اونم دستور TOGGLE PORTA كه با وجود اين دستور هر وقت كه ميكرو به زير برنامه SONY پرش مي كنه علاوه براين كه يك واحد به متغيير A اضافه مي كنه و روي ال سي دي هم نمايش مي ده موقعييت PORTA رو هم عوض مي كنه يعني اگر صفر باشه يك مي شه و اگه يك باشه صفر مي كنه و دفعه بعد كه به اين زير برنامه رفت دوباره اگر صفر باشه يكش مي كنه و اگه يك باشه صفرش مي كنه بزار منظورمو ساده بگم اگر شما يك LED به پايه هاي A.0 تا A.7 وصل كني به ازاي هر بار زدن ميكروسوييچ اين LED ها يك بار روشن و بارديگه خاموش مي شن. براي امروز ديگه كافيه بقيش باشه براي جلسه بعدي پايان قسمت چهارم- 60 پاسخ
-
- 16
-
-
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
ای بابا -
مسابقه ی حدس عکس برقی
Eng.KouRosH پاسخی برای آریوبرزن ارسال کرد در موضوع : مسابقات و گفتگوهای گروه برق
سرو موتور dc -
آموزش تصویری ساخت pcb به روش پرینت و اتو
Eng.KouRosH پاسخی برای .sOuDeH. ارسال کرد در موضوع : آموزش نرم افزارهای مهندسی برق
منم اینو دارم- 2 پاسخ
-
- 1
-
-
آموزش گام به گام برنامه نویسی میکروکنترلرهای avr به زبان بیسکام
Eng.KouRosH پاسخی برای Eng.KouRosH ارسال کرد در موضوع : میکروکنترلرهای AVR
1- سلام 2- سلام خوبي 1- قربانت 2- چه خبر اون چيزايي رو كه بهت گفته بودم رو كار كردي مثال حل كردي ازش 1- اره . كار كردم اونم از همش . اقا يك سوال اگه بخايم مقدار يك متغيير رو روي lcd نمايش بديم بايد چطوري عمل كنيم 2- اين كه خيلي اسونه با چند تا مثال جواب سوالتو ميدم مثال 1: $regfile = "m16def.dat" $crystal = 8000000 dim a as byte a = 3 cls lcd a end 1- خوب تحليلش كن 2- باشه خط اول كه معرفي ميكرو هستش خط دوم فركانس كاري ميكرو هستش خط سوم ما يك متغيير را كه نامش هست a و را از نوع بايت مي باشد را تعريف كرديم خط چهارم به متغيير مقدار داديم خط پنجم با دستور cls ال سي دي را براي نوشتن جديد پاك كرديم خط ششم دستور دايم كه مقداري را كه به متغيير a داده ايم روي lcd نمايش داده شود خط هفتم با دستور end برنامه را به پايان رسانديم. 1- اها يعني به متغيير a هر مقداري كه داده باشيم مثلا 1 يا 0 يا 1001 روي lcd نمايش داده مي شود 2- كاملا درسته واما مثال دوم: اين دفعه مي خايم دو تا متغيير رو يكي پس از ديگري روي lcd نمايش بديم $regfile = "m16def.dat" $crystal = 8000000 dim ali as bit dim iran as byte ali = 0 iran = 224 cls lcd ali cls lcd iran end خط اول كه معرفي خود ميكرو خط دوم معرفي فركانس كاري ميكرو خط سوم اومديم يك متغيير از نوع bit كه نامش است ali رو معرفي كرديم خط چهارم هم اومديم يك متغيير از نوع بايت كه نامش هست iran رو معرفي كرديم خط پنجم به متغيير bit كه نامش بود ali يك مقدار داديم خط ششم هم مثل خط پنجم خط هفتم با دستور cls ال سي دي را براي نوشتن اماده كرديم خط هشتم به ميكرو دستور داديم كه مقدار متغيير ali رو روي lcd نمايش بدهد خط نهم دوباره با دستور cls ال سي دي رو براي نوشتن دوباره پاك كرديم خط دهم هم به ميكرو دستور داديم كه مقدار متغيير iran رو روي ال سي دي نمايش بده و در خط اخر نيز با دستور end برنامه رو به اتمام رسانديم 2- مثال اخر : $regfile = "m16def.dat" $crystal = 8000000 dim g as word g = 12 cls lcd g incr g cls lcd g end خط اول و دوم رو كه ديگه تكراري شده كه بخام توضيح بدم خط سوم هم تغريبا مثل قبل اومديم يك متغيير كه نامش هست g و از نوع word مي باشد را براي ميكرو تعريف كرديم خط چهارم به متغيير g يك مقدار دلخاه داديم خط پنجم ال سي دي را با دستور cls براي اماده شدن پاك كرديم خط ششم با دستور lcd g مقدار فعلي متغيير g را كه هست 12 را روي lcd نمايش داديم خط هفتم به متغيير g يك واحد اضافه كرديم يعني شد 13 خط هشتم با دستور cls ال سي دي را براي نوشتن دوباره پاك كرديم خط نهم به ميكرو دستور داديم مقدار متغيير g را كه الان به ان يك واحد اضافه شده است يعني شده 13 رو روي ال سي دي نمايش بده خط دهم هم يعني پايان برنامه 1- همه اين مثالايي رو كه گفتي توي محيط شبيه سازي قابل اجراست 2- اره قابل اجراست و ميتوني اونجا همه اين مثال هاي رو مشاهده كني. خوب حال بريم سر مبحث بعدي 1- دستورات lcd همينا بود 2- نه هنوز چند تا ديگه هست كه به موقش ميگم 1- خوب برو سر مبحث بعدي 2- باشه . ببين گاهي وقتا لازم هستش كه در بين برنامه هايي كه داريم مي نويسيم يك تاخير ايجاد كنيم كه اين تاخير مي تونه يك ثاينه . ده ثانيه . يك ميلي ثانيه . يك ميكرو ثانيه يا هر تايمي كه عشقت بود رو تاخير ايجاد كني 1- همين جا وايستا كه يك سوال دارم . اين تاخير به چه درد مي خوره لطفا فقط يك مثال كاربردي هم بزن 2- ببين مثالا شما مي خاي يك led رو روشن كني و مي خاي اين led بعد از مثلا ده ثانيه خاموش بشه خوب حالا ارزش اين دستور بايد حس كني 1- اها فهميدم حالا ادامه بده 2- تاخيراتي را كه ما ميتوانيم ايجاد كنيم بر حسب ثانيه- ميلي ثانيه- ميكرو ثانيه مي باشد wait 1 تاخير براي مدت زمان يك ثانيه waitms 1 تاخير براي مدت زمان يك ميلي ثانيه waitus 1 تاخير براي مدت زمان يك ميكرو ثانيه متاسفانه اين مدت زمان هاي تاخير زياد هم دقيق نيستند مثلا شما دستور ميدي كه يك ثانيه تاخير داشته باش ميكرو مياد دوازده ثانيه تاخير ايجاد ميكنه 1- خوب پس چاره چيه؟؟ 2- براي حل اين مشكل شما بايد از ميلي ثانيه يا ميكرو ثانيه بيشتر استفاده كني مثال اگه مي خاي يك تاخير يك ثايه ايجاد كني بايد بنويسي waitms 30 البته اين يك مثال بود كه اگه يكم با اين دستورات ور بري همش دستت مياد خوب حالا بريم سر مثال ها مثال اول: $regfile = "m16def.dat" $crystal = 8000000 dim a as byte a = 112 cls lcd a incr a waitms 500 cls lcd a end حالا تحليل برنامه خط اول و دوم كه خودت ميدوني خط سوم هم كه بايد بدوني خط چهارم هم باز بايد بدوني ولي مي گم كه دلت نشكنه در خط چهارم ما به متغيير a يك مقدار داديم خط پنجم با دستور cls ال سي دي را براي نوشتن و اماده شدن پاك كرديم خط ششم با دستور lcd a مقدار متغيير a را كه هست 112 روي ال سي دي نمايش داديم در خط هفتم با دستور incr a يك واحد به متغيير a اضافه كرديم يعني بود 112 حالا شد 113 در خط هشتم با دستور waitms 500 يك تاخير پانصد ميلي ثانيه اي ايجاد كرديم يعني اينكه برنامه فعلا هيمنجا متوقف است و بعد از 500 ميلي ثانيه برنامه از خط بعدي خوانده مي شود در خط نهم با دستور cls ال سي دي را پاك كرديم در خط دهم مقدار جديد متغيير a را كه الان هست 113 روي ال سي دي نمايش داديم در خط اخر هم با دستور end برنامه رو پايان داديم $regfile = "m16def.dat" $crystal = 8000000 dim s as byte s = 112 cls lcd s incr s waitms 500 cls waitms 100 lcd s end از خط اول تا خط هشتم خط نهم ال سي رو رو پاك كرديم خط دهم يك تاخير در برنامه با مدت زمان 100 ميلي ثانيه ايجاد كرديم و بعد از اينكه صد ميلي ثانيه گذ شت برنامه از خط بعدي ادامه پيدا مي كنه خط يازدهم دستور داديم كه مقدار جديد s را كه 113 هستش رو روي ال سي دي نمايش بده خط اخر هم پايان برنامه 1- اينم توي محيط شبيه ساز قابل اجراست 2- بله حتما. موافقي كه بريم سر مبحث بعدي 1- اره بريم 2- خوب حالا رسيديم به قسمت هاي جون دارتر ميكرو. اگه يادت باشه اون اوايل بهت گفته بودم كه ميكروكنترلر داراي يك سري امكانات هستش مثل تايمر – كانتر - مبدل انالوگ به ديجيتال همچنين گفتم كه يكي از امكاناتش ورودي خروجي يا همون i/o هستش كه كاربرداي فراون داره . مثلا در ساده ترين حالت شما با استفاده از اين امكان مي توني يك led رو روشن يا خاموش يا هر دو حالت رو انجام بدي 1- i/o چي هست 2- i يعني ورودي o هم يعني خروجي البت هردو از نوع ديجيتال هستند 1- ها فهميدم . ميشه يك مثال ديگه از كاربردش بزني 2- چراكه نه حتما. فرض كن مي خاي با يك ميكرو سوييچ ( يك نوع كليد ) يك موتور رو روشن خاموش كني و حتما بايد با يك عدد ميكروسوييچ يك بار كه ميزني روشن و دفعه بعد كه ميزني خاموش شود 1- ميكرو سوييچ همون شسي هستش ؟ 2- اره ميكروسوييچ همون كليد زنگ در خونتون هستش 2- در كل براي استفاده از امكانات ميكروكنترلر بايد از روش پيكره بندي استفاده شود كه بهش مي گن config يعني شما با اين كار به ميكروكنترلر اعلام مي كني كه مي خاهم از فلان امكانات استفاده كنم . بزار اول يك سري دستورات رو ليست وار معرفي كنم بعد يكي يك اونها رو توضيح بدم port pin set reset toggle خوب حالا درباره هر كدوم توضيح ميدم port به معني خروجي هستش هر وقت كه خاستي از ميكرو يك خروجي بگيري از اين دستور بايد استفاده كني . مثلا يك led رو مي خاي روشن كني يا هر چيز ديگه pin به معني ورودي هستش هر وقت كه خاستي يه ميكروكنترلر يك ورودي بدي بايداز اين دستور استفاده كني مثلا مي خاي يك كليد به ورودي وصل كني البته اين دستور pin و port به تنهايي كاربرد ندارن كه در ادامه ميگم كه بايد چيكار كني set كه همون يك ديجيتال خودمونه reset كه همون صفر ديجيتال خودمونه toggle يعني عكس حالت فعلي بعني اگر قبلا يك بوده حالا صفر ميشه اگه قبلا صفر بوده حالا يك ميشه بزار قبل از اينكه توضيحاتمو كامل كنم يك سري اطلاعات درباره پايه هاي ميكرو بدم . ببين هر ميكرو بسته به نوعش يك تعداد پايه داره كه از 8 پايش هست تا 40 پايه كه هر هشت پايه رو يك پورت مي نامند البته ربطي به اون پورتي كه توي دستورات بهت گفتم نداره هر پورت رو كه هشت پايه هستش رو با يك اسم نام گذاري مي كنن كه استاندارد هستش به نام هاي پورت a پورتb پورت c پورت d ميكرو ها حداكثر چهار پورت ورودي خروجي دارن. در ضمن هر كدام از پورت ها مي توانند ورودي يا خروجي باشند كه بستگي به انتخاب برنامه نويس داره علامت پورت ها به ترتيب زير هستش: A,0 a.1 a.2 a.3 a.4 a.5 a.6 a.7 براي پورت هاي b c و d هم مثل بالا هستش 1- يك سوال . اگه بخاد حداكثر چهار پورت داشته باشه و هر پورت هم كه هشتا پايه هستش پس در كل ميشه 32 پايه پس چرا بعضي از ميكرو ها 40 پايه هستند 2- خوب 32 پايه هستش با به عبارتي چهار پورت بقيش مال vcc gnd و... هستش 1- اها فهميدم ادامه بده 2- خوب گفتيم كه براي استفاده از امكانات ميكرو بايد انها را پيكره بندي كنيم يا به عبارتي config كنيم . حالا ما براي استفاده از ورودي خروجي ميكروكنترلرi/o هم بايد اونو پيكره بندي كنيم يعني به ميكرو اعلام كينم كه اقا ما ميخاهيم از فلان پايه تو به عنوان ورودي يا مثلا خروجي استفاده كنيم. اگه خاستيم از يك پورت به عنوان خروجي استفاده كنيم بايد به ترتيب مثال زير عمل كنيم: مثال : مثلا مي خاهيم از پورت a به عنوان خروجي استفاده كنيم : Config porta = output حالا تحليل اين دستور. Config كه بهت گفتم يهني چي porta يعني مي خواهيم از پورت a به عنوان خروجي استفاده كنيم به جاي a از هر پورت دلخاه ديگه هم مي تونيم استفاده كنيم . علا مت مساوي = رو كه بايد هميشه بزاري . عبارت output هم يعني خروجي اگه خاستيم از يك پورت به عنوان ورودي استفاده كنيم بايد به ترتيب مثال زير عمل كنيم : مثال : مثلا مي خاهيم از پورت b به عنوان وردي استفاده كنيم config pinb.0 = input حالا گوش فرا بده به تحليل اين دستور. Config كه گفتم قبلا. خوب pinb.0 يعني ما مي خاهيم از پايه b.0 به عنوان ورودي استفاده كنيم . = هم كه هيچي هميشه بايد بزاري. كلمه input را وقتي ميزاري كه خاسته باشي از يك پايه به عنوان ورودي استفاده كني 3- خوب بزار يك مرور بكينم . اگر خاستيم كه از يك پايه به عنوان ورودي استفاده كنيم از دستور config pinc.0 = input استفاده كنيم كه ما دراين مثال از پورت c.0 به عنوان ورودي استفاده كرديم نكته اينجاست كه هر وقت كه خاستي از يك پايه به عنوان ورودي استفاده كني بايد شماره پايه رو هم مثل همين مثال بالا كه براي زدم استفاده كني به جاي pinb.0 هم مي توني مثال بزاري pinb.1 يا pinb.3 يا بزاري pinb.7 كه بستگي داره به انتخاب تو اگر خاستيم كه از يك پورت به عنوان خروجي استفاده كنيم از دستور زير استفاده مي كنيم بايد از دستور زير استفده كني config port c = input ما در اين مثال به ميكرو فهمانديم مي خاهيم از پورت c تو به عنوان خروجي استفاده كنيم 1- شما ره پايه رو نبايد بنويسيم 2- نه نبايد بنويسيم بعدا ما بين برنامه مشخص مي كنيم كه كدام پايه بايد خروجي بدهد بزار ادمه درس رو با يك مثال برات بگم فرض كن ما ميخايم از پايه d.4 ميكرو كنترلر يك خروجي بگيرم و يك led رو روشن كنيم براي اين كار از برنامه زير استفاده مي كنيم: $regfile = "m16def.dat" $crystal = 8000000 config portd = output set portd.4 end خط اول ودوم كه هيچ خط سوم ما اومديم به ميكرو اعلام كرديم كه مي خاهيم از پورت c تو به عنوان يك خروجي استفاده كنيم خط چهارم نوشتيم set portd.4 ما بانوشتن كلمه set اين منظور را رسانديم كه مي خاهيم پورت d.4 يك شود . و همچنين جلوي set نام پايه اي رو كه بايد يك شود يا به عبارتي ديگر set شود رو هم اعلام كرديم در خط اخر هم با دستور end برنامه را به پايان رسانديم 1- يعني اگه يك led رو به پايه d.4 ميكروكنترلر وصل ميكرديم led روشن مي شد 2- اره روشن مي شد مثال دوم: مي خاهيم همان پورت d.4 را يك بار كه روشن شد بعد از دو ثانيه خاموش شود $regfile = "m16def.dat" $crystal = 8000000 config portd = output set portd.4 waitms 2000 reset portd.4 end خط اول دوم كه هيچ خط سوم هم اومديم تعرف كرديم كه از پايه d.4 مي خاهيم به عنوان خروجي استفاده كنيم خط چهارم با دستور set portd.4 پايه d.4 رو يك كرديم خط پنجم با دستور waitms 2000 اين را رسانديم كه مي خاهيم 2000 ميلي ثانه به عبارتي دو ثانيه در همين جا تاخير ايجاد شود در طول اين دو ثانيه portd.4 در همان حالت يك باقي مي ماند. بعد از دو ثانيه برنامه از خط بعد ادامه پيدا مي كند خط ششم با دستور reset portd.4 به ميكرو دستور داديم كه همان پايه d.4 را ريست كن يعني صفر كن خط اخر هم كه يعني پايان برنامه. در اين مثال اگر كه ما يك led به پايه d.4 وصل مي كرديم led براي بار اول با دستور set روشن مي شد و اين روشن بودن با دستور waitms 2000 دو ثانيه به طول مي انجاميد و بعد از دو ثانيه با دستور reset portd.4 led خاموش مي شد چون پايه را صفر كرديم. مثال سوم : فرض كن مي خا هيم دو تا پايه رو هم زمان يك كنيم و بعد از دو ثانيه فقط يكي از انها را صفر كنيم . $regfile = "m16def.dat" $crystal = 8000000 config portc = output set portc.2 set portc.7 waitms 2000 reset portc.7 end خط اول و دوم كه هيچ خط سوم هم كه بايد حتما ياد داشته باشي خط چهارم اومديم فرمان داديم كه پايه c.2 را يك كن خط پنجم هم اومديم فرمان داديم كه پايه c.7 رو يك كن خط ششم دو ثانيه تاخير در برنامه ايجاد كرديم كه در طول اين مدت پايه هاي c.2 و c.7 در حالت يك است خط هفتم با دستور reset portc.7 فقط پايه c.7 رو صفر كرديم. ولي پايه c.2 در همان حالت يك باقي مانده است خط اخر هم كه هيچ مثال سوم : اين مثال رو ببينم كه مي توني تحليل كني $regfile = "m16def.dat" $crystal = 8000000 config porta = output config portc = output set porta.1 set port c.0 حالا خودت تحليلش كن 1- خط اول و دوم رو كه بلدم خط سوم اومديم به ميكرو اعلام كرديم كه مي خاهيم از پوت a به عنوان خروجي استفاده كينم خط چهارم هم مثل خط سوم خط ششم دستور يك شدن پايه a.1 رو صادر كرديم خط هفتم هم دستور يك شدن پايه c.0 رو صادر كرديم خوب بود 2- عالي بود 1- حال ورودي رو برام توضيح بده 2- ورودي باشه براي وقتي كه چندتا از دستورات شرط و چندتا دستور ديگه رو گفتم برات ميگم 1- خوب حالا اين صفر و يك شدن پايه ها رو ميشه تو شبيه ساز نرم افزار تماشا كرد 2- متاسفانه نه نميشه 1- پس بايد چكار كنم 2- دو راه داري اول اينكه بري يك ميكرو بخري و خودت امتحان كني دوم اينكه با استفاده از نرم افزار پروتوس اونو شبيه سازي كني . 1- خوب اين پروتوس رو برام توضيح بده 2- اينو ديگه خودت برو ياد بگير توي انجمن هاي برق و الكترونيك ايراني كه تعدادشون هم زياده به خوبي توضيح دادن 1- باشه حالا چي رو مي خاي برام توضيح بدي 2- فعلا تا همين جاشو داشته باش تا بعدا ادامشو برات توضيح بدم پايان قسمت سوم- 60 پاسخ
-
- 15
-
-
من که ذوق داشتم
- 39 پاسخ
-
- 2
-
-
- مبانی مدارفرمان
- مدارفرمان
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
آموزش گام به گام برنامه نویسی میکروکنترلرهای avr به زبان بیسکام
Eng.KouRosH پاسخی برای Eng.KouRosH ارسال کرد در موضوع : میکروکنترلرهای AVR
1- سلام چطوري 2- سلام ممنون تو چطوري 1- قربانت اقا اين avr چي بوده ما نمي دونستيما 2- اره تازه كجاشوديدي بزار يكم راه بيفتي اونوقت مي فهمي چي بوده 1- يادم مي ياد بهم قول داده بودي كه بهم ميكرو ياد بدي 2- حتما به روي چشم . خوب حالا قرار بود از كجا شروع كنيم 1- يك لحظه وايستا اول به چندتا از سوالايي كه برام پيش اومده جواب بده بعد شروع كن به ياد دادن 2- در خدمتم هر چي سوال داري بگو كه منو ياد اون اولايي كه مي خاستم ميكرو ياد بگيرم مي ندازي 1- سوال اول اينكه اصلا ما چرا از ميكروكنترلر استفاده مي كنيم اصلا چه مزيتي داره و كجاها ازش استفاده ميشه؟ 2- خوب . همونطور كه از اسمش پيداست ميكرو كنترلر يعني يك كنترل كننده . اين كنترل كننده مي تونه هر پديده اي رو كنترل كنه فقط كافيه كه بهش برنامه بدي ( تكنولوژي ديگه) كنترل دقيق پديده هايي همچون دما. فشار. نور. فاصله. و... . و كاربرد ان در بيشتر زمينه هاي رباتيك . ماشين هاي هوشمند و صنعت هستش 1- مثل plc ؟؟؟ 2- بله با اين تفاوت كه ميكرو كنترلر از نظر حجم و قيمت زمين تا اسمان با plc فرق مي كند مثلا قيمت يك plc حدود هفتاد هزارتومنه اون هم با امكانات حداقل و ابعاد زياد ولي ميكروكنترلر با همه امكانات با قيمت 3000 تومان كه ابعاد بسيار كمي هم داره در بازار ايران به وفور پيدا ميشه . البته اين تفاوت هيچ وقت از ارزش plc كم نخواهد كرد زيرا plc فقط در صنعت كاربرد دارد و يك المان صنعتي مي باشد نسبت به ميكروكنترلر بيشتر در صنعت استفاده مي شه. 1- خوب يك سوال ديگه اين ميكروكنترلري كه ميگي سرعت اجراي فرمان هايي كه بايد اجرا كنه چقدر هستش 2- بستگي به فركانس كاري ميكرو داره . معمولا سرعت انجام دستوراللعمل هايي كه انجام مي ده بين 8 تا 16 ميليون دستور العمل در ثانيه هستش 1- چي درست شنديم 8 تا 16 ميليون فرمان اونم فقط توي يك ثانيه ؟؟؟ 2- اره درست شنيدي 1- خوب اين 8 تا 16 ميليون فرمان يا به قول خودت دستورالعمل سرعتش به چي بستگي داره 2- مستفيما به فركانش كاري ميكرو بستگي داره 1- اخرين سوال بعد برو سراغ ادامه مطالب اموزشي 2- در خدمتم بگو 1- اين امكاناتي كه گفتي بعضي از ميكرو ها دارن بعضي ها هم ندارن بايد از كجا متوجه بشيم خودت حتما همه رو حفظ كردي 2- ( با خنده) نه عزيز اين ميكرو ها هر كدومشون داراي يك ديتا شيت هستند كه اطلاعاتي درباره ميكرويي كه مي خاي باهاش كار كني بهت ميده . اطلاعاتي از قبيل . ولتاز كاري . فركانس كاري . امكانات ميكرو و... 1- ok حالا برو سر اموزش 2- خواهش مي كنم به روي چشم . بزار يك سر فصل خيلي كلي برات بگم كه چه چيزايي رو بايد بهت بگم 1- اول بايد با نرم افزار bascom اشنا بشي 2- و در اخر بايد دستورات برنامه نويسي رو ياد بگيري خوب اول مي ريم سر نرم افزار bascom كه خيلي ساده هستش . منم خيلي كلي برات نرم افزارو توضيح مي دم بقيشو خودت يكم سيخ بزني ياد مي گيري 1- باشه هر طور كه صلاح مي دوني 2- اول بزار در باره اين نرم افزار بيسكام (bascom) برات بگم . خوب من قبلا بهت گفتم كارهايي رو كه ما از يك ميكرو مي خايم بايد به صورت برنامه بهش بديم . خوب حالا اين برنامه رو بايد با يك نرم افزاري نوشته بشه يا نه 1- بله 2- خوب اين نرم افزار همين بود كه بهت گفتم . ما به وسيله اين نرم افزار خواسته هايي كه از يك ميكرو AVR داريم را به صورت برنامه نويسي اجرا مي كنيم. خوب بهتره كه زياد طولش ندم و مستقيم برم سر نرم افزار. اول بزار يك مقدار از منو هاي كاري نرم bascom1.11.7.4 برات توضيح بدم File : اول روي گزينه file كليل مي كني بعدش روي NEW كليك مي كني . يك صفحه سفيد باز ميشه . اين صفحه محيط برنامه نويسي هستش منوي EDIT كه چيز مهمي نداره PROGRAM : با كليك كردن روي اين منو به اولين گزينه مي رسيم كه نوشته COMPILE . حتما با خودت مي گي اين COMPILE به چه دردي مي خوره خوب الان من بهت مي گم . گفتيم كه ما در محيط برنامه نويسي برنامه مان را مي نويسيم خوب ما بالخره بايد بدانيم كه اين برنامه اي كه نوشتيم داراي خطاي نوشتاري هست يا نه خوب پس حالا فهميدي به چه دردي مي خوره . 1- نگفتي چطوري از گزينه COMPILE استفاده كنيم ؟؟ 2- شما بعد اي كه برنامه رو نوشتي بايد از منوي PROGRAM گزينه COMPILE رو انتخاب كني سپس به طور اتومات برنامه شما چك مي شه اگه خطايي بود زير نرم افزار مي نويسه اگه نبود كه هيچي در ضمن شما اين كار رو مي توني با كليد ميانبر F7 هم انجام بدي SIMULATE : اين گزينه يك شبيه ساز هستش و برنامه اي رو كه شما نوشتي رو برات شبيه سازي مي كنه مي كنه كه من هيچ ازش خوشم نمي ياد چون داراي خطا هستش و بهتره كم ازش استفاده كني . اين كار رو مي توني با كليد ميانبر F2 انجام بدي SEND TO CHIP : شما بعد از اين كه برنامه رو توي محيط برنامه نويسي نوشتي و بعدش هم COMPILE كردي نياز داري كه برنامه رو بريزي داخلي ميكرو اين كار رو با كليك روي گزينه SEND TO CHIP بايد انجام بدي كه خودش اتومات برنامه رو ميريزه توي ميكروكنترلر . اين كار رو بازدن كليد F4 هم مي توني انجام بدي منو TOOLS : اين منو باشه بعدها برات توضيح ميدم چون فعلا باهاش سروكار نداري منوي OPTIONS: با كليك روي اين منو اولين گزينه اي كه به چشم مي خوره COMPILER هستش كه مهمه بقيه هم باهاش سروكار نداشتم پس فكروتو مشغول بقيش نكن حرفه اي كه شدي شايد بقيش برات كاربرد داشته باشه . خوب حالا اين COMPILER رو كه روش كليك مي كني پنج گزينه ديگه ضاهر ميشه . اولي نوشته CHIP : به معني انتخاب ميكرو هستش شما ميكرويي رو كه مي خاي ازش استفاده كني رو توي ان قسمت انتخاب مي كني . گزينه بعدي OUTPUT هستش كه باهاش كاري نداريم .گزينه بعدي COMMUNCIATION هستش وقتي روي اين گزينه كليك مي كني يك پنجره باز مي شه شما بايد در قسمت FERQUENCY مقدار فركانس كاري ميكروAVR رو بر حسب هرتز اينجا وارد كني 1- يك سوال از كجا بفهمم كه فركانس كاري ميكرويي كه ازش مي خام استفاده كنم چنده ؟؟ 2- با خواندن ديتا شيت يا همان كاتالوگ خود مكرو كنترلر . گزينه بعدي 12C هستش كه با اونم كاري نداريم . گزينه بعد LCD هستش 1- حتما بايد اين گزينه رو هم بي خيال شيم 2- برعكس گزينه LCD گزينه مهمي هستش . تو در اين قسمت بايد مشخص كني كه LCD بايد به كدوم يكي از پايه هاي ميكروكنترلر وصل بشه و اندازه LCD رو هم مي توني توي اين قسمت مشخص كني 1- خوب بيشتر توضيح بده در باره اين گزينه 2- اين گزينه باشه وعتي كه LCD رو بهت توضيح دادم اونوقت اين گزينه رو هم بهت ياد ميدم 1- اين LCD خيلي مشكله ؟؟ 2- نه اتفاقا بسيار اسون و كار كردن باهاش بسيار لذت بخشه. راستي يك گزينه ديگه توي منويTOOLS هستش به نام PROGRAMMER . كه مال اتخاب نوع پروگرامر هستش اين هم از قسمت هاي مهم نرم افزار BSCOM اگه سوالي هست بگو 1- ما چرا بايد از گزينه COMPILE استفاده كنيم 2- براي اين كه ببينيم برنامه اي رو كه نوشتيم از لحاظ نوشتاري (لغت) مشكلي داره يا نه . اگه بعد از نوشتن برنامه COMPILE نكني نرم افزار اجازه ريخت برنامه روي ميكروكنترلر رو نميده 1- اها گرفتم چي مي گي 2- خوب حالا بريم سر اصل مطب كه اشنايي با برنامه نويسي هستش كه مهمترين بخشه پس خوب گوش كن 1- اي به چشم 2- پس بزار اول يك مقدمه اي بگم بعد . ببين برنامه اي رو كه شما مي خاي براي ميكروكنترلر توي محيط برنامه نويسي نرم افزار بنويسي به زبان هاي مختلف نوشته مي شه و هر زبان برنامه نويسي نرم افزار مخصوص خودشو داره مثلا براي نوشتن برنامه به زبان بيسيك از نرم افزار BASCOM . براي نوشتن با زبان C از نرم افزار CODVISION استفاده مي كنيم . كه من بيسيك رو دوست دارم وبهت ياد مي دم . چون زبان برنامه نويسي بسيار ساده اي هستش . خوب ديگه وقتشه بريم سر دستورات برنامه نويسي. دستور $REGFILE : اولين حركتي كه بايد در محيط برنامه نويسي انجام بدي اينه كه ميكروكنترلري رو كه مي خاي ازش استفاده كني رو بايد در محيط برنامه نويسي ذكر كني مثلا تو يك ميكرو كنترلر ATMEGA16 خريدي پس بايد در محيط برنامه نويسي اينطور ميكرو رو معرفي كني $REGFILE = "M16DEF.DAT" براي ATMEGA16 $REGFILE = "8535DEF.DAT" براي AT90S8535 $REGFILE="AT12DEF.DAT" براي ATTINY12 يك راه ديگه هم هست كه ميكرو رو از داخل تنظيمات خود نرم افزار معرفي مي كني 1- چطوري . يعني ديگه نمي خاد دستور $REGFILE رو بنويسيم 2- نه لازم نيست . براي اين كار به منوي OPTIONS نرم افزار مراجعه مي كني سپس گزينه COMPILR و بعد گزينه CHIP رو كليك مي كني يك پنجره باز مي شه كه اول صفحه نوشته CHIP . كه جلوش يك كادر هستش كه ميكرو رو اونجا انتخاب مي كني سپس OK مي كني 1- پس هميشه در برنامه اولين كاري كه بايد بكنم اينه كه ميكروكنترلر رو معرفي كنم طبق روش بالا كه گفتي نه ؟ 2- اره كاملا درسته دستور $CRYSTAL : دومين گامي كه بعد از معرفي ميكرو بايد انجام بدي اينه كه فركانس كاري ميكرو رو براي نرم افزار مشخص كني كه براي اين كار از دستور $CRYSTAL استفاده ميكني مثلا فرض كن فركانس ميكروي MEGA16 تو 8 مگاهرتز هستش يعني 8000000 هرتز كه با اين دستور فركانس كاري رو معرفي مي كني البته به هرتز : $CRYSTAL = 8000000 فركانس كاري ميكرو رو هم مي توني از داخل نرم افزار انتخاب كني به اين صورت كه مي روي داخل منوي OPTIONS سپس گزينه COMPILER سپس گزينه COMMUNICATION رو كليك مي كني يك پنجره باز مي شه در داخل اين پنجره يك جايي نوشته FERQUENCY كه جلوش شما بايد فركانس رو انتخاب كني و بعد OK كني END : در گام سوم پايان هر برنامه اي بايد از دستور END استفاده كني يعني اتمام برنامه 1- خوب بگو ببينم كه گام چهارم چي هستش 2- گام چهارمي وجود نداره خيط شدي . در واقع برنامه نويسي يعني قسمت شيرين كار از اينجا شروع ميشه. خوب حالا بهت توضيح ميدم كه براي نوشتن يك برنامه بايد چكار كرد اولين چيزي رو كه بايد بهت ياد بدم متغييرها هستند . همونطور كه از اسمش پيداست يعني قابل تغيير هستش . انواع متغيير ها عبارتند از: 1- BIT 2- BYTE 3- WORD 4- INTEGER 5- LONG 6- SINGLE 7- STRING . BIT كه يعني 0 و 1 BYTE تشكيل شده از هشت بيت و هر BYTE 0 تا 255 مقدار دارد WORD تشكيل شده از دو BYTE و هر WORD 0 تا 65535 مقدار دارد با بقيه متغيير ها هم فعلا كاري نداريم 1- خوب درست كارش چي هست و كجا كاربرد داره 2- بزار وقتي كه يكم رفتيم جلوتر كم كم مي فهمي خوب ادامه مطلب رو گوش كن دستور DIM : DIM به معني معرفي اسم متغيير است كه مي تونه هر اسمي باشه مثلا : A يا B يا ALI يا TEMO حتي اسم خودت فقط براي اينه كه متغيير رو يك نامي بهش بدي كه با بقيه متغييرها قاطي نشه دستور AS : AS به معني نوع متغيير هستش كه بايد يكي از انواع متغيير هاي BIT يا BYTE يا INTEGER باشه مثال: DIM A AS BYTE DIM B AS BIT DIM ALI AS BYTE DIM N AS SINGLE 1- يك مثال مفهومي تر بزن 2- باشه مثلا در DIM A AS BYTE . به اين معني كه متغييري كه نامش هست A از نوع بايت (BYTE) مي باشد DIM ALI AS BIT . يعني متغييري كه نامش هست ALI از نوع بيت BIT مي باشد . 1- حالا فهميدم 2- بزار بريم جلوتر مثال روز برات روشن ميشه كه اين دستورات كجا كاربرد داره در ضمن شما گاهي لازم است كه به متغيير مقدار هم بدي كه به ترتيب زير عمل مي كني مثلا شما يك متغيير داري از نوع بايت DIM S AS BYTE كه مي توني از 0 تا 255 بهش مقدار بدي به تريتيب زير S = 1 يا S = 12 يا S = 0 يا S = 255 يا هر رقمي كه از 0 تا 255 دوست داشتي البته اگه لازم بود دستور INCR : با نوشتن اين دستو شما مي توانيد يك متغيير را افزايش بدي به مثال زير توجه كن بهتر مي فهمي DIM B AS BYTE B=0 INCR B بزار از خط اول برات توضيح بدم برنامه اي كه ما نوشتم رو ميكرو مياد از خط اول شروع مي كنه به خوندن خط اول يعني ما يك متغيري داريم به نام B و از نوع BYTE خط دوم به متغيير B مقدار داديم خط سوم دستور داديم كه متغير B رو يك واحد افزايش بده وقتي كه ميكرو به خط سوم رسيد و اونو خوند اگه متغيير ما بوده 0 الان ميشه 1 1- كاربردش چيه اين دستور INCR 2- كاربردش توي شمارنده هستش دستور DECR : اين دستور برعكس دستور قبل هستش و يك واحد از متغيير ما كم مي كنه مثال : DIM U AS BYTE U = 20 DECR U خط اول يعني ما يك متغييري داريم كه اسمش هست U و از نوع بايت خط دوم به U مقدار داديم خط سوم يك واحد از مقدار U كم كرديم بزار يك مثال كاربردي تر بزنم : $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 DIM K AS BYTE K = 100 INCR K DECR K END خوب حال خوب گوش كن خط اول ما اومديم نوع ميكرو مونو مشخص كرديم كه هست مگا16 خط دوم فركانس كاري ميكرو رو مشخص كردم خط سوم گفتيم كه ما يك معغييري داريم به نام K و از نوع بايت خط چهارم براي متغيير بايت يك مقدار داديم خط پنجم دستور داديم كه يك واحد به متغيير K اضافه كن يعني اگه 100 بوده الان مي شه 101 خط ششم دستور داديم كه يك واحد از متغيير K كم كن يعني الان كه هست 101 يك واحد كه كم بشه ميشه 100 خط هفتم دستور پايان برنامه رو داديم 1- سوال دارم اگه مثلا در مثال بالا دستور INCR و يا DECR رو دو بار زير هم بنويسيم چي مي شه 2- براي پاسخ به سوالت به يك مثال ديگه توجه كن $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 DIM K AS BYTE K = 100 INCR K DECR K DECR K DECR K INCR K END خوب حال خوب گوش كن خط اول ما اومديم نوع ميكرو مونو مشخص كرديم كه هست مگا16 خط دوم فركانس كاري ميكرو رو مشخص كردم خط سوم گفتيم كه ما يك معغييري داريم به نام K و از نوع بايت خط چهارم براي متغيير بايت يك مقدار داديم خط پنجم دستور داديم كه يك واحد به متغيير K اضافه كن يعني اگه 100 بوده الان مي شه 101 خط ششم دستور داديم كه يك واحد از متغيير K كم كن يعني الان كه هست 101 يك واحد كه كم بشه ميشه 100 خط هفتم دوباره دستور داديم كه يك واحد از متغيير K كم كن خوب متغيير K كه الان هستش 100 ميشه 99 خط هشتم دوباره دستور داديم كه يك واحد از متغيير K كم كن خوب متغيير K كه 99 بوده ميشه الان 98 1- فهميدم بزار خط نهم و دهم رو خودم بگم ببينم ياد گرفتم يا نه خط نهم يعني خط نهم دستور داديم يك واحد به متغيير K اضاف بشه يعني الان كه K هستش 98 بعد از خونده شدن دستور خط نهم ميشه 99 و خط دهم يعني اتمام برنامه 2- احسنت افرين داري راه ميافتي ها 1- دستور بعدي چيه 2- دستور بعدي در مورد LCD هستش . بزار اول در مورد خود LCD برات بگم بعد دستوراتش رو با هم مرور مي كنيم LCD ها انواع مختلفي دارند اولي گرافيكي – دومي كاركتري كه من با كاركتري كار مي كنم شبيه lcd ماشين حساب هستش كه از نظر ابعاد هم باهم فرق دارن مثلا 16 در 1 – 16 در 2 – 16 در 4 – 40 در 4 و... 1- خوب مثلا اين شماره ها براي چيه مثلا همين 16 در 2 2- عدد اول يعني 16 به ما ميگه كه اين lcd ما 16 رديف ( افقي ) داره عدد دوم بعني 2 به ما مي گه اين lcd دو ستون ( عممودي ) داره 1- حالا گرفتم 2- اين lcd ها 14 پايه دارند كه ما فقط از 9 پايه ان استفاده مي كنيم كه براي استفاده از ان و وصل ان به ميكروكنترلر به ترتيب زير عمل مي كنيم پايه اول vss نام دارد كه به زمين وصل ميشه پايه دوم vdd هستش كه به ولتاژ 5 ولت وصل ميشه پايه سوم vee هستش كه به زمين وصل ميشه پايه چهارم rs هستش كه به ميكرو وصل مي شه . بعدا بهت مي گم به كجاي ميكرو وصل ميشه پايه پنجم rw هستش كه اونم به زمين وصل ميشه پايه ششم E هستش كه اونم به ميكرو وصل مي شه پايه هاي 7 8 9 10 كه هيچي به جايي وصل نميشن پايه 11 DB4 اسمش هست اونم به ميكرو وصل ميشه پايه 12 DB5 اسمش هست اونم به ميكرو وصل ميشه پايه 13 DB6 اسمش هست اونم به ميكرو وصل ميشه پايه 14 DB7 اسمش هست اونم به ميكرو وصل ميشه 1- يك سوال بعضي از پايه هاي بالا رو كه معرفي كردي گفتي وصل ميشه به LCD ولي نگفتي به كدوم پايه LCD بايد وصل بشه 2- بله نگفتم ولي اگر يكم صبر كني بهت ميگم . اگه يادت باشه وقتي كه داشتم نرم افزار BASCOM رو برات توضيح مي دادم گفتم كه توي منوي OPTINS بعد COMPILER يك گزينه هست به نام LCD شما اونجا مشخص مي كني كه پايه هاي ميكروكنترلر به كدوم پايه LCD وصل بشه كه بايد به ترتيب زير عمل كني بعد از اين كه وارد گزينه LCD توي نرم افزار شدي يك پنجره باز ميشه كه سمت راست اون شش كادر هستش كه شما بايد اونجا مشخص كني كه LCD به كدوم پايه هاي ميكرو وصل بشه . مي دانيم كه اكثر ميكرو ها داراي چهار PORT هستند البته به غير از خانواده TINY 1- پورت چيه واز؟؟ 2- به هر هشت پايه ميكرو يك پورت ميگن كه هر پورت باز خودش يك اسم داره مثلا ATMEGA32 داراي چهار پورت هستش به نام هاي A –B –C –D هر كدو از اين پورت ها هشت پايه هستند 1- از كجا بفهميم كه مثلا پورت A يا پورت C كجاست 2- باز هم از روي ديتاشيت خود ايسي 1- خوب ادامه بده 2- هنگامي كه شما مي خاي LCD رو به ميكرو وصل كني بايد در گزينه LCD يك پورت رو به دلخاه انتخاب كني 1- فرقي نميكنه كه كدوم پورت باشه 2- نه هر كدو از پورت ها كه دوست داشته مثلا پورت A يا پورت D 1- اها خوب ادامه بده 2- مثلا حال كردي كه LCD رو به پورت C وصل كني براي اين كار در نرم افزار وقتي كه به قسمت LCD رفتي و يك پنجره باز شد در قسمت راست پنجره شش گزينه براي انتخاب وجود داره كه بايد به ترتيب زير عمل كني : اولين گزينه از بالا نوشته ENABLE كه بايد PORTC.5 رو انتخاب كني دومين گزينه نوشته RS كه بايد PORTC.4 رو انتخاب كني سومين گزينه نوشته DB7 كه بايد PORTC.3 رو انتخاب كني چهارمين گزينه نوشته DB6 كه بايد PORTC.2 رو انتخاب كني پنجمي گزينه نوشته DB5 كه بايد PORTC.1 رو انتخاب كني ششمين گزينه نوشته DB4 كه بايد PORTC.0 رو انتخاب كني حال فهميدي كدوم پايه هاي ميكرو به LCD وصل ميشه 1- اها پس سخت افزاري هم بايد به ترتيبي كه مثل بالا مشخص كرديم LCD رو به ميكروكنترلر وصل كنيم 2- كاملا درسته. شما مختاري كه هر PORT كه دوست داشتي رو به ميكرو وصل كني ولي بايد هر پورتي كه توي ذهنت در نظر داري رو توي نرم افزار مثل شكل بالا انتخاب كني يك نكته ديگه اينكه در قسمت سمت چپ همين پنجره LCD يك گزينه هست به نام LCD TYPE كه شما اونجا اندازه LCD تو مشخص مي كني مثلا يك LCD رفتي خريدي كه اندازش هست 16در 2 توي اين گزينه بايد 16*2 رو انتخاب كني بعدي OK رو بزني . خوب حال بريم سر دستورات LCD : دستور CLS : اين دستور كل LCD رو پاك و اماده نوشتن مي كنه كه هميشه بايد قبل از دستور نوشت روي LCD اين دستور نوشته بشه دستور LCD : خوب با اين دستور شما مي توني يك عبارت رو روي LCD نمايش بدي مثلا يك عدد يا يك اسم يا يك كلمه يا يك متغيير . البته قبل اين دستور بايد حتما CLS نوشته بشه اين مثال توجه كن $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 CLS LCD " ALI " END دو خط اول رو كه مي دوني چي هستش .در خط سوم دستور پاك كردن LCD رو با دستور CLS داديم در خط چهارم يعني اينكه روي صفحه LCD بنويس ALI . البته به جاي ALI هر چيز ديگه اي هم مي شه نوشت از قبيل عدد . كلمه جمله مثل مثال زير $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 CLS LCD " 999 " END مثل مثال قبل 1- اها فهميدم 2- يادت مياد كه بهت گفتم نرم افزار بيسكام يك جايي داره به نام شبيه ساز 1- اره چطور مگه 2- خوب تو مي توني اونجا اين دستوراتي رو كه امروز يادت دادم رو اونجا شبيه سازي كني 1- تو كه گفتي از اين شبيه سازش خوشت نمي ياد 2- اره منظورم اين بود كه توي كار هاي بزرگ نميشه ازش استفاده كرد ولي توي كارهاي كوچيك ميشه ازش استفاده كرد 1- حالا چي كار مي كنه اين شبيه ساز نرم افزار 2- برنامه اي رو كه تو نوشتي برات شبيه سازي مي كنه داخلش يك LCD هم داره برو حال كن 1- چطوري ازش استفاده كنم 2- بعد از اين كه تو برنامه رو نوشتي بايد برنامتو از نظر نداشتن خطا چك كني 1- چطوري 2- با زدن كليد F7 . بعد اگه برنامت اشكالي نداشت كليد F2 رو مي زني و وارد محيط شبيه ساز يا همون SIMULATOR ميشي 1- اينطوري گيج ميشم يك مثال هم بزن 2- باشه به روي چشم فرض كن كه ما يكي از برنامه هاي بالا رو نوشتيم مثل برنامه زير: $REGFILE = "M16DEF.DAT" $CRYSTAL = 8000000 CLS LCD " ALI " END درضمن تنظيمات روهم مثل بالا كه گفتم پايه هاي LCD رو توي نرم افزار انتخاب كن رو مثل بالا انتخاب مي كني بعد دكمه F7 رو بزن تا برنامه چك بشه بعد دكمه F2 رو بزن تا وارد محيط شبيه ساز بشي . توي محيط شبيه ساز خيلي دكمه هستش كه من فقط چند تارو كه كاربرد داره برات ميگم دكمه اوال از بالا سمت چپ شبيه دكمه PLAY ويدو هست كه اسمش هست RUN PROGRAM كه براي اجراي برنامه شبيه ساز هستش دكمه بعدي كه هچي دكمه بقليش شبييه دكمه استپ ويدو هست كه اسمش هست STOP PROGRAM كه براي توقف شبيه سازي هستش چند تا دكمه اون طرفتر يك دكمه كه داخلش يك مستطيل ابي رنگي هستش و روش نوشته LCD . اين دكمه رو وقتي كه ميزني يك LCD توشه خوب ادامه حالا كه وارد محيط شبيه ساز شدي اول براي شبيه سازي مثال بالا دكمه LCD رو انتخاب مي كني بعد دكمه RUN PROGRAM رو ميزني بايد يك ده پانزده ثانيه صبر مي كني تا روي LCD نوشته بشه ALI براي امروزديگه بسه باشه بقيش براي يك فرصت ديگه فعلا باي- 60 پاسخ
-
- 16
-
