صفحه 1 از 2

آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: دوشنبه ۱۶ آذر ۱۳۹۴, ۱۰:۰۷ ق.ظ
توسط sinaset
بنام خدا
با سلام


در این تاپیک سعی می کنیم به مرور اموزش های مربوط به پروگرام قرار دهیم .
انشالله که مفید برفایده باشد.

تصویر
 فهرست موضوعات تاپیک:  
  پروگرامر"PROGRAMER" چیست؟!  پروگرامرها با چه درگاه یا گذرگاهی به کامپیوتر وصل میشوند  -1- از طریق پورت سریالی RS232  -2-از طریق درگاه USB  فیوز بیت ها FUSE BIT  -فیوزبیت ها میکروکنترولر Atmega32  تنظیم فیوزبیت ها برای کریستال کوارتز خارجی  پروگرامر کردن میکروکنترولر  ما چند روش پروگرام کردن میکروکنترولر داریم  پروگرامر پیشنهادی  معرفی پرواگرمر  پروگرام کردن برنامه بر روی میکروکنترولر .

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: دوشنبه ۱۶ آذر ۱۳۹۴, ۱۰:۵۹ ق.ظ
توسط khashayar1
سلام
چقدر من وقتم رو سر این کار هدر دادم نمیدونستم پروگرمر لازمه کتابها هم مینوشتند بزنید به کامپیوتر (البته پورت 32 تایی پرینتر)
چقدر هزینه کردم سیم مبدل بخر آخرش فهمیدم باید پروگرمر داشت. موضوع اصلی توی این مسائل حضور توی فضایی هست که این کارها انجام بشه متاسفانه ما مراکزی برای کارآموزی توی کشور نداریم که شما بروید رایگان کار کنید و کار یاد بگیرید والا کلی از اتلاف وقت و هزینه جلوگیری میشه و
افراد زودتر به نتیجه میرسند.

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: دوشنبه ۱۶ آذر ۱۳۹۴, ۲:۱۳ ب.ظ
توسط sinaset
سلام بر شما
تشکر از نظر شما.
-
بله حرف شما تا حدودی درسته . ولی در ایران که خیلی چیزا مجانی هستش..متاسفانه همین مجانی بودن و زیاد بودن منابع ،باعث شد کمتر کسی کار مفید و بدرد بخور انجام بدهد .(نرم افزار و بازی مجانی،حقوق و مزایا بدون ارزش و فراوان،استفاده فراوان،آب و میوه جات و ..! و فروش نفت خام! و..) .
--
در رابطه با کتاب ها،درست فرمودید.
کتاب هایی ما معمولا ضعیفه و بیشتر هم ترجمه کتاب های خارجی هستن .
بهتر بود چند کتاب خوب و عالی در رابطه با مفاهیم پایه و مکانیزم با تصاویر رنگی و خوب نوشته میشد .

باتشکر.

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: سه‌شنبه ۱۷ آذر ۱۳۹۴, ۹:۳۵ ق.ظ
توسط sinaset
بنام خداوند بخشنده و مهربان
باسلام


پروگرامر"PROGRAMER" چیست؟!
تصویر
پروگرامر یک اصطلاح در الکترونیک می باشد. به معنی ذخیرسازی برنامه نوشته شده به درون میکروکنترولر.

داستان از این قرار است که،ما وقتی برنامه خود را به کمک کدویژن یا اتمیل یا بسکام نوشته ایم،باید ان را به درون حافظه میکروکنترولر انتقال دهیم. اما ما نمی توانیم به صورت مستقیم این کار انجام دهیم،چون میکروکنترولر چنین قابلیت ندارد!(البته در مدل های جدید وجود دارد،اما فعلا موضوع بحث ما نیست) دلیلش چیست؟!

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

پروگرامرها با چه درگاه یا گذرگاهی به کامپیوتر وصل میشوند

برای میکروکنترولر سری Atmega و Attiny و چند سری دیگر مورد بحث ما، با دو روش:


1- از طریق پورت سریالی RS232
تصویر
2-از طریق درگاه USB
تصویر
روش اول بدلیل منسوخ شدن پورت مورد نظر بر روی کامپیوتر،در رابطه اش صحبتی نمی کنیم


روش دوم استفاده از USB می باشد. که به راحتی می توانید پروگرامر را به کامپیوتر وصل کنید..

تصویر
گذاشتن میکروکنترولر بر روی ZIF سوکت،پروگرامر و اماده سازی برای پروگرام کردن میکروکنترولر.
 ادامه دارد ...  . 

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: پنج‌شنبه ۲۰ اسفند ۱۳۹۴, ۹:۳۰ ق.ظ
توسط javad_2010
سلام
این ادامه دارد
ادامه نداشتاااااا
:D
ممنون

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: یک‌شنبه ۲۳ اسفند ۱۳۹۴, ۹:۲۹ ق.ظ
توسط sinaset
سلام بر شما
تشکر از تذکرتون. انشالله اگر شد،در همان تاپیک اموزش AVR،اموزش داده میشود،سپس به اینجا کپی میشود(تا با جزییات بیشتر بررسی شود)
باتشکر.

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: جمعه ۹ مهر ۱۳۹۵, ۸:۴۴ ق.ظ
توسط sinaset
باسلام .
برگرفته از تاپیک "آموزش میکروکنترولر AVR از ابتدا تا پیشرفته"
---
فیوز بیت ها FUSE BIT
 تصویر 
کلمه فیوز احتمالا به معنی ترکیب کردن می باشد. و احتمال فیوز بیت باید معنی بیت های ترکیبی رو بده .

اما فیوزها چی هستن و چرا اینقدر مهم می باشند؟!

فیوزبیت ها در یک کلام،عملکرد میکروکنترولر رو تعویض می کنند و به ان حالت مختلف و جدید می دهد. یک مقاله در گذشته می خواندم،بنظر امد این جمله رو ازشون نقل کنم. فیوزبیت ها از ساخت میکروکنترولرها متنوع جلوگیری می کنند! در واقع ما با یک سری بیت ساده،می توانیم مکانیزم میکرو را عوض کنیم !(به عنوان مثال سرعتش را زیاد کنیم، میکرو رو قفل کنیم، بعضی واحدهایش را خاموش کنیم و ...)

اما نکته مهم و حساس در رابطه با فیوزبیت ها این است که،این بیت ها کنترولی میکروکنترولر، باید به کمک دستگاه پروگرامر تنظیم شوند(آشنایی با پروگرامر) و بدون ان امکان پذیر نمی باشد.(از نکات اساسی و مهم در رابطه با فیوزبیت ها این است،که باید درست تنظیم شوند،وگرنه دیگر نمی توان به اسانی میکروکنترولر را پروگرامر کرد،یا اطلاعات بروری ان نوشت. این نکته را گفتم،چون معمولا در ابتدا کار با میکروکنترولر زیاد اتفاق می افتد،که فیوزبیت اشتباه انتخاب شوند.)

هر میکروکنترولر تعدادی فیوزبیت دارن که نسبت،به مدل ان متفاوت می باشد.(اما کثرا شبیه به هم می باشند و بعضی میکروکنترولرها گران قیمت تر و پایه دار تر،فیوزبیت های متنوع بیشتری دارند)


در پست بعدی،فیوزبیت های میکروکنترولر Atmega32 را معرفی خواهیم کرد.
ادامه مبحث فیوزبیت ها.


همه فیوزبیت ها میکروکنترولر Atmega32 می باشد:
 تصویر   فیوزبیت اول LOW Fuse یعنی Bod level و Bod En مربوط به منبع ریست Brown-out Rest Circuit که چند پست قبل توضیح دادم(اگر بخاطر داشته باشید،گفتیم،که می توانیم یک سقف ولتاژ برای ریست کردن میکروکنترولر تایین کنیم)   کمک فیوزبیت BODLEVEL سطح ولتاژ (2.7 یا 4 ولت) را می توان تایین کرد و به کمک Boden هم می توان کلا این منبع را غیر فعال یا روشن کرد .  به کمک دو فیوزبیت STU1و STU0 می توانید، سرعت بارگذاری میکروکنترولر بعد از رسیدن برق به پایه هاش تایین کرد (که بیت چندان مهمی نیست ، و مانند تصویر بالا قرار بدید،تا 65 میلی ثانیه میکروکنترولر بعد از رسیدن برق فعال بشه)   بعدی، CKSEL صفر تا سه (0 تا 3) مربوط به تایین فرکانس کاری میکروکنترولر می باشد. که به کمک جدولی که در تصویر داده شده،می توانید فرکانس داخلی میکرکنترولر را تایین کنید.  تنظیم فیوزبیت ها برای کریستال کوارتز خارجی :  اما اگر بخواهیم از کریستال خارجی 1 تا 8 مگاهرتز استفاده کنیم باید وضعیت سه بیت CKSEL3 ,CKSEL2 ,CKSEL1 را همگی 1 کنیم (اگر CKSEL0 رو هم یک کنید،مشکلی پیش نخواهد امد)   اما اگر بخواهیم از کریستال خارجی 8 تا 16 مگاهرتز استفاده کنیم باید وضعیت سه بیت CKSEL3 ,CKSEL2 ,CKSEL1 را همگی 1 کنیم (اگر CKSEL0 رو هم یک کنید،مشکلی پیش نخواهد امد) و باید فیوزبیت * CKOPT را 0 کنید (یا همان فعال کنید)..در صورتی که این فیوزبیت فعال نشود،میکرو در فرکانس 8 مگاهرتز فعالیت می   *فیوزبیت CKOPT:در این وضعیت،میکروکنترولر موج های قوی تری تولید می کند(دامنه موج های خود را به +5 ولت افزایش میدهد) در نتیجه نویز و .. نمی تواند بر روی فرکانس تاثیر   تصویر   مهم،وقتی که از کریستال خارجی استفاده می کنیم.خود میکروکنترولر سرعت را می تواند تشخیص بدهد.(ما کریستال مد نظر خودمان را با سرعت مد نظر ،خریداری می کنیم و بعد به میکرو میدهیم )   یک نکته بسیار مهم دیگر،هیچ وقت فیوزبیت ها را به مانند شکل زیر،تایین نکنید( چهار وضعیت CKSEL همگی 0 ! در این وضعیت که به ان EXternal Clock می گویند ( و در چند پست قبل هم توضیح دادم ) قرار می گیرد و باید به پایه Xtal1 یک موج مربعی بدهیم )  تصویر   دارد...  . 

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: جمعه ۹ مهر ۱۳۹۵, ۸:۴۶ ق.ظ
توسط sinaset
برگرفته از تاپیک"آموزش میکروکنترولر AVR"
-----------
بنام خداوند بخشنده و مهربان
با سلام


ادامه مبحث فیوزبیت ها .


در پست قبلی تقریبا با فیوزبیت های اصلی آشنا شدید،اما امروز با باقی فیوزبیت ها که اولویت کمتری دارند آشنا خواهیم شد.

آموزش به نقل از تصویر! :

 تصویر 
فکر میکنم هم چیز در تصور گویا باشه. فقط چند نکته :
واحد Jtag یک واحد،برای شبیه سازی و حل مشکلات میکروکنترولر می باشد. واحد Jtag با نشون دادن عملیات درون میکروکنترولر ، بر روی کامپیوتر!می توانه باعث بشه ما مشکلات رو راحتر و سریعتر پیدا کنیم.

نکته پایان در رابطه با فیوزبیت ها،نمی دونم به این نکته اشاره کردم یا که خیر. همه فیوزبیت ها در وضعیت 0 فعال میشوند و در وضعیت 1 غیر فعال،همیشه این نکته رو مد نظر داشته باشید.

انشالله نکات خاص دیگر مبحث فیوزبیت ها در زمان آموزش پروگرامر کردن و یا دیگر کارهای که لازم بود..داده میشود.

** (عکس های اپلود شده،اکثرا در سایت پرشین گیگ می باشند،که سابقه خوب و زیادی دارد،اما بعضی ساعت ها بدلیل شلوغی عکس ها رو خوب نمایش نمی دهد،پس اگر عکس ها خوب لود نشدن،چندین بار صفحه را ریفرش کنید یا که در ساعتی دیگر مراجعه کنید)
پایان مبحث فیوزبیت ها.
باتشکر.

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: جمعه ۹ مهر ۱۳۹۵, ۸:۵۱ ق.ظ
توسط sinaset
برگرفته از تاپیک آموزش های میکروکنترولر avr
------
بنام خدا
باسلام


همانجور که دیدید،برنامه کدویژن در عین پیشرفتگی،ظاهر ساده دارد و آنچنان که شاید فکر می کردید،پیچیده نیست،محیط تا حد امکان ساده طراحی شده، می توان این نکته را نیز اضافه کرد،که کدویژن نسبت به سایر نرم افزارهای میکروکنترولرها(مثل ARM و ..) ساده تر می باشد،و کاربر را از پیچیدگی ها بیش از اندازه دور می کند (*لازم به ذکر البته نه به اندازه نرم افزار بسکام) اما کدویژن حد وسط را رعایت کرده.انشالله در آینده با نرم افزارهای دیگر برنامه نویسی سخت افزار که آشنا شدید،بیشتر به سادگی و راحتی کار با نرم افزار کدویژن پی خواهید برد .

اما برای اینکه مبحاث را پیشرفته کنم،باید ابتدا نحویه پروگرام کردن میکروکنترولر را یاد بگیرم

پروگرامر کردن میکروکنترولر


در صفحه هات قبل،در رابطه با فیوزبیت ها به بطور کلی صحبت کردیم. فیوزبیت اصلی ترین گزینه ها برای پروگرام کردن میکروکنترولرها می باشد.اگر ان مباحث را به خوبی درک کرده باشید.اکنون می توانید راحتر،پروگرام کردن میکروکنترولر را انجام دهید.

ما چند روش پروگرام کردن میکروکنترولر داریم

پروگرام کردن میکروکنترولر به دو روش انجام میشود،موازی و سری.

در روش موازی،که یک روش قدیمی نیز می باشد،به کمک تعداد زیادی از پایه های میکروکنترولر و ایسی RS232 به کمک پورت سریالی کامپیوتر،ارتباط بین کامپیوتر و میکروکنترولر برقرار می شود!
  روش امروزه کمتر استفاده میشود،چون کامپیوترهای امروزی دیگر پورت سریالی نیز ندارند و همچنین اشکالات در این روش بود،برای همین کمتر کسی به سراغ این روش میرود(*مگر در زمان هایی خاص)   دیگر سریالی می باشد،که به کمک پورت usb به میکروکنترولر ارتباط برقرار میشود. میکروکنترولر نیز این قابلیت پیشتبانی می کنند.به این روش Usbasp گفته می   تصویر  ما نیز از این روش جدید و بهتر استفاده خواهیم کرد و میکروکنترولرها را پروگرام می کنیم.

پروگرامر پیشنهادی

اینجانب پروگرامر شرکت Eca رو پیشنهاد می کنم،ضمن داشتن گارانتی،قابلیت های خوبی دارد و اینجانب بعد از گذشت چندین سال هنوز از ان استفاده می کنم.
 تصویر 
می توانید از [External Link Removed for Guests]ادرس ان را تهیه کنید.
این پروگرامر usbasp کار می کند! یعنی اینکه نیازی به کابل های موازی برای وصل شدن به کامپیوتر ندارد! و فقط با وصل کردن کابل usb به ان ،سپس هماهنگی سازی ان با سیستم کامپیوتر،می توان به راحتی به کمک نرم افزار، عملیات انتقال برنامه نوشته شده به میکروکنترولر را انجام داد(یا همان پروگرام کرد)

معرفی پرواگرمر
پروگرامر شرکت eca قابلیت های زیادی به داد،اما در این آموزش به قابلیت ها مهم و کاربردی برای پروگرامر اشاره خواهد شد
 تصویر  شماره 3 که با کادر زرد رنگ آن را برجسته کرده ایم:   قرار گرفتن USB پروگرام می باشد،که کابل Usb را به ان اتصال دهید و سپس قسمت دیگر را به کامپیوتر اتصال   شماره 1 که با کادر زرنگ برجسته شده:   قرار گیری میکروکنترولرها ما می باشد.در این قسمت،می توان میکروکنترولرهای 8 تا 40 پایه را قرار داد، اما باید طبق اصول انها را قرار داد،که اصول قرار گرفتن میکروکنترولر توسط خود سایت توضیح داده شده،دفترچه را از [External Link Removed for Guests]دانلود کنید،سپس صفحه 4 را ببینید،  تصویر 
  ما برای قرار دادن،میکروکنترولر بر روی پروگرام،ابتدا،اهرام را به سمت بالا قرار میدهیم،سپس میکروکنترولر را نسبت به تعداد پایه هایشان،به مانند الگو بالا،در پروگرامر خود قرار میدهیم،سپس اهرم را به سمت پایین میکشیم،تا میکروکنترولر محکم سرجایی خود گرفته شود. 
 شماره 5،که با رنگ زرد آن را برجسته کرده ایم:  ،به صورت دیفالت فرکانسش 1 مگاهرتز می باشد،در صورتی که میکروکنترولر تازه ی خریداری کرده ایم،یا که فرکانس کاری میکروکنترولر را برروی 1 مگاهرتز تنظیم کرده باشیم،باید و حتما،این جامپر را وصل کنید،وگرنه پروگرامر را نمی تواند شناسایی کند.(*درصورتی که فرکانس بیش از 1 مگاهرتز باشد،نیازی به وصل کردن ان نیست )  شماره 9 که با رنگ زرد رنگ ان را برجسته کرده ایم:   قرار گیری کریستال می باشد! زمانی که ما فیوزبیت کریستال خارجی (منبع کلاک بیرونی) را برای میکروکنترولر انتخاب کرده باشیم،باید کریستال را به اون دو نقطعه وصل کنید،تا کلاک میکروکنترولر برای پروگرامر کردن تامین شود.    دستگاه پروگرام به همین سادگی می باشد   برای نحویه شناسی پروگرامر توسط کامپیوتر و باقی سوالات بهتر است،به همان آدرس اولیه پروگرامر مراجعه کنید،چون در انجا به زبان فارسی همه توضیحات و اشکالات احتمالی نصب پروگرامر بطور کامل شرح داده شده است .   آشنایی با فیوزبیت ها بهتر است،اینصفحه از تاپیک را مطالعه فرمایید (اخر صفحه 3 تا اویل صفحه 4)و برای تکمیل صحبت ها در رابطه با پروگرام ها،بهتر است،اینتاپیک را نیز   انشالله در پست بعدی،مثالی را به کدویژن آغاز خواهیم کرد و نهایت،انها برای دیدن،برروی میکروکنترولر پروگرام می کنیم...    ====================   در تاپیک آموزش های میکروکنترولر AVR برنامه نوشته شده بود،و بعد ان برنامه به روش زیر،به روی میکروکنترولرATMEGA8 پروگرام میشود.  ====================     ادامه بحث  پروگرام کردن برنامه بر روی میکروکنترولر.   از هرچیز،بهتر است،به سایت سازنده پروگرامر خود رفته و اطلاعات ان را مطالعه فرمایید (اگر پروگرام شما به مانند این جانب می باشد،صفحه ات قبلی را ببینید ، و همچنین [External Link Removed for Guests]صفحه را ببینید) نرم افزار پروگرام مخصوص ویندوز (به نام progisp )را از [External Link Removed for Guests]دانلود کنید.(پسورد ان نیز [External Link Removed for Guests] می باشد)،سپس ان را نصب بفرمایید.   از ان ،فایل برنامه آموزش را نیز [External Link Removed for Guests] دانلود کنید،سپس از حالت زیپ خارج کنید.   نرم افزار پروگرام کنند،میکروکنترولر یعنی progisp را از روی دسکتاپ اجرا کنید.سپس بر روی گزینه LOAD FLASH کلیک کنید،تا فایل برنامه نوشته شده،به نرم افزار پروگرام معرفی  تصویر *فایل که نرم افزار Progisp نیاز دارد،به پسوند Hex می باشد،که معمولا بعد از سیو کردن برنامه نوشته شده توسط کدویژن در آدرس Debug\Exe پوشه برنامه قرار داده میشود .. پس ما نیز به همین ادرس میرویم و فایل Hex برنامه را ،به progisp معرفی می کنیم. تصویر  فایل به درستی به برنامه معرفی شده باشد!متن زیر که همراه به ادرس فایل می باشد،در پایین نرم افزار نمایش داده میشود.! تصویر    اکنون همه چیز آمادست،حال وقت ان است،میکروکنترولر را درون پروگرام قرار دهیم و به نرم افزار معرفی کنیم! به مانند تصویر زیر (و آموزش ها که قبلا ذکر شده بود) میکروکنترولر را قرار دهید و جامپر ذکر شده را قرار   *میکروکنترولرهای شرکت Atmel معمولا به صورت دیفالت به فرکانس 1 مگاهرتز کار می کنند،بنابراین باید جامپر ذکر شده در تصویر را قرار دهید،تا پروگرام بدانند باید با فرکانس 1 مگاهرتز با میکروکنترولر ارتباط برقرار کند. تصویر  Usb ها را وصل کنید و پروگرام را به کامپیوتر وصل کنید. سپس منوی قسمت select chip را باز کنید و میکروکنترولر atmega8a را انتخاب کنید. تصویر  اگر پروگرام به درستی به کامپیوتر ارتباط برقرار کرده باشد و همچنین میکروکنترولر بدرستی بر روی پروگرام قرار گرفته باشد! با زدن گزینه RD، پایین نرم افزار، متن زیر نمایش داده میشود! تصویر  دیگر همه چیز آماده می باشد،و باید اطلاعات را بر روی میکروکنترولر قرار بگیرد! برای این بر روی گزینه Auto کلیک کنید. تصویر    تصویر   اگر پیام بالا ظاهر شد،یعنی با موفقیت اطلاعات بر روی میکروکنترولر قرار گرفته شده. اکنون باید مدار را بر روی بردبرد امتحان کنید،تا نتیجه کار خودتان را ببینید. تصویر   .  

مشکل پروگرام

ارسال شده: دوشنبه ۶ فروردین ۱۳۹۷, ۱۲:۲۱ ب.ظ
توسط AtbinArtin
سلام

من این تاپیک رو کامل خوندم
چندجا دیگه هم سرچ زدم و کاملا گیچ شدم و استرس گرفتم که اشتباه چیزی رو پراگرام نکنم

الان من میخوام یک ATMEGA32a رو پروگرام کنم با استفاده از کدویژن
و چون از پورت C به عنوان I/0 استفاده کردم پس باید فیوزبیت jtagan رو غیرفعال کنم
و همین طور چون از کریستال خارجی ۸مگاهرتز میخوام استفاده کنم باید CKsel0-3 رو یک کنم و CKOPT رو تیک بزنم که صفر بشه

حالا یک سوال اصلی دارم این فیوزبیت jtagen برای غیرفعال شدن جیتگ باید تیک بخوره یا نخوره؟

Re: آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: دوشنبه ۶ فروردین ۱۳۹۷, ۱۲:۲۲ ب.ظ
توسط AtbinArtin
الان توی فسمت فیوزبیت ها من هیچ جا تیک ندارم به جز CKOPT که تیک خورده
این درسته؟؟
یا باید jtagen رو هم تیک بزنم؟

ممنون میشم جواب بدید واقعا گیج شدم اینقدر سرچ زدم هرجا یک جوری گفته

آموزش پروگرار کردن میکروکنترولر AVR

ارسال شده: سه‌شنبه ۷ فروردین ۱۳۹۷, ۱:۱۴ ق.ظ
توسط AtbinArtin
سلام مجدد

مشکل من در سوالات قبلی برطرف شد ممنون از آموزش های خوبتون
الان این برنامه رو نوشتم به عنوان تست


/*******************************************************
Chip type : ATmega32A
AVR Core Clock frequency: 8.000000 MHz
*******************************************************/

#include <mega32a.h>
#include <delay.h>
#include <stdio.h>
#include <lcd.h>

#asm
.equ __lcd_port=0x1b //PORTA
#endasm
#include <lcd.h>




void main(void)
{

char str[16];


DDRD.6=1; PORTD.6=0; //motor
/* DDRD.4=1; PORTD.2=0;

DDRB.0=1; PORTB.0=0;
*/




//lcd_init(16);
while (1)
{


PORTD.6=0; //motor
/* PORTD.2=0;

PORTB.0=0;*/
delay_ms(2000);

PORTD.6=1; //motor
/* PORTD.2=1;

PORTB.0=1;
delay_ms(2000);

*/
lcd_clear();
sprintf(str,"Hi"); lcd_gotoxy(0,0); lcd_puts(str);
sprintf(str,"MohamadAli"); lcd_gotoxy(0,1); lcd_puts(str);
delay_ms(2000);

}}


بعد از پروگرام کردن پورت D6 شروع به چشمک زدن می کنه ولی LCD هیچی نشون نمی ده
LCD رو به پورت A وصل کردم این پورت ولتاژ خروجی داره با LEDتست کردم ولی LCD چیزی نشون نمی ده

روی LCD دوتا پین بود A و K که اونا رو به VCC و GNDوصل کردم LCD روشن شده صفخه اش ولی چیزی روش نشون داده نمی شه

لطفا کمک کنید ممنون یک دنیا