اطلاعیه

Collapse
No announcement yet.

شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

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

    شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

    این پروژه حاصل تحقیقات و سعی و تلاش های بسیار من و داداشم است (shakibv & shahimv)
    حالا این رو اینجا و برای همه میزارم
    از mega32 و کریستال داخلی 8 استفاده شده

    به قول شاعر ( حالا برو حالشو ببر)






    http://shahimv.persiangig.com/AVR/Fi...0signal/tv.DSN
    http://shahimv.persiangig.com/AVR/Fi...0signal/tv.hex
    http://shahimv.persiangig.com/AVR/Fi...0signal/main.c

    #2
    پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

    سلام و تبریک
    آقا شهیم شیوه کارتون و نحوه تعریف آرایه screen هم بگین تا بقیه دوستان مثل من که بار زبان های دیگه یا میکروهای دیگه کار می کنن این شیوه رو پیاده سازی کنین

    ممنون می شم
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #3
      پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

      سلام
      احسنت . بیشترش رو با اسمبلی نوشتی که .
      یک توضیح هم بدید چطوری کار کردید بد نیست .
      در ضمن فایل Hex رو هم برای پروتئوسش نذاشتی.
      ممنون
      تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
      دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
      مقالات و فایل های آموزشی نرم افزار Labview
      حل مشکل درایور و راه اندازی FT232 های غیراورجینال

      دیدگاه


        #4
        پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

        آرایه ی screen حاوی 100 سطر است که هر سطر نیز حاوی 8 بایت است والبته هر بایت 8 بیت است
        در هر سطر که ما 8 بایت داریم در مجموع 64 بیت نمایش روی صفحه نمایشگر را تعریف کرده ایم

        حال هر سطر را به کمک دستورهای
        #asm
        push r26
        push r27

        ldi r26, low(_screen)
        ldi r27, high(_screen)
        add r26, r12
        adc r27, r13
        ld r4, x+
        ld r5, x+
        ld r6, x+
        ld r7, x+
        ld r8, x+
        ld r9, x+
        ld r10, x+
        ld r11, x

        pop r27
        pop r26
        #endasm

        بارگذاری میکنیم تا یک سطر تلوزیون را نمایش دهد این کار برای 100 بار دیگر نیز تکرار میشود
        i = i + 8;

        تا تمام سطرهای تلوزیون نمایش داده شود

        دیدگاه


          #5
          پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

          اقا دمت گرم خیلی خوب بود
          اون لینکی که زیر سورس برنامه هست چیه؟؟؟همش علامت سوالو شکلهای عجیبه
          شماتیک نذاشتی....

          دیدگاه


            #6
            پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

            سلام و ممنونم بابت راهنماییتون
            می شه بیشتر توضیح بدین
            1-برای نمایش مثلا عبارت Hello باید چه کاری صورت بپذیره؟
            2-چرا صد سطر و چرا 8 بایت هر سطر؟ و هر مقدار این سطرها چگونه مقدار دهی می شن؟
            4-نحوه خروجی کردن سطرها به چه صورت هست ؟
            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


              #7
              پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

              نوشته اصلی توسط saeiddiod
              اقا دمت گرم خیلی خوب بود
              اون لینکی که زیر سورس برنامه هست چیه؟؟؟همش علامت سوالو شکلهای عجیبه
              شماتیک نذاشتی....
              لینک دوم شماتیک مدار هست و حتما دانلود کنید چون باید دو سه تا مقاومت وصل کنید
              اگر برای شما نشون نمیده به سایت اصلی یعنی shahimv.persiangig.com برید و از اونجا فایل tv.DSN رو دانلود کنید
              اگر باز هم نشد مرورگرتون رو عوض کنید یا از برنامه های downloadManager استفاده کنید

              دیدگاه


                #8
                پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

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

                ابتدای کار به تلویزیون میگید که سر خط هستید ( اگه روبه روی تلویزیون بایستید اونوقت گوشه بالا سمت چپ میشه سر خط اول و همینجوری که به سمت پایین بیایید به خط های دوم، سوم و ... می رسید ) خوب نحوه انجام اینکار هم اینطوریه که یک پالس همزمانی افقی(horizontal sync) آخر خط قبلی باید بفرستید تا تلویزیون از اون به بعد اطلاعات رو از اول خط بعدی نشون بده (برای اطلاع بیشتر هم باید بگم که پالس همزمانی افقی یعنی اینکه به تلویزیون 5us ولتاژ صفر بدید).

                خوب حالا ممکنه براتون این سوال پیش بیاد که تلویزیون چند تا خط داره؟
                تو جواب این سوال میشه گفت که این بستگی به استانداردی داره که با اون دارید اطلاعات رو به تلویزیون میفرستید، ما از استاندارد NTSC-RS170 استفاده کردیم تو این استاندارد تعداد خطها 262.5 تا هستش و طول هر خط هم 63.55us هستش، این مدت زمانیه که طول میکشه تا اشعه تلویزیون از سر خط به انتهای اون برسه و یا بعبارت دیگه مدت زمانیه که شما فرصت دارید تا اطلاعات رو بفرستید هر چه سرعت میکروتون بیشتر باشه اطلاعات بیشتری رو میتونید روی یک خط بفرستید و در نتیجه کیفیت تصویرتون هم بیشتر میشه.

                خوب حالا میریم سراغ قسمت دوم کار؛ این بار میپرسید که اگه به آخر صفحه رسیدیم چی کار باید بکنیم؟ این بار باید به تلویزیون پالس همزمانی عمودی (vertical sync) رو بفرستید تا تلویزیون متوجه بشه که صفحه کاملا پر شده و اشعه رو باید دوباره به سر خط اول ببره.
                خوب اینم از یه آشنایی ساده با طرز کار تلویزیون. الان دیگه همتون مهندس های تلویزیون شدید :icon_razz:

                حالا میریم به سراغ برنامه اصلی؛ این برنامه از سه قسمت اصلی تشکیل شده:
                1) تایمر، که وضیفه تولید پالس های همزمانی افقی و عمودی رو داره.
                2) آرایه screen، که حامل تصویریکه تلویزیون باید نشون بده.
                3) قسمت تبدیل آرایه بالا به اطلاعات قابل نشون دادن روی تلویزیون.

                1 : همونطور که مشاهده میکنید تایمر در حالت CTC no prescaling هستش و نیز OCR1A برابر 514 هستش و این یعنی اینکه تایمر هر 64.375us پالس همزمانی افقی رو میفرسته، به علاوه اینکه وقتی شماره خط یعنی متغییر LineCount به 248 میرسه شروع میکنه به فرستادن پالس همزمانی عمودی.

                2 : همونطور که مشاهده میکنید این یه آرایه 800 تاییه و ما اون رو به صورت 100 خط 8 بایتی نشون دادیم که دلیلشم قابل فهم شدن هرچه بیشتر اونه؛ همونجوری که قبلا بهتون گفتم ما یه مدت زمان محدودی برای فرستادن اطلاعات روی یک خط داریم، حالا با توجه به اینکه سرعت میکرو 8MHz هست پس تقریبا میشه روی هر خط
                64 bit رو نشون داد که میشه همون 8 بایتی که قبلا گفته بودم؛
                حالا بریم سراغ این مساله که چرا 100 خط ؟ باید بگم که دلیل خاصی نداشت شما میتونید طولش رو کمتر یا بیشتر کنید؛ ما فقط اطلاعات رو از خط 70 تا 169 نشون دادیم ولی شما میتونید تغییرش بدید.

                3 : همونطور که دیدید آرایه screen یک بعدی است، پس برای اینکه بشه روی تلویزیون نشونش داد ما 8 تا متغییر تعریف کردیم و همونطور که میبینید برای هر چه سریع تر شدن کار برنامه اون هارو توی رجیسترها ریختیم،(اونها رو تو رجیسترهای R4 تا R11 ریختیم)
                #pragma regalloc-
                register char v1 @4;
                register char v2 @5;
                register char v3 @6;
                register char v4 @7;
                register char v5 @8;
                register char v6 @9;
                register char v7 @10;
                register char v8 @11;
                register int i @12;
                #pragma regalloc+

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

                #asm
                push r26
                push r27

                ldi r26, low(_screen)
                ldi r27, high(_screen)
                add r26, r12
                adc r27, r13
                ld r4, x+
                ld r5, x+
                ld r6, x+
                ld r7, x+
                ld r8, x+
                ld r9, x+
                ld r10, x+
                ld r11, x

                pop r27
                pop r26
                #endasm

                قسمت بعدی کد که صرفا یک ماکرو به زبان اسمبلی هستش، کارش اینه که شما یک بایت بهش میدید و اون هم اون رو بصورت بیت به بیت روی پورت PD.6 که پایه مربوط به فرستادن اطلاعات هستش قرار میده.
                .macro videobits
                push r31
                bst @0, 7
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 6
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 5
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 4
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 3
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 2
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 1
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31

                bst @0, 0
                in r31, 0x12
                bld r31, 6
                nop
                out 0x12, r31
                pop r31
                .endm

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

                امیدوارم توضیحاتم تونسته باشه کمکتون کنه، بازم اگه سوالی داشتید در خدمت هستم.
                راستی توی این ماه ماروهم از دعاهاتون بی نصیب نگذارید.

                دیدگاه


                  #9
                  پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                  خیلی شبیه VGA بود
                  یه سوال اونوقت این سیگنال ها روی دو تا پایه هستند دیگه
                  یکم در مورد اونا توضیح میدید که چجوری با دو پایه سیگنال میفرستید؟

                  دیدگاه


                    #10
                    پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                    آقا الان یادم اومد چند وقت پیش یک فایل در رابطه با ارتباط میکرو با تلویزیون اینجا گذاشتم که از سایت کویر الکترونیک بود . منتها هرچی نگاه کردم چیزی نفهمیدم . حالا شما یک نگاه بندازید اگه چیزی فهمیدید به ما هم بگید :

                    دانلود کنید

                    اینم لینک تاپیکش :

                    http://www.eca.ir/forum2/index.php?topic=60416.0
                    تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
                    دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
                    مقالات و فایل های آموزشی نرم افزار Labview
                    حل مشکل درایور و راه اندازی FT232 های غیراورجینال

                    دیدگاه


                      #11
                      پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                      سلام
                      ممنونم از توضیحاتتون اگر زحمتی نیست می شه در رابطه با تلویزیون و نحوه کارکردشون با سیگنالهای مخابراتی کتابی رو معرفی کنین که هم جامع و هم کامل باشه؟
                      هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                      دیدگاه


                        #12
                        پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                        خیلی شبیه VGA بود
                        یه سوال اونوقت این سیگنال ها روی دو تا پایه هستند دیگه
                        یکم در مورد اونا توضیح میدید که چجوری با دو پایه سیگنال میفرستید؟
                        برای تولید سیگنال NTSC به سه نوع ولتاژ نیاز داریم(درحالت ساده) 0 ولت برای سیگنال های سنکرون . 0.3 ولت براس رنگ سیاه و 1 ولت برای رنگ سفید
                        ولی میکرو فقط ولتاژ 5 تولید میکند پس باید با مقاومت ها تقسیم ولتاژ کنیم یا به اصطلاح یک DAC درست کنیم
                        وقتی که دو مقاومت 300 و 1k به گراند وصل اند ولتاژ ما نیز 0 است و برای سیگنال سنکرون است
                        وقتی مقاومت 1k به Vcc وصل باشد ولتاژ 0.3 ولت تولید میشه و رنگ سیاه رو داریم
                        وقتی مقاومت 300 به Vcc وصله ولتاژ 0.86 را داریم و رنگ سفید است
                        راستی برای مقاومت 75 اهم از دو تا مقاومت 150 که تو بازار پیدا میشه استفاده کردم



                        آقا الان یادم اومد چند وقت پیش یک فایل در رابطه با ارتباط میکرو با تلویزیون اینجا گذاشتم که از سایت کویر الکترونیک بود . منتها هرچی نگاه کردم چیزی نفهمیدم . حالا شما یک نگاه بندازید اگه چیزی فهمیدید به ما هم بگید :

                        دانلود کنید

                        اینم لینک تاپیکش :

                        http://www.eca.ir/forum2/index.php?topic=60416.0
                        مثل این مورد هم سایت تکنو الکترو گذاشته ولی اینقدر پیچونده و تابع و غیره گذاشته فهم برنامه رو کم کرده oo:

                        راستی این هم فایل هگز را که میخواستید
                        http://shahimv.persiangig.com/tv.hex



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

                        دیدگاه


                          #13
                          پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                          آقا من ساختم اما چیزی روی تلویزیون ندیدم !
                          البته تلویزیون رنگی هستش !
                          ببخشید این فایل هگز که دادید چیزی رو نشون میده یا نه ؟؟
                          من فقط اون فایل هگز رو ریختم !
                          البته جالب اینه که وقتی میکرو پروگرام میکنم لامپ پروگرامر هی با سرعت بالا چشمک میزنه اما وقتی خالیش می کنم دیگه چشمک نمی زنه !
                          ببخشید باید بدنه سوکت تصویر به کجا وصل بشه و مرکز سوکت به کجا ؟
                          ممنون
                          ميشه به جاي امضا انگشت بزنم ؟؟؟

                          دیدگاه


                            #14
                            پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                            نوشته اصلی توسط کیان
                            آقا من ساختم اما چیزی روی تلویزیون ندیدم !
                            البته تلویزیون رنگی هستش !
                            ببخشید این فایل هگز که دادید چیزی رو نشون میده یا نه ؟؟
                            من فقط اون فایل هگز رو ریختم !
                            البته جالب اینه که وقتی میکرو پروگرام میکنم لامپ پروگرامر هی با سرعت بالا چشمک میزنه اما وقتی خالیش می کنم دیگه چشمک نمی زنه !
                            ببخشید باید بدنه سوکت تصویر به کجا وصل بشه و مرکز سوکت به کجا ؟
                            ممنون
                            سلام عزیز جان باید به چند نکته توجه ویژه داشته باشید
                            مقاومت ها
                            برای 300 اهمی از سه تا 100 اهمی استفاده کن یا ما سه تا 1K رو موازی کن که میشه 333 اهم
                            وبرای 75 اهمی از دوتا مقاومت 150 اهمی موازی استفاده کن
                            مراقب باش دیودها رو به صورت صحیح وصل کرده باشی

                            توجه داشته باش که مقاومت 75 اهمی رو باید گراند کرده باشی

                            اونجایی که اسیلوسکوپ وصل شده رو باید به مرکز سوکت وصل کنی
                            وبدنه ی سوکت را باید گران کنی (به منفی وصل کنی)

                            از کار کردن مطمین باش تضمین شده است شک نکن
                            این فایل هگز همون چیزی را که تو تصویر اول میبینید نمایش میدهد

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

                            دیدگاه


                              #15
                              پاسخ : شما هم میتوانید میکرو خود را به تلوزیون وصل کنید

                              من رو برد سوراخدار ساختم !
                              من به جای 75 اهم از یه دونه 56 اهم استفاده کردم !
                              فردا میرم سراغش !
                              با تشکر
                              ميشه به جاي امضا انگشت بزنم ؟؟؟

                              دیدگاه

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