02166766927 -02166703652
info@atrinelec.com تهران پاساژ امجد طبقه1 واحد 16
دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی صفحه کلید ماتریسی 4x4 (بخش سوم)

دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی صفحه کلید ماتریسی 4x4 (بخش سوم)

2018-12-28 15:49:11

جلسه چهل و یکم _ بررسی توابع و دستورات مربوط به  صفحه کلید ماتریسی 4x4  در نرم افزار Keil

در این جلسه قصد داریم تا به بررسی کتابخانه مربوط به صفحه کلید بپردازیم و پس از آن با اضافه نمودن آن به برنامه و راه اندازی آن، کلید های فشرده شده در صفحه کلید را روی ال سی دی نمایش دهیم. پس در ابتدا کتابخانه مربوط به صفحه کلید را به پروژه اضافه می کنیم برای اینکار در محیط Keil بر روی نام پروژه راست کلیک می کنیم و گزینه Add Group را انتخاب می کنیم.

با انتخاب گزینه Add Group پوشه ای با نام New Group ایجاد می شود که می توانیم نام آن را تغییر دهیم و نام متناسب با نام کتابخانه برایش انتخاب کنیم.

در تصویر زیر می توانید پوشه ایجاد شده را بعد تغییر نام مشاهده نمایید.

بعد از ایجاد پوشه مورد نظر باید آدرس کتابخانه مورد نظر را به آن بدهیم قبل از آدرس دهی باید کتابخانه را در مسیر مناسبی ذخیره کرده باشیم در این پروژه کتابخانه در پوشه Src ذخیره شده است

در این مرحله که پوشه کتابخانه را در مسیر مناسبی قرار دادیم باید آنرا به پروژه خود در نرم افزار keil اضافه کنیم. برای اینکار روی پوشه ای که در نرم افزار اضافه کرده ایم راست کلیک می کنیم و گزینه Add Existing File to Group را انتخاب می کنیم.

 با انتخاب مسیر ذخیره کتابخانه فایل های "c." و "h." را به برنامه اضافه می کنیم

پس از انتخاب گزینه Add کتابخانه مورد نظر به برنامه اضافه می شود.

به همین روش کتابخانه مربوط به ال سی دی کاراکتری را نیز به پروژه اضافه می کنیم پس از آن به سراغ توضیح برنامه می رویم.

ابتدا فایل main.h را باز می کنیم و مشاهده خواهید نمود که تمام لیبل هایی که برای پایه ها در نظر گرفته ایم در این فایل اعمال شده اند و همچنین می توانیم ما نیز در بخش USER CODE BEGIN Private defines نیز دیفاین های جدیدی را اضافه نماییم:

حال به سراغ فایل main.c می رویم و در ابتدا کتابخانه ها را مطابق تصویر زیر در آن اینکلود می کنیم:

در ادامه این فایل می توانیم متغیر های مربوط به ال سی دی و صفحه کلید را اضافه کنیم:

در ادامه و قبل از حلقه while دستورات مربوط به پیکربندی ال سی دی و نمایش متن های مورد نظر بر روی ال سی دی می باشد و پس از گذشت 2 ثانیه اطلاعات پاک می شوند و وارد حلقه while می شود.

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

در فایل KBD4x4.h دستورات مربوط به خواندن از ورودی های متصل شده به ستون ها و Set یا Reset کردن پایه های متصل شده به سطر ها مشخص شده است و همچنین اطلاعات مربوط به عدد مربوط به هر کلید مشخص شده است:

در صورتیکه که ترتیب سطرها یا ستون ها جابجا شود مقدار بازگشتی نیز تغییر می کند که برای اصلاح آنها باید فایل KBD4x4.c را باز کنیم و در قسمت های مربوط به مقدار دهی متغیر Key1 (مانند تصویر زیر و بخش های دیگر) اعداد مورد نظر را اصلاح نماییم.

 

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

در انتها می توانید شماتیک مربوط به این جلسه و برنامه (keil , STM32CubeMX)  آنرا دانلود نمایید.

 Keyboard_4x4_Sample_Code

 Keyboard_4x4_Schematic

                                                                                                                                                                  دلتون شاد و لبتون پر خنده

                                                                                                                                                                             محمد هادی دشتی

برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST  ) کلیک کنید.

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

برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX   ) کلیک کنید.

برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX  ) کلیک کنید.

برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.

برای مشاهده آموزش جلسه ششم(نحوه تولید کد و تنظیمات در محیط STM32CubeMX و برنامه نویسی در محیط Keil برای راه اندازی کلید) کلیک کنید.

برای مشاهده آموزش جلسه هفتم(معرفی نرم افزار STM32 Flash Loader Demonstrator و نحوه دانلود برنامه و پروگرام کردن میکرو) کلیک کنید.

برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.

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

برای مشاهده آموزش جلسه دهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش اول)  ) کلیک کنید.

برای مشاهده آموزش جلسه یازدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد ADC(بخش دوم)  ) کلیک کنید.

برای مشاهده آموزش جلسه دوازدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش اول)  ) کلیک کنید.

برای مشاهده آموزش جلسه سیزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد تایمر(بخش دوم)  ) کلیک کنید.

برای مشاهده آموزش جلسه چهاردهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی وقفه با تحریک خارجی(جلسه اول) ) کلیک کنید.

برای مشاهده آموزش جلسه پانزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی وقفه با تحریک خارجی (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه شانزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه هفدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی سون سگمنت(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه هجدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی کانتر(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه نوزدهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی کانتر(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیستم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد PWM(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و یکم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد PWM(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و دوم (دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و چهارم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد سریال(بخش سوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و پنجم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد DAC(بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و ششم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی واحد DAC(بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و هفت(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه بیست و هشت(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه بیست ونهم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش سوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی ام(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی منابع کلاک (بخش چهارم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و یکم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی System Tick Timer) کلیک کنید.

برای مشاهده آموزش جلسه سیو دوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه سی و سوم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفیSPI (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و چهارم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی SPI (بخش سوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و پنج(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی واحد RTC (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه سی و ششم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی واحد RTC (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و هفتم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی واحد Watchdog  (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه سی و هشتم(دوره آموزشی میکرو کنترلرهای STM32 _ معرفی واحد Watchdog  (بخش دوم)) کلیک کنید.

برای مشاهده آموزش جلسه سی و نهم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی صفحه کلید ماتریسی 4x4 (بخش اول)) کلیک کنید.

برای مشاهده آموزش جلسه چهلم(دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی صفحه کلید ماتریسی 4x4 (بخش دوم)) کلیک کنید.

به سبد خرید اضافه شد.
سبد خرید
سبد خرید
Item removed. بازگرداندن