هدف ما این است که کیبورد ۴×۴ متصل به میکروکنترلر AVR را اسکن کنیم و سپس مقدار کلید فشرده شده را بر روی نمایشگر سون سگمنت نشان دهیم. در رابطه با اسکن کیبورد ۴×۴ و توضیحات آن قبلا به طور کامل بحث شده و در این مطلب از توضیحات در این باره اجتناب میکنیم. لینک صفحه توضیحات قبلی در پایین همین مطلب قرار داده شده است.

در اینجا تنها تغییرات نسبت به برنامه قبلی این است که بجای LCD از سون سگمت استفاده کرده ایم، که برای اینکار ابتدا توابع BCD را در فایل هدر #include <bcd.h> فراخوانی می کنیم. در ادامه خواهیم گفت که چگونه باید از این توابع استفاده نمود.

ew

استفاده از تایع keypad که قبلا توضیح داد شده مقدار کلید فشرده شده را از آرایه برمی داریم و در متغییر key ذخیره میکنیم، حالا به کمک تابع bin2bcd عدد مربوطه را به bcd فشرده تبدیل میکنم. (یعنی دو عدد BCD در یک متغییر ۸ بیتی) اکنون این عدد را روی پورت D کپی میکنیم. در این مثال از آیسی های ۷۴LS248 که مخصوص کد BCD‌ می باشند استفاده کرده ایم. از مزایای این آیسی این است که می توان به کمک آنها دو تا سون سگمنت را به یک پورت ۸ بیتی وصل کرد.