شمارنده باینری
پروژه: روشن و خاموش کردن LEDها با کلید برای افزایش باینری تعداد LEDها با ATmega32
در این پروژه، با استفاده از میکروکنترلر ATmega32 و یک کلید، 8 LED را کنترل خواهیم کرد. هدف این است که با هر بار فشردن کلید، تعداد LEDهایی که روشن هستند به صورت باینری افزایش یابد. این پروژه به شما کمک میکند تا با نحوه مدیریت ورودیها و خروجیها در میکروکنترلرها و استفاده از تکنیکهای ساده برای تغییر وضعیت LEDها آشنا شوید.
موارد مورد نیاز:
– میکروکنترلر ATmega32
– 8 LED
– کلید Push Button
– مقاومت Pull-Down (برای اتصال به کلید)
– برد بورد و سیمهای اتصال
در این پروژه، هر بار که کلید فشرده میشود، وضعیت LEDها به صورت باینری افزایش مییابد، به این معنی که LEDهای بیشتری روشن میشوند. این عملکرد به کمک متغیر شمارنده و تغییر وضعیت پایههای خروجی میکروکنترلر به راحتی پیادهسازی میشود. با این پروژه، شما با استفاده از ATmega32 میتوانید به راحتی کنترل وضعیت چندین LED را در یک سیستم دیجیتال پیادهسازی کنید و با استفاده از ورودیها و خروجیها آشنا شوید.
#include
int shahin = 0;
void main(void)
{
DDRA.0 = 0 ;
DDRB = 255;
while (1)
{ if(PINA.0 == 1 && shahin == 0){PORTB = PORTB +1; shahin = 1;}
if(PINA.0 == 0 && shahin == 1){ shahin = 0;}
}
}
این کد برای کنترل 8 LED با استفاده از یک کلید طراحی شده است. در این پروژه، کلید متصل به پورت A0 به عنوان ورودی استفاده میشود و با هر بار فشردن کلید، وضعیت LEDها به صورت باینری افزایش مییابد. این افزایش به صورت عددی در پورت B (که متصل به 8 LED است) انجام میشود و هر بار که کلید فشرده میشود، تعداد LEDهای روشن به ترتیب افزایش مییابد. در کد، متغیر `shahin` برای پیگیری وضعیت کلید استفاده میشود. هنگامی که کلید فشرده میشود، شمارش باینری LEDها افزایش مییابد و پس از رها کردن کلید، متغیر `shahin` به حالت اولیه برمیگردد تا از افزایش مکرر جلوگیری شود. این کد به گونهای نوشته شده که با هر فشار کلید، وضعیت پورت B به صورت باینری تغییر میکند و LEDها روشن و خاموش میشوند. این پروژه برای آشنایی با نحوه استفاده از ورودیها و خروجیها و همچنین کار با شمارش باینری با میکروکنترلر ATmega32 مفید است.