معماری

پروژه ساخت شمارنده چهار رقمی توسط کلید و ۷-Segment

در این قسمت از آموزش تصمیم دارم که پروژه ی نمایش اعداد در سون سگمنت مالتی پلکس که توسط کلیدهایی که کنترل میشن رو گام به گام پیش بریم.

برای شروع قطعات لازم رو از کتابخانه برداشته و بصورت زیر اتصالات رو انجام میدیم.

 

در این پروژه با زدن سوییچ،اعداد نمایش داده میشه و با زدن یکی از کلید ها اعداد نمایش داده شده ریست میشه و کلید های بعدی هم برا افزایش و کاهش اعداد به کار برده شدن.

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

#include <mega16.h>
#include <delay.h>
void namayeh(int n)
{
 switch (n)
 {
 case 0:PORTC=0b00111111;break;
 case 1:PORTC=0b00000110;break;
 case 2:PORTC=0b01011011;break;
 case 3:PORTC=0b01001111;break;
 case 4:PORTC=0b01100110;break;
 case 5:PORTC=0b01101101;break;
 case 6:PORTC=0b01111101;break;
 case 7:PORTC=0b00000111;break;
 case 8:PORTC=0b01111111;break;
 case 9:PORTC=0b01101111;break;
 } 
}
void main(void)
{int x=0,p,m[5],j=0,q;
 DDRA=0; 
 PORTA.4=1; 
 PORTA.7=1; 
while (1)
 {
 if(PINA.0==0)
 x++; 
 if (PINA.4==0)
 x=0; 
 if(PINA.7==0)
 x++;
 if(x<10)
 { 
 PORTD.3=0;
 namayeh(x);
 delay_ms(300); 
 PORTD.3=1;
 } 
 else
 { 
q=x;
 for (p=1;;p++)
 { 
 m[p]=q%10;
 q=q/10;
 if (q<10)
 {
m[p+1]=q;
break;}
 }
 j=0;
 while(j<35)
 {
 namayeh(m[1]);
 PORTD.3=0;
 delay_ms(5); 
 PORTD.3=1;
 namayeh(m[2]);
 PORTD.2=0;
 delay_ms(5);
 PORTD.2=1; 
 if(p>=2)
 {
 namayeh(m[3]);
 PORTD.1=0;
 delay_ms(1);
 PORTD.1=1; 
 }
 if(p>=3)
 {
 namayeh(m[4]);
 PORTD.0=0;
 delay_ms(1);
 PORTD.0=1;
 } 
 j++;}
 } }}

ما یا باید مدار pull up کلیدها و سوییچ را درست کنیم یا اینکه باید در کدویژن مقدار ورودی به پایه های مربوطه را مقدار یک قرار دهیم تا وقتی کلید بسته میشه مقدار صفر از طریق گروند به پایه برسه و میکرو شروع به پردازش کنه.پس وقتی مقدار پایه های کلید ها یک باشه،میکرو کار خاصی نمیکنه و اگه مقدار صفر بهش برسه عملیاتش رو انجام میده،که بصورت زیر است:

 


					
									

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قالب وردپرس