اطلاعیه

Collapse
No announcement yet.

کمک!!!!!!! ازمایشATMEGA32A با یک برنامه بسیار ساده

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

    #16
    پاسخ : کمک!!!!!!! ازمایشATMEGA32A با یک برنامه بسیار ساده

    سلام
    سعی کن از کد ویزارد استفاده نکنی هم به خاطر اینکه واسبتت میکنه و هم اینکه ممکنه به خاطر کرکی بودن بعضی جاها درست عمل نکنه
    کلا این شیوه نوشتن درست نیست ولی چون شما واسه تست میخوای مشکل نداره
    مقاومت pulldown یک مقاومت با مقداری در حدود چند کیلو اهم(مقداری بین 5 تا 10 کیلو اهم مناسبه)هست که یه سرش به اون پایه مورد نظرت وصل میشه و یه سرش به زمین
    مقاومت pullup هم دقیقا همینه ولی یه سرش به جای اینکه به زمین وصل شه به vcc وصل میشه
    حالا اصلا چرا این مقاومت ها رو استفاده میکنیم؟ چون وقتی پایه میکرو به چیزی وصل نباشه یا اینکه به یه قطعه که خروجیش در حالت high impedance هست وصل بشه با یه موج الکترومغناطیس با توان کم هم وضعیتش تغییر میکنه مثلا شما یه دست تکون میدی صفر و یک میشه یا یه لامپ روشن و خاموش میکنی تغییر وضعیت میده
    برای همین از مقاومت pullup یا pulldown استفاده میکنیم
    البته بیشتر میکرو کنترلر ها این مقاومت ها رو به صورت داخلی دارند و فقط کافیه فعالشون کنیم
    -----------------------
    و اما در مورد مقدار دهی به ریجیستر ها
    کلا به پین هایی که به صورت ورودی یا خروجی دیجیتال ازش استفاده میکنیم میگیم GIO
    در ATMEGA32 چهار پورت داریم که هر چهارتاشون قابلیت استفاده به عنوان GIO رو دارن
    و هر پورت 3 ریجیستر داره واسه کنترل و خوندن و نوشتن
    اولین ریجیستر DDR هست که برای مشخص کردن ورودی یا خروجی بودن پورت هست و این ریجیستر یه ریجیستر 8 بیتی هست که هر بیتش متناظر هست با یکی از پین های اون پورت به این صورت که LSB با پین x.0 متناظره
    اگه بیت متناظر یک پین داخل این ریجیستر 1 بشه پین به صورت خروجی خواهد بود و اگه 0 بشه میشه ورودی(مقدار پیشفرضش هم 0 هست ولی دقت کن همه ریجیستر ها مقدار پیشفرضشون 0 نیست)
    وقتی یک پین به صورت ورودی تعریف شده میشه با خوندن از ریجیستر PIN مقدار فعلیش رو بدست اورد
    و با نوشتن 1 در مکان متناظر اون پین در ریجیستر PORT مقاومت pullup داخلی بر روی اون پین فعال میشه که مقدار این مقاومت 36 کیلو هست و برای کار های حساس تر بهتره مقاومت pullup خارجی استفاده بشه
    وقتی یک پین به صورت خروجی تعریف شده میشه با نوشتن در ریجیستر PORT بهش مقدار دهی کرد و ریجیستر PIN هم کاربردی نداره
    با سپاس

    دیدگاه

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