<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7108792157705050405</atom:id><lastBuildDate>Fri, 27 Jan 2012 20:19:04 +0000</lastBuildDate><category>Uart برای USB-ASP</category><category>پروگرامر USB برای ARM ا (JLink)</category><category>Kavir Micro Wizard</category><category>آموزش پروتئوس</category><category>برد برای شروع به کار با ARM Atmel SAM7S</category><category>ارزانترین چرخ برای ربات</category><category>ال سی دی کاراکتری در ای وی آر (AVR CLCD)</category><category>کتابخانه حافظه های 24Cxx به زبان C</category><category>برنامه تستر STK200</category><category>چگونه از پورت موازی (Parallel Port) استفاده کنیم</category><category>تابلو روان گردان</category><category>Optimizer در WinAVR</category><category>new software to use usbasp programmer</category><category>اتصال USB به AVR بدون نیاز به آی سی واسط</category><category>آموزش ARM های سری SAM7 (قسمت اول)</category><category>یک بازی فکری با avr</category><category>شروع کار با AVR به همراه ساخت STK200</category><category>ساعت با تقویم فارسی با avr</category><category>تولید امواج تن(DTMF) در avr</category><category>آموزش #C به زبان فارسی</category><category>آموزش AVR studio</category><title>World Of Electronic</title><description /><link>http://www.mostafahk.co.cc/</link><managingEditor>noreply@blogger.com (مصطفی حیدری)</managingEditor><generator>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WorldOfElectronic" /><feedburner:info uri="worldofelectronic" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:subtitle></itunes:subtitle><feedburner:browserFriendly></feedburner:browserFriendly><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-1222016159944993637</guid><pubDate>Sun, 03 Jul 2011 18:53:00 +0000</pubDate><atom:updated>2011-07-03T12:06:33.396-07:00</atom:updated><title>فعالیت جدید من</title><description>با سلام&lt;br /&gt;میدونم 2 سالی هست به این وبلاگ سر نزدم. خیلی ها کامنت گذاشتن متاسفانه نمیدونم چرا بهم ایمیل اتوماتیک نشد تا جواب بدم. الان هم که زمانشون گذشته. از همه معذرت میخوام.&lt;br /&gt;&lt;br /&gt;اخیرا با چند نفر از دوستان فعالیت جدیدی رو شروع کردیم در زمینه سیستم های حضور و غیاب و اتوماسیون های اداری. اسم تجاری شرکت ما &lt;a href="http://www.sarvelectronic.ir"&gt;سرو الکترونیک&lt;/a&gt; هستش که هنوز هم کامل نشده. فکر نکنم دیگه هیچ وقت بتونم مطالب آموزشی و ... رو تهیه کنم. خیلی سرم شلوغه. شرمنده همتون.&lt;br /&gt;&lt;br /&gt;در ضمن تمام پروژهای سایت غیر از پروگرامر J-link رو ایمیل بزنید مجانی سورسشون رو میدم.&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-1222016159944993637?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2011/07/blog-post.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-3366070117119197158</guid><pubDate>Wed, 30 Dec 2009 15:04:00 +0000</pubDate><atom:updated>2010-09-15T23:19:45.046-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">برد برای شروع به کار با ARM Atmel SAM7S</category><title>برد برای شروع به کار با ARM</title><description>سلام&lt;br /&gt;اکثر افراد برای شروع به کار با میکروکنترلرهای ARM مشکلات زیادی دارند.&lt;br /&gt;یکی از این مشکلات SMD بودن میکروکنترلرهای ARM و نکات متعدد برای راه اندازی این میکروکنترلرهاست.&lt;br /&gt;اخیرا بردی برای کار با میکروکنترلر های Atmel سری SAM7S طراحی کردم که بسیار ارزان میتوانید کار با این میکروکنترلرها را شروع کنید.&lt;br /&gt;ویژگیهای این برد :&lt;br /&gt;&lt;br /&gt;&lt;img src="http://up.iranblog.com/Files/7a2ee1b959f54a06b93a.JPG" /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;سوکتی بودن CPU&lt;br /&gt;&lt;/li&gt;&lt;li&gt;دارای 8 عدد LED روی برد .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;دارای 4 عدد کلید روی برد اصلی .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;دارای کابل رابط usb برای استفاده از samba یا هر استفاده دیگر.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;تامین برق مدار از طریق کابل usb .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;دارای سوکت استاندار برای پروگرام کردن از طریق JTag (بوسیله پروگرامرهای مختلف همانند wiggler یا &lt;a href="http://mostafahk.blogspot.com/2009/12/usb-arm-jlink.html"&gt;JLink&lt;/a&gt; )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;دارای 4 سوکت IDC 10pin که پایه های پورت میکروکنترلر به صورت منظم (هر 8 بیت از پورت روی یک سوکت قرار گرفته) به همراه ولتاژ 5V  روی آنها قرار دارد که به وسیله  کابل رابط میتوانید بین این برد و "برد برد" ارتباط قرار کنید و بسیاری از مدارات را روی بردبرد آزمایش کنید.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;یک عدد LM35 و ولوم روی برد قرار دارد که به راحتی ADC را آزمایش کنید.&lt;/li&gt;&lt;/ul&gt;قیمت این برد  30هزار تومن است.&lt;br /&gt;برای سفارش ایمیل بزنید : mostafa.hk@gmail.com , mos_hei@yahoo.com&lt;br /&gt;&lt;br /&gt;مطالب مرتبط :&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/08/avr-sam7.html"&gt;آموزش ARM های سری SAM7 (قسمت اول)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/12/usb-arm-jlink.html"&gt;پروگرامر USB برای ARM ا (JLink)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-3366070117119197158?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2009/12/arm.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-8887744138348578357</guid><pubDate>Wed, 30 Dec 2009 14:38:00 +0000</pubDate><atom:updated>2010-09-15T23:19:21.321-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">پروگرامر USB برای ARM ا (JLink)</category><title>پروگرامر USB برای ARM ا (JLink)</title><description>پروگرامر USB برای کار با تمام میکروکنترلرهای Atmel و Philips و...  موجود است.&lt;br /&gt;قیمت : 50,000 تومان&lt;br /&gt;&lt;br /&gt;&lt;img src="http://up.iranblog.com/Files/ddba1ed23a6a48158152.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;کاملا تست شده.&lt;br /&gt;&lt;br /&gt;ویژگی های این پروگرامر :&lt;br /&gt;• پشتیبانی از میکروکنترلرهای ARM سری ARM7 , ARM9 , Cortex-M3&lt;br /&gt;• سازگاری کامل با نرم افزار Keil ARM&lt;br /&gt;• سازگاری با نرم افزار IAR ARM&lt;br /&gt;• توانایی دیباگ میکروکنترلر در میحط های مختلف از جمله Keil ARM و IAR ARM&lt;br /&gt;• اتصال به کامپیوتر از طریق پورت USB&lt;br /&gt;• سرعت بالا در پروگرام کردن بیش از 700 کیلوبایت در ثانیه&lt;br /&gt;• پشتیبانی  در ویندوزهای 98 , 200 , Xp , Vista&lt;br /&gt;&lt;br /&gt;برای سفارش ایمیل بزنید : mostafa.hk@gmail.com , mos_hei@yahoo.com&lt;br /&gt;&lt;br /&gt;مطالب مرتبط :&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/08/avr-sam7.html"&gt;آموزش ARM های سری SAM7 (قسمت اول)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/12/arm.html"&gt;برد برای شروع به کار با ARM Atmel SAM7S&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-8887744138348578357?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2009/12/usb-arm-jlink.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-6445425270667038070</guid><pubDate>Wed, 09 Sep 2009 08:11:00 +0000</pubDate><atom:updated>2009-12-30T06:33:46.632-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Optimizer در WinAVR</category><title>Optimizer در WinAVR</title><description>&lt;div align="right" dir="ltr"&gt;&lt;p class="MsoNormal" align="center" dir="rtl"&gt;&lt;a name="OLE_LINK4"&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;&lt;span lang="AR-SA"&gt;بهینه ساز کامپایلر&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;&lt;span dir="ltr"&gt; winavr&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;&lt;span dir="ltr"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;&lt;span lang="FA"&gt;بهینه ساز کامپایلر چیست؟&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt;بهینه ساز یک قسمت از کامپایلر است که کدهای زائد را حذف می کند.در حال حاضر &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span dir="ltr"&gt;winavr&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt; قوی ترین بهینه ساز را بین کامپایلرهای &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span dir="ltr"&gt;avr&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt; دارد.البته این کار گاهی در عملکرد برنامه اختلال ایجاد می کند که می توان با دستور &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span dir="ltr"&gt;Volatile&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt; که بعدا در مورد آن توضیح می دهیم از این اختلال جلوگیری کرد.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt;بهینه ساز ها با تنظیماتی در کامپایلر قابل تنظیم هستند و می توان سطوح مختلفی را برای کنترل نوع رفتار آنها انتخاب کرد. کامپایلر &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span dir="ltr"&gt;winavr&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span lang="FA"&gt; چهار سطح بهینه سازی دارد.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="55" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="535" valign="top"&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;غیر   فعال کردن بهینه ساز.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="55" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="535" valign="top"&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;از   ظرفیت کد می کاسته می شود و سرعت اجرا بالا می رود.بهینه سازی های پیچیده انجام   نمی شود.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="55" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="535" valign="top"&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;بهینه   سازی بیشتر از حالت قبل با اولویت افزایش سرعت. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="55" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="535" valign="top"&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;همانند &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span dir="ltr"&gt;O2&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang="FA"&gt; ولی تمام توابع به صورت &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span dir="ltr"&gt;inline&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang="FA"&gt;   کامپایل می شوند.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang="FA" dir="ltr"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang="FA"&gt;بیشترین سرعت اجرای   برنامه.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="55" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;Os&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="535" valign="top"&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;بهینه   سازی برای کم کردن ظرفیت. کامل ترین سطح بهینه سازی کد&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span dir="ltr"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;برای اینکه تاثیر عملکرد بهینه ساز را متوجه شوید یک برنامه را در سطوح مختلف بهینه ساز کامپایل کردیم و در تمام سطوح برنامه به خوبی کار می کرد. ظرفیت کد برنامه در سطوح مختلف اینگونه بدست آمد.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;Optimize level&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;Program (byte)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;Data (byte)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;7936&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;78&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;3600&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;70&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;3980&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;70&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;O3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;7184&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;70&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;Os&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;3898&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="197" valign="top"&gt;&lt;p class="MsoNormal" align="center"&gt;&lt;b&gt;&lt;span&gt;70&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;b&gt;&lt;span lang="FA"&gt;اشتباه در بهینه سازی کد&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span dir="ltr"&gt;Volatile&lt;/span&gt;&lt;span&gt; &lt;span lang="FA"&gt;، این کلمه کلیدی بسیار کم در برنامه نویسی استفاده می شود.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;آیا تا به حال در برنامه های &lt;/span&gt;&lt;span dir="ltr"&gt;C/C++&lt;/span&gt;&lt;span lang="FA"&gt; این تجربه را کرده اید که ، کدی که نوشته اید ، تا زمانی که &lt;/span&gt;&lt;span dir="ltr"&gt;optimize&lt;/span&gt;&lt;span lang="FA"&gt; (بهینه ساز هوشمندی که کامپایلر ها برای بالا بردن سرعت اجرا و کم حجم کردن برنامه از آن بهره می گیرند) خاموش است برنامه بخوبی کار می کند، ولی با فعال کردن این قابلیت در کامپیلر برنامه قاطی می کند و عملکرد آن مختل می شود.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;این اتفاقات به دلیل این است که شما تا به حال از کلمه &lt;/span&gt;&lt;span dir="ltr"&gt;Volatile&lt;/span&gt;&lt;span lang="FA"&gt; در برنامه تان استفاده نکرده اید. &lt;/span&gt;&lt;span dir="ltr"&gt;Volatile&lt;/span&gt;&lt;span lang="FA"&gt; یک کلمه توصیفی برای تعریف یک متغییر است. این کلمه به کامپایلر می گوید که این متغییر ممکن است هر زمانی تغییر کند( مثلا توسط در اینتراپت) پس کامپایلر هنگام بهینه سازی برنامه ، از حذف این متغییر و خطوطی که این متغییر در آنها استفاده شده صرف نظر می کند.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;قبل از توضیحات بیشتر تعریف متغییر از نوع &lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span&gt; &lt;/span&gt;Volatile&lt;/span&gt;&lt;span lang="FA"&gt; را بررسی می کنیم.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;برای تعریف یک متغییر به صورت &lt;/span&gt;&lt;span dir="ltr"&gt;Volatile&lt;/span&gt;&lt;span lang="FA"&gt; باید این کلمه را قبل یا بعد از نوع متغییر بیاوریم:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;volatile int foo;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="FA" dir="rtl"&gt;یا&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;int volatile foo;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="FA" dir="rtl"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl" align="right"&gt;&lt;span lang="FA"&gt;اشاره گرهای &lt;/span&gt;&lt;span dir="rtl"&gt;Volatile&lt;/span&gt;&lt;span lang="FA" dir="rtl"&gt; بسیار پر کاربرد هستند، چون بیشتر مواقع اشاره گرها قربانی بهینه ساز کامپایلر می شوند.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="ltr" align="left"&gt;&lt;b&gt;&lt;span dir="ltr"&gt;pointers to volatile variables&lt;span lang="FA" dir="rtl"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;volatile int * foo; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;int volatile * foo;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;Volatile pointers to non-volatile variables&lt;span lang="FA" dir="rtl"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;int * volatile foo;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;volatile pointer to a volatile variable&lt;span lang="FA" dir="rtl"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left" dir="ltr"&gt;&lt;b&gt;&lt;span&gt;int volatile * volatile foo;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="FA" dir="rtl"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;کجا از &lt;/span&gt;&lt;span dir="ltr"&gt;volatile&lt;/span&gt;&lt;span lang="FA"&gt; استفاده کنیم؟&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;در برنامه نویسی &lt;/span&gt;&lt;span dir="ltr"&gt;PC&lt;/span&gt;&lt;span lang="FA"&gt; سه جا باید از این کلمه استفاده کنیم (اما کامپایلر های امروزی که برای &lt;/span&gt;&lt;span dir="ltr"&gt;PC&lt;/span&gt;&lt;span lang="FA"&gt; هستند آنقدر تکامل یافته اند که چنین اشتباهی نمی کنند) ولی در برنامه نویسی میکرو تمام متغییر هایی عمومی که بین برنامه جاری و سرویس وقفه مشترک هستند باید &lt;/span&gt;&lt;span dir="ltr"&gt;volatile&lt;/span&gt;&lt;span lang="FA"&gt; تعریف شوند تا مشکلی پیش نیاید.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" dir="rtl"&gt;&lt;span lang="FA"&gt;یک مثال :&lt;/span&gt;&lt;/p&gt;در این بر نامه که یک چشمک زن ساده است ، می بینید که اگر متغییر عمومی tick به صورت volatile تعریف نشود برنامه کار نمی کند.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;حالت اول بدون volatile که کار نمی کند.&lt;br /&gt;&lt;div align="left" dir="ltr"&gt;#include&lt;br /&gt;&lt;br /&gt;#include&lt;br /&gt;&lt;br /&gt;int tick = 0;  int main(){&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;             DDRC = 0xff;  //define portc as out put.&lt;br /&gt;&lt;br /&gt;             PORTA = 0xff; //enable internal pullups.&lt;br /&gt;&lt;br /&gt;             TCCR0 |= 5;   //enable and run timer 0.&lt;br /&gt;&lt;br /&gt;             TIMSK |= 1&lt; tick ="=" portc =" PORTC"&gt;                                                if(PORTC == 0)                                                                PORTC = 1;                                                tick = 0;                    }                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ISR(TIMER0_OVF_vect)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;             tick = 1;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;حالت دوم با volatile که کار می کند.&lt;br /&gt;&lt;div align="left" dir="ltr"&gt;&lt;br /&gt;#include&lt;br /&gt;&lt;br /&gt;#include&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;volatile‏ int tick = 0;  int main(){                DDRC = 0xff;  //define portc as out put.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;             PORTA = 0xff; //enable internal pullups.&lt;br /&gt;&lt;br /&gt;             TCCR0 |= 5;   //enable and run timer 0.&lt;br /&gt;&lt;br /&gt;             TIMSK |= 1&lt; tick ="=" portc =" PORTC"&gt;                                                if(PORTC == 0)                                                                PORTC = 1;                                                tick = 0;                    }                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ISR(TIMER0_OVF_vect)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;             tick = 1;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;این برنامه را به همراه فایل پروتئوس &lt;a href="http://mostafa.hk.googlepages.com/volatile_wrong.rar"&gt;از اینجا دانلود کنید&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-6445425270667038070?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2009/09/optimizer-winavr.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>0</thr:total><enclosure url="http://mostafa.hk.googlepages.com/volatile_wrong.rar" length="35534" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/volatile_wrong.rar" fileSize="35534" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>بهینه ساز کامپایلر winavr بهینه ساز کامپایلر چیست؟بهینه ساز یک قسمت از کامپایلر است که کدهای زائد را حذف می کند.در حال حاضر winavr قوی ترین بهینه ساز را بین کامپایلرهای avr دارد.البته این کار گاهی در عملکرد برنامه اختلال ایجاد می کند که می توان با دستور V</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>بهینه ساز کامپایلر winavr بهینه ساز کامپایلر چیست؟بهینه ساز یک قسمت از کامپایلر است که کدهای زائد را حذف می کند.در حال حاضر winavr قوی ترین بهینه ساز را بین کامپایلرهای avr دارد.البته این کار گاهی در عملکرد برنامه اختلال ایجاد می کند که می توان با دستور Volatile که بعدا در مورد آن توضیح می دهیم از این اختلال جلوگیری کرد.بهینه ساز ها با تنظیماتی در کامپایلر قابل تنظیم هستند و می توان سطوح مختلفی را برای کنترل نوع رفتار آنها انتخاب کرد. کامپایلر winavr چهار سطح بهینه سازی دارد. O0غیر فعال کردن بهینه ساز.O1از ظرفیت کد می کاسته می شود و سرعت اجرا بالا می رود.بهینه سازی های پیچیده انجام نمی شود.O2بهینه سازی بیشتر از حالت قبل با اولویت افزایش سرعت. O3همانند O2 ولی تمام توابع به صورت inline کامپایل می شوند. بیشترین سرعت اجرای برنامه.Osبهینه سازی برای کم کردن ظرفیت. کامل ترین سطح بهینه سازی کد.   برای اینکه تاثیر عملکرد بهینه ساز را متوجه شوید یک برنامه را در سطوح مختلف بهینه ساز کامپایل کردیم و در تمام سطوح برنامه به خوبی کار می کرد. ظرفیت کد برنامه در سطوح مختلف اینگونه بدست آمد.  Optimize levelProgram (byte)Data (byte)O0793678O1360070O2398070O3718470Os389870  اشتباه در بهینه سازی کدVolatile ، این کلمه کلیدی بسیار کم در برنامه نویسی استفاده می شود.آیا تا به حال در برنامه های C/C++ این تجربه را کرده اید که ، کدی که نوشته اید ، تا زمانی که optimize (بهینه ساز هوشمندی که کامپایلر ها برای بالا بردن سرعت اجرا و کم حجم کردن برنامه از آن بهره می گیرند) خاموش است برنامه بخوبی کار می کند، ولی با فعال کردن این قابلیت در کامپیلر برنامه قاطی می کند و عملکرد آن مختل می شود. این اتفاقات به دلیل این است که شما تا به حال از کلمه Volatile در برنامه تان استفاده نکرده اید. Volatile یک کلمه توصیفی برای تعریف یک متغییر است. این کلمه به کامپایلر می گوید که این متغییر ممکن است هر زمانی تغییر کند( مثلا توسط در اینتراپت) پس کامپایلر هنگام بهینه سازی برنامه ، از حذف این متغییر و خطوطی که این متغییر در آنها استفاده شده صرف نظر می کند. قبل از توضیحات بیشتر تعریف متغییر از نوع  Volatile را بررسی می کنیم.برای تعریف یک متغییر به صورت Volatile باید این کلمه را قبل یا بعد از نوع متغییر بیاوریم:volatile int foo;یاint volatile foo; اشاره گرهای Volatile بسیار پر کاربرد هستند، چون بیشتر مواقع اشاره گرها قربانی بهینه ساز کامپایلر می شوند.pointers to volatile variables:volatile int * foo; int volatile * foo;Volatile pointers to non-volatile variables:int * volatile foo;volatile pointer to a volatile variable:int volatile * volatile foo; کجا از volatile استفاده کنیم؟در برنامه نویسی PC سه جا باید از این کلمه استفاده کنیم (اما کامپایلر های امروزی که برای PC هستند آنقدر تکامل یافته اند که چنین اشتباهی نمی کنند) ولی در برنامه نویسی میکرو تمام متغییر هایی عمومی که بین برنامه جاری و سرویس وقفه مشترک هستند باید volatile تعریف شوند تا مشکلی پیش نیاید.   یک مثال :در این بر نامه که یک چشمک زن ساده است ، می بینید که اگر متغییر عمومی tick به صورت volatile تعریف نشود برنامه کار نمی کند. حالت اول بدون volatile که کار نمی کند. #include #include int tick = 0; int main(){ DDRC = 0xff; //define portc as out put. PORTA = 0xff; //enable internal pullups. TCCR0 |= 5; //enable and run timer 0. TIMSK |= 1 if(PORTC == 0) PORTC = 1; tick = 0; } } } ISR(TIMER0_OVF_vect) { tick = 1; } حالت دوم با volatile که کار می کند. #include #include volatile‏ int tick = 0; int main(){ DDRC = 0xff; //define portc as out put. PORTA = 0xff; //enable internal pullups. TCCR0 |= 5; //enable and run timer 0. TIMSK |= 1 if(PORTC == 0) PORTC = 1; tick = 0; } } } ISR(TIMER0_OVF_vect) { tick = 1; } این برنامه را به همراه فایل پروتئوس از اینجا دانلود کنید. ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>Optimizer در WinAVR</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-1356764257318405025</guid><pubDate>Fri, 28 Aug 2009 13:13:00 +0000</pubDate><atom:updated>2009-12-30T10:38:27.719-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">آموزش ARM های سری SAM7 (قسمت اول)</category><title>آموزش شروع به کار با ARM سری SAM7</title><description>سلام&lt;br /&gt;بعد از 1 سال یه پست جدید میزنم و دست پر برگستم.&lt;br /&gt;&lt;br /&gt;قسمت اول : آشنایی با پایه های این میکرو کنترلر و نحوه بایاس و راه اندازی آن&lt;br /&gt;&lt;br /&gt;نکته اول اینکه کاملترین توضیحات رو از خود اتمل بگیرید ، در &lt;a href="http://www.atmel.com/dyn/products/app_notes.asp?family_id=605"&gt;اینجا&lt;/a&gt; می توانید توضیحات مربوط به راه اندازی دقیق و بی عیب و نقص SAM7 ها رو از خود اتمل بگیرید.  تمام فایل های PDF ی که در قسمت Design Considerations قرار دارند مربوط به این بحث هستند و شما&lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc6258.pdf"&gt; فایل مربوط به خانواده SAM7S رو دانلود کنید&lt;/a&gt;. البته نوع &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc6260.pdf"&gt;SAM7X&lt;/a&gt; هم تو ایران پیدا میشه.&lt;br /&gt;پیدا کردن دیتاشیت هم که کاری نداره. البته دیتاشیت های SAM ها خانوادگی هستش و برای خانواده &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc6175.pdf"&gt;SAM7S&lt;/a&gt; و &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc6120.pdf"&gt;SAM7X&lt;/a&gt; دیتاشیت جدایی وجود داره، ولی فرقی بین دیتاشیت SAM7S64 , SAM7S256 نیست و هر دو تو اون فایل توضیح داده شده اند. برای پیدا کردن دیتاشیت ها هم&lt;a href="http://www.atmel.com/dyn/products/datasheets.asp?family_id=605"&gt; اینجا&lt;/a&gt; برید.&lt;br /&gt;&lt;br /&gt;پایه های تغذیه :&lt;br /&gt;در SAM7 ها  6 پایه تغذیه وجود دارد :&lt;br /&gt;&lt;div align="left"&gt;&lt;div align="left" dir="ltr"&gt;• VDDIN pin. It powers the voltage regulator and the ADC; voltage ranges from 3.0V to 3.6V,&lt;br /&gt;&lt;/div&gt;3.3V nominal.&lt;br /&gt;&lt;div align="right"&gt;پایه VDDIN :&lt;br /&gt;این پایه ورودی ولتاژ مدار ADC و همچنین رگولاتور داخلی 1.8V است . ولتاژی بین 3 تا 3.6 باید به این پایه اعمال کنید.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;• VDDOUT pin. It is the output of the 1.8V voltage regulator.&lt;br /&gt;&lt;div align="right"&gt;پایه VDDOUT :&lt;br /&gt;این پایه خروجی رگولاتور داخلی 1.8V است. بخش های از SAM7 ها با ولتاژ 1.8 ولت تغذیه میشوند که برای این کار در خود این آی سی ها روگولاتوری قرار داده شده تا شما راحت باشید.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;• VDDIO pin. It powers the I/O lines and the USB transceivers; dual voltage range is&lt;br /&gt;supported. Ranges from 3.0V to 3.6V, 3.3V nominal or from 1.65V to 1.95V, 1.8V nominal.&lt;br /&gt;Note that supplying less than 3.0V to VDDIO prevents any use of the USB transceivers.&lt;br /&gt;&lt;div align="right"&gt;پایه VDDIO :&lt;br /&gt;این پایه ورودی تغذیه پورت ها و واسط USB میباشد.  برای این ورودی میتوانید ولتاژی بین 1.6V -1.95V یا 3.0V-3.6V اعمال کنید. توجه کنید که واسط USB فقط با رنج ولتاژ 3.0V-3.6V کار می کند.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;• VDDFLASH pin. It powers a part of the Flash and is required for the Flash to operate&lt;br /&gt;correctly; voltage ranges from 3.0V to 3.6V, 3.3V nominal.&lt;br /&gt;&lt;div align="right"&gt;پایه VDDFLASH :&lt;br /&gt;این پایه ورودی ولتاژ تغذیه حافظه فلش میکروکنترلر است و باید ولتاژی در حدود 3.0V-3.6V با آن اعمال کنید. توجه کنید که ARM ها این قابلیت را دارند که برنامه را داخل رم کپی کنند و سپس از رم اجرا کنند. این قابلیت برای آن است که اگر قصد دارید برنامه را از رم اجرا کنید این ولتاژ را قطع کنید تا مصرف توان کاهش بیاید.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;• VDDCORE pins. They power the logic of the device; voltage ranges from 1.65V to 1.95V,&lt;br /&gt;1.8V typical. It can be connected to the VDDOUT pin with decoupling capacitor. VDDCORE&lt;br /&gt;is required for the device, including its embedded Flash, to operate correctly.&lt;br /&gt;During startup, core supply voltage (VDDCORE) slope must be superior or equal to 6V/ms.&lt;br /&gt;&lt;div align="right"&gt;پایه VDDCORE :&lt;br /&gt;این ولتاژ مهمترین ولتاژ برای راه اندازی ARM ها است. چرا که تغذیه CPU را تامین میکند. حتما پس از مونتاژ مدارتان این ولتاژ را با اسیلوسکوپ نگاه کنید تا ریپیل نداشته باشد. ریپیل باید کمتر از 200mV باشد.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;• VDDPLL pin. It powers the oscillator and the PLL. It can be connected directly to the VDDOUT pin&lt;br /&gt;&lt;div align="right"&gt;پایه VDDPLL:&lt;br /&gt;این پایه ورودی مدار PLL است. در SAM7 ها بوسیله کریستال تنها میتوان تا 20MHz اسیلاتور داشت و برای فرکانسهای بالاتر باید با PLL و کریستال به فرکانس مورد نظر برسید. هرچند این کار دقت نوسان سازی را کم میکند، اما وجود نویز شرکت سازنده را مجبور کرده تا نوسان ساز کریستالی را محدود به فرکانس 20MHz کند. SAM7 ها تا  بیش از 55MHz کار کنند.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;در شکل زیر پیکربندی کلی پایه های تغذیه را مشاهده میکنید. این شکل در بخش  5.4 Typical Powering Schematics از دیتاشیت قرار دارد. خازن ها بسیار مهم هستند.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/SpfimsflMeI/AAAAAAAAAYQ/lcWaxI8T6M0/s400/powersupp.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5375013834696503778" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;مطالب مرتبط :&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/12/usb-arm-jlink.html"&gt;پروگرامر USB برای ARM ا (JLink)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mostafahk.blogspot.com/2009/12/arm.html"&gt;برد برای شروع به کار با ARM Atmel SAM7S&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-1356764257318405025?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2009/08/avr-sam7.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://1.bp.blogspot.com/_7fL8vIRXVvg/SpfimsflMeI/AAAAAAAAAYQ/lcWaxI8T6M0/s72-c/powersupp.JPG" height="72" width="72" /><thr:total>0</thr:total><enclosure url="http://www.atmel.com/dyn/resources/prod_documents/doc6258.pdf" length="649119" type="application/pdf" /><media:content url="http://www.atmel.com/dyn/resources/prod_documents/doc6258.pdf" fileSize="649119" type="application/pdf" /><itunes:subtitle>سلام بعد از 1 سال یه پست جدید میزنم و دست پر برگستم. قسمت اول : آشنایی با پایه های این میکرو کنترلر و نحوه بایاس و راه اندازی آن نکته اول اینکه کاملترین توضیحات رو از خود اتمل بگیرید ، در اینجا می توانید توضیحات مربوط به راه اندازی دقیق و بی عیب و نقص SAM</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام بعد از 1 سال یه پست جدید میزنم و دست پر برگستم. قسمت اول : آشنایی با پایه های این میکرو کنترلر و نحوه بایاس و راه اندازی آن نکته اول اینکه کاملترین توضیحات رو از خود اتمل بگیرید ، در اینجا می توانید توضیحات مربوط به راه اندازی دقیق و بی عیب و نقص SAM7 ها رو از خود اتمل بگیرید.  تمام فایل های PDF ی که در قسمت Design Considerations قرار دارند مربوط به این بحث هستند و شما فایل مربوط به خانواده SAM7S رو دانلود کنید. البته نوع SAM7X هم تو ایران پیدا میشه. پیدا کردن دیتاشیت هم که کاری نداره. البته دیتاشیت های SAM ها خانوادگی هستش و برای خانواده SAM7S و SAM7X دیتاشیت جدایی وجود داره، ولی فرقی بین دیتاشیت SAM7S64 , SAM7S256 نیست و هر دو تو اون فایل توضیح داده شده اند. برای پیدا کردن دیتاشیت ها هم اینجا برید. پایه های تغذیه : در SAM7 ها  6 پایه تغذیه وجود دارد : • VDDIN pin. It powers the voltage regulator and the ADC; voltage ranges from 3.0V to 3.6V, 3.3V nominal. پایه VDDIN : این پایه ورودی ولتاژ مدار ADC و همچنین رگولاتور داخلی 1.8V است . ولتاژی بین 3 تا 3.6 باید به این پایه اعمال کنید. • VDDOUT pin. It is the output of the 1.8V voltage regulator. پایه VDDOUT : این پایه خروجی رگولاتور داخلی 1.8V است. بخش های از SAM7 ها با ولتاژ 1.8 ولت تغذیه میشوند که برای این کار در خود این آی سی ها روگولاتوری قرار داده شده تا شما راحت باشید. • VDDIO pin. It powers the I/O lines and the USB transceivers; dual voltage range is supported. Ranges from 3.0V to 3.6V, 3.3V nominal or from 1.65V to 1.95V, 1.8V nominal. Note that supplying less than 3.0V to VDDIO prevents any use of the USB transceivers. پایه VDDIO : این پایه ورودی تغذیه پورت ها و واسط USB میباشد.  برای این ورودی میتوانید ولتاژی بین 1.6V -1.95V یا 3.0V-3.6V اعمال کنید. توجه کنید که واسط USB فقط با رنج ولتاژ 3.0V-3.6V کار می کند. • VDDFLASH pin. It powers a part of the Flash and is required for the Flash to operate correctly; voltage ranges from 3.0V to 3.6V, 3.3V nominal. پایه VDDFLASH : این پایه ورودی ولتاژ تغذیه حافظه فلش میکروکنترلر است و باید ولتاژی در حدود 3.0V-3.6V با آن اعمال کنید. توجه کنید که ARM ها این قابلیت را دارند که برنامه را داخل رم کپی کنند و سپس از رم اجرا کنند. این قابلیت برای آن است که اگر قصد دارید برنامه را از رم اجرا کنید این ولتاژ را قطع کنید تا مصرف توان کاهش بیاید. • VDDCORE pins. They power the logic of the device; voltage ranges from 1.65V to 1.95V, 1.8V typical. It can be connected to the VDDOUT pin with decoupling capacitor. VDDCORE is required for the device, including its embedded Flash, to operate correctly. During startup, core supply voltage (VDDCORE) slope must be superior or equal to 6V/ms. پایه VDDCORE : این ولتاژ مهمترین ولتاژ برای راه اندازی ARM ها است. چرا که تغذیه CPU را تامین میکند. حتما پس از مونتاژ مدارتان این ولتاژ را با اسیلوسکوپ نگاه کنید تا ریپیل نداشته باشد. ریپیل باید کمتر از 200mV باشد. • VDDPLL pin. It powers the oscillator and the PLL. It can be connected directly to the VDDOUT pin پایه VDDPLL: این پایه ورودی مدار PLL است. در SAM7 ها بوسیله کریستال تنها میتوان تا 20MHz اسیلاتور داشت و برای فرکانسهای بالاتر باید با PLL و کریستال به فرکانس مورد نظر برسید. هرچند این کار دقت نوسان سازی را کم میکند، اما وجود نویز شرکت سازنده را مجبور کرده تا نوسان ساز کریستالی را محدود به فرکانس 20MHz کند. SAM7 ها تا  بیش از 55MHz کار کنند. در شکل زیر پیکربندی کلی پایه های تغذیه را مشاهده میکنید. این شکل در بخش  5.4 Typical Powering Schematics از دیتاشیت قرار دارد. خازن ها بسیار مهم هستند. مطالب مرتبط : پروگرامر USB برای ARM ا (JLink) برد برای شروع به کار با ARM Atmel SAM7Sok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>آموزش ARM های سری SAM7 (قسمت اول)</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-3860560416766163808</guid><pubDate>Mon, 16 Feb 2009 20:54:00 +0000</pubDate><atom:updated>2009-02-16T13:05:25.285-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">new software to use usbasp programmer</category><title>new software to use usbasp programmer</title><description>سلام&lt;br /&gt;برنامه زیر رو خودم نوشتم و شما می تونید آخرین ورژن اونو از تاپیک زیر که تو سایت ECA زدم دانلود کنید.&lt;br /&gt;مشکلات خودتون رو هم همونجا مطرح کنید.&lt;br /&gt;با این برنامه شما می تونید به راحتی فیوز بیت ها رو تنظیم کنید و امکان اشتباهات لپی در تنظیم فیوزبیتها که معمولا منجر به ترکیدن آی سی میشه خیلی کم میشه.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SZnU113tazI/AAAAAAAAAXY/A4z_AzYzbY4/s400/2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5303504057664367410" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left" dir="ltr"&gt;&lt;div align="center"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SZnU1isS3KI/AAAAAAAAAXQ/Y8YIMLy0Q54/s400/1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5303504052516215970" /&gt;&lt;/div&gt;&lt;br /&gt;This is a windows software for use usbasp programmer. you can configur fuseBits safety and use other tools that i added to it. please report me any problem.&lt;br /&gt;it need .NetframeWork2 to run in windows or macOS or linux.&lt;br /&gt;&lt;br /&gt;mostafa.hk@gmail.com&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.eca.ir/forum2/index.php?topic=25183.0"&gt;Download Last Version&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-3860560416766163808?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2009/02/new-software-to-use-usbasp-programmer.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://4.bp.blogspot.com/_7fL8vIRXVvg/SZnU113tazI/AAAAAAAAAXY/A4z_AzYzbY4/s72-c/2.JPG" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-2356016792894815169</guid><pubDate>Fri, 19 Dec 2008 15:24:00 +0000</pubDate><atom:updated>2008-12-19T08:12:21.887-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Uart برای USB-ASP</category><title>اضافه کردن پورت سریال UART به USB-ASP</title><description>سلام&lt;p&gt;تو سخت افزار پروگرامر USB-ASP پیش بینی یه پورت سریال شده، اما تو نرم افزار اون این قابلیت اضافه نشده. برای همین تصمیم گرفتم تا این کار ناتموم رو تموم کنم. این اولین ورژن این نرم افزاره و به مرور جدید ترش می کنم و تو همین پست قرار میدم.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 378px;" src="http://1.bp.blogspot.com/_7fL8vIRXVvg/SUvFmIoDfYI/AAAAAAAAAUM/eOrIFIctOAk/s400/Usb.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5281532246963223938" /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://mostafa.hk.googlepages.com/PCUSB-ASPUART.zip"&gt;برنامه کامپیوتر&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://mostafa.hk.googlepages.com/USBASP_MY.zip"&gt;برنامه AVR&lt;/a&gt;&lt;/p&gt;&lt;p&gt;ا&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-2356016792894815169?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/12/usb-asp.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://1.bp.blogspot.com/_7fL8vIRXVvg/SUvFmIoDfYI/AAAAAAAAAUM/eOrIFIctOAk/s72-c/Usb.JPG" height="72" width="72" /><thr:total>0</thr:total><enclosure url="http://mostafa.hk.googlepages.com/PCUSB-ASPUART.zip" length="58460" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/PCUSB-ASPUART.zip" fileSize="58460" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام تو سخت افزار پروگرامر USB-ASP پیش بینی یه پورت سریال شده، اما تو نرم افزار اون این قابلیت اضافه نشده. برای همین تصمیم گرفتم تا این کار ناتموم رو تموم کنم. این اولین ورژن این نرم افزاره و به مرور جدید ترش می کنم و تو همین پست قرار میدم. برنامه کامپیوت</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام تو سخت افزار پروگرامر USB-ASP پیش بینی یه پورت سریال شده، اما تو نرم افزار اون این قابلیت اضافه نشده. برای همین تصمیم گرفتم تا این کار ناتموم رو تموم کنم. این اولین ورژن این نرم افزاره و به مرور جدید ترش می کنم و تو همین پست قرار میدم. برنامه کامپیوتر برنامه AVR اok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>Uart برای USB-ASP</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-529526063099964314</guid><pubDate>Sun, 30 Nov 2008 13:05:00 +0000</pubDate><atom:updated>2009-02-16T11:24:49.467-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">اتصال USB به AVR بدون نیاز به آی سی واسط</category><title>OBDEV USB</title><description>&lt;div align="right" dir="rtl"&gt;فصل اول : OBDEV USB چیست؟&lt;br /&gt;&lt;br /&gt;این پدیده یک درایور نرم افزاری منطبق با winavr می باشد که خیلی خوب میباشد. شما تنها با اشغال کردن 2 یا 3 پایه از AVR میتوانید با پورت USB کامپیوتر ارتباط برقرار کنید. این نرم افزار حد اکثر 2kB از فضای فلش را اشغال میکند و اینتراپت خارجی INT0 را نیز اشغال میکند.( یعنی یه روتین اینتراپت داخل این درایور هستش) وقتی از این درایور استفاده می کنید باید فلگ عمومی وقفه I دائما فعال باشد و یه تابع به نام usbPoll(); باید مرتبا ( حداقل هر 50ms یک بار فراخوانی شود) برنامه زیر یک مثال ساده و عملی از این درایور است. فرکانس کریستال تعریف شده برای این درایور 8MHz,12MHz , 16MHz , 20MHz می باشد.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left" dir="ltr"&gt;&lt;br /&gt;#include "usbdrv.h"&lt;br /&gt;#include "avr/interrupt.h"&lt;br /&gt;&lt;br /&gt;uchar usbFunctionSetup(uchar data[8]) {&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    usbInit();&lt;br /&gt;    sei(); //enable all interrupts&lt;br /&gt;&lt;br /&gt;    for(;;)&lt;br /&gt;    {&lt;br /&gt;         usbPoll();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/STKTCO1CJXI/AAAAAAAAANw/ISC2R5vTNWc/s400/PIC.JPG" border="0" alt="center" id="BLOGGER_PHOTO_ID_5274439780153828722" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;هیچ قطعه و یا سیم کشی خاصی برای این درایور لازم نیست تنها دو قانون وجود دارد :&lt;br /&gt;1.   پایه  +D حتما باید  پایه int0  باشد یا این پایه به int0 نیز وصل شده باشد ، که در مدار ما راه دوم را انتخاب کرده، به همین دلیل پایه PD2 به PB1 وصل شده.&lt;br /&gt;2. پایه -D    حتما باید دارای مقاومت Pullup حدود 1.5 کیلو باشد.&lt;br /&gt;&lt;br /&gt;در آدرس زیر می توانید پروژه های بسیاری را ببینید که با این درایور نوشته شده اند.&lt;br /&gt;&lt;a href="http://www.obdev.com/products/avrusb/prjall.html"&gt;تمام پروژه های نوشته شده با OBDEV&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eca.ir/forum2/index.php?topic=21747.0"&gt;ادامه این آموزش&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-529526063099964314?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/11/obdev-usb.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://3.bp.blogspot.com/_7fL8vIRXVvg/STKTCO1CJXI/AAAAAAAAANw/ISC2R5vTNWc/s72-c/PIC.JPG" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-4365599109299246166</guid><pubDate>Sun, 18 May 2008 18:27:00 +0000</pubDate><atom:updated>2008-12-10T03:00:22.666-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">چگونه از پورت موازی (Parallel Port) استفاده کنیم</category><title>چگونه از پورت موازی (Parallel Port) استفاده کنیم C# , C++ l</title><description>&lt;div dir="rtl" align="center"&gt;&lt;span style="font-size:0;"&gt;چگونه از پورت موازی استفاده کنیم&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" align="right"&gt;&lt;br /&gt;&lt;strong&gt;مقدمه:‏&lt;/strong&gt;&lt;br /&gt;این مقاله صرفا برای استفاده عموم از پورت موازی نوشته شده و قبل مطالعه لازم ‏است نکاتی را مورد بررسی قرار دهیم:‏&lt;br /&gt;- در زبانهای برنامه نویسی اعداد در هگزا اینطور&lt;br /&gt;‎0xNNNN‏ نوشته میشوند. برای مثال :‏&lt;br /&gt;‎0xa30b , 0x55bfa , 0x2ab25 , …‎&lt;br /&gt;&lt;br /&gt;- در رایانه ها فضای حافظه شامل چندین بخش است که بخشی از آن مربوط ‏به ارتباط با سخت افزار است که به آن فضای پورتها می گویند. یعنی ثباتهایی که در این محدوده هستند برای ‏ذخیره اطلاعات نیستند این ثباتها در داخل ‏BIOS‏ و یا سایر آی سی های ‏سیستم وجود دارند. به وسیله این ثباتها می توان سیستم را ‏Over Clock‏ ‏کرد یا ساعت وتاریخ آن را تغییر داد ، رایانه را ‏Restart‏ کرد و ... . در ‏محیط ویندوز به دلیل مسائل امنیتی دسترسی مستقیم به فضای پورتها ‏ممکن نیست به همین دلیل از توابعی مانند ‏Inp32‎‏ و ‏Out32‎‏ برای دسترسی به این ‏رجیستر ها استفاده می کنیم.این توابع در فایل ‏inpout32.dll‏ وجود دارند.&lt;br /&gt;- توجه کنید که به این رجیستر ها به دلیل این که ‏ارتباط میان برنامه و سخت افزار را میسر می سازند ، پورت گفته می ‏شود. مثلا رجیستر شماره ‏‎0x378‎‏ را پورت ‏‎0x378‎‏ می نامند.‏&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="rtl" align="left"&gt;&lt;br /&gt;Void Out32(int address , int value);‎&lt;br /&gt;Uint Inp32(int address);‎&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" align="right"&gt;توجه داشته باشید که درست است که این دو تابع مقدار محتوای پورت ( ‏ثبات یا همان رجیستر ) مورد نظر را به صورت ‏int‏ که چهار بایتی است ‏رد و بدل می کنند اما فقط بایت کوچکتر مورد استفاده است و سه بایت ‏دیگر برای تابع بی استفاده است.‏&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:0;"&gt;پورت موازی چیست؟&lt;/span&gt;&lt;br /&gt;این پورت در ابتدا فقط برای پرینتر های ‏IBM‏ روی کامپیوتر ها اظافه شد. اما با ‏ورود پورت سریال و ‏USB‏ اکنون سالهای آخر عمر خود را سپری می کند و هم ‏اکنون روی سیستم های پیشرفته نصب نمی شود. اما برای ساخت پروژه های ‏کوچک مرتبت با رایانه ساده ترین و ارزانترین گزینه است.‏&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5201783353389904578" alt="" src="http://1.bp.blogspot.com/_7fL8vIRXVvg/SDByZlFYcsI/AAAAAAAAAL4/3sHQDoSX7QY/s400/image004.jpg" border="0" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5201783357684871890" alt="" src="http://2.bp.blogspot.com/_7fL8vIRXVvg/SDByZ1FYctI/AAAAAAAAAMA/iUIe87dh-5s/s400/image006.jpg" border="0" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;همان طور که در شکل می بینید این پورت دارای 25 پایه است که 8 تای آن بدون ‏استفاده و به زمین متصل اند.بقیه پایه ها سه گروهند:‏&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;الف) پایه های خروجی ‏‎(Data Out)‎&lt;/strong&gt;&lt;br /&gt;شامل پایه های ( 2-9 ) می شود.در اغلب رایانه ها فقط خروجی اند و به عنوان ‏ورودی نمی توان از آنها استفاده کرد. این پایه ها از نوع آی سی های ‏TTL‏ هستند ‏و در حالت اتصال کوتاه جریانی تا ‏‎100mA‏ را می هند.‏&lt;br /&gt;این پایه ها به وسیله ثبات شماره ( ‏‎0x378‎‏ ) رایانه ها قابل دسترسی هستند (البته ‏ممکن است در گروهی از رایانه ها شماره این ثبات فرق کند). ارتباط بیت های ‏این ثبات با پایه های پورت در شکل نمایش داده شده است.‏&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ب)پایه های ورودی ( ‏Status‏ )‏&lt;/strong&gt;&lt;br /&gt;شامل پایه های ( 10،11،12،13،15 ) می شود.این گروه از پایه ها فقط ورودی ‏اند یعنی فقط می توان اطلاعات این پایه ها را خواند. این پایه ها به وسیله&lt;br /&gt;ثبات شماره ( ‏‎0x379‎‏ ) رایانه ها قابل دسترسی هستند (البته ممکن است در ‏گروهی از رایانه ها شماره این ثبات فرق کند).این پایه ها در حالت باز با یک ‏مقاومت ‏‎1K‏ به ‏VCC‏ متصل شده اند.ارتباط بیت های این ثبات با پایه های پورت ‏در شکل نمایش داده شده است.‏&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ج)پایه های ورودی و خروجی ( ‏Control‏ )‏&lt;/strong&gt;&lt;br /&gt;شامل پایه های ( 10،11،12،13،15 ) می شود.این گروه از پایه ها فقط ورودی ‏اند یعنی فقط می توان اطلاعات این پایه ها را خواند. این پایه ها به وسیله&lt;br /&gt;ثبات شماره (‏‎0x37a ‎‏ ) رایانه ها قابل دسترسی هستند (البته ممکن است در ‏گروهی از رایانه ها شماره این ثبات فرق کند).این پایه ها در حالت باز با یک ‏مقاومت ‏‎1K‏ به ‏VCC‏ متصل شده اند.مقدار صفر ویک این پایه ها را هم می توان ‏خواند و هم می توان آن را نوشت.‏&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;آدرس پورت&lt;/strong&gt;&lt;br /&gt;پیش از این گفتیم آدرس پورت مورد نظر در فظای رایانه ممکن است در بعضی ‏از رایانه ها تفاوت کند اما باید بدانیم که ترتیب این آدرس ها همواره یکی است. ‏یعنی رجیستر خروجی ‏Data‏ در ابتدا بعد از آن ‏Status‏ یا همان ورودی ها و بعد ‏از آن هم ‏Control‏ یا همان خروجی ها.‏&lt;br /&gt;آدرس آغاز دسترسی به رجیستر را ‏Base address‏ می نامیم و حالا به جداول ‏زیر دقت کنید:‏&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;آدرس پورت در رایانه شما&lt;br /&gt;به مسیر زیر مراجعه کنید :‏&lt;br /&gt;&lt;div dir="ltr" align="left"&gt;Control Panel / System / Hardware / Device Manager / Ports ‎‎(Com &amp;amp; LPT) / ECP Printer port / Resources.‎&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5201783361979839202" alt="" src="http://3.bp.blogspot.com/_7fL8vIRXVvg/SDByaFFYcuI/AAAAAAAAAMI/h9choaPh-Dk/s400/image008.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;در این پنجره لیستی وجود دارد که آدرس رجیسترهای کامپیوتر شما را نشان می ‏دهد. رایانه من دارای دو ‏BaseAddress‏ برای دسترسی به پورت موازی ‏‏(‏LPT‏)است که با ‏I/O Range‏ نشان داده شده است.یکی از ‏‎0x378 – 0x37f‏ و ‏دیگری از ‏‎0x778 – 0x77b‏ البته هر دوی این آدرس ها به یک پورت متصل ‏اند.اگر در رایانه شما چنین پنجره ای وجود ندارد برنامه ‏‎ port95ntرا دانلود و ‏نصب کنید.‏&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;پروژه اول:‏&lt;br /&gt;خاموش روشن کردن چراغ با پورت موازی‏&lt;/strong&gt;&lt;br /&gt;این برنامه درون کامپایلر ‏Dev-C++‎‏ کار می کند و به احتمال زیاد در بقیه کامپایلر ها هم ‏همین طور.‏&lt;br /&gt;&lt;br /&gt;ابتدا باید فایل ‏inpout32.Dll‏ را به برنامه اضافه کنیم.‏&lt;br /&gt;&lt;div dir="ltr" align="left"&gt;&lt;br /&gt;‎#include &lt;windows h=""&gt;‎&lt;br /&gt;&lt;br /&gt;‎/* prototype (function typedef) for DLL function Inp32: */‎&lt;br /&gt;‎ typedef short _stdcall (*inpfuncPtr)(short portaddr);‎&lt;br /&gt;‎ typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ HINSTANCE hLib;‎&lt;br /&gt;‎ inpfuncPtr inp32;‎&lt;br /&gt;‎ oupfuncPtr oup32;‎&lt;br /&gt;int openPortLib()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ /* Load the library */‎&lt;br /&gt;‎ hLib = LoadLibrary("inpout32.dll");‎&lt;br /&gt;&lt;br /&gt;‎ if (hLib == NULL) ‎&lt;br /&gt;‎ return -1;‎&lt;br /&gt;&lt;br /&gt;‎ /* get the address of the function */‎&lt;br /&gt;&lt;br /&gt;‎ inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");‎&lt;br /&gt;&lt;br /&gt;‎ if (inp32 == NULL) {‎&lt;br /&gt;‎ return -2;‎&lt;br /&gt;‎ }‎&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‎ oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");‎&lt;br /&gt;&lt;br /&gt;‎ if (oup32 == NULL) {‎&lt;br /&gt;‎ return -3;‎&lt;br /&gt;‎ }‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ return 0; //loaded succed‎&lt;br /&gt;‎}‎&lt;br /&gt;&lt;br /&gt;int main()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ openPortLib();‎&lt;br /&gt;‎}‎&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;اگر از تابع ‏openPortLib‏ و ‏Typedefine‏ ها سر در نیاوردید نگرا نباشید من ‏هم چیزی نفهمیدم. فقط میدانیم از این به بعد در برنامه ما دو تابع ‏inp32‎‏ برای ‏خواندن از رجیستر ها و ‏ou32‎‏ برای نوشتن در رجیسترها وجود دارند. با ید توجه ‏کنید که قبل از استفاده از این دو تابع تابع ‏openPortLib‏ را یکبار در آغاز ‏برنامه فراخوانی کنید و همجنین فایل ‏inpout32.dll‏ را در مجاورت فایل اجرایی ‏برنامه تان یا در پوشه ‏system32‎‏ کپی کنید.‏&lt;br /&gt;حالا کار را شروع می کنیم.قرار است برنامه با پس از هر بار فشار دادن کلیدها ‏یک ‏LED‏ را که به پایه شماره 3 متصل است را برعکس کند یعنی اگر خاموش ‏است ، روشن و اگر روشن است ، خاموش کند و با زدن دکمه ‏y‏ برنامه بسته شود.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5201783366274806514" alt="" src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SDByaVFYcvI/AAAAAAAAAMQ/xjiCT9HgyUM/s400/image010.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;‎#include &lt;windows h=""&gt;‎&lt;br /&gt;‎#include&lt;br /&gt;&lt;br /&gt;‎#define BASE 0x378‎&lt;br /&gt;‎/* prototype (function typedef) for DLL function Inp32: */‎&lt;br /&gt;‎ typedef short _stdcall (*inpfuncPtr)(short portaddr);‎&lt;br /&gt;‎ typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ HINSTANCE hLib;‎&lt;br /&gt;‎ inpfuncPtr inp32;‎&lt;br /&gt;‎ oupfuncPtr oup32;‎&lt;br /&gt;int openPortLib()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ /* Load the library */‎&lt;br /&gt;‎ hLib = LoadLibrary("inpout32.dll");‎&lt;br /&gt;&lt;br /&gt;‎ if (hLib == NULL) ‎&lt;br /&gt;‎ return -1;‎&lt;br /&gt;&lt;br /&gt;‎ /* get the address of the function */‎&lt;br /&gt;&lt;br /&gt;‎ inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");‎&lt;br /&gt;&lt;br /&gt;‎ if (inp32 == NULL) {‎&lt;br /&gt;‎ return -2;‎&lt;br /&gt;‎ }‎&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‎ oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");‎&lt;br /&gt;&lt;br /&gt;‎ if (oup32 == NULL) {‎&lt;br /&gt;‎ return -3;‎&lt;br /&gt;‎ }‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ return 0; //loaded succed‎&lt;br /&gt;‎}‎&lt;br /&gt;&lt;br /&gt;int main()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ openPortLib();‎&lt;br /&gt;‎ char ch = 'f';‎&lt;br /&gt;‎ bool temp = true;‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ while(ch != 'y' &amp;amp;&amp;amp; ch != 'Y')‎&lt;br /&gt;‎ {‎&lt;br /&gt;‎ oup32( BASE , (temp ? 0 : 0x‎‏02‏‎) );‎&lt;br /&gt;‎ ch = getch();‎&lt;br /&gt;‎ temp = !temp;‎&lt;br /&gt;‎ }‎&lt;br /&gt;‎} ‎&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;strong&gt;پروژه دوم:‏&lt;/strong&gt;&lt;br /&gt;برنامه ای که با زدن کلیدی بسته شود&lt;br /&gt;این برنامه درون حلقه ای قرار می گیرد و با اتصال کوتاه کردن پایه 15 از پورت ‏به زمین یا همان بدنه و در حقیقت صفر کردن این پایه از نظر منطقی از حلقه ‏خارج می شود.پایه 15 بیت سوم از رجیستر ‏Status‏ (‏BASE+1‎‏) است و ‏معکوس هم نشده.‏&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5201783366274806530" alt="" src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SDByaVFYcwI/AAAAAAAAAMY/kkyUrlv5YfY/s400/image012.jpg" border="0" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;br /&gt;‎#include&lt;br /&gt;‎#include&lt;br /&gt;&lt;br /&gt;‎#define BASE 0x378‎&lt;br /&gt;‎/* prototype (function typedef) for DLL function Inp32: */‎&lt;br /&gt;‎ typedef short _stdcall (*inpfuncPtr)(short portaddr);‎&lt;br /&gt;‎ typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ HINSTANCE hLib;‎&lt;br /&gt;‎ inpfuncPtr inp32;‎&lt;br /&gt;‎ oupfuncPtr oup32;‎&lt;br /&gt;int openPortLib()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ /* Load the library */‎&lt;br /&gt;‎ hLib = LoadLibrary("inpout32.dll");‎&lt;br /&gt;&lt;br /&gt;‎ if (hLib == NULL) ‎&lt;br /&gt;‎ return -1;‎&lt;br /&gt;&lt;br /&gt;‎ /* get the address of the function */‎&lt;br /&gt;&lt;br /&gt;‎ inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");‎&lt;br /&gt;&lt;br /&gt;‎ if (inp32 == NULL) {‎&lt;br /&gt;‎ return -2;‎&lt;br /&gt;‎ }‎&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;‎ oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");‎&lt;br /&gt;&lt;br /&gt;‎ if (oup32 == NULL) {‎&lt;br /&gt;‎ return -3;‎&lt;br /&gt;‎ }‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ return 0; //loaded succed‎&lt;br /&gt;‎}‎&lt;br /&gt;&lt;br /&gt;int main()‎&lt;br /&gt;‎{‎&lt;br /&gt;‎ openPortLib();‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ while( (inp32(BASE+1) &amp;amp; 0x08) == 0x08 )‎&lt;br /&gt;‎ {‎&lt;br /&gt;‎ ‎&lt;br /&gt;‎ }‎&lt;br /&gt;‎}‎&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://mostafa.hk.googlepages.com/HowUSEParallelPor.rar"&gt;دانلود سورس برنامه ها&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;C# and parallel port :&lt;/p&gt;&lt;p&gt;در این زبان هم به همین ترتیب عمل می کنیم. یعنی فایل ‏inpout32.dll را یه بارنامه پیوند می دهیم و از دو تابع :&lt;/p&gt;&lt;p dir="ltr" align="left"&gt;Void Out32(int address , int value);‎&lt;/p&gt;&lt;p dir="ltr" align="left"&gt;Uint Inp32(int address);‎ &lt;/p&gt;&lt;p&gt;استفاده می کنیم. برای این کار باید ابتدا namespace به نام InteropServices را به برنامه اضافه کنیم. لذا دستور زیر را در بالای فایل برنامه اضافه می کنیم.&lt;/p&gt;&lt;p dir="ltr" align="left"&gt;&lt;br /&gt;using System.Runtime.InteropServices;&lt;/p&gt;&lt;p dir="rtl" align="right"&gt;حالا نوبت به اضافه کردن دو تابع Out32 و Inp32 می رسد. برای این کار دو دستور زیر را به برنامه اضافه می کنیم.&lt;/p&gt;&lt;p dir="ltr" align="left"&gt;&lt;br /&gt;[DllImport("inpout32.dll", EntryPoint = "Out32")]&lt;br /&gt;public static extern void Output(int adress, int value); //imports Out32 as name Output&lt;br /&gt;[DllImport("inpout32.dll", EntryPoint = "Inp32")]&lt;br /&gt;public static extern void Input(int adress); //imports Inp32 as name Input&lt;/p&gt;&lt;p dir="rtl" align="right"&gt;توجه داشته باشید که شما با این روش می توانید در هنگام تعریف تابع خارجی هر نامی را که می خواهید به تابع اختصاص دهید. همانطور که در اینجا برای Out32 نام Output در نظر گرفته شده و برای Inp32 نام Input .&lt;/p&gt;&lt;p dir="rtl" align="right"&gt;مثال زیر را انلود کنید ، با بررسی برنامه نکات ابهام برطرف می شود. ان شاء الله&lt;/p&gt;&lt;p dir="rtl" align="right"&gt;این برنامه 8 عدد LED که به پورت دیتا وصل شده اند را خاموش و روشن می کند و یک رقص نور ساده است. همچنین برای مثال ورودی نیز پایه 10 پورت پرینتر که همان بیت 7 از رجیستر status را چک می کند و اگر 1 بود دکمه مربوطه قرمز رنگ و اگر 0 بود آبی رنگ می شود.&lt;/p&gt;&lt;p dir="rtl" align="right"&gt;&lt;a href="http://mostafa.hk.googlepages.com/SamplePP.zip"&gt;دانلود برنامه به زبان C#&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-4365599109299246166?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/05/parallel-port.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://1.bp.blogspot.com/_7fL8vIRXVvg/SDByZlFYcsI/AAAAAAAAAL4/3sHQDoSX7QY/s72-c/image004.jpg" height="72" width="72" /><thr:total>2</thr:total><enclosure url="http://mostafa.hk.googlepages.com/HowUSEParallelPor.rar" length="149493" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/HowUSEParallelPor.rar" fileSize="149493" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>چگونه از پورت موازی استفاده کنیم مقدمه:‏ این مقاله صرفا برای استفاده عموم از پورت موازی نوشته شده و قبل مطالعه لازم ‏است نکاتی را مورد بررسی قرار دهیم:‏ - در زبانهای برنامه نویسی اعداد در هگزا اینطور ‎0xNNNN‏ نوشته میشوند. برای مثال :‏ ‎0xa30b , 0x55bfa ,</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>چگونه از پورت موازی استفاده کنیم مقدمه:‏ این مقاله صرفا برای استفاده عموم از پورت موازی نوشته شده و قبل مطالعه لازم ‏است نکاتی را مورد بررسی قرار دهیم:‏ - در زبانهای برنامه نویسی اعداد در هگزا اینطور ‎0xNNNN‏ نوشته میشوند. برای مثال :‏ ‎0xa30b , 0x55bfa , 0x2ab25 , …‎ - در رایانه ها فضای حافظه شامل چندین بخش است که بخشی از آن مربوط ‏به ارتباط با سخت افزار است که به آن فضای پورتها می گویند. یعنی ثباتهایی که در این محدوده هستند برای ‏ذخیره اطلاعات نیستند این ثباتها در داخل ‏BIOS‏ و یا سایر آی سی های ‏سیستم وجود دارند. به وسیله این ثباتها می توان سیستم را ‏Over Clock‏ ‏کرد یا ساعت وتاریخ آن را تغییر داد ، رایانه را ‏Restart‏ کرد و ... . در ‏محیط ویندوز به دلیل مسائل امنیتی دسترسی مستقیم به فضای پورتها ‏ممکن نیست به همین دلیل از توابعی مانند ‏Inp32‎‏ و ‏Out32‎‏ برای دسترسی به این ‏رجیستر ها استفاده می کنیم.این توابع در فایل ‏inpout32.dll‏ وجود دارند. - توجه کنید که به این رجیستر ها به دلیل این که ‏ارتباط میان برنامه و سخت افزار را میسر می سازند ، پورت گفته می ‏شود. مثلا رجیستر شماره ‏‎0x378‎‏ را پورت ‏‎0x378‎‏ می نامند.‏ Void Out32(int address , int value);‎ Uint Inp32(int address);‎ توجه داشته باشید که درست است که این دو تابع مقدار محتوای پورت ( ‏ثبات یا همان رجیستر ) مورد نظر را به صورت ‏int‏ که چهار بایتی است ‏رد و بدل می کنند اما فقط بایت کوچکتر مورد استفاده است و سه بایت ‏دیگر برای تابع بی استفاده است.‏ پورت موازی چیست؟ این پورت در ابتدا فقط برای پرینتر های ‏IBM‏ روی کامپیوتر ها اظافه شد. اما با ‏ورود پورت سریال و ‏USB‏ اکنون سالهای آخر عمر خود را سپری می کند و هم ‏اکنون روی سیستم های پیشرفته نصب نمی شود. اما برای ساخت پروژه های ‏کوچک مرتبت با رایانه ساده ترین و ارزانترین گزینه است.‏ همان طور که در شکل می بینید این پورت دارای 25 پایه است که 8 تای آن بدون ‏استفاده و به زمین متصل اند.بقیه پایه ها سه گروهند:‏ الف) پایه های خروجی ‏‎(Data Out)‎ شامل پایه های ( 2-9 ) می شود.در اغلب رایانه ها فقط خروجی اند و به عنوان ‏ورودی نمی توان از آنها استفاده کرد. این پایه ها از نوع آی سی های ‏TTL‏ هستند ‏و در حالت اتصال کوتاه جریانی تا ‏‎100mA‏ را می هند.‏ این پایه ها به وسیله ثبات شماره ( ‏‎0x378‎‏ ) رایانه ها قابل دسترسی هستند (البته ‏ممکن است در گروهی از رایانه ها شماره این ثبات فرق کند). ارتباط بیت های ‏این ثبات با پایه های پورت در شکل نمایش داده شده است.‏ ب)پایه های ورودی ( ‏Status‏ )‏ شامل پایه های ( 10،11،12،13،15 ) می شود.این گروه از پایه ها فقط ورودی ‏اند یعنی فقط می توان اطلاعات این پایه ها را خواند. این پایه ها به وسیله ثبات شماره ( ‏‎0x379‎‏ ) رایانه ها قابل دسترسی هستند (البته ممکن است در ‏گروهی از رایانه ها شماره این ثبات فرق کند).این پایه ها در حالت باز با یک ‏مقاومت ‏‎1K‏ به ‏VCC‏ متصل شده اند.ارتباط بیت های این ثبات با پایه های پورت ‏در شکل نمایش داده شده است.‏ ج)پایه های ورودی و خروجی ( ‏Control‏ )‏ شامل پایه های ( 10،11،12،13،15 ) می شود.این گروه از پایه ها فقط ورودی ‏اند یعنی فقط می توان اطلاعات این پایه ها را خواند. این پایه ها به وسیله ثبات شماره (‏‎0x37a ‎‏ ) رایانه ها قابل دسترسی هستند (البته ممکن است در ‏گروهی از رایانه ها شماره این ثبات فرق کند).این پایه ها در حالت باز با یک ‏مقاومت ‏‎1K‏ به ‏VCC‏ متصل شده اند.مقدار صفر ویک این پایه ها را هم می توان ‏خواند و هم می توان آن را نوشت.‏ آدرس پورت پیش از این گفتیم آدرس پورت مورد نظر در فظای رایانه ممکن است در بعضی ‏از رایانه ها تفاوت کند اما باید بدانیم که ترتیب این آدرس ها همواره یکی است. ‏یعنی رجیستر خروجی ‏Data‏ در ابتدا بعد از آن ‏Status‏ یا همان ورودی ها و بعد ‏از آن هم ‏Control‏ یا همان خروجی ها.‏ آدرس آغاز دسترسی به رجیستر را ‏Base address‏ می نامیم و حالا به جداول ‏زیر دقت کنید:‏ آدرس پورت در رایانه شما به مسیر زیر مراجعه کنید :‏ Control Panel / System / Hardware / Device Manager / Ports ‎‎(Com &amp;amp; LPT) / ECP Printer port / Resources.‎ در این پنجره لیستی وجود دارد که آدرس رجیسترهای کامپیوتر شما را نشان می ‏دهد. رایانه من دارای دو ‏BaseAddress‏ برای دسترسی به پورت موازی ‏‏(‏LPT‏)است که با ‏I/O Range‏ نشان داده شده است.یکی از ‏‎0x378 – 0x37f‏ و ‏دیگری از ‏‎0x778 – 0x77b‏ البته هر دوی این آدرس ها به یک پورت متصل ‏اند.اگر در رایانه شما چنین پنجره ای وجود ندارد برنامه ‏‎ port95ntرا دانلود و ‏نصب کنید.‏ پروژه اول:‏ خاموش روشن کردن چراغ با پورت موازی‏ این برنامه درون کا</itunes:summary><itunes:keywords>چگونه از پورت موازی (Parallel Port) استفاده کنیم</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-5718378847808216657</guid><pubDate>Sun, 11 May 2008 14:51:00 +0000</pubDate><atom:updated>2008-12-10T03:00:23.300-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ارزانترین چرخ برای ربات</category><title>ارزانترین چرخ برای ربات</title><description>&lt;div align="right" dir="rtl"&gt;&lt;div align="right" dir="rtl"&gt;سلام&lt;br /&gt;&lt;/div&gt;اولش که برای تهیه چرخ برای ربات به خیابون جمهوری رفته بودم فکر نمی کردم که قراره دوتا اسباب بازی بخرم و برگردم.&lt;br /&gt;خلاصه بعد از کلی چرخیدن تو پاساژها ارزون ترین موتور گیربکس داری که پیدا کردم 6500 تومان بود. تازه معلوم نبود که بتونه کارمو راه بندازه یا نه.&lt;br /&gt;خلاصه بعد از کلی چرخیدن یه چیزی خریدیم و در حال برگشتن بودیم که یکی از هم دانشکده ای هایم رو دیدم که تو این کارا وارد بود. وقتی دید که چقدر پول بالای یه موتور گیربکس الکی دادم خیلی ضد حال خورد و منو برد پیش دست فروشهای همون خیابون که ماشین اسباب بازی می فروختند.&lt;br /&gt;هر کدوم از این ماشینها رو 1600 تومان خریدیم و برگشتیم .&lt;br /&gt;اولش اینقدر بسته بندی قشنگی داشت دلم نیومد اوراقش کنم ولی چاره ای نبود و بعد از اینکه اوراقش کردم دیدم که چه گیربکس باحالی داره . انگار برای کارهای روباتیک طراحی شده . ضمنا اگه اینطور که می گم روی بدنه سوارش کنید ، رباتتون چهار چرخ می چرخه و Handling ش کلی بالا می ره.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7fL8vIRXVvg/SCX315ABndI/AAAAAAAAAKo/lBzkDg6jXXY/s1600-h/DSC00434.JPG"&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SCX315ABndI/AAAAAAAAAKo/lBzkDg6jXXY/s400/DSC00434.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5198833850075160018" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;br /&gt;اول که پیچهایش رو باز کنید این شکلی می شه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/SCX32ZABneI/AAAAAAAAAKw/hcjniEwVVUI/s1600-h/DSC00435.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/SCX32ZABneI/AAAAAAAAAKw/hcjniEwVVUI/s400/DSC00435.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5198833858665094626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;br /&gt;بعد که گیربکس رو از رو بدنه پیاده کنید این شکلی می شه.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7fL8vIRXVvg/SCX325ABnfI/AAAAAAAAAK4/OH8wCHEBeJ0/s1600-h/DSC00436.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/SCX325ABnfI/AAAAAAAAAK4/OH8wCHEBeJ0/s400/DSC00436.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5198833867255029234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;br /&gt;حالا دو تا از این گیربکس ها رو با چرخها رو دو طرف بدنه رباط می بندیم.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7fL8vIRXVvg/SCX33JABnhI/AAAAAAAAALI/bZCyoxBvVbU/s1600-h/DSC00439.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/SCX33JABnhI/AAAAAAAAALI/bZCyoxBvVbU/s400/DSC00439.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5198833871549996562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;&lt;br /&gt;چون در هر دو طرف چرخ عقب و جلو با هم می چرخند می شه یه کاری کرد که مثل تانک دور خودش بچرخه . فقط کافیه که دو تا موتور ها رو عکس هم بچرخونید.&lt;br /&gt;&lt;br /&gt;فعلا کامل نساختمش . وقتی کامل شد فیلمش رو می گذارم.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-5718378847808216657?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/05/blog-post_11.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://4.bp.blogspot.com/_7fL8vIRXVvg/SCX315ABndI/AAAAAAAAAKo/lBzkDg6jXXY/s72-c/DSC00434.JPG" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-104338877366939017</guid><pubDate>Tue, 06 May 2008 15:35:00 +0000</pubDate><atom:updated>2008-12-10T03:00:23.677-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">برنامه تستر STK200</category><title>STK200 Tester</title><description>&lt;div&gt;&lt;span&gt;سلام&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;خیلی از کسانی که &lt;/span&gt;&lt;a href="http://mostafahk.blogspot.com/2008/03/blog-post.html"&gt;&lt;span&gt;پروگرامر STK200 &lt;/span&gt;&lt;/a&gt;&lt;span&gt;رو می سازن یک مشکل بزرگ دارند اونم اینه که نمیدونن که این پروگرامر رو درست مونتاژ کردن یا نه.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;این برنامه می تونه تا حد زیادی به حل مشکل مبتدیان با این پروگرامر کمک کنه.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;این برنامه رو میتونید از&lt;a href="http://mostafa.hk.googlepages.com/STK200Tester.rar"&gt; اینجا دانلود&lt;/a&gt; کنید.&lt;br /&gt;&lt;span&gt;مدار زیر همون مدار STK200 است. البته مدلهای بافر دار هم هستن که هیچ فرقی نمیکنن فقط امنیت بیشتری دارند. &lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s1600-h/image001.jpg"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;img id="BLOGGER_PHOTO_ID_5174742451166654274" alt="" src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s320/image001.jpg" border="0" /&gt;&lt;/p&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;طرز کار برنامه:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;div br=""&gt;&lt;div align="right"&gt;&lt;span&gt;قبل از اجرای برنامه باید مدار ساده زیر رو روی برد برد ببندبد.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_7fL8vIRXVvg/SCCDonL6NhI/AAAAAAAAAKg/xZzZg6V-28M/s1600-h/Circuit.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5197298703722493458" alt="" src="http://3.bp.blogspot.com/_7fL8vIRXVvg/SCCDonL6NhI/AAAAAAAAAKg/xZzZg6V-28M/s400/Circuit.jpg" border="0" /&gt;&lt;/a&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;وقتی برنامه رو اجرا می کنید یک پیغام میاد و از شما می خواد که پروگرامر STK200 رو به کامپیوتر وصل کنید و پس از آن یک دکمه بزنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;پس از اینکه دکمه ای بزنید پروگرامر سیم های شناسه STK200 رو چک می کنه. این سیم ها دو تا هستند ، یکی از پایه 12 به پایه 2 وصل شده و دیگری از پایه 11 به پایه 3 وصل شده هر کدوم از این سیمها که درست وصل نشده باشد برنامه پیغام میده.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span&gt;پس از این مرحله نوبت به تست سیم SCK می رسه. برنامه این سیم رو یک می کنه منتظر می مونه تا یک دکمه بزنید. اگه LED مربوط به SCK روشن نشد بدونید که تو مسیر این سیم مشکلی است. پس از اینکه یک کلید رو زدید برنامه پایه SCK رو صفر می کنه. حالا LED مربوط به SCK باید خاموش باشه والا بازم یه جای کار مشکل داره.&lt;br /&gt;&lt;span&gt;پس از SCK پایه های MOSI و RESET هم به همین روال چک می شن.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span&gt;حالا نوبت به پایه MISO می رسه که یک پایه ورودی . دستتون رو از روی کلید بردارید برنامه ابتدا این پایه رو می خونه و اگه یک بود از شما می خواد که دکمه رو فشار بدید. دستتون رو روی دکمه نگه دارید و یک کلید بزنید ، برنامه دوباره ورودی رو میخونه و حالا انتظار داره پایه ورودی صفرباشه، اگه غیر از این بود باز هم خطا می ده.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span&gt;در انتها هم برنامه خودش بسته می شه.&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span&gt;حالا پروگرامر شما تست شده و اگه در مراحل بالا مشکلی نبوده باشه ، کاملا سالمه&lt;/span&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-104338877366939017?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/05/stk200-tester.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s72-c/image001.jpg" height="72" width="72" /><thr:total>0</thr:total><enclosure url="http://mostafa.hk.googlepages.com/STK200Tester.rar" length="168321" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/STK200Tester.rar" fileSize="168321" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام خیلی از کسانی که پروگرامر STK200 رو می سازن یک مشکل بزرگ دارند اونم اینه که نمیدونن که این پروگرامر رو درست مونتاژ کردن یا نه. این برنامه می تونه تا حد زیادی به حل مشکل مبتدیان با این پروگرامر کمک کنه. این برنامه رو میتونید از اینجا دانلود کنید. مدار</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام خیلی از کسانی که پروگرامر STK200 رو می سازن یک مشکل بزرگ دارند اونم اینه که نمیدونن که این پروگرامر رو درست مونتاژ کردن یا نه. این برنامه می تونه تا حد زیادی به حل مشکل مبتدیان با این پروگرامر کمک کنه. این برنامه رو میتونید از اینجا دانلود کنید. مدار زیر همون مدار STK200 است. البته مدلهای بافر دار هم هستن که هیچ فرقی نمیکنن فقط امنیت بیشتری دارند. طرز کار برنامه: قبل از اجرای برنامه باید مدار ساده زیر رو روی برد برد ببندبد. وقتی برنامه رو اجرا می کنید یک پیغام میاد و از شما می خواد که پروگرامر STK200 رو به کامپیوتر وصل کنید و پس از آن یک دکمه بزنید. پس از اینکه دکمه ای بزنید پروگرامر سیم های شناسه STK200 رو چک می کنه. این سیم ها دو تا هستند ، یکی از پایه 12 به پایه 2 وصل شده و دیگری از پایه 11 به پایه 3 وصل شده هر کدوم از این سیمها که درست وصل نشده باشد برنامه پیغام میده. پس از این مرحله نوبت به تست سیم SCK می رسه. برنامه این سیم رو یک می کنه منتظر می مونه تا یک دکمه بزنید. اگه LED مربوط به SCK روشن نشد بدونید که تو مسیر این سیم مشکلی است. پس از اینکه یک کلید رو زدید برنامه پایه SCK رو صفر می کنه. حالا LED مربوط به SCK باید خاموش باشه والا بازم یه جای کار مشکل داره. پس از SCK پایه های MOSI و RESET هم به همین روال چک می شن. حالا نوبت به پایه MISO می رسه که یک پایه ورودی . دستتون رو از روی کلید بردارید برنامه ابتدا این پایه رو می خونه و اگه یک بود از شما می خواد که دکمه رو فشار بدید. دستتون رو روی دکمه نگه دارید و یک کلید بزنید ، برنامه دوباره ورودی رو میخونه و حالا انتظار داره پایه ورودی صفرباشه، اگه غیر از این بود باز هم خطا می ده. در انتها هم برنامه خودش بسته می شه. حالا پروگرامر شما تست شده و اگه در مراحل بالا مشکلی نبوده باشه ، کاملا سالمه. ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>برنامه تستر STK200</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-5729023635881051621</guid><pubDate>Thu, 24 Apr 2008 20:38:00 +0000</pubDate><atom:updated>2008-12-10T03:00:23.888-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">تابلو روان گردان</category><title>تابلو روان گردان</title><description>&lt;embed id="VideoPlayback" flashvars="" src="http://video.google.com/googleplayer.swf?docid=1646205702451980083&amp;hl=en" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;&lt;br /&gt;&lt;strong&gt;اساس کار مدار:&lt;/strong&gt;&lt;br /&gt;اساس کار این نوع تابلو روان ها بر خطای دید انسان است. اگر تا به حال به یک منبع قوی نور نگاه کرده باشید می بینید که تا چند لحظه اثر نور منبع روی چشم شما باقی می ماند. این حالت در مورد LED هم صادق است.&lt;br /&gt;&lt;strong&gt;الگوریتم برنامه :&lt;/strong&gt;&lt;br /&gt;زمانی که ستون LED ها با سرعت زیاد به چرخش در می آید ، یک سنسور مادون قرمز نقطه ای خاص  در حرکت ستون LED ها تحریک می شود و هنگامی که به این نقطه می رسد با delay خاصی (که مدت آن بسته به سرعت موتور است) شروع به ست کردن LED ها از یک آرایه می کند. پس از آن که آیتم های آرایه تمام شد ، برنامه دوباره منتظر تحریک سنسور مادون قرمر می ماند.&lt;br /&gt;&lt;br /&gt;این یک تصویر نمونه از Editor این پروژه است که مخصوص همین پروژه با  #C نوشته شده است.&lt;br /&gt;این Editor با کابل پارالل متن نوشته شده را مستقیما وارد حافظه مدار می کند.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/SB3giHL6NfI/AAAAAAAAAKQ/v_mDTDGGbo8/s1600-h/Rboard_PC.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/SB3giHL6NfI/AAAAAAAAAKQ/v_mDTDGGbo8/s400/Rboard_PC.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5196556421704594930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;div align="right"&gt;&lt;div align="right"&gt;این پروژه تحت CodeVision و WinAvr و 8051 موجود است&lt;br /&gt;مدارات ، Editor  ، سورس کامل  ، توضیحات نحوه ساخت و دفاعیه به طور کامل  فروخته می شود.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="right"&gt;قیمت : 40,000 تومان.&lt;/div&gt;&lt;div align="right"&gt;&lt;a href="http://video.google.com/googleplayer.swf?docid=1646205702451980083&amp;hl=en"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://vp.video.google.com/videodownload?version=0&amp;secureurl=QQAAAFkbD5xWGmxLN335Q-Tck87FwWrM4_bpVNZvoWOBrMxgBy7OIthz3dYw3NBZSSi634b07xnMQ8P8lBjwfLszdHFMO61qfoyqD1CwJEyJozx9&amp;sigh=bKZIDo1cOmfVJtDbdMyo87aaJ2o"&gt;دانلود فیلم کارکرد مدار&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-5729023635881051621?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/04/blog-post_24.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/SB3giHL6NfI/AAAAAAAAAKQ/v_mDTDGGbo8/s72-c/Rboard_PC.JPG" height="72" width="72" /><thr:total>0</thr:total><enclosure url="http://video.google.com/googleplayer.swf?docid=1646205702451980083&amp;hl=en" length="135571" type="application/x-shockwave-flash" /><media:content url="http://video.google.com/googleplayer.swf?docid=1646205702451980083&amp;hl=en" fileSize="135571" type="application/x-shockwave-flash" /><itunes:subtitle> اساس کار مدار: اساس کار این نوع تابلو روان ها بر خطای دید انسان است. اگر تا به حال به یک منبع قوی نور نگاه کرده باشید می بینید که تا چند لحظه اثر نور منبع روی چشم شما باقی می ماند. این حالت در مورد LED هم صادق است. الگوریتم برنامه : زمانی که ستون LED ها </itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary> اساس کار مدار: اساس کار این نوع تابلو روان ها بر خطای دید انسان است. اگر تا به حال به یک منبع قوی نور نگاه کرده باشید می بینید که تا چند لحظه اثر نور منبع روی چشم شما باقی می ماند. این حالت در مورد LED هم صادق است. الگوریتم برنامه : زمانی که ستون LED ها با سرعت زیاد به چرخش در می آید ، یک سنسور مادون قرمز نقطه ای خاص در حرکت ستون LED ها تحریک می شود و هنگامی که به این نقطه می رسد با delay خاصی (که مدت آن بسته به سرعت موتور است) شروع به ست کردن LED ها از یک آرایه می کند. پس از آن که آیتم های آرایه تمام شد ، برنامه دوباره منتظر تحریک سنسور مادون قرمر می ماند. این یک تصویر نمونه از Editor این پروژه است که مخصوص همین پروژه با  #C نوشته شده است. این Editor با کابل پارالل متن نوشته شده را مستقیما وارد حافظه مدار می کند. این پروژه تحت CodeVision و WinAvr و 8051 موجود است مدارات ، Editor ، سورس کامل ، توضیحات نحوه ساخت و دفاعیه به طور کامل  فروخته می شود. قیمت : 40,000 تومان. دانلود فیلم کارکرد مدار ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>تابلو روان گردان</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-1032477108480610138</guid><pubDate>Sun, 20 Apr 2008 09:51:00 +0000</pubDate><atom:updated>2008-12-10T03:00:24.906-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Kavir Micro Wizard</category><title>ابزار برنامه نویسی میکرو</title><description>سلام&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;چند وقتی است که با سایت کوبر الکترونیک در ارتباطم و  با همکاری مسئولین این سایت یک نرم افزار برای راحت کردن کار با میکروکنترلر  تهیه کرده ایم. در حال حاضر این  نرم افزار تنها قابلیت انجام محاسبات برای 7Segment و ال سی دی گرافیکی را دارد.اما به شخصه تضمین می دهم در هر دو مورد از تمام ابزارات موجود روی کامپایلرهایی مثل بسکام قدرتمندتر عمل می کند. لااقل هر چیزی را که به ذهنمان می رسید به آن اظافه کرده ایم یا قصد اظافه کردن آن را داریم.&lt;br /&gt;اگر شما با نظراتتان ما را در هر چه بهتر کردن این برنامه کمک کنید ممنون می شویم.&lt;br /&gt;&lt;br /&gt;و حالا خود برنامه:&lt;br /&gt;Kavir Micro Wizard V0.2 نام همان برنامه ایست که گفته شد . این ورژن برنامه قابلیت های زیر را دارد:&lt;br /&gt;&lt;br /&gt;1 . محاسبات مربوط به 7segment را انجام می دهد.&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/SAsVGc0bsyI/AAAAAAAAAHQ/v3HjV229Ef4/s400/KMW-7Seg.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5191266196034138914" /&gt;&lt;/div&gt;&lt;br /&gt;2. ابزاری برای تبدیل عکس به کدهای ال سی دی گرافیکی.&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/SAsVGs0bszI/AAAAAAAAAHY/Y_4XxpwX4aI/s400/KMW-GLCD.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5191266200329106226" /&gt;&lt;/div&gt;&lt;br /&gt;در آینده قرار است انشاءالله موارد زیر به این نرم افزار اضافه شود :&lt;br /&gt;3. ابزاری برای خواندن سکتور های mmc و sd با کابل پروگرامر stk200 یا از ورودی پورت سریال.&lt;br /&gt;4. ابزاری برای ذخیره نمونه های یک فایل wav بر روی sd/mmc یا بالعکس با کابل stk200 یا از ورودی پورت سریال.&lt;br /&gt;5. ابزاری برای محاسبه کدهای کاراکترهای غیر استاندارد بر روی ال سی دی کاراکتری.&lt;br /&gt;6. ابزاری برای ...&lt;br /&gt;&lt;br /&gt;توجه : این برنامه برای اجرا به dotnetframework2 نیاز دارد. dotnetframework2 بر روی نسخه های جدید xp و تمام نسخه های vista موجود است. اگر سیستم عامل شما غیر از اینهاست باید آن تهیه و نصب کنید.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://mostafa.hk.googlepages.com/MW.msi"&gt;برای دانلود کلیک کنید&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-1032477108480610138?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/04/blog-post.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/SAsVGc0bsyI/AAAAAAAAAHQ/v3HjV229Ef4/s72-c/KMW-7Seg.JPG" height="72" width="72" /><thr:total>1</thr:total><enclosure url="http://mostafa.hk.googlepages.com/MW.msi" length="452096" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/MW.msi" fileSize="452096" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام چند وقتی است که با سایت کوبر الکترونیک در ارتباطم و با همکاری مسئولین این سایت یک نرم افزار برای راحت کردن کار با میکروکنترلر  تهیه کرده ایم. در حال حاضر این  نرم افزار تنها قابلیت انجام محاسبات برای 7Segment و ال سی دی گرافیکی را دارد.اما به شخصه تض</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام چند وقتی است که با سایت کوبر الکترونیک در ارتباطم و با همکاری مسئولین این سایت یک نرم افزار برای راحت کردن کار با میکروکنترلر  تهیه کرده ایم. در حال حاضر این  نرم افزار تنها قابلیت انجام محاسبات برای 7Segment و ال سی دی گرافیکی را دارد.اما به شخصه تضمین می دهم در هر دو مورد از تمام ابزارات موجود روی کامپایلرهایی مثل بسکام قدرتمندتر عمل می کند. لااقل هر چیزی را که به ذهنمان می رسید به آن اظافه کرده ایم یا قصد اظافه کردن آن را داریم. اگر شما با نظراتتان ما را در هر چه بهتر کردن این برنامه کمک کنید ممنون می شویم. و حالا خود برنامه: Kavir Micro Wizard V0.2 نام همان برنامه ایست که گفته شد . این ورژن برنامه قابلیت های زیر را دارد: 1 . محاسبات مربوط به 7segment را انجام می دهد. 2. ابزاری برای تبدیل عکس به کدهای ال سی دی گرافیکی. در آینده قرار است انشاءالله موارد زیر به این نرم افزار اضافه شود : 3. ابزاری برای خواندن سکتور های mmc و sd با کابل پروگرامر stk200 یا از ورودی پورت سریال. 4. ابزاری برای ذخیره نمونه های یک فایل wav بر روی sd/mmc یا بالعکس با کابل stk200 یا از ورودی پورت سریال. 5. ابزاری برای محاسبه کدهای کاراکترهای غیر استاندارد بر روی ال سی دی کاراکتری. 6. ابزاری برای ... توجه : این برنامه برای اجرا به dotnetframework2 نیاز دارد. dotnetframework2 بر روی نسخه های جدید xp و تمام نسخه های vista موجود است. اگر سیستم عامل شما غیر از اینهاست باید آن تهیه و نصب کنید. برای دانلود کلیک کنید ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>Kavir Micro Wizard</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-8799256253734566539</guid><pubDate>Sun, 20 Apr 2008 09:46:00 +0000</pubDate><atom:updated>2008-05-17T11:04:22.269-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">آموزش #C به زبان فارسی</category><title>آموزش #C به زبان فارسی</title><description>&lt;div align="right" dir="rtl"&gt;سلام&lt;br /&gt;این Ebook ها رو یه جوان باحالی تدوین کرده و به طور رایگان در اختیار عالمیان قرار داده.&lt;br /&gt;برای کسانی که قصد یاد گیری این زبان رو دارند ، چیزی بهتر از این نیست.&lt;br /&gt;خدا پدر و مادر نویسنده اش رو بیامرزه.&lt;br /&gt;&lt;br /&gt;سه کتاب اول به نام های:&lt;br /&gt;C Sharp article (Persian).pdf&lt;br /&gt;C# Persian.pdf&lt;br /&gt;CSharp (Persian).pdf&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/108922081/C_Farsi_1.rar.html"&gt;دانلود سه کتاب اول&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;و کتاب دیگر که 950 صفحه است :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/109014213/Learn_Visual_C__2005__Farsi_.part1.rar.html"&gt;دانلود قسمت اول&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/109018478/Learn_Visual_C__2005__Farsi_.part2.rar.html"&gt;دانلود قسمت دوم &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-8799256253734566539?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/04/c.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-7110547375495864984</guid><pubDate>Fri, 04 Apr 2008 13:58:00 +0000</pubDate><atom:updated>2008-12-10T03:00:25.407-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ساعت با تقویم فارسی با avr</category><title>ساعت با تقویم فارسی با avr</title><description>&lt;div align="center"&gt;&lt;div align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_ibCZw2EwI/AAAAAAAAAEw/iaEz8q9484g/s1600-h/untitled.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_ibCZw2EwI/AAAAAAAAAEw/iaEz8q9484g/s320/untitled.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186065436494926594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/R_iaf5w2EvI/AAAAAAAAAEo/WlIG8hy3o1I/s320/untitled.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186064843789439730" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;این پروژه برای دانشگاهمه و هنوز کامل نشده ولی میشه از ساعت و دفترچه تلفنش استفاده کرد. فعلا سورسش رو نمی ذارم بازی هم داره. کاملا عملیه و فایل hex رو هم گذاشتم. برای دانلود &lt;a href="http://mostafa.hk.googlepages.com/Phone_Book_.rar"&gt;کلیک&lt;/a&gt; کنید.&lt;br /&gt;&lt;br /&gt;در هنگام ساخت دقت کنید که کیبورد به صورت آنالوگ بسته شده و باید ولتاژها در عمل مطابق تئوری(آنچه در شبیه سازی میبینید) باشند. می توانید با قرار دادن یک پتانسیومتر به جای مقاومت 4.7k امیتر ترانزیستور ، ولتاژها را تنظیم کنید.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-7110547375495864984?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/04/phone-book.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_ibCZw2EwI/AAAAAAAAAEw/iaEz8q9484g/s72-c/untitled.JPG" height="72" width="72" /><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-6730318493580143423</guid><pubDate>Tue, 18 Mar 2008 17:35:00 +0000</pubDate><atom:updated>2008-12-10T03:00:25.619-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">یک بازی فکری با avr</category><title>یک بازی فکری با avr</title><description>&lt;div align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/R-AEUH7bOiI/AAAAAAAAAD8/QLKaX7REBzw/s1600-h/untitled.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R-AEUH7bOiI/AAAAAAAAAD8/QLKaX7REBzw/s320/untitled.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5179144315248261666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right" dir="rtl"&gt;&lt;span style="font-size:130%;"&gt;بازی فکری پازل عکس ها رو براتون به صورت اوپن سورس میذارم. این بازی رو خودم نوشتم و هر گونه استفاده از اون آزاده.&lt;br /&gt;save و load هم براش گذاشتم. دیگه چی می خوای.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mostafa.hk.googlepages.com/Pic_Puzzle.rar"&gt;دانلود کنید&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-6730318493580143423?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/avr_18.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R-AEUH7bOiI/AAAAAAAAAD8/QLKaX7REBzw/s72-c/untitled.JPG" height="72" width="72" /><thr:total>1</thr:total><enclosure url="http://mostafa.hk.googlepages.com/Pic_Puzzle.rar" length="77230" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/Pic_Puzzle.rar" fileSize="77230" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle> بازی فکری پازل عکس ها رو براتون به صورت اوپن سورس میذارم. این بازی رو خودم نوشتم و هر گونه استفاده از اون آزاده. save و load هم براش گذاشتم. دیگه چی می خوای. دانلود کنید ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary> بازی فکری پازل عکس ها رو براتون به صورت اوپن سورس میذارم. این بازی رو خودم نوشتم و هر گونه استفاده از اون آزاده. save و load هم براش گذاشتم. دیگه چی می خوای. دانلود کنید ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>یک بازی فکری با avr</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-1742640710855630792</guid><pubDate>Fri, 14 Mar 2008 16:29:00 +0000</pubDate><atom:updated>2008-04-05T05:55:56.990-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">کتابخانه حافظه های 24Cxx به زبان C</category><title>کتابخانه حافظه های 24Cxx به زبان C</title><description>&lt;div align="right" dir="rtl"&gt;&lt;span style="font-size:130%;"&gt;سلام این کتابخانه برای تمام آی سی های byte addres و word address سری 24Cxx کار می کنه و در WinAvr نوشته شده.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;اگه حوصله کنم برای CodeVision هم تغییرش می دم.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;آی سی هایی که این کتابخونه ساپورت می کنه:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;span style="font-size:130%;"&gt;24C00&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C02&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C04&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C08&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C16&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C32&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C64&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C128&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C256&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;24C512&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right" dir="rtl"&gt;&lt;span style="font-size:130%;"&gt;کار کردن با این کتابخونه خیلی راحته و کلا کتابخونه توپیه.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای اینکه آی سی مورد نظر رو انتخاب کنبد فایل 24Cxx.h رو باز کنید و در بالاهای فایل آی سی مورد نظر رو define کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;البته تمام آی سی هایی که ساپورت می شن رو نوشته و کافی است که نام اونها رو کپی کنید مثل پایین:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;span style="font-size:130%;"&gt;#define _24C16&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;بعد از اون می تواند با پنج تابع این کتابخونه کار کنید:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;تابع  ioinit باید یک بار در آغاز برنامه فراخوانی شود . تا رجیستر های پورت twi را مطابق کتابخانه تنظیم شود.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;توابع ee24xx_read_bytes و ee24xx_write_bytes برای خواندن و نوشتن به صورت بایتی است.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;توتبع ee24xx_read_byte  و  ee24xx_write_byte برای خواندن و نوشتن به صورت چند بایتی یا همان آرایه ای است.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;از &lt;/span&gt;&lt;a href="http://mostafa.hk.googlepages.com/24Cxx.rar"&gt;&lt;span style="font-size:130%;"&gt;اینجا&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt; می توانید برنامه و تست در پروتئوس رو دانلود کنید.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-1742640710855630792?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/24cxx.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><thr:total>0</thr:total><enclosure url="http://mostafa.hk.googlepages.com/24Cxx.rar" length="35220" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/24Cxx.rar" fileSize="35220" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام این کتابخانه برای تمام آی سی های byte addres و word address سری 24Cxx کار می کنه و در WinAvr نوشته شده. اگه حوصله کنم برای CodeVision هم تغییرش می دم. آی سی هایی که این کتابخونه ساپورت می کنه: 24C00 24C02 24C04 24C08 24C16 24C32 24C64 24C128 24C256 2</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام این کتابخانه برای تمام آی سی های byte addres و word address سری 24Cxx کار می کنه و در WinAvr نوشته شده. اگه حوصله کنم برای CodeVision هم تغییرش می دم. آی سی هایی که این کتابخونه ساپورت می کنه: 24C00 24C02 24C04 24C08 24C16 24C32 24C64 24C128 24C256 24C512 کار کردن با این کتابخونه خیلی راحته و کلا کتابخونه توپیه. برای اینکه آی سی مورد نظر رو انتخاب کنبد فایل 24Cxx.h رو باز کنید و در بالاهای فایل آی سی مورد نظر رو define کنید. البته تمام آی سی هایی که ساپورت می شن رو نوشته و کافی است که نام اونها رو کپی کنید مثل پایین: #define _24C16 بعد از اون می تواند با پنج تابع این کتابخونه کار کنید: تابع  ioinit باید یک بار در آغاز برنامه فراخوانی شود . تا رجیستر های پورت twi را مطابق کتابخانه تنظیم شود. توابع ee24xx_read_bytes و ee24xx_write_bytes برای خواندن و نوشتن به صورت بایتی است. توتبع ee24xx_read_byte  و  ee24xx_write_byte برای خواندن و نوشتن به صورت چند بایتی یا همان آرایه ای است. از اینجا می توانید برنامه و تست در پروتئوس رو دانلود کنید. ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>کتابخانه حافظه های 24Cxx به زبان C</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-3585010516425021040</guid><pubDate>Sun, 09 Mar 2008 11:43:00 +0000</pubDate><atom:updated>2009-12-30T06:37:38.019-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">تولید امواج تن(DTMF) در avr</category><title>شماره گیری تن ، تولید امواج تن در avr</title><description>&lt;span&gt;سلام&lt;br /&gt;امروز یک کتابخانه دیگر برایتان می گذارم که به وسیله آن می توان بدون آی سی مبدل امواج dtmf که برای شماره گیری تن استفاده می شوند را تولید کند.&lt;br /&gt;این کتابختنه از تایمر 1 استفاده می کند و کار با آن خیلی ساده است.&lt;br /&gt;&lt;br /&gt;اگر می خواهید  نتیجه مدار را در پروتئوس ببینید به منوی Graph بروید و گزینه Simulate Graph را بزنید. البیه این شبیه سازی خیلی طول می کشد.&lt;br /&gt; &lt;br /&gt;این برنامه را می توانید    &lt;a href="http://mostafa.hk.googlepages.com/DTMF.rar"&gt;دانلود&lt;/a&gt; کنید.&lt;br /&gt;تمام روابط و فرمولها توي&lt;a href="http://atmel.com/dyn/resources/prod_documents/doc1982.pdf" target="_blank"&gt; داكيومنت 1982 اتمل&lt;/a&gt; هست ببینید.&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;اگر می خواهید که با خط تلفن شماره گیری کنید مدار زیر را ببندید.&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/SC7K5FFYcrI/AAAAAAAAALw/_t7SiFuVQYM/s400/avr-dtmf.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5201317701625606834" /&gt;&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;در این مدار کلید S برای برداشتن گوشی است( یعنی قبل از شماره گیری باید این کلید را وصل کنید) پس از آن  هر شماره ای که  بزنید گرفته می شود و ای مدار یک شماره گیر کامل است.&lt;br /&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;br /&gt;توجه : کنید که فرکانس کلاک باید یا 8MHz یا 16MHz باشد.&lt;br /&gt;توجه : باتری که در مدار گذاشته شده برای شبیه سازی خط تلفن است.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mostafa.hk.googlepages.com/DTMF.rar"&gt;برای دانلود مدارات و کتابخانه و برنامه کلیک کنید.&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-3585010516425021040?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/dtmf-avr.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://1.bp.blogspot.com/_7fL8vIRXVvg/SC7K5FFYcrI/AAAAAAAAALw/_t7SiFuVQYM/s72-c/avr-dtmf.JPG" height="72" width="72" /><thr:total>3</thr:total><enclosure url="http://mostafa.hk.googlepages.com/DTMF.rar" length="84906" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/DTMF.rar" fileSize="84906" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام امروز یک کتابخانه دیگر برایتان می گذارم که به وسیله آن می توان بدون آی سی مبدل امواج dtmf که برای شماره گیری تن استفاده می شوند را تولید کند. این کتابختنه از تایمر 1 استفاده می کند و کار با آن خیلی ساده است. اگر می خواهید  نتیجه مدار را در پروتئوس بب</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام امروز یک کتابخانه دیگر برایتان می گذارم که به وسیله آن می توان بدون آی سی مبدل امواج dtmf که برای شماره گیری تن استفاده می شوند را تولید کند. این کتابختنه از تایمر 1 استفاده می کند و کار با آن خیلی ساده است. اگر می خواهید  نتیجه مدار را در پروتئوس ببینید به منوی Graph بروید و گزینه Simulate Graph را بزنید. البیه این شبیه سازی خیلی طول می کشد.   این برنامه را می توانید دانلود کنید. تمام روابط و فرمولها توي داكيومنت 1982 اتمل هست ببینید. اگر می خواهید که با خط تلفن شماره گیری کنید مدار زیر را ببندید. در این مدار کلید S برای برداشتن گوشی است( یعنی قبل از شماره گیری باید این کلید را وصل کنید) پس از آن  هر شماره ای که  بزنید گرفته می شود و ای مدار یک شماره گیر کامل است. توجه : کنید که فرکانس کلاک باید یا 8MHz یا 16MHz باشد. توجه : باتری که در مدار گذاشته شده برای شبیه سازی خط تلفن است. برای دانلود مدارات و کتابخانه و برنامه کلیک کنید. ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>تولید امواج تن(DTMF) در avr</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-9023746584716818838</guid><pubDate>Sun, 09 Mar 2008 11:34:00 +0000</pubDate><atom:updated>2008-12-10T03:00:25.964-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ال سی دی کاراکتری در ای وی آر (AVR CLCD)</category><title>ال سی دی کاراکتری در ای وی آر (AVR CLCD)</title><description>&lt;div align="center"&gt;&lt;div align="right"&gt;&lt;div align="right"&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;سلام&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;امروز یک  کتابخانه سازگار با Winavr براتون میذازم که LCD کاراکتری رو هر جور که دوست دارید به میکرو وصل می کنید و کار هم می کنه .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right" dir="rtl"&gt;&lt;span style="font-size:130%;"&gt;قابلیت دیگه این کتابخانه تابع LCDprogressBar اونه که خیلی باحاله. تصویر زیر این قابلیت رو توضیح میده.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_OmApw2EuI/AAAAAAAAAEU/6V7lRZfv6xo/s320/untitled.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5184670126174507746" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای استفاده از این کتابخونه یک مثال زدم که می تونید&lt;/span&gt;&lt;a href="http://mostafa.hk.googlepages.com/CLCD.rar"&gt;&lt;span style="font-size:130%;"&gt; دانلود&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt; کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="left" dir="ltr"&gt;&lt;span style="font-size:130%;"&gt;#include "lcd_lib.h"&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;#include &lt;/span&gt;&lt;avr h=""&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;#include &lt;/span&gt;&lt;util h=""&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;int main()&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;{&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    unsigned char i=0;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    LCDinit();&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    CopyStringtoLCD( PSTR("mostafahk.blogspot.com") ,0,0);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    while(1)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        for(;i != 255;i++)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;                LCDGotoXY(3,1);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;                LCDprogressBar(i,255,13);  //9579 cycle left&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        for(;i != 0;i--)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;                LCDGotoXY(3,1);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;                LCDprogressBar(i,255,13);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;        }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;    }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-9023746584716818838?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/dddd.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_OmApw2EuI/AAAAAAAAAEU/6V7lRZfv6xo/s72-c/untitled.JPG" height="72" width="72" /><thr:total>1</thr:total><enclosure url="http://mostafa.hk.googlepages.com/CLCD.rar" length="53499" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/CLCD.rar" fileSize="53499" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>سلام امروز یک  کتابخانه سازگار با Winavr براتون میذازم که LCD کاراکتری رو هر جور که دوست دارید به میکرو وصل می کنید و کار هم می کنه . قابلیت دیگه این کتابخانه تابع LCDprogressBar اونه که خیلی باحاله. تصویر زیر این قابلیت رو توضیح میده. برای استفاده از این</itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>سلام امروز یک  کتابخانه سازگار با Winavr براتون میذازم که LCD کاراکتری رو هر جور که دوست دارید به میکرو وصل می کنید و کار هم می کنه . قابلیت دیگه این کتابخانه تابع LCDprogressBar اونه که خیلی باحاله. تصویر زیر این قابلیت رو توضیح میده. برای استفاده از این کتابخونه یک مثال زدم که می تونید دانلود کنید. #include "lcd_lib.h" #include #include int main() {     unsigned char i=0;     LCDinit();     CopyStringtoLCD( PSTR("mostafahk.blogspot.com") ,0,0);     while(1)     {         for(;i != 255;i++)         {             LCDGotoXY(3,1);             LCDprogressBar(i,255,13);  //9579 cycle left         }         for(;i != 0;i--)         {             LCDGotoXY(3,1);             LCDprogressBar(i,255,13);         }     } } ok! http://feeds.feedburner.com/WorldOfElectronic</itunes:summary><itunes:keywords>ال سی دی کاراکتری در ای وی آر (AVR CLCD)</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-4394827584585964721</guid><pubDate>Thu, 06 Mar 2008 22:16:00 +0000</pubDate><atom:updated>2008-12-10T03:00:27.637-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">آموزش پروتئوس</category><title>آموزش پروتئوس</title><description>&lt;div align="right" dir="rtl"&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;span&gt;&lt;span&gt;به نام خدا&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;شبیه سازی یک مدار الکترونیکی در پروتئوس :&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9BuI6XsMGI/AAAAAAAAACk/2rwStaAdfB0/s320/image001.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174757071235330146" /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;بستن مدار&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;1- در جعبه ابزار سمت چپ به ترتیب مشخص شده روی دکمه ها کلیک کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;2- در لیست ظاهر شده قطعه مورد نظر را انتخاب کرد و رو آن دوبار کلیک کنید تا وارد لسیت اصلی مدار شود.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;3- پس از انتخاب قطعات مورد نظر لیست را ببندید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;4- سپس با کلیک روی هر قطعه و کلیک بر روی یک جای خالی در مدار قطعه را وارد مدار کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;5- با کلیک چپ روی پایه ها می توانید مدار را سیم کشی کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;6- با زدن کلیک راست روی هر قطعه آن قطعه قرمز می شود ، سپس اگر کلیک چپ کنید پنجره مشخصات آن قطعه ظاهر می شود و اگر کلیک راست کنید قطعه پاک می شود. در مورد سیم ها هم همینطور است.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BuJKXsMHI/AAAAAAAAACs/a1CPJCdoEd8/s320/image003.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174757075530297458" /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;برای شبیه سازی مدار از بین دکمه های پایین صفحه دکمه play را بزنید و برای توقف موقت شبیه سازی دکمه pause و برای پایان دادن به شبیه سازی دکمه stop را بزنید. ضمنا دکمه های گوشه پایین که در شکل هم مشخصند برای چرخاندن قطعه استفاده می شوند.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BuJKXsMII/AAAAAAAAAC0/97kC3InmbY4/s320/image005.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174757075530297474" /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;علائمی چون GND یا اسیلوسکوپ یا منبع DC,AC میتوانید از جعبه ابزار سمت چپ برنامه که در شکل هم مشخص شده استفاده کنید. با کلیک روی هر یک از گزینه های این جعبه ابزار محتوای لیست کنار آن تغییر می کند و از این طریق می توانید اسیلوسکوپ یا هر قطعه دیگر را وارد مدار کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/R9BuJaXsMJI/AAAAAAAAAC8/1r_7uUk25tQ/s320/image007.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174757079825264786" /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;در اینجا یک مدار آزمایشی قرار دارد که می توانید آن را دانلود کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;a href="http://mostafahk.50webs.com/asm_flasher.gz" dir="ltr"&gt;&lt;span&gt;http://mostafahk.50webs.com/asm_flasher.gz&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;شبیه سازی میکروکنترلر ها در پروتئوس :&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;با ورود به صفحه مشخصات هر میکروکنترلر می توانید حافظه EEPROM و برنامه آن را به یک فایل .hex آدرس دهی کنید(فایل hex فایل خروجی استاندارد تمام کامپایلر هاست).&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;سرعت پالس ساعت را تنظبم کنید و فیوز بیت ها را به حالت مورد نظر در آورید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9BuJqXsMKI/AAAAAAAAADE/IFIBF4lIHoI/s320/image009.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174757084120232098" /&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;نکته مهم اینک در پروتئوس پایه های Reset و Xtal برای همه میکروکنترلر ها الکی می باشد(حداقل تا ورژن 7.2Sp1 که من دارم).&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;در اینجا می توانید مدار مثال را دانلود کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;یرای دانلود فایل مدار روی لینک زیر کلیک کنید.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;a href="http://mostafahk.50webs.com/asm_flasher.gz"&gt;&lt;span&gt;http://mostafahk.50webs.com/asm_flasher.gz&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;اگر مشکلی بود ایمیل بزنید.قول نمیده جواب بدم.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;a href="http://www.blogger.com/mostafa.webs@gmail.com"&gt;&lt;span&gt;mostafa.webs@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;مولدهای موج (generatore):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R_n3F5w2EzI/AAAAAAAAAFI/sdrtQwCx8T0/s320/prot_gens.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186448126670934834" /&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="right"&gt;این دسته ابزار ها را می توانید در جعبه ابزار سمت چپ برنامه بیابید.&lt;br /&gt;هر یک از این ابزارها برای تولید نوع خاصی از موجهاست. مثلا مولد DC همانند یک باتری یک ولتاژ مشخص را نسبت به زمین تولید می کند یا AUDIO یک فایل صوتی wav رو اجرا می کند و صدای آن را به مدار می دهد(ولی شنیده نمی شود) و ...&lt;br /&gt;برای اطلاعات بیشتر به منوی help\proteus vsm help بروید و گزینه GENERATORS AND PROBES را سرچ کنید.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="right"&gt;&lt;span&gt;گرافها (Graphs):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_n3GJw2E0I/AAAAAAAAAFQ/cgkhZYLx0Bc/s320/prot_graph.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186448130965902146" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;این دسته ابزار ها را می توانید در جعبه ابزار سمت چپ برنامه بیابید.&lt;br /&gt;گرافها بر خلاف generator ها برای ضبط موجها به کار می روند. هر گراف می تواند شکل موج یک یا چند probe (در شکل بالا زیرgenerator ها که  V برای پراب ولتاژ و I برای پراب جریان است.) را در خود ذخیره کند و حتی اجرا کند.&lt;br /&gt;به دلیل حجم پردازش سنگین این مهم اولا قبل از شروع شبیه سازی گرافها مدار را ذخیره(save) کنید، چون ممکن است پردازش مدار آنقدر طول بکشد که خسته شوید و بخواهید با Alt+Ctrl+Delete برنامه را ببندید!&lt;br /&gt;ثانیا تا پردازش تمتم نشود نتیجه به شما نشان داده نخواهد شد. من با تمام گراف ها کار نکردم ولی اونهایی رو که بلدم می گم. بازم میگم که در proteus vsm help همه اینها هست.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;نحوه اضافه کردن یک پراب به یک گراف:&lt;/span&gt;&lt;br /&gt;بر روی گراف مورد نظر کلیک چپ کنید و به مسیر Graph\Add Trace بروید در منویی که می آید نام پراب را از لیست انتخاب کنید و اسمی را که می خواهید در گراف نمایش داده شود را نیز می توانید وارد کنید (وگر نه که همان اسم پراب است).&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/R_oDsZw2E2I/AAAAAAAAAFg/_dkEiIMslIE/s320/graph_1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186461982235431778" /&gt;&lt;/div&gt;&lt;br /&gt;ضمنا برای هر گراف  یک بازه زمانی تعریف می شه که در اون بازه پردازش می شه.با دوبار کلیک روی گراف مربوطه و تنظیم Satrt Time و Stop Time می توانید این بازه رو معیین کنید.سعی کنید کسری از ثانیه باشه بخصوص برای Audio Graph .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;شبیه سازی گرافها:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;به مسیر زیر بروید Graph\simulate Graph.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;پاک کردن نتیجه شبیه سازی یک گراف:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;در شبیه سازیهای گرافها حجم زیادی داده در فایل ذخیره می شود(به خصوص در Audio Graph ها) برای همین اگر می خواهید فایل ذخیره شده مدار کوچک شود می توانید اطلاعات حاصل از شبیه سازی یک گراف را حذف کنید تا بعد هر وقت نیاز شد دوباره شبیه سازی کنید.&lt;br /&gt;بپ از کلیک بر روی گراف مورد نظر به این مسیر بروید Graph\ClearData.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;گراف ANALOGUE ANALYSIS:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;این گراف برای نمایش شکا موجهای مدار استفاده می شود بسیار ساده است. کافیست که پراب مورد نظر رو همانطور که گفته شد به این گراف اظافه کنید و پس شبیه سازی شکل موجها را ببینید.&lt;a href="http://mostafa.hk.googlepages.com/Graphgenerators.rar"&gt; مثال Test1 در این فایل.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R_oMVJw2E5I/AAAAAAAAAF4/ObZ-Y6wCwT0/s320/graph_3.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186471478408123282" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;گراف  AUDIO ANALYSIS :&lt;/span&gt;&lt;br /&gt;&lt;span&gt;ین گراف همانند &lt;span&gt;ANALOGUE ANALYSIS است. با این تفاوت که می توانید شکل موج گراف را از بلندگو کامپیوتر بشنوید یا در یک فایل wav ذخیره کنید. &lt;/span&gt;&lt;/span&gt;&lt;a href="http://mostafa.hk.googlepages.com/Graphgenerators.rar"&gt;مثال Test2 در این فایل.&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R_oI25w2E3I/AAAAAAAAAFo/wvSE-jxAZdQ/s320/graph_4.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5186467660182197106" /&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="right"&gt;البته عکس نا واضح است.&lt;br /&gt;&lt;strong&gt;مشخصات این گراف:&lt;br /&gt;&lt;/strong&gt;start time: زمان آغاز شبیه سازی گراف.&lt;br /&gt;stop time: زمان پایان شبیه سازی گراف.&lt;br /&gt;LoopTime: مدت تکراریک صدا. مثلا اگر 10ms صدا را شبیه سازی کنید و این تنظیم رو 2 ثانیه باشد، آنقدر این 10ms ثانیه را پشت سر هم اجرا می کند تا بشود 2 ثانیه.(200 بار در این مثال).&lt;br /&gt;Play mode: که می تواند mono یا sterio باشد.&lt;br /&gt;SampleBits: دقت نمونه برداریها از شکل موج.توجه کنید که هر چه دقت بالاتر سرعت شبیه سازی کمتر.&lt;br /&gt;SampleRate: سرعت نمونه برداری ها از شکل موج. باز هم  هر چه دقت بالاتر سرعت شبیه سازی کمتر.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;با آرزوی موفقیت برای همه شما&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;صلی اله و علی محمد و آل محمد&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-4394827584585964721?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/blog-post_06.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9BuI6XsMGI/AAAAAAAAACk/2rwStaAdfB0/s72-c/image001.png" height="72" width="72" /><thr:total>0</thr:total><enclosure url="http://mostafa.hk.googlepages.com/Graphgenerators.rar" length="20467" type="application/octet-stream; charset=UTF-8" /><media:content url="http://mostafa.hk.googlepages.com/Graphgenerators.rar" fileSize="20467" type="application/octet-stream; charset=UTF-8" /><itunes:subtitle>به نام خدا شبیه سازی یک مدار الکترونیکی در پروتئوس : بستن مدار 1- در جعبه ابزار سمت چپ به ترتیب مشخص شده روی دکمه ها کلیک کنید. 2- در لیست ظاهر شده قطعه مورد نظر را انتخاب کرد و رو آن دوبار کلیک کنید تا وارد لسیت اصلی مدار شود. 3- پس از انتخاب قطعات مورد </itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>به نام خدا شبیه سازی یک مدار الکترونیکی در پروتئوس : بستن مدار 1- در جعبه ابزار سمت چپ به ترتیب مشخص شده روی دکمه ها کلیک کنید. 2- در لیست ظاهر شده قطعه مورد نظر را انتخاب کرد و رو آن دوبار کلیک کنید تا وارد لسیت اصلی مدار شود. 3- پس از انتخاب قطعات مورد نظر لیست را ببندید. 4- سپس با کلیک روی هر قطعه و کلیک بر روی یک جای خالی در مدار قطعه را وارد مدار کنید. 5- با کلیک چپ روی پایه ها می توانید مدار را سیم کشی کنید. 6- با زدن کلیک راست روی هر قطعه آن قطعه قرمز می شود ، سپس اگر کلیک چپ کنید پنجره مشخصات آن قطعه ظاهر می شود و اگر کلیک راست کنید قطعه پاک می شود. در مورد سیم ها هم همینطور است. برای شبیه سازی مدار از بین دکمه های پایین صفحه دکمه play را بزنید و برای توقف موقت شبیه سازی دکمه pause و برای پایان دادن به شبیه سازی دکمه stop را بزنید. ضمنا دکمه های گوشه پایین که در شکل هم مشخصند برای چرخاندن قطعه استفاده می شوند. علائمی چون GND یا اسیلوسکوپ یا منبع DC,AC میتوانید از جعبه ابزار سمت چپ برنامه که در شکل هم مشخص شده استفاده کنید. با کلیک روی هر یک از گزینه های این جعبه ابزار محتوای لیست کنار آن تغییر می کند و از این طریق می توانید اسیلوسکوپ یا هر قطعه دیگر را وارد مدار کنید. در اینجا یک مدار آزمایشی قرار دارد که می توانید آن را دانلود کنید. http://mostafahk.50webs.com/asm_flasher.gz شبیه سازی میکروکنترلر ها در پروتئوس : با ورود به صفحه مشخصات هر میکروکنترلر می توانید حافظه EEPROM و برنامه آن را به یک فایل .hex آدرس دهی کنید(فایل hex فایل خروجی استاندارد تمام کامپایلر هاست). سرعت پالس ساعت را تنظبم کنید و فیوز بیت ها را به حالت مورد نظر در آورید. نکته مهم اینک در پروتئوس پایه های Reset و Xtal برای همه میکروکنترلر ها الکی می باشد(حداقل تا ورژن 7.2Sp1 که من دارم). در اینجا می توانید مدار مثال را دانلود کنید. یرای دانلود فایل مدار روی لینک زیر کلیک کنید. http://mostafahk.50webs.com/asm_flasher.gz اگر مشکلی بود ایمیل بزنید.قول نمیده جواب بدم. mostafa.webs@gmail.com مولدهای موج (generatore): این دسته ابزار ها را می توانید در جعبه ابزار سمت چپ برنامه بیابید. هر یک از این ابزارها برای تولید نوع خاصی از موجهاست. مثلا مولد DC همانند یک باتری یک ولتاژ مشخص را نسبت به زمین تولید می کند یا AUDIO یک فایل صوتی wav رو اجرا می کند و صدای آن را به مدار می دهد(ولی شنیده نمی شود) و ... برای اطلاعات بیشتر به منوی help\proteus vsm help بروید و گزینه GENERATORS AND PROBES را سرچ کنید. گرافها (Graphs): این دسته ابزار ها را می توانید در جعبه ابزار سمت چپ برنامه بیابید. گرافها بر خلاف generator ها برای ضبط موجها به کار می روند. هر گراف می تواند شکل موج یک یا چند probe (در شکل بالا زیرgenerator ها که V برای پراب ولتاژ و I برای پراب جریان است.) را در خود ذخیره کند و حتی اجرا کند. به دلیل حجم پردازش سنگین این مهم اولا قبل از شروع شبیه سازی گرافها مدار را ذخیره(save) کنید، چون ممکن است پردازش مدار آنقدر طول بکشد که خسته شوید و بخواهید با Alt+Ctrl+Delete برنامه را ببندید! ثانیا تا پردازش تمتم نشود نتیجه به شما نشان داده نخواهد شد. من با تمام گراف ها کار نکردم ولی اونهایی رو که بلدم می گم. بازم میگم که در proteus vsm help همه اینها هست. نحوه اضافه کردن یک پراب به یک گراف: بر روی گراف مورد نظر کلیک چپ کنید و به مسیر Graph\Add Trace بروید در منویی که می آید نام پراب را از لیست انتخاب کنید و اسمی را که می خواهید در گراف نمایش داده شود را نیز می توانید وارد کنید (وگر نه که همان اسم پراب است). ضمنا برای هر گراف یک بازه زمانی تعریف می شه که در اون بازه پردازش می شه.با دوبار کلیک روی گراف مربوطه و تنظیم Satrt Time و Stop Time می توانید این بازه رو معیین کنید.سعی کنید کسری از ثانیه باشه بخصوص برای Audio Graph . شبیه سازی گرافها: به مسیر زیر بروید Graph\simulate Graph. پاک کردن نتیجه شبیه سازی یک گراف: در شبیه سازیهای گرافها حجم زیادی داده در فایل ذخیره می شود(به خصوص در Audio Graph ها) برای همین اگر می خواهید فایل ذخیره شده مدار کوچک شود می توانید اطلاعات حاصل از شبیه سازی یک گراف را حذف کنید تا بعد هر وقت نیاز شد دوباره شبیه سازی کنید. بپ از کلیک بر روی گراف مورد نظر به این مسیر بروید Graph\ClearData. گراف ANALOGUE ANALYSIS: این گراف برای نمایش شکا موجهای مدار استفاده می شود بسیار ساده است. کافیست که پراب مورد نظر رو همانطور که گفته شد به این گراف اظافه کنید و پس شبیه سازی شکل موجها را ببینید. مثال Test1 در این فایل. گراف  AUDIO ANALYSIS : ین گراف همانند ANALOGUE </itunes:summary><itunes:keywords>آموزش پروتئوس</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-5594568493650290126</guid><pubDate>Thu, 06 Mar 2008 21:46:00 +0000</pubDate><atom:updated>2008-12-10T03:00:28.939-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">آموزش AVR studio</category><title>آموزش AVR studio</title><description>&lt;div align="right" dir="rtl"&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;span&gt;&lt;span style="font-size:130%;"&gt;به نام خدا&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;آ&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;شنایی با AVR Studio :&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;این کامپایلر به سفارش شرکت Atmel ساخته شده و به طور رایگان در اختیار عموم قرار گرفته است . شما می توانید با مراجعه به سایت www.atmel.com  آخرین ورژن این برنامه را دانلود کنید . در اینجا اطلاعاتی را که برای شروع کار با این کامپایلر لازم دارید در اختیار شما قرار می دهیم.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;در AVR studio زمانی می توانید برنامه خود را کامپایل کنید که برنامه را درون یک پروژه قرار دهید . این کامپایلر قابلیت شبیه سازی و اجرای خط به خط برنامه شما را به طور مجازی دارد ، در هنگام شبیه سازی شما می توانید محتوای تمام رجیسترها پورتها و... مشاهده کنید و روند اجرای برنامه را لحظه به لحظه دنبال کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;شما می توانید مشروح تمام دستورات اسمبلی مربوط به AVR را از آدرس زیر دانلود کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;a href="http://www.atmel.com/atmel/acrobat/doc0856.pdf"&gt;&lt;span style="font-size:130%;"&gt;http://www.atmel.com/atmel/acrobat/doc0856.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;هچنین می توامنید از آدرس زیر فایل کامل برنامه زیر را که یک چشمک زن است دانلود کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;a href="http://mostafahk.50webs.com/asm_flasher.gz"&gt;&lt;span style="font-size:130%;"&gt;http://mostafahk.50webs.com/asm_flasher.gz&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;مراحل ساخت یک پروژه:&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;اگر AVR Studio را اجرا کنید پنجره زیر به طور اتوماتیک باز می شود، اگر باز نشدبه منوی Project\Project Wizard بروید این پنجره را باز کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9Bm3KXsMCI/AAAAAAAAACE/3XTc0lZYo3E/s320/image002.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749069711257634" /&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9Bm2qXsMBI/AAAAAAAAAB8/fPyiht8WLiM/s320/image001.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749061121323026" /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;دکمه New Project را فشار دهید تا به پنجره سمت چپی وارد شوید .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;در لیست موجود انتخاب Atmel AVR Assembler و انتخاب مسیر ساخت پروژه دکمه NEXT را بزنید . در پنجره بعدی شما نوع شبیه سازی مورد نظر را انتخاب می کنید که در اینجا شبیه سازی مورد نظر AVR Simulator بوده و شماره آی سی نیز به دلخواه خودتان است. سپس دکمه Finish را کلیک کنید تا پروژه ساخته شود.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;شما می توانید فایلهای موجود در پروژه خود را از طریق پنجره Project مشاهده کنید. در ابتدا یک فایل هم نام پروژه شما و با  پسوند .asm است که برنامه خود را باید در این فایل بنویسید .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9Bm3KXsMDI/AAAAAAAAACM/yM46UlQLdmI/s320/image005.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749069711257650" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;با دوبار کلیک بر روی فایل مورد نظر (asm_flasher.asm ) فایل را برای نوشتن برنامه باز کنید . در اینجا یک برنامه نمونه قرار داده شده که یک هشت LED متصل به PORTA را خاموش و روشن می کند .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;div align="left"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span style="font-size:130%;"&gt;.include "m32def.inc"&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;;load stack pointer&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r31 , low(RAMEND)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;out  spl , r31&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r31 , high(RAMEND)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;out  sph , r31&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;;set port direction&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r31 , $ff&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;out  DDRA , r31&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;;start flashing&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r16 , $aa&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r17 , $55&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;loop1:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;out  PORTA , r16&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;call delay&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;out  PORTA , r17&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;call delay&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;jmp  loop1&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;;dellay&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;delay:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r20 , $00&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r21 , $00&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ldi  r22 , $80&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;de1:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;inc  r20&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;cpi  r20 , $00&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;brne de1&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;inc  r21&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;cpi  r21 , $00&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;brne de1&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;inc  r22&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;brne de1&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ret&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;با زدن دکمه F7 یا منوی Bulid\Build  برنامه کامپایل می شود . اگر خطایی در برنامه باشد در پنجره Build نمایش داده می شود . پس از پایان کار کامپایل کلیه هشدارها و گزارشات مربوط به ظرفیت حافظه ی مورد نیاز برای برنامه اعلام می شود. فایل حاصل از کامپایل یک فایل با پسوند .Hex است که در محل ذخیره پروژه ایجاد می شود و آن را باید روی فلش آی سی پروگرام کنید . البته می توانید در Proteuse هم مدار را ببندید و فایل .hex را در آن آدرس دهی کنید. تمام پروگرامرها فایلهایی با پسوند .hex را می شناسند.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9Bm3qXsMEI/AAAAAAAAACU/MRywNWaGn8I/s320/image007.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749078301192258" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;فرآیند شبیه سازی Debug  | simulation :&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;پس از کامپایل به منوی Debug\Start Debuging بروید و شبیه سازی برنامه را آغاز کنید . پس از آغاز شبیه سازی برنامه ، یک اشاره گر زرد رنگ جلوی خطی از برنامه که قرار است اجرا شود می ایستاده است می توانید با کلید F10 (یا منوی Debug\StepOver) برنامه را خط به خط اجرا کنید . توجه کنید که این گزینه روند اجرای دستور Call را دور از چشمان شما و با سرعت نمایش می دهد . اگر بخواهید روند اجرای برنامه ی دستور Call را مشاهده کنید باید از دکمه F11 (یا منوی Debug\StepInto) استفاده کنید . اگر بخواهید برنامه به سرعت اجرا شود و وقتی به خط خاصی رسید بایستد باید ابتدا در خط مورد نظر BreakePoint ایجاد کنید و سپس دکمه F5 (یا منوی Debug\Run  ) را بزنید. برای ایجاد یا حذف BreakPoint به سر خط مورد نظر رفته و دکمه F9 (یا منوی Debug\ToggleBreakPoint)  بزنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;در تمام طول روند شبیه سازی محتوای رجیسترها و پورتها و ... را می توانید از پنجره های IO , Processor , Memory ببینید .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ظمنا برای خروج از  شبیه سازی به منوی Debug\StopDebuging بروید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;اگر پنجره های یاد شده در این مقاله را پیش روی شما نبود به منوی View رفته پنجره مورد نظر را فعال نمایید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9Bm4KXsMFI/AAAAAAAAACc/xKbrUFtuTC4/s320/image009.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749086891126866" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;زبان C در AVR Studio :&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای آنکه بتوانید در AVR Studio با زبان C برنامه نویسی کنید باید WinAVR را دانلود و پس از AVR Studio نصب کنید WinAVR به طور خودکار AVR Studio را شناسایی کرده و خود را به آن اظافه می کند. پس از آن در پنجره New Project گزینه AVR GCC اظافه می شود. عمل کامپایل و  شبیه سازی در پروژه هایی از نوع GCC همانند پروژه های اسمبلی است.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9Bm3KXsMCI/AAAAAAAAACE/3XTc0lZYo3E/s320/image002.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174749069711257634" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای دانبود WinAVR به آدرس زیر مراجعه کنید :&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;a href="http://winavr.sourceforge.net/"&gt;&lt;span style="font-size:130%;"&gt;winavr.sourceforge.net&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;با آرزوی موفقیت برای همه شما&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;صلی اله و علی محمد و آل محمد&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-5594568493650290126?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/avr-studio.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9Bm3KXsMCI/AAAAAAAAACE/3XTc0lZYo3E/s72-c/image002.png" height="72" width="72" /><thr:total>4</thr:total><enclosure url="http://www.atmel.com/atmel/acrobat/doc0856.pdf" length="1276689" type="application/pdf" /><media:content url="http://www.atmel.com/atmel/acrobat/doc0856.pdf" fileSize="1276689" type="application/pdf" /><itunes:subtitle>به نام خدا آشنایی با AVR Studio : این کامپایلر به سفارش شرکت Atmel ساخته شده و به طور رایگان در اختیار عموم قرار گرفته است . شما می توانید با مراجعه به سایت www.atmel.com آخرین ورژن این برنامه را دانلود کنید . در اینجا اطلاعاتی را که برای شروع کار با این </itunes:subtitle><itunes:author>noreply@blogger.com (مصطفی حیدری)</itunes:author><itunes:summary>به نام خدا آشنایی با AVR Studio : این کامپایلر به سفارش شرکت Atmel ساخته شده و به طور رایگان در اختیار عموم قرار گرفته است . شما می توانید با مراجعه به سایت www.atmel.com آخرین ورژن این برنامه را دانلود کنید . در اینجا اطلاعاتی را که برای شروع کار با این کامپایلر لازم دارید در اختیار شما قرار می دهیم. در AVR studio زمانی می توانید برنامه خود را کامپایل کنید که برنامه را درون یک پروژه قرار دهید . این کامپایلر قابلیت شبیه سازی و اجرای خط به خط برنامه شما را به طور مجازی دارد ، در هنگام شبیه سازی شما می توانید محتوای تمام رجیسترها پورتها و... مشاهده کنید و روند اجرای برنامه را لحظه به لحظه دنبال کنید. شما می توانید مشروح تمام دستورات اسمبلی مربوط به AVR را از آدرس زیر دانلود کنید. http://www.atmel.com/atmel/acrobat/doc0856.pdf هچنین می توامنید از آدرس زیر فایل کامل برنامه زیر را که یک چشمک زن است دانلود کنید. http://mostafahk.50webs.com/asm_flasher.gz مراحل ساخت یک پروژه: اگر AVR Studio را اجرا کنید پنجره زیر به طور اتوماتیک باز می شود، اگر باز نشدبه منوی Project\Project Wizard بروید این پنجره را باز کنید. دکمه New Project را فشار دهید تا به پنجره سمت چپی وارد شوید . در لیست موجود انتخاب Atmel AVR Assembler و انتخاب مسیر ساخت پروژه دکمه NEXT را بزنید . در پنجره بعدی شما نوع شبیه سازی مورد نظر را انتخاب می کنید که در اینجا شبیه سازی مورد نظر AVR Simulator بوده و شماره آی سی نیز به دلخواه خودتان است. سپس دکمه Finish را کلیک کنید تا پروژه ساخته شود. شما می توانید فایلهای موجود در پروژه خود را از طریق پنجره Project مشاهده کنید. در ابتدا یک فایل هم نام پروژه شما و با  پسوند .asm است که برنامه خود را باید در این فایل بنویسید . با دوبار کلیک بر روی فایل مورد نظر (asm_flasher.asm ) فایل را برای نوشتن برنامه باز کنید . در اینجا یک برنامه نمونه قرار داده شده که یک هشت LED متصل به PORTA را خاموش و روشن می کند . .include "m32def.inc" ;load stack pointer ldi r31 , low(RAMEND) out spl , r31 ldi r31 , high(RAMEND) out sph , r31 ;set port direction ldi r31 , $ff out DDRA , r31 ;start flashing ldi r16 , $aa ldi r17 , $55 loop1: out PORTA , r16 call delay out PORTA , r17 call delay jmp loop1 ;dellay delay: ldi r20 , $00 ldi r21 , $00 ldi r22 , $80 de1: inc r20 cpi r20 , $00 brne de1 inc r21 cpi r21 , $00 brne de1 inc r22 brne de1 ret با زدن دکمه F7 یا منوی Bulid\Build برنامه کامپایل می شود . اگر خطایی در برنامه باشد در پنجره Build نمایش داده می شود . پس از پایان کار کامپایل کلیه هشدارها و گزارشات مربوط به ظرفیت حافظه ی مورد نیاز برای برنامه اعلام می شود. فایل حاصل از کامپایل یک فایل با پسوند .Hex است که در محل ذخیره پروژه ایجاد می شود و آن را باید روی فلش آی سی پروگرام کنید . البته می توانید در Proteuse هم مدار را ببندید و فایل .hex را در آن آدرس دهی کنید. تمام پروگرامرها فایلهایی با پسوند .hex را می شناسند. فرآیند شبیه سازی Debug  | simulation : پس از کامپایل به منوی Debug\Start Debuging بروید و شبیه سازی برنامه را آغاز کنید . پس از آغاز شبیه سازی برنامه ، یک اشاره گر زرد رنگ جلوی خطی از برنامه که قرار است اجرا شود می ایستاده است می توانید با کلید F10 (یا منوی Debug\StepOver) برنامه را خط به خط اجرا کنید . توجه کنید که این گزینه روند اجرای دستور Call را دور از چشمان شما و با سرعت نمایش می دهد . اگر بخواهید روند اجرای برنامه ی دستور Call را مشاهده کنید باید از دکمه F11 (یا منوی Debug\StepInto) استفاده کنید . اگر بخواهید برنامه به سرعت اجرا شود و وقتی به خط خاصی رسید بایستد باید ابتدا در خط مورد نظر BreakePoint ایجاد کنید و سپس دکمه F5 (یا منوی Debug\Run ) را بزنید. برای ایجاد یا حذف BreakPoint به سر خط مورد نظر رفته و دکمه F9 (یا منوی Debug\ToggleBreakPoint) بزنید. در تمام طول روند شبیه سازی محتوای رجیسترها و پورتها و ... را می توانید از پنجره های IO , Processor , Memory ببینید . ظمنا برای خروج از شبیه سازی به منوی Debug\StopDebuging بروید. اگر پنجره های یاد شده در این مقاله را پیش روی شما نبود به منوی View رفته پنجره مورد نظر را فعال نمایید. زبان C در AVR Studio : برای آنکه بتوانید در AVR Studio با زبان C برنامه نویسی کنید باید WinAVR را دانلود و پس از AVR Studio نصب کنید WinAVR به طور خودکار AVR Studio را شناسایی کرده و خود را به آن اظافه می کند. پس از آن در پنجره New Project گزینه AVR GCC اظافه می شود. عمل کامپایل و شبیه سازی در پروژه هایی از ن</itunes:summary><itunes:keywords>آموزش AVR studio</itunes:keywords></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7108792157705050405.post-7973751331244139715</guid><pubDate>Thu, 06 Mar 2008 20:49:00 +0000</pubDate><atom:updated>2008-12-10T03:00:30.821-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">شروع کار با AVR به همراه ساخت STK200</category><title>شروع کار با AVR به همراه ساخت STK200</title><description>&lt;div align="center"&gt;&lt;strong&gt;&lt;span&gt;&lt;span style="font-size:180%;"&gt;به نام خدا&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;این مطلب برای کسانی نوشته شده که تا حالا حتی یک بار هم کار عملی با میکروکنترلر نکردند و نمی دانند باید از کجا شروع کنند.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای شروع کار باید یک پروگرامر و منبع تغذیه تهیه کنید که روی هم 300 تومان هزینه داره. می گی نه نگاه کن.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;ساخت پروگرامر STK200 :&lt;/span&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;این پروگرامر اصلا مدار نداره و برای ساخت آن فقط به یک فیش DB25 با یک کابل 5تایی یک متری نیاز است . فیش DB25 همان فیشی است که به پورت پرینتر متصل می شود مدار زیر طریقه وصل کردن سیمها به این فیش رو نشون می دهد. البته من مقاومت ها را حذف کردم و مدار همچنان عالی کار می کنه.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s1600-h/image001.jpg"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s320/image001.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174742451166654274" /&gt;&lt;/div&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="right"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;در زیر تصویر پروگرامر ساخته شده را می بینید :&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BhfKXsL3I/AAAAAAAAAAs/-oIMEYgOYHw/s320/image006.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174743159836258162" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;پس از بستن قاب مخصوص فیش (در شکل زیر می بینید) در انتهای سیمهای پروگرامر تک سیمهای مفتولی بچسبانید تا به راحتی داخل بردبرد بروند (این کار ضرورتی ندارد و برای راحتی خودتان توصه می شود).&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BhfKXsL4I/AAAAAAAAAA0/isRgDni9aTA/s320/image007.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174743159836258178" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;اکنون پروگرامر کامل شده و نوبت به منبع تغذیه می رسد.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;به اطراف خود نگاه کنید . دم دست ترین و حرفه ای ترین منبع 5 ولتی در نزدیکی شما قرار دارد . در کامپیوتر شما !!!&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;نترسید ، درب کیس را باز کنید و مطابق شکل یک سیم بلند را سری با یک مقاومت 1ohm به سیم قرمز یکی از فیش های آزاد پاور وصل کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="color:#ff0000;"&gt;توجه توجه&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;همان طور که در شکل می بینید من در حال حواس پرتی سیم را به سیم زرد وصل کردم که 12 ولت است و این اشتباه من یک ATmega16 قربانی گرفت.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://4.bp.blogspot.com/_7fL8vIRXVvg/R9BhfaXsL5I/AAAAAAAAAA8/GAt6sEawiZY/s320/image008.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174743164131225490" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;پس از اینکه مقاومت را داخل فیش کردید دور آن چسب بپیچید تا اتصال نکند.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;نیازی به سیم منفی یا همان GND نیست پون که از پروگرامر یک سیم منفی می آید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9BiaqXsL6I/AAAAAAAAABE/8Gkpy8i8Wm4/s320/image009.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174744182038474658" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;حالا نوبت به پروگرام کردن آی سی می رسد. ابتدا پروگرمر رو به آی سی وصل کنید. اگه به سیم بندی پروگرامر نگاه کنید می بینید که&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;هر سیم اسمی دارد.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;(MOSI , MISO , SCK , RESET , GND)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;پایه هایی همنام با سیم هایی که نام برده شد در تمام AVR ها وجود دارد با رجوی ع به دیتاشیت آی سی مربوطه آن ها را پیدا کنید. در زیر پایه های ATmega16 و ATmega32 نمایش داده شده است که همان طور که می بینید ( MOSI=6 , MISO=7,SCK=8,RESET=9 ) و GND=11 و VCC=10 می باشد .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bia6XsL7I/AAAAAAAAABM/Jmou2zL5GeA/s320/image010.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174744186333441970" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;در حالت عادی AVR نیازی به کریستال ندارد و با یک اسیلاتور داخلی 1MHz کار می کند ، مگر اینکه فیوز بیتهای آن را تغییر داده باشید( در مورد فیوز بیتها بعدا توضیح می دهم اگه با فیوز بیتها کاری نداشته باشید اونها هم با شما کاری ندارند . بعد از اینکه سیمهای پروگرامر را به آی سی وصل کردید تغذیه 5 ولت را که از کیس گرفتید را هم به آن وصل کنید(مراقب باشید که هر اشتباهی در مورد تغذیه آی سی موجب سوختن آن می شود . ولی در مورد سیمهای پرو گرامر اینطور نیست).&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BibKXsL8I/AAAAAAAAABU/EpXIq6y_4FQ/s320/image011.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5174744190628409282" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;نرم افزار:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;حالا که کارهای سخت افزاری تمام شد . نوبت نرم افزار رسیده. برنامه ای که با آن کار می کنیم برنامه ponyprog است که یک شیر پاک خورده ای به نام Claudio Lanconelli که فکر کنم ایتالیایی باشه اونو نوشته و مجانی روی اینترنت گذاشته و کار خیلی ها رو کساد کرده . این برنامه رو میتوانید از لینک زیر دانلود کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;http://downloads.sourceforge.net/ponyprog/ponyprogV207a.zip&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;البته ممکنه ورژن جدیدتری هم داشته باشه که با مراجعه به آدرس های زیر می توانید دانلود کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;http://www.lancos.com/ppwin95.html&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;http://www.lancos.com/prog.html&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;بعد از نصب اگر برای اولین بار برنامه رو اجرا کنید به شما دو پیام می ده که باید اولا نوع پروگرامرتون رو انتخاب کنید ، ثانبا برنامه رو کالیبره کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;برای این دو کار اول فیش پروگرامر رو به کامپوتر وصل کنید و بعدا به منوی setup رفته و گزینه interface setup رو بزنید. سپس پنجره باز شده را به شکل زیر در آورید و دکمه prob را بزنید اگر پیغام Test Failed. داد یعنی یا گزینه هارو اشتباه تنظیم کردید یا آن دو سیمی را که از خود فیش به خود فیش پروگرامر وصل می شوند (پایه های 2و3و11و12) رو اشتباه زدید. بعد از رفع مشکل اگر دوباره دکمه prob رو بزنید به شما پیغام Test OK را می دهد . دکمه OK را زده پنجره را ببندید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9BibqXsL-I/AAAAAAAAABk/b0zVXHhqe48/s320/image013.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174744199218343906" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;به منوی setup بروید و گزینه Calibration را بزنید و به سوال جواب مثبت دهید بعد از چند ثانیه پیغامی می آید که Calibration OK .&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;بعد از این دو کار می توانید از برنامه برای پروگرام کردن آی سی استفاده کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;نحوه پروگرام کردن با pony prog :&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;- به منوی File\Open Program(Flash) file را بزنید و فایل hex مورد نظر را برای پروگرام کردن روی آی سی آدرس دهی کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;- از منوی Device\AVR Micro\??? آی سی مورد نظر را برای پروگرام شدن انتخاب کنید.(بهتر است گزینه AVR Auto را انتخاب کنید)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;- از منوی Command گزینه Write Program(Flash)  را بزنید و منتظر شوید تا عملیات به پایان برسد.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;- اکنون آی سی شما پروگرام شده ، اگر آی سی شروع به کار نکرد سیم Reset پروگرامر را از آی سی جدا کنید.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;- هرگونه پیغام error در مرحله پروگرام کردن به معنای اشتباه در وصل کردن سیمهاست.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://3.bp.blogspot.com/_7fL8vIRXVvg/R9BjPKXsL_I/AAAAAAAAABs/Kegdk8LK0mw/s320/image020.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174745083981606898" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;img src="http://1.bp.blogspot.com/_7fL8vIRXVvg/R9BjPqXsMAI/AAAAAAAAAB0/IV5yKsWQ50k/s320/image027.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5174745092571541506" /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;اگر مشکلی بود ایمیل بزنید.قول نمیده جواب بدم.&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="left" dir="ltr"&gt;&lt;a href="http://www.blogger.com/mostafa.webs@gmail.com"&gt;&lt;span style="font-size:130%;"&gt;mostafa.webs@gmail.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div align="center"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;با آرزوی موفقیت برای همه شما&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;صلی اله و علی محمد و آل محمد&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;ok!
http://feeds.feedburner.com/WorldOfElectronic&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7108792157705050405-7973751331244139715?l=www.mostafahk.co.cc' alt='' /&gt;&lt;/div&gt;</description><link>http://www.mostafahk.co.cc/2008/03/blog-post.html</link><author>noreply@blogger.com (مصطفی حیدری)</author><media:thumbnail url="http://2.bp.blogspot.com/_7fL8vIRXVvg/R9Bg16XsL0I/AAAAAAAAAAU/e58w0WaswDg/s72-c/image001.jpg" height="72" width="72" /><thr:total>0</thr:total></item><language>en-us</language><media:rating>nonadult</media:rating></channel></rss>

