سلام وخسته نباشید مگم به تموم کسایی که تو این سایت زحمت میکشن.یه سوال داشتم من یه کانتر ساده میخوام بسازم که با فشار هر بار کلید تعداد رو رو 7سگمنت نشون بده.برنامش رو از کتاب آقای سپاس یار پیدا کردم فقط یه مشکلی هست برنامه ای که نوشتن برای 7 سگمنت کاتد مشترک هست و 7 سگمنت من آند مشترک.باید رو پایه های خروجی میکرو ولتاژ صفر داشته باشم دیگه مگه نه؟ اگه آره بفرمایید چه تغییری تو این برنامه بدم ؟اگه زودتر راهنمایی کنید ممنون میشم
#include <mega16.h>
#define xtal 4000000
#include<delay.h>
char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71} ;
unsigned char p_state;
unsigned char key;
unsigned char i;
void main(void)
{
DDRD = 0xFF;
PORTD = digits[0]
DDRC=0x00;
PORTC = 0xFF
while(1)
{
key=PINC&b00000001;
delay_ms(10);
if(key==0){if(i==15){
i=0;
PORTD=digits[i];}
else
i++;
PORTD=digits[i]
p_state=0;
};
}
else
p_state=1;
}
}
#include <mega16.h>
#define xtal 4000000
#include<delay.h>
char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71} ;
unsigned char p_state;
unsigned char key;
unsigned char i;
void main(void)
{
DDRD = 0xFF;
PORTD = digits[0]
DDRC=0x00;
PORTC = 0xFF
while(1)
{
key=PINC&b00000001;
delay_ms(10);
if(key==0){if(i==15){
i=0;
PORTD=digits[i];}
else
i++;
PORTD=digits[i]
p_state=0;
};
}
else
p_state=1;
}
}
دیدگاه