XMod
 جلسه‌ي سي و ششم
جلسه‌ي سي و ششم
ادامه‌ي مبحث PWM، توابع ايجاد وقفه (Delay)، رجيستر‌هاي OCRx و ...

به نام خدا
با عرض سلام خدمت دوستان عزيز
در اين جلسه نيز مبحث PWM را دنبال مي‌كنيم. عزيزان براي درك مطالب اين جلسه حتماً بايد جلسه‌ي قبل را مطالعه كرده باشند. در اين جلسه به  آي‌سي L298 نيز اشاراتي شده است كه دوستان مي‌توانند جهت ياد‌اوري، بخش مربوط به L298 در جلسه‌ي 17 را نيز مرور كنند.

ابتدا با توابعي كه براي ايجاد وقفه در اجراي دستورات برنامه توسط CodeVision براي كاربران در نظر گرفته شده آشنا مي‌شويم.
همان‌طور كه در جلسه‌ي پيش ديديم، در قسمت‌هايي از برنامه ممكن است نياز پيدا كنيم تا براي لحظاتي روند اجراي دستورات را متوقف كنيم. CodeVision براي اين كار توابعي را از پيش تنظيم كرده است. (در مورد مبحث «توابع» در زبان C در آينده مفصل توضيح خواهيم داد.)


delay



براي ايجاد تاخير در روند اجراي دستورات، CodeVision دو تابع زير را در اختيار ما قرار داده است.

delay_ms( );
delay_us( );





تابع ()delay_ms براي ايجاد تاخير‌هايي در حد ميلي ثانيه به كار مي‌رود. در داخل پرانتز، يك عدد صحيح مثبت مي‌نويسيم كه نشان دهنده‌ي اندازه‌ي تاخير مورد نيز ما بر حسب ميلي ثانيه است. به بيان ساده‌تر، مثلاً اگر داخل پرانتز عدد 100 را بنويسيم، روند اجراي برنامه به اندازه‌ي 100 ميلي ثانيه در همان خط متوقف خواهد شد.
تابع ()delay_us براي ايجاد تاخير‌هايي در حد ميكروثانيه به كار مي‌رود. نحوه‌ي استفاده از آن دقيقاً مانند ()delay_ms است.
به عنوان يك مثال عملي،همان برنامه‌ي ايجاد PWM 2.5 ولت را با استفاده از توابع delay بازنويسي مي‌كنيم.

while(1)
{
PORTB.4=1;
delay_ms(5);   // 5 milliseconds delay
PORTB.4=0; 
delay_ms(5);    //5 milliseconds delay
}











تنها نكته‌ي بسيار مهم در استفاده از توابع delay اضافه كردن هِدِرفايل Header file  باعنوان delay.h به برنامه است.( در مورد هدر فايل‌ها هم در آينده توضيح خواهيم داد، اما در اين جلسه هيچ توضيحي در مورد آن نمي‌دهيم تا از بحث اصلي يعني PWM منحرف نشويم.) براي اين كار، جمله

 ‌كه اولين جمله‌ي برنامه‌ي شما است را پيدا كنيد. (اين جمله را CodeWizard در برنامه‌ي شما نوشته است). حال كافيست اين جمله را درست زير ان تايپ كنيد:

دقت كنيد كه اين دستور نيازي به « ; » ندارد !!

با آموختن تابع delay، ديگر شما مي‌توانيد هر ولتاژي را كه مي‌خواهيد بر روي پايه‌هاي خروجي ايجاد كنيد. البته دوستان دقت داشته باشند كه ولتاژي كه با تكنيك PWM شبيه سازي مي‌شوند، در حقيقت ولتاژ خاصي نيستند و فقط شبيه سازي شده‌ي ولتاژهاي مختلف هستند. هرچند كه در راه‌اندازي موتورها اين تكنيك بسيار كارآمد است، اما بايد دقت نظر لازم را در استفاده از اين تكنيك در ساير موارد را داشته باشيد.

همانطور كه مي‌دانيد موتور‌هاي متعارفي كه براي ساخت ربات‌ها استفاده مي‌شود،ممكن است ولتاژ‌هاي كاري مختلفي داشته باشند (مثلاً 12ولت، 24 ولت، 6 ولت و ...) و براي راه‌اندازي آن‌ها بايد از درايور‌هاي موتور مثل L298 استفاده ‌كنيم.  سوالي كه ممكن است پيش آيد اين است كه وقتي ما ميكروكنترلر را به درايور‌هاي موتور(مثل L298) وصل مي‌كنيم و از تكنيك PWM براي كنترل سرعت موتور استفاده مي‌كنيم، چه وضعيتي پيش مي‌آيد؟ مثلاً وقتي ما PWM مربوط به ولتاژ 2.5 ولت را توليد مي‌كنيم، درايور ما چه عكس العملي نشان مي‌دهد؟ آيا ولتاژ 2.5 ولت بر روي پايه‌هاي موتور قرار مي‌گيرد؟

براي پاسخ دادن به اين سوال بايد به ساختار PWM دقت كنيم، ما وقتي PWM مربوط  به 2.5 ولت را توليد مي‌كنيم، در حقيقت سطح ولتاژ خروجي را با فواصل زماني برابر 0 و 1 مي‌كنيم، پس اگر اين خروجي را، به ورودي L298 وصل كنيم(مثلاً پايه‌ي 7)، L298 نيز موتور را با همين الگو ‌كنترل مي‌كند و ولتاژي كه به موتور مي‌دهد را 0 و 1  مي‌كند. و همانطور كه مي‌دانيد، L298 هر ولتاژي كه بر روي پايه‌‌ي شماره‌ي 4 آن قرار گرفته باشد را بر روي موتور قرار مي‌دهد(اگر ولتاژ كاري موتور 12 ولت باشد، بايد اين پايه به 12 ولت متصل شود) . پس جواب سوال بالا منفيست!!!  وقتي ما PWM مربوط به 2.5 ولت را توليد مي‌كنيم، در حقيقت سطح ولتاژ خروجي در 50 درصد زمان 1 و بقيه‌ي زمان 0 است. پس اگر همان طور كه در بالا اشاره شد، اين PWM به درايوري مثل L298 داده شود، و ولتاژ پايه‌ي 4 ِ آن 12ولت باشد، درايور، ولتاژ 6 ولت را به موتور مي‌دهد. در نتيجه اهميتي ندارد چه ولتاژي بر روي پايه‌ي 4 ِ L298 قرار گرفته باشد، وقتي كه ما PWM مربوط به 2.5 ولت را توليد مي‌كنيم، درايور ولتاژي كه به موتور مي‌دهد را 50 درصد مي‌كند. در نتيجه بهتر است از اين به بعد به جاي آن كه بگوييم PWM مربوط به 2.5 ولت، بگوييم PWMااا50 درصد. يا به جاي PWM ِمربوط به 1 ولت، بگوييم PWMااا20 درصد


PWM در ميكروكنترلر‌هاي AVR




انجام تنظيمات اوليه براي استفاده از PWM براي راه اندازي موتور درميكروكنترلر‌هاي AVR كمي پيچيده است، اما در اينجا هم CodeWizard به كمك ما آمده است و كار را كمي ساده‌تر كرده است. ما در جلسه‌ي آينده  بخشي از تنظيمات CodeWizard را بدون توضيح مطرح مي‌نماييم، زيرا توضيح هر بخش از آن نيازمند مقدمات مفصلي است و تاثير چنداني هم در روند كار ما ندارد، اما به دوستاني كه مي‌خواهند ميكروكنترلر را كاملاً حرفه‌اي دنبال كنند، پيشنهاد مي‌كنم از منابعي كه قبلاً معرفي شده است، مطالب را تكميل كنند.
به هر حال دوستان عزيز با انجام اين تنظيمات اوليه‌ي مختصر در CodeWizard، مي‌توانند از الگويي به مراتب ساده‌تر از آنچه تا به حال آموخته‌ايم، براي ايجاد PWM براي هدايت موتورهاي ربات استفاده نمايند.

در ميكروكنترلر‌هاي خانواده‌ي AVR، نيازي نيست در هربار استفاده از PWM ، چندين خط برنامه بنويسيم.  در ATmega16 چهارپايه‌ي مشخص از آي سي به اين موضوع اختصاص داده شده است. يعني اين چهارپايه علاوه بر كاربرد‌هاي معمولي خود، اين قابليت را دارند كه در مواقع لزوم براي توليد PWM استفاده شوند.
حال سوال اينجاست كه اين چهارپايه چه تفاوتي با بقيه‌ي پايه‌هاي خروجي آي‌سي دارند كه آن‌ها را از ساير پايه‌هاي خروجي ميكروكنترلر متمايز مي‌سازد؟
براي اين چهارپايه نيازي به اجراي الگويي كه تا به حال براي ايجاد PWM فراگرفته‌ايد نيست. در اين روش، فقط  شما بايد يك عدد صحيح بين 0 تا 255 انتخاب كنيد، و طبق الگوي زير آن را در برنامه‌ي خود بنويسيد.


يك عدد صحيح بين 0 تا 255 = نام رجيستر مربوطه‌  ;

اين عدد، بيانگر توان PWM شماست، و  شما توان PWM ِ مورد نياز خود را با اين عدد مشخص مي‌كنيد. كه 255 بالاترين توان و مربوط بهPWMااا100 درصداست، و  0 پايين‌ترين توان و مربوط به PWMااا0 درصد است.
به عنوان مثال اگر اين عدد را  128 قرار دهيد، همان PWMااا50 درصد را ايجاد كرده‌ايد. يا مثلا اگر اين عدد 51 باشد، PWMااا20 درصد بر روي پايه قرار داده‌ايد.


رجيستر‌هاي مربوط به اين 4 پايه




همانطور كه مي‌دانيد، براي پايه‌هايي كه در CodeWizard به صورت خروجي تعريف شده‌اند، رجيستري به نام «PORTx» وجود دارد كه هر مقداري در اين رجيستر قرار داده ‌شود، مقدار پايه‌هاي خروجي متناظر با آن رجيستر را مشخص مي‌كند.(رجوع به جلسه‌ي 24،تعريف رجيستر PORTx).
در اين جلسه با 4 رجيستر ديگر آشنا مي‌شويم، كه وقتي تنظيمات مربوط به PWM ِ موتور در CodeWizard را انجام  دهيم، هر مقداري كه در‌ آن‌ها ريخته شود، توان PWM پايه‌ي متناظر را مشخص مي‌كنند.
اين رجيستر‌ها OCR0، OCR1AL، OCR1BL و OCR2 نام دارند كه به ترتيب، متناظر پايه‌هاي PB.3، PD.5، PD.4  و PD.7‌ هستند.
پس مثلاً اگر در بخشي از برنامه‌ي خود بنويسيم :

OCR0=127; 



در حقيقت بر روي پايه‌ي PB.3 ميكروكنترلر، PWMااا50-درصد به وجود آورده‌ايم.

به مثال‌هاي ديگري توجه كنيد: (توضيح هر دستور در جلوي دستور و  بعد از // آورده شده است)

OCR1AL=51; // 20% Duty Cycle on PD.5
OCR1BL=255; //100% Duty Cycle on PD.4
OCR2=0;  //0% Duty Cycle on PD.7






در جلسه‌ي آينده، در مورد نحوه‌ي انجام تنظيمات اوليه‌ جهت توليد PWM در CodeWizard را توضيح خواهيم داد.

منتظر سوالات و نظرات دوستان خوبم هستم.
شاد و پيروز باشيد
دوست شما، فراز اميرغياثوند



1388/2/19 لينک مستقيم

فرستنده :
محمد رضا HyperLink HyperLink 1388/2/31
مـتـن : سلام.
خسته نباشید.
من یه ربات مسیر یاب درست کردم ،
دو تا سوال داشتم: یکی اینکه سنسور ها خطوط سیاهی رو که حس میکنن در غالب چه چیزی به میکروکنترلر (PIC16F84A) من می فرستن؟ شما تو یکی از جلسات خیلی کوتاه گفته بودید که همه ورودی های میکروکنترولر منطقی هستند و اگر سطح ولتاژ بین 0 تا 2.5 باشد ورودی ، صفر منطقی و اگر بین 2.5 تا 5 باشد ورودی یک منطقی محسوب می شود. می خواستم ببینم این یعنی اینکه سنسور ها اطلاعات رو در غالب ولتاژ به میکروکنترولر می فرستن؟ سوال دیگم این که تو چند خط از سرس میکروکنترلر PUASE 100 آورده شده ، این یعنی چی؟ مثل همون دستور DELAY کار می کنه ؟
خواهش میکنم جوابمو بدید، من باید شنبه پروژمو ارائه بدم.
از مطالب خوبتونم خیلی ممنونم. عالیه.
پاسـخ : سلام دوست عزيز.
بله، اطلاعات در غالب يك ولتاژ براي ميكروكنترلر ارسال مي‌شود.
من نمي‌دونم شما از چه كامپايلري براي ميكروكنترلتون استفاده كرديد. به هر حال مبحث ميكروكنترلر‌هاي PIC جزو مباحث آموزشي ما نيست و من نمي‌تونم اطلاعات زيادي در مورد اين پروژه در اختيار شما بذارم.
موفق باشيد.

فرستنده :
آرش HyperLink HyperLink 1388/2/31
مـتـن : سلام
آقا فراز حدودا تا کی جلسات ادامه داره؟
(کی کلا تموم میشه؟)
پاسـخ : سلام آرش جان
من نمي‌تونم جواب مشخصي به سوال شما بدم. چون رباتيك يك علم بسيار وسيع و گسترده است و هرچقدر مطلب در موردش مطرح بشه باز هم مطالب نا گفته‌ي زيادي باقي مي‌مونه. ما سعي مي‌كنيم تا جاي ممكن اين مطالب را ادامه بديم تا يك منبع نسبتاً كامل و جامع براي علاقه مندان رباتيك محيا كنيم. موفق باشي دوست عزيز

فرستنده :
مهدی HyperLink HyperLink 1388/2/31
مـتـن : سلام فراز جووووووووووووون خسته نباشی مرسی.......
میخواستم ببینم اگه مدار میکروکنترلر رو به ادابتور 5 ولت راهندازی کنیم میکروکنترلر آآآآآآتتتیشش نمیگیره.....
پاسـخ : سلام مهدي جان
ممنونم از لطفت.
نه، دليلي وجود نداره كه ميكروكنترلر آسيب ببينه، مگر اينكه ولتاژ ميكروكنترلر شما از تنظيم خارج شده باشد و ولتاژ خروجي بيش از 5 ولت باشد. موفق باشي

فرستنده :
احسان HyperLink HyperLink 1388/2/31
مـتـن : سلام فراز جان من تازه چند روزه که این سایت رو پیدا کردم و از مطالب خوبتون واقعا متشکرم. من تمام جلسات شما رو بطور کامل از اول مطالعه کردم ولی کمی در برخی از مطالب دچار ابهام شدم. آیا میتوانید چند تا از نقشه های مدارها (منبع تغذیه و درایور های موتور و...) رو برام بفرستید بطوری که بتونم از آنها بعنوان مدارهای اصلی استفاده کنم؟
با سپاس فراوان
پاسـخ : سلام
خيلي ممنونم دوست عزيزم
نقشه‌ي كامل مدار اصلي يك ربات مسيرياب مقدماتي بدون ميكروكنترلر در سايت گذاشته شده است. موفق باشيد

فرستنده :
محمد رضا HyperLink HyperLink 1388/2/31
مـتـن : دوباره سلام.
شما تو جلسه 22 گفتید که برای پروگرام کردن آی سی های AVR از نرم افزار Code Vision استفاده می شه، آی سی PIC16F84A جزء خانواده AVR هست ؟ اگه نیست برای پروگرام کردنش چه نرم افزاری لازمه ؟
پاسـخ : سلام دوست عزيز
خير، اين آي‌سي جزو خانواده ميكروكنترلر‌هاي PIC است . براي پروگرام كردن اين خانواده متود‌هاي متفاوتي وجود داره كه ما در مورد اونها توضيح نداده‌ايم.

فرستنده :
پسر آریایی HyperLink HyperLink 1388/2/31
مـتـن : سلام دوست عزیز.
از سایت بی همتاتون واقعا متشکرم.
می خواست ببینم آیا میتوان از موتور ضبط صوت به عنوان موتور روبات استفاده کرد؟؟؟؟؟
پاسـخ : سلام . خيلي ممنونم
خير، چون موتور ضبط صوت معمولاً قدرت زيادي ندارد. موفق باشيد دوست عزيز

فرستنده :
azarakhsh HyperLink HyperLink 1388/2/31
مـتـن : ba arze salam va khaste nabashid
az matalebe mofidetoon rajebeh robatic tashakor mikonam... kheyli az moshkelatam ro dar in zamine hal kardam
پاسـخ : سلام دوست عزيز
خواهش مي‌كنم، برات آرزوي موفقيت مي‌كنم دوست عزيز

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تایید انصراف
 جلسه‌ي سي و ششم
جلسه‌ي سي و ششم
ادامه‌ي مبحث PWM، توابع ايجاد وقفه (Delay)، رجيستر‌هاي OCRx و ...

به نام خدا
با عرض سلام خدمت دوستان عزيز
در اين جلسه نيز مبحث PWM را دنبال مي‌كنيم. عزيزان براي درك مطالب اين جلسه حتماً بايد جلسه‌ي قبل را مطالعه كرده باشند. در اين جلسه به  آي‌سي L298 نيز اشاراتي شده است كه دوستان مي‌توانند جهت ياد‌اوري، بخش مربوط به L298 در جلسه‌ي 17 را نيز مرور كنند.

ابتدا با توابعي كه براي ايجاد وقفه در اجراي دستورات برنامه توسط CodeVision براي كاربران در نظر گرفته شده آشنا مي‌شويم.
همان‌طور كه در جلسه‌ي پيش ديديم، در قسمت‌هايي از برنامه ممكن است نياز پيدا كنيم تا براي لحظاتي روند اجراي دستورات را متوقف كنيم. CodeVision براي اين كار توابعي را از پيش تنظيم كرده است. (در مورد مبحث «توابع» در زبان C در آينده مفصل توضيح خواهيم داد.)


delay



براي ايجاد تاخير در روند اجراي دستورات، CodeVision دو تابع زير را در اختيار ما قرار داده است.

delay_ms( );
delay_us( );





تابع ()delay_ms براي ايجاد تاخير‌هايي در حد ميلي ثانيه به كار مي‌رود. در داخل پرانتز، يك عدد صحيح مثبت مي‌نويسيم كه نشان دهنده‌ي اندازه‌ي تاخير مورد نيز ما بر حسب ميلي ثانيه است. به بيان ساده‌تر، مثلاً اگر داخل پرانتز عدد 100 را بنويسيم، روند اجراي برنامه به اندازه‌ي 100 ميلي ثانيه در همان خط متوقف خواهد شد.
تابع ()delay_us براي ايجاد تاخير‌هايي در حد ميكروثانيه به كار مي‌رود. نحوه‌ي استفاده از آن دقيقاً مانند ()delay_ms است.
به عنوان يك مثال عملي،همان برنامه‌ي ايجاد PWM 2.5 ولت را با استفاده از توابع delay بازنويسي مي‌كنيم.

while(1)
{
PORTB.4=1;
delay_ms(5);   // 5 milliseconds delay
PORTB.4=0; 
delay_ms(5);    //5 milliseconds delay
}











تنها نكته‌ي بسيار مهم در استفاده از توابع delay اضافه كردن هِدِرفايل Header file  باعنوان delay.h به برنامه است.( در مورد هدر فايل‌ها هم در آينده توضيح خواهيم داد، اما در اين جلسه هيچ توضيحي در مورد آن نمي‌دهيم تا از بحث اصلي يعني PWM منحرف نشويم.) براي اين كار، جمله

 ‌كه اولين جمله‌ي برنامه‌ي شما است را پيدا كنيد. (اين جمله را CodeWizard در برنامه‌ي شما نوشته است). حال كافيست اين جمله را درست زير ان تايپ كنيد:

دقت كنيد كه اين دستور نيازي به « ; » ندارد !!

با آموختن تابع delay، ديگر شما مي‌توانيد هر ولتاژي را كه مي‌خواهيد بر روي پايه‌هاي خروجي ايجاد كنيد. البته دوستان دقت داشته باشند كه ولتاژي كه با تكنيك PWM شبيه سازي مي‌شوند، در حقيقت ولتاژ خاصي نيستند و فقط شبيه سازي شده‌ي ولتاژهاي مختلف هستند. هرچند كه در راه‌اندازي موتورها اين تكنيك بسيار كارآمد است، اما بايد دقت نظر لازم را در استفاده از اين تكنيك در ساير موارد را داشته باشيد.

همانطور كه مي‌دانيد موتور‌هاي متعارفي كه براي ساخت ربات‌ها استفاده مي‌شود،ممكن است ولتاژ‌هاي كاري مختلفي داشته باشند (مثلاً 12ولت، 24 ولت، 6 ولت و ...) و براي راه‌اندازي آن‌ها بايد از درايور‌هاي موتور مثل L298 استفاده ‌كنيم.  سوالي كه ممكن است پيش آيد اين است كه وقتي ما ميكروكنترلر را به درايور‌هاي موتور(مثل L298) وصل مي‌كنيم و از تكنيك PWM براي كنترل سرعت موتور استفاده مي‌كنيم، چه وضعيتي پيش مي‌آيد؟ مثلاً وقتي ما PWM مربوط به ولتاژ 2.5 ولت را توليد مي‌كنيم، درايور ما چه عكس العملي نشان مي‌دهد؟ آيا ولتاژ 2.5 ولت بر روي پايه‌هاي موتور قرار مي‌گيرد؟

براي پاسخ دادن به اين سوال بايد به ساختار PWM دقت كنيم، ما وقتي PWM مربوط  به 2.5 ولت را توليد مي‌كنيم، در حقيقت سطح ولتاژ خروجي را با فواصل زماني برابر 0 و 1 مي‌كنيم، پس اگر اين خروجي را، به ورودي L298 وصل كنيم(مثلاً پايه‌ي 7)، L298 نيز موتور را با همين الگو ‌كنترل مي‌كند و ولتاژي كه به موتور مي‌دهد را 0 و 1  مي‌كند. و همانطور كه مي‌دانيد، L298 هر ولتاژي كه بر روي پايه‌‌ي شماره‌ي 4 آن قرار گرفته باشد را بر روي موتور قرار مي‌دهد(اگر ولتاژ كاري موتور 12 ولت باشد، بايد اين پايه به 12 ولت متصل شود) . پس جواب سوال بالا منفيست!!!  وقتي ما PWM مربوط به 2.5 ولت را توليد مي‌كنيم، در حقيقت سطح ولتاژ خروجي در 50 درصد زمان 1 و بقيه‌ي زمان 0 است. پس اگر همان طور كه در بالا اشاره شد، اين PWM به درايوري مثل L298 داده شود، و ولتاژ پايه‌ي 4 ِ آن 12ولت باشد، درايور، ولتاژ 6 ولت را به موتور مي‌دهد. در نتيجه اهميتي ندارد چه ولتاژي بر روي پايه‌ي 4 ِ L298 قرار گرفته باشد، وقتي كه ما PWM مربوط به 2.5 ولت را توليد مي‌كنيم، درايور ولتاژي كه به موتور مي‌دهد را 50 درصد مي‌كند. در نتيجه بهتر است از اين به بعد به جاي آن كه بگوييم PWM مربوط به 2.5 ولت، بگوييم PWMااا50 درصد. يا به جاي PWM ِمربوط به 1 ولت، بگوييم PWMااا20 درصد


PWM در ميكروكنترلر‌هاي AVR




انجام تنظيمات اوليه براي استفاده از PWM براي راه اندازي موتور درميكروكنترلر‌هاي AVR كمي پيچيده است، اما در اينجا هم CodeWizard به كمك ما آمده است و كار را كمي ساده‌تر كرده است. ما در جلسه‌ي آينده  بخشي از تنظيمات CodeWizard را بدون توضيح مطرح مي‌نماييم، زيرا توضيح هر بخش از آن نيازمند مقدمات مفصلي است و تاثير چنداني هم در روند كار ما ندارد، اما به دوستاني كه مي‌خواهند ميكروكنترلر را كاملاً حرفه‌اي دنبال كنند، پيشنهاد مي‌كنم از منابعي كه قبلاً معرفي شده است، مطالب را تكميل كنند.
به هر حال دوستان عزيز با انجام اين تنظيمات اوليه‌ي مختصر در CodeWizard، مي‌توانند از الگويي به مراتب ساده‌تر از آنچه تا به حال آموخته‌ايم، براي ايجاد PWM براي هدايت موتورهاي ربات استفاده نمايند.

در ميكروكنترلر‌هاي خانواده‌ي AVR، نيازي نيست در هربار استفاده از PWM ، چندين خط برنامه بنويسيم.  در ATmega16 چهارپايه‌ي مشخص از آي سي به اين موضوع اختصاص داده شده است. يعني اين چهارپايه علاوه بر كاربرد‌هاي معمولي خود، اين قابليت را دارند كه در مواقع لزوم براي توليد PWM استفاده شوند.
حال سوال اينجاست كه اين چهارپايه چه تفاوتي با بقيه‌ي پايه‌هاي خروجي آي‌سي دارند كه آن‌ها را از ساير پايه‌هاي خروجي ميكروكنترلر متمايز مي‌سازد؟
براي اين چهارپايه نيازي به اجراي الگويي كه تا به حال براي ايجاد PWM فراگرفته‌ايد نيست. در اين روش، فقط  شما بايد يك عدد صحيح بين 0 تا 255 انتخاب كنيد، و طبق الگوي زير آن را در برنامه‌ي خود بنويسيد.


يك عدد صحيح بين 0 تا 255 = نام رجيستر مربوطه‌  ;

اين عدد، بيانگر توان PWM شماست، و  شما توان PWM ِ مورد نياز خود را با اين عدد مشخص مي‌كنيد. كه 255 بالاترين توان و مربوط بهPWMااا100 درصداست، و  0 پايين‌ترين توان و مربوط به PWMااا0 درصد است.
به عنوان مثال اگر اين عدد را  128 قرار دهيد، همان PWMااا50 درصد را ايجاد كرده‌ايد. يا مثلا اگر اين عدد 51 باشد، PWMااا20 درصد بر روي پايه قرار داده‌ايد.


رجيستر‌هاي مربوط به اين 4 پايه




همانطور كه مي‌دانيد، براي پايه‌هايي كه در CodeWizard به صورت خروجي تعريف شده‌اند، رجيستري به نام «PORTx» وجود دارد كه هر مقداري در اين رجيستر قرار داده ‌شود، مقدار پايه‌هاي خروجي متناظر با آن رجيستر را مشخص مي‌كند.(رجوع به جلسه‌ي 24،تعريف رجيستر PORTx).
در اين جلسه با 4 رجيستر ديگر آشنا مي‌شويم، كه وقتي تنظيمات مربوط به PWM ِ موتور در CodeWizard را انجام  دهيم، هر مقداري كه در‌ آن‌ها ريخته شود، توان PWM پايه‌ي متناظر را مشخص مي‌كنند.
اين رجيستر‌ها OCR0، OCR1AL، OCR1BL و OCR2 نام دارند كه به ترتيب، متناظر پايه‌هاي PB.3، PD.5، PD.4  و PD.7‌ هستند.
پس مثلاً اگر در بخشي از برنامه‌ي خود بنويسيم :

OCR0=127; 



در حقيقت بر روي پايه‌ي PB.3 ميكروكنترلر، PWMااا50-درصد به وجود آورده‌ايم.

به مثال‌هاي ديگري توجه كنيد: (توضيح هر دستور در جلوي دستور و  بعد از // آورده شده است)

OCR1AL=51; // 20% Duty Cycle on PD.5
OCR1BL=255; //100% Duty Cycle on PD.4
OCR2=0;  //0% Duty Cycle on PD.7






در جلسه‌ي آينده، در مورد نحوه‌ي انجام تنظيمات اوليه‌ جهت توليد PWM در CodeWizard را توضيح خواهيم داد.

منتظر سوالات و نظرات دوستان خوبم هستم.
شاد و پيروز باشيد
دوست شما، فراز اميرغياثوند



1388/2/19 لينک مستقيم

فرستنده :
محمد رضا HyperLink HyperLink 1388/2/31
مـتـن : سلام.
خسته نباشید.
من یه ربات مسیر یاب درست کردم ،
دو تا سوال داشتم: یکی اینکه سنسور ها خطوط سیاهی رو که حس میکنن در غالب چه چیزی به میکروکنترلر (PIC16F84A) من می فرستن؟ شما تو یکی از جلسات خیلی کوتاه گفته بودید که همه ورودی های میکروکنترولر منطقی هستند و اگر سطح ولتاژ بین 0 تا 2.5 باشد ورودی ، صفر منطقی و اگر بین 2.5 تا 5 باشد ورودی یک منطقی محسوب می شود. می خواستم ببینم این یعنی اینکه سنسور ها اطلاعات رو در غالب ولتاژ به میکروکنترولر می فرستن؟ سوال دیگم این که تو چند خط از سرس میکروکنترلر PUASE 100 آورده شده ، این یعنی چی؟ مثل همون دستور DELAY کار می کنه ؟
خواهش میکنم جوابمو بدید، من باید شنبه پروژمو ارائه بدم.
از مطالب خوبتونم خیلی ممنونم. عالیه.
پاسـخ : سلام دوست عزيز.
بله، اطلاعات در غالب يك ولتاژ براي ميكروكنترلر ارسال مي‌شود.
من نمي‌دونم شما از چه كامپايلري براي ميكروكنترلتون استفاده كرديد. به هر حال مبحث ميكروكنترلر‌هاي PIC جزو مباحث آموزشي ما نيست و من نمي‌تونم اطلاعات زيادي در مورد اين پروژه در اختيار شما بذارم.
موفق باشيد.

فرستنده :
آرش HyperLink HyperLink 1388/2/31
مـتـن : سلام
آقا فراز حدودا تا کی جلسات ادامه داره؟
(کی کلا تموم میشه؟)
پاسـخ : سلام آرش جان
من نمي‌تونم جواب مشخصي به سوال شما بدم. چون رباتيك يك علم بسيار وسيع و گسترده است و هرچقدر مطلب در موردش مطرح بشه باز هم مطالب نا گفته‌ي زيادي باقي مي‌مونه. ما سعي مي‌كنيم تا جاي ممكن اين مطالب را ادامه بديم تا يك منبع نسبتاً كامل و جامع براي علاقه مندان رباتيك محيا كنيم. موفق باشي دوست عزيز

فرستنده :
مهدی HyperLink HyperLink 1388/2/31
مـتـن : سلام فراز جووووووووووووون خسته نباشی مرسی.......
میخواستم ببینم اگه مدار میکروکنترلر رو به ادابتور 5 ولت راهندازی کنیم میکروکنترلر آآآآآآتتتیشش نمیگیره.....
پاسـخ : سلام مهدي جان
ممنونم از لطفت.
نه، دليلي وجود نداره كه ميكروكنترلر آسيب ببينه، مگر اينكه ولتاژ ميكروكنترلر شما از تنظيم خارج شده باشد و ولتاژ خروجي بيش از 5 ولت باشد. موفق باشي

فرستنده :
احسان HyperLink HyperLink 1388/2/31
مـتـن : سلام فراز جان من تازه چند روزه که این سایت رو پیدا کردم و از مطالب خوبتون واقعا متشکرم. من تمام جلسات شما رو بطور کامل از اول مطالعه کردم ولی کمی در برخی از مطالب دچار ابهام شدم. آیا میتوانید چند تا از نقشه های مدارها (منبع تغذیه و درایور های موتور و...) رو برام بفرستید بطوری که بتونم از آنها بعنوان مدارهای اصلی استفاده کنم؟
با سپاس فراوان
پاسـخ : سلام
خيلي ممنونم دوست عزيزم
نقشه‌ي كامل مدار اصلي يك ربات مسيرياب مقدماتي بدون ميكروكنترلر در سايت گذاشته شده است. موفق باشيد

فرستنده :
محمد رضا HyperLink HyperLink 1388/2/31
مـتـن : دوباره سلام.
شما تو جلسه 22 گفتید که برای پروگرام کردن آی سی های AVR از نرم افزار Code Vision استفاده می شه، آی سی PIC16F84A جزء خانواده AVR هست ؟ اگه نیست برای پروگرام کردنش چه نرم افزاری لازمه ؟
پاسـخ : سلام دوست عزيز
خير، اين آي‌سي جزو خانواده ميكروكنترلر‌هاي PIC است . براي پروگرام كردن اين خانواده متود‌هاي متفاوتي وجود داره كه ما در مورد اونها توضيح نداده‌ايم.

فرستنده :
پسر آریایی HyperLink HyperLink 1388/2/31
مـتـن : سلام دوست عزیز.
از سایت بی همتاتون واقعا متشکرم.
می خواست ببینم آیا میتوان از موتور ضبط صوت به عنوان موتور روبات استفاده کرد؟؟؟؟؟
پاسـخ : سلام . خيلي ممنونم
خير، چون موتور ضبط صوت معمولاً قدرت زيادي ندارد. موفق باشيد دوست عزيز

فرستنده :
azarakhsh HyperLink HyperLink 1388/2/31
مـتـن : ba arze salam va khaste nabashid
az matalebe mofidetoon rajebeh robatic tashakor mikonam... kheyli az moshkelatam ro dar in zamine hal kardam
پاسـخ : سلام دوست عزيز
خواهش مي‌كنم، برات آرزوي موفقيت مي‌كنم دوست عزيز

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تایید انصراف
 New Blog
شما بايد وارد شده واجازه ساخت و يا ويرايش وبلاگ را داشته باشيد.
 Blog Archive
 Blog List
 test
Use module action menu to edit content
 1











 صفحه‌ي اول

تنظیمات میزبان
مديريت پورتال‌ها
تعاریف ماژول‌ها
مدیریت فایل
مشتريان تبليغات
SQL
زمانبندي برنامه‌ها
مديريت زبان‌ها
مديريت جستجو
مديريت لیست‌ها
مديريت کاربران ارشد
Open-SearchEngine Admin
رویه ها
تنظیمات سایت
مديريت صفحات
نقش های امنیتی
مديريت كاربران
مشتريان تبليغات
گزارشات سایت
گروه های خبری
مدیریت فایل
سطل بازيافت
نمایشگر رخدادها
رویه ها
مديريت زبان‌ها
تنظیمات سایت
احراز هویت
مرورگر راهكارها
PageBlaster
What's New
صفحات شركت صفر و يك
نظرسنجي انجمن كامپيوتر
تست براي خانم معزي
صفحه خالي
ورود
جواد
مخفي3
مخفي 4
صفحه چت و گفتگو
تست - اميرغياثوند
تست انجمن
مسابقات المپيادها
المپيادهاي علمي رشد
تالار گفتگو
زنگ تفريح المپيادها
تست معرفي سايت
عليمرداني
صدري
خانه كامپيوتر
تست نظرسنجي
عليمرداني 2
پيمان داودي
عليمرداني 4
المپياد رياضي
المپياد كامپيوتر
المپياد فيزيك
المپياد زيست شناسي
عليمرداني 5
وب 2
وب 2 (صفحه اول)
قريبي فر
زنگ‌تفريح‌ها
فلش‌هاي بزرگ شيمي
عليمرداني 6
عليمرداني 10
عليمرداني 12
تست آلبوم
فراز اميرغياثوند
پرسش و پاسخ زيست شناسي
پرسش و پاسخ علمي
پرسش و پاسخ كامپيوتر
پرسش و پاسخ علمي
فعاليت‌هاي علمي
صدري تست
تست
فلش‌هاي رياضي
برندگان شيمي واقعي2
درباره رشد
نقشه سايت
ارتباط با رشد
صفحه اصلي انجمنها
راهنماي استفاده از انجمن
پایگاههای مدارس و استانها
پایگاههای رشد
پایگاههای مفید
وزارت آموزش و پرورش
معرفي چرخه‌ي سوخت هسته‌اي ايران
شهيد بهشتي و آموزش و پرورش
پایگاه مدارس جمهوری اسلامی ایران
فراخوان مقاله‌ی پدافند غيرعامل
ويژه‌نامه‌ی ماه مبارك رمضان
فراخوان مقاله‌ی اقتصاد سالم
ويژه‌نامه‌ی نوروز 1388 هجری شمسی
مسابقه‌ی عكاسی - مكان‌های ديدنی ايران - 1388
جشنواره‌ی فرهنگی و هنری پايداری ملی
پدافند غيرعامل - شبكه‌ی رشد
گالري عكس پدافند غيرعامل رشد
اخبار پدافند غيرعامل
پيوندهای مفيد پدافند غيرعامل
آموزش پدافند غيرعامل
دفاع غيرعامل در دفاع مقدس
بانك فايل پدافند غيرعامل
مقالات منتخب فرهنگيان - پدافند غيرعامل
آموزش دفاع غيرعامل - نظامی
اخبار جشنواره پايداری
بيانيه‌ی هيئت داوران جشنواره‌ی پايداری ملی
مصاحبه با دكتر جلالی - رييس سازمان پدافند غيرعامل
معرفي اعضای شورای سياستگذاری و مسئولين كميته‌ها
جشنواره از منظر دبير جشنواره - سيد محمدرضا مصطفوی
آثار برتر جشنواره پايداری ملی - شعر و داستان
آثار برتر جشنواره پايداری ملی - هنرهای تجسمی
آثار برتر جشنواره پايداری ملی -سايت و پايگاه مجازی
آثار برتر جشنواره پايداری ملی - مقالات علمی عمومی
آثار برتر جشنواره پايداری ملی - مقالات فرهنگيان
آثار برتر جشنواره پايداری ملی - مقالات علمی ترجمه‌
آثار برتر جشنواره پايداری ملی - پژوهش‌های علمی
آثار برتر جشنواره پايداری ملی - كتاب‌ها
آثار برتر جشنواره پايداری -پايان‌نامه‌های دانشجویی
آثار برتر جشنواره پايداری - مجلات و نشريات
آثار برتر جشنواره پايداری ملی - گزارش مستند
آثار برتر جشنواره پايداری ملی - فيلم
آثار برتر جشنواره پايداری ملی - لوح فشرده
هفت‌سين چيست؟
آيين‌های نوروزی ايرانيان
پيامك‌های نوروزي
صوت و اسكرين‌سيور نوروزی
عيد در فرهنگ اسلامی
نوروز از ديدگاه دكتر شريعتی
گالری تصاوير نوروز 1388 رشد
مسابقه‌ی عكاسی مكان‌های ديدنی ايران - نوروز 1388
دعاهای روزهاي ماه رمضان
ربناهای قرآن
پایگاه مدارس استان آذربایجان شرقی
پایگاه مدارس استان آذربایجان غربی
پایگاه مدارس استان اردبیل
پایگاه مدارس استان اصفهان
پایگاه مدارس استان ایلام
پایگاه مدارس استان بوشهر
پایگاه مدارس استان تهران
پایگاه مدارس استان چهارمحال و بختیاری
پایگاه مدارس استان خراسان شمالی
پایگاه مدارس استان خراسان رضوی
پایگاه مدارس استان خراسان جنوبی
پایگاه مدارس استان خوزستان
پایگاه مدارس استان زنجان
پایگاه مدارس استان سمنان
پایگاه مدارس استان سیستان و بلوچستان
پایگاه مدارس استان فارس
پایگاه مدارس استان قزوین
پایگاه مدارس استان قم
پایگاه مدارس استان کردستان
پایگاه مدارس استان کرمان
پایگاه مدارس استان کرمانشاه
پایگاه مدارس استان کهکیلویه و بویراحمد
پایگاه مدارس استان گلستان
پایگاه مدارس استان گیلان
پایگاه مدارس استان لرستان
پایگاه مدارس استان مازندران
پایگاه مدارس استان مرکزی
پایگاه مدارس استان هرمزگان
پایگاه مدارس استان همدان
پایگاه مدارس استان یزد
پایگاه های علمی، آموزشی، فرهنگی
سازمان های دولتی
رسانه ها
معرفی پایگاههای دانشگاهی و موسسات آموزش عالی
معرفی مدارس
بانك نرم‌افزار رشد
آلبوم عكس
دانشنامه
آزمون الكترونيكي و بانك سؤال
فعاليت‌هاي علمي رشد
هدايت تحصيلی
آموزش الكترونيكي
امتحانات نهایی پايه‌ی سوم متوسطه
سؤالات نهایی رشته‌های حرفه‌ای سال 86
سؤالات نهايي رشته‌هاي نظري سال 85
سؤالات نهايي رشته‌هاي فني سال 85
سؤالات نهايي رشته‌هاي حرفه‌اي سال 85
سؤالات نهایی رشته‌های نظری سال 86
سؤالات نهایی رشته‌های فنی سال 86
برنامه و سؤالات نهایی رشته‌های نظری خرداد 87
برنامه و سؤالات نهایی رشته‌های فنی خرداد 87
برنامه و سؤالات نهایی رشته‌های حرفه‌ای خرداد 87
برنامه و سؤالات نهایی رشته‌های حرفه‌ای خرداد 88
برنامه و سؤالات نهایی رشته‌های نظری خرداد 88
برنامه و سؤالات نهایی رشته‌های فنی خرداد 88
آموزش ويندوز و نرم‌افزارهاي كاربردي
آموزش تایپ فارسی
آموزش الکترونیکی كتاب‌های درسی
متن کتاب های درسی
انتخاب من
مشاغل من
مجموعه سوالات
مشاوره‌ي تيزهوشان و اولیاي آن‌ها
مصاحبه المپيادها
پيوندها
المپياد رياضي
نتايج نظرسنجي
علوم و فنون جديد
رباتيك
مشاهده‌ي علمي
مناسبت‌ها
لينك‌هاي مسابقه‌ها و زنگ‌تفريح‌هاي المپيادها
كارآفريني
المپياد كامپيوتر
المپياد فيزيك
المپياد شيمي
المپياد زيست‌شناسي
زنگ تفريح زيست
مسابقه‌ي زيست‌
سرفصل‌ها
آموزش زيست‌شناسي
مصاحبه و گزارش زيست‌شناسي
انيميشن‌هاي زنگ‌تفريح‌هاي زيست‌شناسي
تاريخچه‌ي المپياد جهاني زيست‌شناسي
راهنماي سايت المپياد زيست‌شناسي
برندگان مسابقه‌ي المپياد زيست‌شناسي
پرسش و پاسخ شيمي
مسابقه‌ي المپياد شيمي
راهنماي سايت المپياد شيمي
زنگ تفريح شيمي
تاريخچه‌ي المپياد جهاني شيمي
آموزش شيمي
مصاحبه و گزارش شيمي
تاريخچه‌ي المپياد جهاني شيمي
تاريخچه‌ي المپياد جهاني شيمي - 3
مسابقه‌ي شيمي > برندگان مسابقه‌ي شيمي
برندگان شيمي واقعي(مخفي)
مسابقه‌ي فيزيك
زنگ تفريح فيزيك
تاريخچه‌ي ني فيزيك
برندگان مسابقه‌ي المپياد فيزيك
راهنماي سايت المپياد فيزيك
گزارشي از المپياد جهاني فيزيك - قسمت پانزدهم
بزرگان فيزيك
آموزش فيزيك
مصاحبه و گزارش فيزيك
عكس روز فيزيك
عكس المپياد فيزيك
مسابقه كامپيوتر
زنگ تفريح كامپيوتر
تاريخچه‌ي المپياد جهاني كامپيوتر
مصاحبه و گزارش كامپيوتر
راهنماي سايت المپياد كامپيوتر
انيميشمن‌هاي كامپيوتر
برندگان مسابقه‌ي المپياد كامپيوتر
مسابقه‌ي رياضي
زنگ تفريح رياضي
تاريخچه‌ي رياضي
راهنماي سايت المپياد رياضي
برندگان مسابقه‌ي رياضي
آموزش رياضي
مصاحبه و گزارش المپياد رياضي
گزارش‌هاي تصويري المپياد رياضي
زنگ تفريج رياضي
گزارش المپياد جهاني فيزيك - قسمت پنجم
گزارشي از المپياد جهاني فيزيك - قسمت سيزدهم
گزارشی از المپیاد جهانی فیزیک - قسمت هفتم
گزارش از المپياد جهاني فيزيك - قسمت يازدهم
گزارشي از المپياد جهاني فيزيك - قسمت هشتم
گزارشي از المپياد جهاني فيزيك - قسمت دهم
گزارشي از المپياد جهاني فيزيك - قسمت شانزدهم
گزارشي از المپياد جهاني فيزيك - قسمت هفدهم
گزارشي از المپياد جهاني فيزيك - قسمت نهم
گزارشي از المپياد جهاني فيزيك - قسمت دوازدهم
گزارشي از المپياد جهاني فيزيک- قسمت اول
گزارشي از المپياد جهاني فيزيك - قسمت سوم
گزارشي از المپياد جهاني فيزيك - قسمت دوم
پشت صحنه‌ي المپياد جهاني فيزيك - قسمت اول
گزارشي از المپياد جهاني فيزيك - قسمت چهارم
المپياد جهاني رياضي در سال 1387
المپياد جهاني فيزيك در سال 1387
المپياد جهاني كامپيوتر در سال 1387
المپياد جهاني شيمي در سال 1387
المپياد جهاني زيست‌شناسي در سال 1387
گزارشي از المپياد جهاني فيزيك - قسمت بيستم
گزارشي از المپياد جهاني فيزيك - قسمت نوزدهم
راهنما
وضعيت:نمايشويرايشDesign پنل كنترل نمايش داده شود؟
عملكردهاي صفحه
اضافه كردن تنظيمات حذف

كپي Export Import
اضافه كردن ماژول جديداضافه كردن ماژول موجودماژول: <يك ماژول انتخاب كنيد>LinksRotatorSimple GallerySimple Gallery Tag CloudSnapsis PageBlasterText/HTMLXML/XSLXMod FormViewZeroAndOne_Menuآكاردئونآناليزگر گوگلاخباراطلاعیه هاانجمناوقات شرعیبازخوردپرسش و پاسختب استريپتب استريپ پيشرفتهچت و گفتگوحساب کاربرفرم سازقاب تبلیغاتیقاب محتواگالري تصاويرگرداننده محتوالینک درختیلینک عکس دارمحتواي زندهمستنداتمعرفی سایتمنومنوي کنارينتایج جستجونظرسنجینقشه سايتنمايش اسلايدي محتواي زندهنمايشگر عكس تصادفيوبلاگورودورودی جستجوکاربران آنلاین SSOکتابهاکتابها-منتخبکتابها-مولفان قاب: ContentPane
عنوان: الحاق: بالاانتها اضافه كردن
قابليت مشاهده: شبيه صفحهفقط ويرايشگران صفحه رديف كردن: چپمركزراستنا مشخص

نصب ماژولهاي اضافي امور معمول
سايت كاربران نقش‌ها

فايل ها راهنما Solutions



شبكه‌ی رشد
سرویسهای آموزشی
گالري‌ها
پيوندها
انجمن‌ها
پست الکترونیکی
شما و رشد
مخفی
اخبار و اطلاعيه‌ها
menuu
مدیریت
میزبان


چهار‌شنيه ۱۵ مهر ۱۳۸۸ خروج ProfileAdmin



صفحه اولدانشنامهفعالیتهای علمیآموزش الکترونیکیهدایت تحصیلیسوال و آزموناخبار و اطلاعیه هاگالری عکسپیوند هابانک نرم افزارانجمنهاپست الکترونیکی

Edit TabStrip



عنوان

عنوان را در اين قسمت وارد نمائيد
متن

متن را در اين قسمت وارد نمائيد جعبه متن اصلی ویرایشگر متن قوی

  صفحه‌ي اصلي
تيزهوشان: چملات الهام بخش
مصاحبه: دكتر كاظم‌پور - 1
مصاحبه: دكتر كاظم‌پور - 2
مشاوره تيزهوشان | مصاحبه | خبر
    فعاليت‌هاي علمي
تيزهوشان: چملات الهام بخش
مصاحبه: دكتر كاظم‌پور - 1
مصاحبه: دكتر كاظم‌پور - 2
مشاوره تيزهوشان | مصاحبه | خبر
 
  المپياد رياضي
مسابقه: عبور مكعب‌ها از هم (22 شهريور)
زنگ‌تفريح: ماشين كانوي (2 شهريور)
آموزش | مسابقه | زنگ تفريح | مشاوره
    المپياد فيزيك
مسابقه: رولر كاستر (10 شهريور)
زنگ‌تفريح: ماشين كانوي (2 شهريور)
آموزش | مسابقه | زنگ تفريح | مشاوره
 
  المپياد كامپيوتر
مسابقه: عبور مكعب‌ها از هم (22 شهريور)
زنگ‌تفريح: ماشين كانوي (2 شهريور)
آموزش | مسابقه | زنگ تفريح | مشاوره
    المپياد شيمي
مسابقه: عبور مكعب‌ها از هم (22 شهريور)
زنگ‌تفريح: ماشين كانوي (2 شهريور)
آموزش | مسابقه | زنگ تفريح | مشاوره
 
  المپياد زيست‌شناسي
مسابقه: عبور مكعب‌ها از هم (22 شهريور)
زنگ‌تفريح: ماشين كانوي (2 شهريور)
آموزش | مسابقه | زنگ تفريح | مشاوره
    خبر
» ماشين كانوي (2 شهريور)
» ماشين كانوي (2 شهريور)


متن Html خام


ترتيب نمايش

ترتيب نمايش را در اين قسمت وارد نمائيد
كليدواژه

كليد واژه ها را در اين قسمت وارد نمائيد

تاييد انصراف حذف







صفحه‌‌ی اول | درباره‌‌ی رشد | ارتباط با رشد | نقشه‌‌ی رشد
وزارت آموزش و پرورش > سازمان پژوهش و برنامه‌ريزی آموزشی
معاونت فن آوری ارتباطات و اطلاعات آموزشی > دفتر توسعه فناوری اطلاعات آموزشی

مدت زمان ساخت صفحه 0.5468925 ثانيه
 11
Use module action menu to edit content