آموزش میکروکنترلر stm8 جلسه اول-کار با GPIO

میکروکنترلر های STM8 یکی از محصولات شرکت ST می باشد. این میکروکنترلر ها دارای پردازنده از نوع 8 بیتی هستند و دارای امکانات جانبی مانند تایمر ها ، شمارنده ها ، واحد ADC ، واحد مقایسه گر آنالوگ ، واحد های عمومی ورودی و خروجی و  وقفه های خارجی زیاد و غیره می باشند. این میکروکنترلر ها نسبت به نویز از مصونیت بالایی برخوردار می باشند و به همین دلیل برای کاربردهای صنعتی مناسب می باشند. یکی دیگر از مزیت های این میکروکنترلر ها نسبت به رقیبان خود مانند AVR و PIC قیمت ارزان تر و داشتن امکانات جانبی بیشتر می باشد.


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

پروگرامر STM8

آموزش میکروکنترلر stm8 جلسه اول-کار با GPIO

آموزش میکروکنترلر stm8 جلسه اول-کار با GPIOبعد از تهیه پروگرامر شما باید یه عدد هدر برد نیز برای کار داشته باشید که می تونید یا این هدر برد رو از فروشگاه های برق و الکترونیک تهیه کنید و یا خودتون بسازید. در زیر نمایی از یک عدد هدربرد میکروکنترلر STM8 رو می بینید.

هدربرد STM8

آموزش میکروکنترلر stm8 جلسه اول-کار با GPIOدر این قسمت در مورد رجیسترهای مورد استفاده برای خروجی کردن پایه ها رو توضیح خواهم داد. در زیر یک نمونه کد برای خروجی کردن پایه ها آورده شده است.

با استفاده از رجیستر PX_DDR می توانیم یک پایه را به صورت ورودی و خروجی تنظیم کنیم. با نوشتن یک در این رجیستر پایه به صورت خروجی و با نوشتن صفر پایه به صورت ورودی تنظیم خواهد شد.در رجیستر اشاره شده به جای مقدار X باید اسم پورت مورد نظر خود را قرار دهیم.در زیر نمای رجیستر آورده شده است.

آموزش میکروکنترلر stm8 جلسه اول-کار با GPIO


با استفاده از رجیستر PX_ODR پایه ای که به صورت خروجی تنظیم شده است را می توانیم صفر و یک کنیم. با نوشتن مقدار یک در خروجی مثبت 5 ولت را خواهیم داشت و با نوشتن صفر خروجی به GND متصل می شود و یا همان منفی 5 ولت را خواهیم داشت.در زیر نمای این رجیستر را می بینید.

رجیستر تعیین نوع خروجی در STM8


با استفاده از رجیستر PX_CR1 می توانیم دو حالت برای تنظیم داشته باشیم. در حالت اول اگر پایه به عنوان ورودی تعریف شده باشد با نوشتن مقدار یک در این رجیستر یک مقاومت به صورت داخلی به ولتاژ مثبت 5 ولت وصل می شود که به آن مقاومت پول آپ نیز می گویند و اگر مقدار صفر در این رجیستر نوشته شود خروجی به صورت شناور می شود به این معنی که صفر بودن و یا یک بودن آن مشخص نیست و شما باید از خارج با یک مقاومت صفر و یک بودن ورودی را معین کنید.

 

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

رجیستر تنظیم پایه های ورودی و خروجی


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

رجیستر تنظیم سرعت و اینتراپت در STM8

در بیشتر برنامه ها ما نیاز به تاخیر برای انجام کد ها داریم در زیر کدی ساده برای ایجاد تاخیر در برنامه آورده شده است.

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

 

 

کانال تلگرام ایده نگر