تبلیغات
برق الکتروتکنیک - رجیستر چیست؟
برق الکتروتکنیک
برق الکتروتکنیک
برق الکتروتکنیک برق الکتروتکنیک برق الکتروتکنیک برق الکتروتکنیک برق الکتروتکنیک
درباره وبلاگ


به وبلاگ جامع برق الکتروتکنیک خوش آمدید،امید وارم مورد پسندتان باشد.

مدیر وبلاگ : جواد نظرلو
نویسندگان
رجیستر چیست؟ رجیستری‌های PORTx, PINx , DDRx، قسمتی از برنامه‌ی یک ربات مسیریاب بسیار ساده و ...

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





به نام خدا

با عرض سلام خدمت همه ی دوستان عزیز

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

در ضمن دوستانی هم که امسال وارد پیش دانشگاهی شدند فراموش نکنند که دیگه نباید تا کنکورشون این طرفا تشریف بیارن!!!!!!!!

خوب، بر می گردیم سر مبحث میکروکنترلرها....

قرار بود این جلسه برنامه ی یک مسیریاب بسیار ساده ی 2 سنسوره را با هم بنویسیم. اما ابتدا باید چندتا نکته ی دیگه هم یاد بگیریم.

همونطور که گفته شد AT Mega16 دارای پایه های متعددی برای تبادل اطلاعات با مدار است. هر 8پایه ی مجاور که این وظیفه را دارند یک پورت نامیده می شوند (به شکل نگاه کنید) . AT Mega16 دارای 4 پورت با نام های A ، B ، C و D می باشد. پایه های هر پورت به این شکل نمایش داده می شود:

شماره ی پایه+"."+نام پورت

مثلاً اولین پایه ی پورت D به این صورت نشان داده می شود: D.0
و پایه ی سوم پورت C به صورت : C.2
حال به ترتیب پایه های ATMEGA16L دقت کنید


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

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

رجیستر DDRx:
رجیستر DDRx (Data Direction) برای تنظیم ورودی یا خروجی بودن پایه های میکروکنترلر است. برای تنظیم پایه ها در برنامه، باید به جای x باید آدرس پایه ی مورد نظر(مثل B.3) را بنویسیم. اگر بخواهیم آن پایه خروجی باشد باید بیت رجیستر مربوط به آن را 1 کنیم، و اگر بخواهیم آن پایه ورودی باشد، باید بیت رجیستر مربوط به آن را 0 کنیم. به عنوان مثال اگر بخواهیم پایه17 یعنی D.3 خروجی باشد باید این جمله را بنویسیم: DDRD.3=1;
و اگر بخواهیم این پایه ورودی باشد: DDRD.3=0;

رجیستر PORTx:
در صورتی که پایه ها به صورت خروجی تنظیم شده باشند، هر چه در این رجیستر نوشته شود سطح منطقی پایه ی متناظر را تعیین می کند، مثلاً اگر بنویسیم PORTB.3=1 پایه B.3 یعنی پایه ی 4، 1 منطقی خواهد شد(یعنی ولتاژ 5 ولت بر روی این پایه قرار می گیرد). و اگر بنویسیم PORTC.1=0، پایه ی C.1 یعنی پایه ی 23، 0 منطقی خواهد شد (یعنی ولتاژ این پایه 0 می شود.).

رجیستر PINx:
در صورتی که پایه ها به صورت ورودی تنظیم شده باشند، محتویات این رجیستر حاوی اطلاعات دریافتی از پایه های میکروکنترلر است. مثلاً اگر PINB.1=0 باشد، یعنی بر روی پایه شماره ی 2 یا همان B.1 ؛ 0 منطقی اعمال شده است(مثلاً اگر به سنسوری وصل شده است، خروجی سنسور 0 منطقی بوده است). در حقیقت این رجیستر برای خواندن وضعیت پایه های ورودی مورد استفاده قرار می گیرد.

نکته ی بسیار مهم: دقت کنید که در زبان C، باید در انتهای هر خط از برنامه یک علامت ";" گذاشته شود. به این علامت در زبان انگلیسی سِمی کالِن می گویند.

نکته ی مهم:
در حقیقت برای هر پورت 3 رجیستر(حافظه 1 بایتی) در داخل میکروکنترلر وجود دارد که به مجموع این 12 رجیستر، رجیسترهای I/O (Input/Output) می گویند.

بسیار خوب، حالا نوبت نوشتن برنامه ی 1 ربات مسیریاب ساده است که فقط 2 تا سنسور داره!!!

نرم افزاری کمکی به نام Code Wizard در داخل همان Codevision وجود دارد که کار ما را برای انجام تنظیمات اولیه مانند تنظیم ورودی یا خروجی بودن پایه ها آسان می کند. یعنی دیگه نیازی نیست برای هر پایه تک تک با رجیستری DDR سرو کله بزنیم، و به راحتی با چند تا تیک ساده همه ی پایه ها رو تنظیم می کنیم. البته Code wizard همونطور که از اسمش هم معلومه بسیاری امکانات جادویی دیگری هم داره که در جلسات آینده به تدریج با آن ها آشنا خواهیم شد. Code Wizard در حقیقت برای ساده تر کردن و سریع تر کردن برنامه نویسی در فضای Codevision طراحی شده است و کارش این است که قسمت های زیادی از برنامه را به صورت خود کار و طبق خواسته های ما برای ما می نویسد.

پس با این حساب نیازی نیست تنظیمات رجیستری DDRx رو ما در برنامه خودمون انجام بدیم و این کار رو به Code wizard واگذار می کنیم. با Code wizard در جلسه ی آینده آشنا خواهیم شد.

پس در این جلسه فرض می کنیم تنظیمات اولیه مثل رجیستری DDRx و ... انجام شده است. پایه های B.0 و B.1 را به صورت ورودی(برای دریافت اطلاعات سنسورها)، و پایه های B.2 ،B.3 ، B.4 و B.5را به صورت خروجی (برای کنترل حرکت موتورها) تنظیم کرده می کنیم.

B2 و B.3 برای کنترل موتور سمت راست و B.0 برای سنسور سمت راست!

B.4 و B.5 برای کنترل موتور سمت چپ و B.1 برای سنسور سمت چپ!

حال مانند ربات قبلی، یک پایه از هر موتور را 0 می کنیم؛ و روشن و خاموش کردن هر موتور را، با اعمال 0 یا 1 منطقی بر روی پایه ی دیگر کنترل می کنیم.

پایه ی دیگر را هم به صورت هماهنگ با سنسور متناظر آن سمت 0 و 1 می کنیم، یعنی اگر خروجی سنسور 0 بود، پایه ی موتور را 0 می کنیم و اگر 1 بود ، پایه را 1 کرده و موتور را فعال می کنیم.(به شرطی که از مدار گیرنده ی شماره 2 استفاده شود(جلسه ی 15))

در زبان C علامت "=" یک عملگر است که عملوند سمت راست خود را خوانده و در عملوند سمت چپ خود می ریزد. مثلاً وقتی می نویسیم:

PORTB.3=PINB.0;

ابتدا مقداری B.0 خوانده می شود و سپس بر روی B.3 ریخته می شود. یعتی مثلاً اگر روی B.0 ، 1 منطقی اعمال شده باشد، پایه ی B.3 نیز 1 منطقی می شود.

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

PORTB.2=0;

PORTB.4=0;

PORTB.3=PINB.0;

PORTB.5=PINB.1;

همانطور که می بینید این برنامه بسیار ساده و کوتاه است.

در جلسات آینده سعی می کنیم شما رو با Code wizard بیشتر آشنا کنیم. منتظر سوالات و نظرات دوستای خوبم هستم.

پیروز باشید.





نوع مطلب :
برچسب ها :
لینک های مرتبط :
جواد نظرلو
چهارشنبه 22 شهریور 1391
پنجشنبه 19 مهر 1397 09:35 ق.ظ

With thanks! Useful information.
buy 10 mg levitra levitra 20 mg levitra online vardenafil 20mg buy levitra generic buy 10 mg levitra levitra without a doctor prescription generic levitra buy levitra generic levitra 20 mg
سه شنبه 10 مهر 1397 06:11 ق.ظ

Amazing lots of awesome facts!
cialis y deporte cialis generico postepay buy brand cialis cheap cialis 5 mg schweiz cialis generico postepay 5 mg cialis coupon printable generic cialis levitra cialis 5 effetti collaterali legalidad de comprar cialis generic cialis 20mg uk
شنبه 7 مهر 1397 12:35 ق.ظ

You actually mentioned it fantastically!
cialis online cialis kaufen bankberweisung tadalafil 10 mg acquisto online cialis we choice cialis pfizer india cialis 10mg prix pharmaci we use it 50 mg cialis dose cialis in sconto tadalafil 10 mg generic cialis 20mg uk
شنبه 31 شهریور 1397 05:35 ب.ظ

Truly all kinds of terrific material.
trust pharmacy canada reviews canadian medications, liraglutide canadian drugstore canadian online pharmacies reviews global pharmacy canada canadian pharmaceuticals canadian pharmacy canada drugs canada rx no 1 canadian pharcharmy online
چهارشنبه 28 شهریور 1397 07:10 ب.ظ

Thanks! Lots of forum posts!

cialis generic cialis from canada sialis cialis tablets venta cialis en espaa cialis sale online cuanto cuesta cialis yaho free cialis buy brand cialis cheap cialis 5 mg scheda tecnica
سه شنبه 27 شهریور 1397 04:02 ب.ظ

Amazing posts. Thanks a lot.
cost of cialis per pill canada discount drugs cialis cialis 5 mg how does cialis work look here cialis order on line cialis sicuro in linea venta cialis en espaa no prescription cialis cheap cheap cialis cialis 30 day sample
سه شنبه 13 شهریور 1397 08:19 ب.ظ

Incredible tons of beneficial information.
most reliable canadian pharmacies canadian pharmacies stendra pharmacy onesource pharmacy canada plus global pharmacy canada canadian pharmaceuticals canadian pharmacies reputable canadian prescriptions online canadian discount pharmacies in ocala fl drugs for sale in mexico
سه شنبه 13 شهریور 1397 04:27 ق.ظ

Thank you, Helpful information.
where to buy viagra with prescription viagra cheap online best site to buy viagra cheap viagra online pharmacy purchase viagra online uk buy cheap viagra online usa order viagra online without prescription buy viagra cvs buying online viagra online pharmacy
دوشنبه 12 شهریور 1397 08:41 ب.ظ

You've made the point!
cialis en mexico precio cialis tablets for sale click now cialis from canada get cheap cialis cialis preise schweiz cialis pills cialis for sale in europa click here take cialis side effects of cialis where do you buy cialis
دوشنبه 12 شهریور 1397 02:18 ق.ظ

Position clearly taken!.
cialis prezzo di mercato cialis cipla best buy buy cialis online cheapest cialis 5 mg effetti collateral enter site 20 mg cialis cost how to buy cialis online usa rezeptfrei cialis apotheke only best offers cialis use cialis manufacturer coupon cialis cipla best buy
یکشنبه 11 شهریور 1397 01:09 ب.ظ

You said it very well.!
we use it cialis online store cialis uk when can i take another cialis dosagem ideal cialis cialis tablets australia buying cialis on internet cialis canada we recommend cheapest cialis price cialis per pill cialis patentablauf in deutschland
سه شنبه 23 مرداد 1397 03:32 ق.ظ

Cheers, Valuable stuff!
online viagra generic viagra purchase buy viagra canada online buying generic viagra online viagra without presc uk viagra no pres pharmacy viagra prices how to buy viagra online safely buy real viagra how to get viagra prescription
دوشنبه 7 خرداد 1397 03:09 ق.ظ

Appreciate it! A good amount of information!

buy generic cialis only best offers cialis use cialis cost how to purchase cialis on line when will generic cialis be available cialis uk next day preis cialis 20mg schweiz cialis per paypa viagra or cialis cialis purchasing
پنجشنبه 20 اردیبهشت 1397 04:39 ق.ظ

Very well expressed really. .
viagra cialis levitra cialis farmacias guadalajara buying cialis in colombia cialis online cialis herbs we choice cialis uk cialis official site cialis in sconto cialis authentique suisse walgreens price for cialis
سه شنبه 4 اردیبهشت 1397 05:37 ق.ظ

Seriously loads of terrific data!
viagra purchase uk buy viagra walgreens how much is viagra buy viagra online order price of viagra uk rx online viagra to buy online uk viagra uk online how to buy viagra without seeing a doctor buy viagra canada
جمعه 17 فروردین 1397 09:15 ب.ظ

With thanks! Loads of write ups!

generic cialis levitra cialis australia org we recommend cialis info we like it cialis soft gel cialis para que sirve cialis super kamagra cialis daily new zealand click here take cialis only now cialis 20 mg acheter du cialis a geneve
دوشنبه 28 اسفند 1396 12:49 ق.ظ

Thanks! Plenty of knowledge!

cialis for sale in europa price cialis per pill cialis generico postepay cialis pills in singapore tadalafilo cialis uk cialis daily how to buy cialis online usa calis generic cialis pro
جمعه 17 آذر 1396 06:25 ب.ظ
Hi, I log on to your blog daily. Your story-telling style
is witty, keep doing what you're doing!
دوشنبه 27 شهریور 1396 08:51 ق.ظ
What's up Dear, are you actually visiting this web page regularly, if so afterward you will definitely take nice experience.
شنبه 31 تیر 1396 06:45 ب.ظ
I've been exploring for a bit for any high-quality articles or weblog
posts on this sort of house . Exploring in Yahoo I at last stumbled upon this website.
Reading this information So i am happy to express
that I've an incredibly just right uncanny feeling I came upon just
what I needed. I so much without a doubt will make certain to don?t overlook this site and give it a look
on a constant basis.
پنجشنبه 29 تیر 1396 09:06 ق.ظ
Asking questions are genuinely fastidious thing if
you are not understanding anything totally, however this article gives fastidious understanding yet.
پنجشنبه 29 تیر 1396 06:43 ق.ظ
Hello my friend! I wish to say that this article is awesome, great written and come with almost all significant infos.
I would like to peer more posts like this .
پنجشنبه 29 تیر 1396 04:25 ق.ظ
I really like what you guys are usually up too.
This kind of clever work and reporting! Keep up the superb
works guys I've included you guys to my blogroll.
چهارشنبه 28 تیر 1396 07:08 ق.ظ
Spot on with this write-up, I truly think this amazing site needs
a great deal more attention. I'll probably be back again to read more, thanks for the advice!
دوشنبه 26 تیر 1396 06:53 ق.ظ
It's amazing to go to see this web page and reading the views of
all mates about this article, while I am also zealous of getting knowledge.
جمعه 23 تیر 1396 01:33 ب.ظ
I have been browsing online more than three hours today, yet I never found any interesting
article like yours. It's pretty worth enough for me. In my
view, if all webmasters and bloggers made good content as you did, the web will be much more useful than ever before.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
امکانات جانبی



جاوا اسكریپت

آپلود نامحدود عکس و فایل

آپلود عکس



فال حافظ



..

.


کد آهنگ