بازدیدها: 4230
این شمارنده چهار رقمی به زبان سی برای میکرو کنترولر AVR نوشته شده و بعد از اجرا کردن آن میکرو از صفر تا 9999 شروع به شمارش می کند و بعد اینکه به 9999 رسید مجددا این عملیات تکرار می شود. این مدار قابلیت بالا شمار کردن و پایین شمار کردن و همچنین تنطیم سرعت شمارش را دارد.
با روشن شدن مدار میکرو به صورت پیش فرض به صورت بالا شمار کار می کند. و با استفاده از کلید های UP و DOWN می توان در همان لحظه نحوی شمارش را عوض کرد و برای اینکه تاخیر بین هر شمارش را کم و زیاد کنیم ابتدا کلید Delay را پایین نگه می داریم و بعد با کلیدهای up و DOWN تاخیر را کم و زیاد می کنیم.
نکات برنامه:
unsigned char control[]={0x0e,0x0d,0x0b,0x07};
از آرایه control برای کنترل کردن چهار تا سون سگمنت استفاده شده که پایه های 1,2,3,4 را کنترل می کند.(توضیح پایه ها در شمارنده دو رقمی )
تابع display: این تابع مسولیت جدا کردن اعداد از متغیر C می باشد و بعد از جدا سازی روی سون سگمنت نمایش داده می شود.
مثلا اگر محتوای c=1248 باشد این تابع اعداد را به این صورت جدا می کند و درون متغیرهای محلی خود کپی می کند. c1=1,c2=2,c3=4,c4=8 و در نهایت محتوای این متغیر های در آرایه data قرار می گیرد:
data[0]=1,data[1]=2,data[2]=4,data[3]=8 و بعد توسط یک حلقه for روی سون سگمنت نمایش داده می شود.
تابع key_up : این تابع وضعیت کلید UP را چک می کند که دو حالت دارد: 1- آیا کلید برای بالا شمار کردن فشرده شده یا برای افزایش تاخیر که اگر برای تاخیر بود از اجرا کردن زیر برنامه بالا شمار صرف نظر می کند و Return می شود و زیر تابع delay اجرا می شود و عمل افزایش و یا کاهش تاخیر اجرا می شود.
تابع key_down : این تابع نیز مانند تابع بالایی کار میکند.
و در نهایت در تابع main و یک حلقه بی نهایت هستیم که هر 4 تابع در اینجا فراخوانی می شود و مدام وضعیت کلید ها چک می شود. من در این برنامه از یک متغییر بیتی به نام s استفاده کردم که با 0 و 1 بود این متغییر میکرو متوجه می شود که بالا شمار کار کند یا پایین شمار.
کردیم تا 10 بار سون سگمنت را تازه کنیم.
امیدوارم که این مقاله مورد رضایت شما واقع شده باشد.
این مقاله توسط سایت برنامه نویسی میکروکنترولرها ارائه شده کپی برداری تنها با ذکر منبع مجاز می باشد.
توضیحاتی در مورد سون سگمنت ها در دو قسمت داده شده و شما می توانید به این دو مثال مراجعه کنید:
7 Comments
سلام ، آقا این تایمر که مث برق میشماره میره جلو 😭 اگه بخوام هر ثانیه یکی بره جلو باید چیکار کنم؟
بستگی به کلاک میکرو دارد
سلام رمز فایل زیپ چی هست؟
www.picpars.com
سلام میشه لطفا آی دی تلگرامتونو داشته باشم؟
@picpars
سلام
میشه فایل شمارنده ۴رقمی با سون سگمنت رو با پروتعوس و کد ویژن بهم بدی
اگه نه بگو به جای پروتوس از چی استفاده کردی چون پسوند dsn و pwi هست در حالیکه پروتووس pdsprj هستش