اطلاعیه

Collapse
No announcement yet.

راه اندازی LCD N96 با بسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    راه اندازی LCD N96 با بسکام

    سلام دوستان.
    میدونم که مدتیه برای تهیه آموزش جامع راه اندازی این السیدی با بسکام معطل شدید.اما من همینجا از همتون عذر خواهی میکنم و به اطلاعتون میرسونم که مقاله ای در کار نخواهد بود و کلا کنسل شد.دلیلش هم مشغله کاری و درسی بسیار زیاد بود که باعث میشه من نتونم روی نوشتن مقاله تمرکز کنم و کلا یه جورایی برام غیر ممکنه.

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

    [move]دوستان آموزش برای افرادی هستش که آشنایی نسبی با بسکام و میکرو کنترلر دارند
    [/move]
    اول از همه این شماتیک مدار هستش:
    http://www.mediafire.com/view/?kccf568y28lo228
    خب شما تمام پایه های استفاده شده در این شماتیک رو در ماژول های آماده سایت پیدا میکنید.و به راحتی همون پایه ها رو به میکرو متصل میکنید.فقط میمونه 4 تا پایه کاتد LED های بک لایت که در ماژول های آماده سایت اصلا نیازی نیست وصل کنید و مستقیما به پایه GND وصل هستند.
    و اما کسانی که السیدی رو بدون ماژول استفاده میکنن.تمام 37 پایه السیدی داخل شماتیک هست.دقیقا همینطوری متصل کنید.
    نکته بسیار مهم اینکه تمامی VCC ها در این شماتیک 3.3 ولت در نظر گرفته شده و در صورت اعمال ولتاژی غیر از این عواقبش پای خودتونه.
    کسانی که میخوان با میکرو کنترلری غیر از Atmega128 یا Atmega64 راه اندازی کنن,یا حتی پایه های دلخواه خودشونو متصل کنند,نگران نباشید.در ادامه طریقه تغییر اتصالات رو خواهم گفت.
    و خوب البته همتون میدونید که این شماتیک فقط روش متصل کردن السیدی به میکرو کنترلر هست و مدارات تغذیه و متصل کردن میکرو کنترلر به 3.3 وات و همچنین نویز گیری ADC به عهده خودتون هستش.
    خب درمورد شماتیک میمونه یک نکته و اونم اینه که شماتیک کشیده شده از مموری کارت در فایل بالا برای سوکت Micro SD هستش و اگه میخواید مموری رو با خشاب متصل کنید نامگذاری پایه ها به این شکل هستش:
    http://www.mediafire.com/view/?kgudh1q5ha614vz

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

    http://www.mediafire.com/download.php?lu8hf45b2pn383d

    خب حالا که شماتیک رو بستید مموری کارت رو آماده کردید میریم سراغ میکرو کنترلر.برای شروع یه فایل 5.hex داخل پوشه Source هستش که میتونید روی میکرو پروگرم کنید , فیوز بیت ها رو روی کریستال خارجی پر سرعت تنطیم کنید و نتیجه رو ببینید.
    فیوز بیت ها به این شکل تنظیم میشن:
    Cksel0=1
    cksel1=1
    cksel2=1
    cksel3=1
    jtagen=1
    sut0=1
    sut1=1
    و در آخر یه فیوز بیت به نام M103c داخل میکروهای 128 و 64 هستش که اگه 1 نکنیدش میکرو خوب کار نمیکنه.
    اینم یادتون نره که کریستال خارجی 16 مگاهرتز رو بدون هیچگونه خازنی مستقیما به پایه های کریستال وصل کنید.
    خب اول از همه صفحه سیاه میشه و برنامه StartUp اجرا میشه.و در نهایت میشه این:


    وبلا فاصله بعدش این عکس رو روی صفحه میبینید:


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



    ادامه داره ...

    #2
    پاسخ : راه اندازی LCD N96 با بسکام

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

    اما قبلش شاید بعضی از دوستان عکس دوم رو به صورت زیر دیده باشند:



    باید بگم که نگران نباشید.این مشکل درست میشه و در ادامه گفته خواهد شد.


    خب اولین کاری که لازمه بکنید اینه که روی السیدی بنویسید.با فونتی مناسب.
    من کار رو براتون راحت کردم و چند تا تابع نوشتم که اگه فایل بسکامی رو که توی فایل فشرده پست قبلی و در پوشه source گذاشتم بازش کنید,قسمتی از برنامه به شکل زیره:







    خب این عکس نشون میده که شما میتونید Main برنامه خودتون رو از این قسمت شروع به نوشتن بکنید.یادتون باشه جاهای دیگه رو فعلا دست نزنید تا چیزی برهم نریزه ( البته به استثناء دوستانی که خودشون مهارت بالایی دارن).

    نکته بسیار مهمی که باید توجه داشته باشید اینه که مختصات 0 و 0 السیدی در گوشه پایین و سمت چپ قرار داره و در حقیقت السیدی در ربع اول صفحه مختصات قرار داره.



    تابع اول:رنگ کردن صفحه نمایش

    color_box x_start , y_start , x_end , y_end , Color

    خب همونطوری که از ساختار دستور مشخصه شما باید پارامترهای X_start , Y_start , X_end , Y_end و همچنین رنگ مورد نظر برای رنگ کردن صفحه رو به تابع بدید.بعنوان مثال ما میخوایم صفحه رو به صورت کلی سبز کنیم.پس دستور نهایی به شکل زیر است:


    Color_box 0 , 0 , 240 , 320 , green


    سوالی که پیش میاد اینه که Green رو از کجا نوشتم؟؟؟
    خب در جواب باید گفت که یکسری رنگهای مختلف به صورت Constant در اول برنامه و از خط 42 تا خط 54 تعریف شده که میتوان از آنها بصورت مستقیم استفاده کرد.همچنین شما میتونید بجای نوشتن اسم رنگ , کد رنگ رو بصورت مستقیم در تابع بذارین و روی صفحه نشونش بده.

    نکته اینکه اگر نیاز داشتین میتونین مختصات شروع و پایان پارامتر های X و Y رو به صورت دلخواه تغییر بدید تا بتونین بخشی از صفحه نمایش رو رنگ کنید.بع عبارتی یه 4 ضلعی رنگی هرجایی از صفحه رسم کنین.


    تابع دوم:نوشتن روی السیدی

    clcd "your text" , x , y , color , background color

    خب پرکاربرد ترین تابع همین تابع هستش و برای نوشتن اعداد و حروف و علائم استاندارد روی نمایشگر به کار میره.
    طریقه استفاده به این شکل هستش که در قسمت Your text متنی که میخواهید روی صفحه نمایش دهید را به صورت String یا متغیری از جنس String وارد میکنید.این تابع قابلیت دریافت متغیر هایی غیر از String را ندارد.
    به عنوان مثال میخواهیم در مختصات 100و 120 متن Hello World را با رنگ قرمز نمایش دهیم:


    clcd "hello world" , 100 , 120 , red , 1

    دقت داشته باشید دستور پایین دقیقا مثل دستور بالا عمل میکند.با این تفاوت که متن ابتدا در یک متغیر از جنس String ذخیره شده و سپس نمایش داده میشود:

    Dim Lcd_buff as string * 12
    Lcd_buff = "hello world"
    clcd Lcd_buff , 100 , 120 , red , 1

    حال اگر بخواهیم متغیری از جنس Byte را روی السیدی نمایش دهیم به این روش عمل میکنیم:

    Dim A1 as byte
    lcd_buff=str(a1)
    clcd lcd_buff , 100 , 120 , red , 1

    خب تا اینجا نمایش اعداد و رشته ها روی السیدی رو یاد گرفتید.
    فقط میمونه یه نکته و اونم اینه که پارامتر آخر که Background Color باشه رو چرا 1 دادم؟
    جواب اینه که اگه این پارامتر 1 باشه بک گراند متن هیچ تغییری نمیکنه و به شکل قبلش هست و میکرو فقط متن رو روی اون مینویسه.اما اگه رنگ یا مقداری بهش بدید بک گراند اون به رنگ داده شده در میاد.این خاصیت زمانی کاربرد داره که شما میخواید روی مثلا یه عکس متنی رو بنویسید و نمیخواید عکس در پشت متن نابود بشه.پس بکگراند رو 1 میزارید و نمایشش میدید.در غیر اینصورت رنگ مورد نظرتون رو نمایش میدید.
    مثلا دستور زیر متن مورد نظر رو با بک گراند زرد مینویسه:

    Clcd "hello wrld" , 100 , 120 , red , yellow

    میتونید امتحان کنید.



    ادامه داره ...

    دیدگاه


      #3
      پاسخ : راه اندازی LCD N96 با بسکام

      خب اینم آخرین تابع و کار ما تمام.

      تابع سوم:نمایش عکس BMP روی السیدی

      Bmp_show bmp_name , X_start , Y_start , X_end , Y_end


      خب این تابع برای نمایش عکسهای bitmap 16 بیتی و فرمت رنگ 565 کاربرد داره.
      قبل از آموزش ساخت این نوع عکس ها میپردازیم به روش استفاده از تابع.
      خب این تابع از دوتابع قبلی خیلی راحت تره.فقط کافیه نام فایل ساخته شده را به اضافه پسوندش و بصورت String به تابع بدید و محدوده نمایششو مشخص کنید.
      بع عنوان مثال برای نمایش عکسی که توی پوشه MMC گذاشتم و اسمش هم Partian2 هستش میتونید به این صورت عمل کنید:

      Bmp_show "partian2.bmp" , 0 , 0 , 240 , 320

      همچنین نام فایل میتونه توی یه متغیر از جنس String باشه.
      و اینکه برای نمایش عکسهایی با سایزی غیر از 320x240 میتونید مقادیر X و Y و تغییر بدید و نمایشش بدید.بعنوان مثال یه عکس 50x50 رو میخوایم از مختصات 100 و 100 نمایش بدیم.خب طبیعتا چون طول و عرض عکسمون که روی مموری هستش 50 پیکسل هست , پس مختصات پایان نمایش میشه 150 و 150.
      و دستور نهایی میشه این:

      Bmp_show "myfile.bmp , 100 , 100 , 150 , 150

      حالا اون دوستانی که در بالا اشاره کردم که عکسشون به صورت موب و کج به یک سمت دراومده فقط کافیه مختصات آغاز نمایش عکس رو تغییر بدن.
      در برنامه ای که من برای تست بهتون دادم دستور نمایش عکس در خط 137 نوشته شده.حالا اگر عکس رو مورب میبینید کافیه 1,1 رو بکنید 0,0
      خب تا جایی که من به نتیجه رسیدم متوجه شدم این مشکل از نوع السیدی هاس و روی بعضی ها باید از مختصات 0 شروع کنید و در بعضیا از 1



      خب در آخر روش ساخت عکس Bitmap با فرمت رنگ 565
      اول فتوشاپ رو باز کنید و یه سند جدید با سایز 320 در 240 بسازید و عکسی که میخواید رو کپی کنید توش و به شکلی که میخواید ویرایشش کنید.
      حالا اونو با فرمت BMP و یه جایی از مموری ذخیرش کنید.
      وقتی Ok رو بزنید میبینید که ازتون ترکیب یا بهتره بگم فرمت ذخیره سازی عکس رو میپرسه.
      حالا شما کلید Advanced رو بزنید و در پنجره جدید باز شده پشن R5 G6 B5 رو انتخاب کنید و Ok بزنید.
      حالا این عکس قابل نمایش روی السیدی با میکرو هستش.

      خب قبل از اتمام بحث باید بگم که تابع BMP_SHOW تابعی کامله و طوری نوشته شده که عکسهای BMP 24 bit رو هم نمایش میده اما سرعتش پایین تره.
      درکل ما به این دلیل 16 بیتی و 565 رو انتخاب کردیم که سرعت نمایش عکس بره بالاتر و با AVR مطوب ترین جواب رو بگیریم.

      آها اینم بگم که این تابع خودش Landscape یا Portrait بودن عکس رو تشخیص میده و اگه Landscape باشه عکس رو به صورت جاروب طولی نمایش میده.

      میتونید امتحان کنید.

      سوالی اگر دارید در خدمتیم.

      دیدگاه


        #4
        پاسخ : راه اندازی LCD N96 با بسکام

        توضیحاتتون عالی بود
        تشکر
        ین دو خانه یک برد بورد (به علت وجود پلاستیک عایق بین آنها) یک خازن کوچک وجود دارد که خیلی سریع شارژ میشود.

        به این دلیل در مدارات فرکانس بالا که سرعت تغییرات زیاد است نمیتوان از برد بورد استفاده نمود. چون زمان شارژ خازن کوچک محسوس میشود.
        http://www.botlobby.com/PishAzEftetah/

        دیدگاه


          #5
          پاسخ : راه اندازی LCD N96 با بسکام

          نوشته اصلی توسط Dr.Xylitol
          کسانی که میخوان با میکرو کنترلری غیر از Atmega128 یا Atmega64 راه اندازی کنن,یا حتی پایه های دلخواه خودشونو متصل کنند,نگران نباشید.در ادامه طریقه تغییر اتصالات رو خواهم گفت.

          سلام واقعا ممنونم از این اطلاعات مفیدی که دادین ،میشه این قسمت بالایی که قبلا صحبتشو کردین برای یک atmega32 توضیح کامل بدین ؟

          دیدگاه


            #6
            پاسخ : راه اندازی LCD N96 با بسکام

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





            فقط ناگفته نمونه که من خودم شخصا مموری کارت رو با مگا 32 راه اندازی نکردم ولی میدونم که میشه.پس اگه میخواید با مگا32 راه اندازی کنید(هم السیدی و هم مموری) بهتره توی سایت یه سرچی بکنید و ببینید مموری کارت رو چطور با مگا32 راه اندازی میکنن.
            اما برای راه اندازی السیدی کافیه پایه ها رو به شکل دلخواهتون کانفیگ گنید.

            موفق باشید

            دیدگاه


              #7
              پاسخ : راه اندازی LCD N96 با بسکام

              کسی جواب گرفته؟ بااین برد های آماده آرم تستش کردم کار میکنه ولی با ای وی ار نه

              دیدگاه


                #8
                پاسخ : راه اندازی LCD N96 با بسکام

                به خدا کار نمیکنه
                [move]:angry: :cry: [/move]
                ممنون میشم کمک کنید
                یه عکس از زیر برد مدار هزار سواختون میدید؟
                یکشنبه مورخه 7/8/91 امتحان تحلیل الکترونیکی oo: oo:دارم ااونو میخونم :read: :read: :read: بعد از اون تا آخر هفته راش میندازم البته به کمک شما بزرگان

                دیدگاه


                  #9
                  پاسخ : راه اندازی LCD N96 با بسکام

                  چی کار نمی کنه عزیز؟؟؟؟
                  حتما یه جایی اشتباه کردی مطمئن باش!
                  شماتیکت رو قرار بده تا در صورت داشتن ایراد رفعش کنیم.
                  چرا ناراحتی پاتریک!
                  + امروز ی بچه دیدم سرچهارراه گل میفروخت
                  - از دیدنش ناراحت شدی؟
                  + نه
                  پس چی ناراحتت کرده
                  + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                  ------------------------------------------------------------------------------------------------------
                  تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                  ------------------------------------------------------------------------------------------------------
                  محصولات

                  دیدگاه


                    #10
                    پاسخ : راه اندازی LCD N96 با بسکام

                    سلام بر همه ی دوستان
                    من هم مدار را بستم و چون می خواستم به جای میکرو sd از sd با خشاب یا همون مبدل استفاده کنم اسم پایه ها را از روی شماتیک پیوست نگاه کردم و با شکل mmc مقایسه و وصل کردم اما روی lcd مینویسه
                    drive ok
                    card not inserted
                    و وقتی به سوکت فشار می اورم گزینه ی دومی هم یعنی card not inserted هم ok میشود ولی مینویسه fat error
                    و با وجود اینکه فایل سیستم را با کامپیوتر به نوع های متفاوتی تبدیل کردم بازم این مشکل بوده
                    یک سوال هم دارم و اون اینکه و قتی میخواهم فایل سیستم را تغییر بدهم یک یک قسمت کشویی نام alocation unit size هم هست که باید اون رو هم جدا از فایل سیستم مقدار بدهم که فکر کنم مربوط به مقدار هر سلکتور باشد
                    تشکر
                    ین دو خانه یک برد بورد (به علت وجود پلاستیک عایق بین آنها) یک خازن کوچک وجود دارد که خیلی سریع شارژ میشود.

                    به این دلیل در مدارات فرکانس بالا که سرعت تغییرات زیاد است نمیتوان از برد بورد استفاده نمود. چون زمان شارژ خازن کوچک محسوس میشود.
                    http://www.botlobby.com/PishAzEftetah/

                    دیدگاه


                      #11
                      پاسخ : راه اندازی LCD N96 با بسکام

                      سلام بر دوستان
                      مشکل من هم حل شد اشکال از سوکت و.... بود
                      ین دو خانه یک برد بورد (به علت وجود پلاستیک عایق بین آنها) یک خازن کوچک وجود دارد که خیلی سریع شارژ میشود.

                      به این دلیل در مدارات فرکانس بالا که سرعت تغییرات زیاد است نمیتوان از برد بورد استفاده نمود. چون زمان شارژ خازن کوچک محسوس میشود.
                      http://www.botlobby.com/PishAzEftetah/

                      دیدگاه


                        #12
                        پاسخ : راه اندازی LCD N96 با بسکام

                        سلام با آرم کار میکنه ولی با ای وی ار نه اینم مدارش
                        http://uplod.ir/b06oeth1dzs5/sch.DSN.htm
                        اینم pcb atmega64-A







                        این نوکیا 2600 خودم درستش کردم



                        دیدگاه


                          #13
                          پاسخ : راه اندازی LCD N96 با بسکام

                          سلام
                          برنامه شما مشکل داره من الان مداری که قبلا خودم طراحی کردم وبا بسکام هم کدشو نوشتم کار میکنه ولی با کد شما کار نمیکنه پایه ها رو هم درست بستم

                          من نیاز به همین که گفتی با گذاشتن عدد 1 در بک کالر میشه رو عکس بدون رنگ پشت نوشت رو میخوام
                          و چطوری میشه مثلا یه باکس رو یا یه عکس کوچیک رو روی صفحه نمایش حرکت داد به شر ط اینکه عکس اولی یا همون عکس بک گراند رو خراب نکنه؟ من میام یه عکس رو به عنوان پس زمینه قرار میدم بعد میام مثلا مبایل ها رو دیدی که میای کلید کم و زیاد اسپیکر رو فشار میدی یه دفعه رو همون وسط عکس پس زمینه (بک گراند) شکل یه لودینگ یا بعضی هاشون یه خط شفاف یا شیشه ای رنگ از یه بخشی از مختصات ال سی دی با کم وزیاد کردن به طرف دیگه میره بدون اینکه عکس پس زمینه رو خراب کنه
                          من میام یه باکس رو مثلا از سمت چپ ال سی دی حرکت میدم به راست , رد باکس رو عکس پس زمینه میمونه اگه مثلا رنگ مشکی باشه از نقطه شروع تا پایان رو مشکی میکنه در صورتی که نباید این طوری باشه (منظور من باکس یا عکس در حال حرکت هست)
                          مثلا در عکس زیر اون باکس سفید یا شفاف از سمت چپ تا راست ال سی دی میره و هیچ مشکلی نداره یعنی با زدن کلید مثبت به راست حرکت و با زدن کلید منفی به سمت چپ, حالا برای من از هرجا که شروع کنه از تا اخرش ردش میمونه یا بقولی پشت باکس ترمیم نمیشه
                          امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                          دیدگاه


                            #14
                            پاسخ : راه اندازی LCD N96 با بسکام

                            این عکس برنامه خودم هست همینطور که میبینید رد باکس میمونه وعکس پس زمینه ترمیم نمیشه
                            امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                            دیدگاه


                              #15
                              پاسخ : راه اندازی LCD N96 با بسکام

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

                              البته یه سری ایده ها توی ذهنم هست که فکر میکنم با AVR نمیشه پیاده کرد.شما اگه آرم یاد داری بنویس برنامشو شاید به دردت بخوره.

                              مثلا این فکر به سرم زد که وقتی میخوایم به عنوان مثال یه باکس یا یه نوار رو نمایش بدیم روی صفحه,خب طبیعتا یه طول و عرضی داره و ما میخوایم توی یه مختصاتی نمایشش بدیم.درسته؟خب ما اول از مختصات شروع به اندازه طول و عرض همون عکسی که میخوایم روی زمینه نشون بدیم , از زمینه رو میخوتیم و توی یه عکس بصورت Temp در مموری ذخیره میکنیم.یعنی مثلا عکس مورد نظر شما 100 در 10 و هستش و میخواید از مختصات 100 و 120 شروع به نمایشش کنید.
                              خب قطعا مختصات پایان عکس میشه 200 و 130.درسته؟خب ما همین بازه از السیدی رو,توسط دستورات Read میخونیم و توی یه عکس Temp ذخیره میکنیم.عکس مورد نظر رو نمایش میدیم و بعد که خواستیم بره عکس Temp رو بازگردانی میکنیم.یه جورایی میشه گفت وصله میزنیمش.

                              به نظرم این فکر عملی باشه اما به دلیل سرعت خیلی پایین AVR تقریبا بی فایدست.و درضمن اگه بخواید عکستون حرکت بکنه و زیرش هیچ آسیبی نبینه این روش فایده نداره اما میتونه الگو بده.

                              موفق باشید.

                              دیدگاه

                              لطفا صبر کنید...
                              X