اطلاعیه

Collapse
No announcement yet.

پروژه های آموزشی با میکرو 8051

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

    #16
    پروژه های آموزشی با میکرو 8051

    دوست عزیز سلام .
    چند نکته مهم :
    برای استفاده از پورت P0 حتما حتما باید اون رو pull up کنید . به این معنی که تمامی بیت ها رو با یه مقاومت مثلا 10 کیلو به 5 ولت وصل کنید بعد میتونید از پورت به صورت عادی استفاده کنید .

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

    اگه پورت P0 رو pull up کردید و بازم این پروتئوس ایراد میگیره لطفا ایرادش رو کپی کنید و توی سایت بذارید شاید کسی از دوستان تا به حال به این ایراد برخورد کرده باشه .
    موفق باشید .
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


      #17
      پروژه های آموزشی با میکرو 8051

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

      دیدگاه


        #18
        پروژه های آموزشی با میکرو 8051

        سلام نحوی جان
        اینم لینک فایل پروتیوس و فایل HEX و فایل ASM پروژه من که میخوام دو تا سگمنت رو مالتی پلکس کنم :!: خودتون دانلود کنین ببینین من تمامی اصولی رو که شما گفته بودین رعایت کرده بودم ولی وقتی مدار رو RUN میکنم اجرا نشده متوقف میشه و Erorr میده البته مشکلش رو پیدا کردم یکی از ترانزیستورها نمیتونست جریان سگمنت رو تامین کنه و آسیب میدید ( اینو تو ارور ریپورت برنامه نوشته بود ) اومدم ترازیستورها رو دارلینگتون کردم درست شد حالا مدار کار میکنه ولی اصلاً عدد ثابت 43 که قرار هستش با خطای دید و مالتی پلکس کردن سگمنتها دیده بشه ، دیده نمیشه و سگمنتها مرتباً روشن و خاموش میشند و یه وقت 3 رونشون میدن و یه وقت 4 رو نشون میدن

        http://rapidshare.de/files/10662850/Multiplex_SEG.zip.html

        در مورد اون تایمر هم که از طرف آقای مصطفی گذاشتید من با رعایت تمامی تنظیماتی که شما برای اون مدار گفتید نتونستم اونو تو پروتیوس شبیه سازی کنم وقتی مدار رو RUN میکنم فقط اعداد صفر توی شش تا سگمنت از راست به چپ شیفت میشن :shock: و من هیچ تایمی رو نمی بینم :cry:

        دیدگاه


          #19
          پروژه های آموزشی با میکرو 8051

          سلام . خوبی دوست عزیز ؟
          ببخشید دیر دارم جواب میدم من دیشب مشکل رو متوجه شدم ولی اکانتم تمام شد . به هر حال شما با چه نرم افزاری فایل هگز این برنامه رو ساخته بودید ؟
          من با اضافه کردم یک جمله به فایل اسمبلی و کامپایل دوباره اون ، فایل هگز رو دوباره ساختم ولی برنامه شما کار کرد . نمیدونم خروجی درست بود یا نه ولی ایرادی نگرفت و شروع به کار کرد . من دوباره فایل های اصلاح شده رو براتون میفرستم .
          از هر کامپایلری که استفاده می کنید یه نگاهی به فایل لیستی که ایجاد میکنه بندازید که مطمئن بشید برنامه ایرادی نداشته در غیر این صورت فایل هگز شما نا معتبر خواهد بود .

          http://www.4shared.com/file/688670/3b5eafea/multi.html

          موفق باشید .
          شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
          هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
          چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

          دیدگاه


            #20
            پروژه های آموزشی با میکرو 8051

            ممنون نحوی جان از توجه شما
            همون طور که در بالا گفتم مدار حالا کار میکنه ولی اشکال اینجاست که من اصلاً عدد 43 که قرار است در سگمنت ها ببینم را اصلاً نمی بینم مگر فلسفه مالتی پلکس کردن سگمنت ها این نیست که با نوشتن سریع اعداد در پورت خروجی و انتخاب یک به یک سگمنتها ( مالتی پلکس ) و با استفاده از خطای دید ما عدد مورد نظر خودمون رو در سگمنت ها ببینیم در حالی که این سگمنت ها هر لحظه خاموش و روشن میشوند ولی چشم ما نمیتواند آن را تشخیص بدهد و ما خیال میکنم که عدد مورد نظر به طور ثابت در روی سگمنتها نشان داده میشود ولی در برنامه و فایل پروتیوس من این روشن و خاموش شدن سگمنتها به طور واضح دیده میشود و دیگر من عدد 43 را بطور ثابت نمی بینم بلکه سگمنتها گاهی 3 و گاهی 4 را نشان میدهند به طور خلاصه من نتوانستم سگمنت ها را مالتی پلکس کنم شاید پروتیوس نمیتواند این حالت را شبیه سازی کند و اگر من مدار را به طور حقیقی ببندم بتوانم عدد 43 را ببینم
            در ضمن من از اسمبلر ASEM51 موجود در پوشه Tools برنامه پروتیوس برای تولید هگز و دیباگ کردن استفاده میکنم لطفاً منو در مورد مالتی پلکس کردن سون سگمنتها راهنمایی کنید

            دیدگاه


              #21
              پروژه های آموزشی با میکرو 8051

              سلام نحوی جان خوبی ؟
              من در پروتیوس یک مدار کشیدم که عکس اونو میبینی در این مدار من با استفاده از پورت P0 میکرو میخوام چهار عدد سون سگمنت آند مشترک رو مالتی پلکس کنم و عدد 1355 را بطور ثابت و مداوم در روی سون سگمنت ها ببینم من فایل پروتیوس اونو رو برات اتچ میکنم اگر وقت داشتی به زبان اسمبلی برنامه ای برای این مدار بنویس که چهار تا سگمنت اند مشترک رو با پورت صفر میکرو مالتی پلکس کرده و عدد 1355 را بطور ثابت در روی سگمنتها نشان دهد ممنون از زحمات شما منتظر هستم

              فایل پروتیوس :
              http://rapidshare.de/files/10700782/Maltiplex.zip.html

              دیدگاه


                #22
                پروژه های آموزشی با میکرو 8051

                سلام . خوبی دوست عزیز . اسم شما رو هم نفهمیدیم چی هست آخرش .
                ببینید . من برنامه قبلی رو که برام فرستاده بودید رو نگاه کردم . برنامه هیچ مشکلی نداشت به غیر از یک چیز .
                زمانی که می خواهید سون سگمت ها رو رفرش کنید باید یه تاخیر ایجاد کنید .
                مثلا : سون سگمت اول رو روشن می کنید 20 میلی ثانیه تاخیر میدازید بعد میرید و سون سگمنت دوم رو روشن میکنید بازم 20 میلی ثانیه تاخیر و ... .
                نگران نباشید این تاخیر ها به چشم نمیان دقیقا عین مهتابی شما تا به حال خاموش و روشن شدنش رو دید ؟ یا حتی تابلو های LED ، اونها هم از همین سیستم استفاده می کنن .
                توی این فایل جدید برنامه رو نفرستادید ولی بازم من حدس میزن مشکل همین باشه .
                موفق باشید .
                شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                دیدگاه


                  #23
                  پروژه های آموزشی با میکرو 8051

                  ممنون نحوی جان
                  شما علی صدا بزن درباره فایل جدید که برنامه نفرستادم گفتم که شما برنامه اش رو به زبان اسمبلی بنویسید طوری که عدد 1355 به طور مداوم در سگمنت ها دیده بشه
                  شاید این تاخیرها در مدار عملی که به طور حقیقی میبندیمش به چشم نیاد ولی من در شبیه سازی پروتیوسی این تاخیرها رو به طور وضوح میبینم من اون تاخیر 20 میلی ثانیه رو ایجاد کردم
                  بازم سون سگمنت ها چشمک میزنند و عدد 43 به صورت ثابت نشون داده نمیشه اینم برنامه اصلاحی
                  ORG 0H
                  ; ********* Main *********
                  MAIN:
                  MOV P0,#13H
                  CALL DEALY
                  MOV P0,#24H
                  CALL DEALY
                  JMP MAIN
                  ; *** 20 mili second dealy ***
                  DEALY:
                  MOV TMOD,#01H
                  MOV TL0,#0DFH
                  MOV TH0,#0B1H
                  SETB TR0
                  STOP:
                  JNB TF0,STOP
                  CLR TF0
                  CLR TR0
                  RET
                  END

                  دیدگاه


                    #24
                    Re: ساعت و تایمر دیجیتالی

                    نوشته اصلی توسط mn_nahvi
                    این پروژه رو یکی از دوستان به من داده من توضیحاتش رو عینا اینجا کپی کردم :



                    برنامهآ‌اش رو هم با زبان اسمبلی نوشتم.
                    برنامه به صورتی نوشته شده که میتونیم زمان دقیق بین 00:00:00 تا 9959 رو با دقت یک ثانیه ببینیم.
                    چند تا از مزایای این برنامه:
                    * برای نمایش ساعت از 6 تا سون سگمنت استفاده شده و یکی از مزیتهای این برنامه هم همین است که فقط و فقط از یک عدد 7447 برای درایو کردن هر 6 تا سون سگمنت استفاده میکنه.(5 تا 150 تومن به نفع ما!)
                    * کل حجم فایل هگز این برنامه فقط و فقط 324 بایت شده.
                    * مدار به جای 7448 (650 تومان) با 7447 (150 تومان) کار میکنه.
                    * اگر فایل شبیه سازی شده این پروژه توسط پروتئوس رو بررسی کنید میبینید که پروتئوس میتونه توی طراحی و دیباگ کردن برنامه فوق العاده مفید باشه. ضمنا مطمئنم چیزهای زیادی از این پروتئوس هم یاد میگیرد!
                    تذکر مهم:
                    1) برای دیدن شبیه سازی از منوی system و بعد set animation options گزینهآ‌های frame per second را 50 و گزینه timestep per frame را برابر 20m قرار دهید. ضمنا در همین پنجره و در قسمت animation options تمامی علامتهای تیک را بردارید.(و گرنه مدار کار نمیکنه.)
                    2) زمان شبیه سازی پروتئوس با زمان واقعی یکسان نیست. مثلا ممکن است مدار، ساعت 000000 را نشان بدهد ولی 5 ثانیه از زمان دنیای واقعی گذشته باشد.(دلیل این ناهماهنگی load شدن صددرصد cpu است.)
                    از لحظهآ‌ای که شروع کردن به فکر کردن در مورد این پروژه تا لحظهآ‌ای که داشتم ازش عکس مینداختم و بعدم upload کردمش بیشتر، از 5 روز مفید وقتم رو گرفت! بنابر این فکر میکنم ارزش بررسی کردنش رو داشته باشه.

                    http://www.4shared.com/file/510377/edc1c092/Timer.html

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

                    مثلاً در این پروژه ی تایمری که گذاشتید من با رعایت تمامی تنظیمات وقتی مدار رو RUN میکنم اصلاً هیچ تایمی رو مشاهد نمیکنم و فقط یک سری عدد صفر از سمت راست به چپ روی سگمنت ها شیفت میشوند و اصلاً در پورت صفر میکرو هیچ شمارشی انجام نمیشود

                    دیدگاه


                      #25
                      پروژه های آموزشی با میکرو 8051

                      سلام علی جان خوبی عزیز ؟
                      باید بگم که تا به حال به این مشکل بر خورده بودم . بله ظاهرا حرف شما درسته . من الان فرصت ندارم ولی بیشتر با هاش سروکله میزنم شاید یه نکته ای داره که بهش دقت نمیکنیم ولی چند نکته هست :
                      پروتئوس مداراتی که توش قطعات آنالوگ استفاده کردید رو به صورت آنلاین شبیه سازی نمیکنه .
                      حالا شاید این سون سگمت جزو این قطعات آنالوگ بشه . این رو از اونجا میگم که یه پروژه توی سایت هست به اسم تابلو LED با میکرو های AVR به زبان C . من اول برای شبیه سازی اون از LED های معمولی استفاده کردم . وقتی شبیه سازی رو میزدم مدار هنگ میکرد . ولی وقتی از پکت های LED که یه قطعه دیجیتالی هست استفاده کردم دیگه این مشکلی پیش نیومد . یه نگاهی به پروژه ای که گذاشتم بکنید متوجه منظورم میشید .
                      یادم اومد . من این کاری که شما کردید رو انجام دادم فقط با یک بسته سون سگمنت . توی قطعات بگردید بسته های سون سگمنت های 2 تای 4 تای 6 تای پیدا میکنید من خودم با اونها کار کردم همچین مشکلی نداره . اگه برای راه اندازیش به مشکل برخوردید خبرم کنید ( توی help گفته چطوری میشه ازش استفاده کرد )
                      موفق و پیروز باشید .
                      شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                      هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                      چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                      دیدگاه


                        #26
                        پروژه های آموزشی با میکرو 8051

                        سلام علی آقا!
                        اون پروژه رو من نوشتم.
                        و چون میدونستم یه روز یه همچین مشکلی برای یکی پیش میاد، همه توضیحات لازم رو توش نوشتم.
                        با دقت بخونید حتما جواب میده!
                        من خودم با پروتئوس هم ازش جواب گرفتم.

                        دیدگاه


                          #27
                          پروژه های آموزشی با میکرو 8051

                          ممنون نحوی جان
                          من با سون سگمنت های مجتمع مالتی پلکس شده هم استفاده کرده ام ولی در اون ها هم عدد مورد نظر بصورت مداوم و ثابت در سگمنت نشون داده نمیشه و مرتباً خاموش و روشن میشه من که دیگه دارم کلافه میشم پروژه تابلو روان شما رو که با دیس پلی های Dot Matrix ساخته شده بود دیدم جالب بود فکر کنم هنگ کردن مدار شما شاید به علت تامین نشدن جریان led ها از طریق درایور بوده بگذریم برای اینکه من بتونم خواسته ام رو بصورت واضح برای شما بگم از مثالهای خود برنامه پروتیوس استفاده میکنم در داخل پوشه SAMPLES برنامه پروتیوس یک پوشه وجود داره به نامه AVR Tiny15 Demo که داخل اون فایل t15demo.DSN هستش این پروژه رو بازکنید در این پروژه یک میکرو کنترلر AVR هستش و در اون از یک پک سون سگمنت چهار تایی استفاده شده با 7447 دکود میکنه و با 74174 آندهای سون سگمنتها رو درایو میکنه حالا کاری نداریم که مدار چی کار میکنه ولی شما مدار رو RUN کنید می بینید که یک عدد چهار رقمی به طور ثابت در روی چهار سون سگمنت نشون داده میشه بدون هیچ تاخیری و یا روشن و خاموش شدن سون سگمنتها در حالی که هر چهار سون سگمنت دارن مالتی پلکس میشن من میخوام همچین حالتی رو داشته باشم تازه در این مثال درصد لود شدن CPU صفر هستش ولی در مداری که من انجام دادم درصد لود شدن CPU ماکزیمم یعنی 100 درصد هستش
                          اگه وقت کردین خودتون تو زبان اسمبلی و با استفاده از یک پک سگمنت چهارتایی و مالتی پلکس کردنشون یه عدد ثابت چهار رقمی رو روی سگمنتها نشون بدین عین همین مثال خود پروتیوس
                          ممنون منتظر هستم

                          دیدگاه


                            #28
                            پروژه های آموزشی با میکرو 8051

                            سلام مصطفی عزیز
                            اگر توضیحاتی که میگید منظورتون همون توضیحاتی باشه که آقای نحوی در کنار پروژه و در سایت نوشته اند باشد ( چون همراه فایلهای پروژه توضیحی وجود نداره ) من آنها را مو به مو و چند بار خوانده و خواسته هایش را تنظیم کرده ام ولی نتیجه نمیگیرم هر وقت که مدار را RUN میکنم فقط عدد صفر مرتباً از سمت راست به سمت چپ روی سون سگمنتها شیفت میشود شاید باید پروژه به طور عملی و حقیقی بسته بشه ولی یک چیزی هم خدمت شما بگم شمارش یا به اصطلاح دیتایی که باید در روی سون سگمنتها نوشته بشه از چهار تا پین P0.0 و P0.1 و P0.2 و P0.3 میکرو که به دکودر 7447 رفته گرفته میشه درسته ؟ ولی وقتی که من مدار رو RUN میکنم یه بار اومدم و چهار تا LOGICPROB به این پینها وصل کردم تا ببینم که در این پینها شمارشی وجود داره یا نه ولی در کمال تعجب دیدم که همشون صفر هستند که وقتی به دکودر 7447 اعمال میشن اونم در خروجی خودش عدد 0 رو توی سون سگمنتها مینویسه لطفاً این پروژه رو خودتون یکبار از سایت دانلود کنید و تستش کنید ببینید که درست کار میکنه یا نه
                            ممنون منتظر جوابتون هستم

                            دیدگاه


                              #29
                              پروژه های آموزشی با میکرو 8051

                              سلام علی جان
                              من پروژه رو امتحان کردم
                              100% جواب میده بدون هیچ خطایی
                              ولی یه احتمال میدم. پروتئوس شما شاید مشکل داره. چون من همون نتیجهآ‌ای که عکسش رو انداختم تو دنیای مجازی پروتئوس عینا دیدم

                              دیدگاه


                                #30
                                پروژه های آموزشی با میکرو 8051

                                دوستان عزیز سلام .
                                خوب این چه کاریه مصطفی جان شما اگه فایل پروتئوس خودتون رو دارید بذارید روی سایت .
                                ولی در مورد مثلی که علی جان زدن :
                                علی جان ببین به هر حال این پروتئوس یه شبیه ساز با دنیای واقعی فرق میکنه . بازم میگم این پروتئوس قطعات آنالوگ رو خوصوصا اگه تعدادشون بیش از یکی بشه رو به صورت انلاین شبیه سازی نمیکه این به همین خطر هست که اگه چند تا سون سگمنت تکی بذارید مدار چشمک میزنه و عدد رو ثابت نشون نمیده ولی در مورد بسته های سون سگمنتی من خودم یه 4 تایش رو استفاده کردم اصلا یه کاری الان برنامه شما رو به 4 تایش مینویسم میذارم توی سایت .
                                پس فعلا .
                                موفق باشید .
                                شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                                هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                                چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                                دیدگاه

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