دوستان سلام
من در این کد کانتر یک رقمی 7سگمنت این سوالات برای من ایجاد شده لطفا راهنمایی کنید ممنون.
کد:
مشکلات من:
1- خط سبز اولی: 0x3f به باینری 6 تا 1 میشه پس اگر به یک پورت که 8 تا پین داره بدیم 2 تا پین دیگه چی می شه؟
2- خط سبز دومی: P_state چیه؟
3- خط سبز سومی: اگر i از نوع کارکتری هست پس چرا با 15 که عدد صحیح هست مقایسه شده؟
فعلا سوالام همینه اگر کمکی کنید ممنون می شم.
با تشکر از کمکتون
من در این کد کانتر یک رقمی 7سگمنت این سوالات برای من ایجاد شده لطفا راهنمایی کنید ممنون.
کد:
#include <mega16.h>
#define xtal 4000000
flash 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 & 0b00000001;
delay_ms(10);
if(key==0)
{
if(key!=p_state)
{
if(i==15)
{
i=0;
PORTD=digits[i];
}
else
i++;
PORTD = digits[i];
p_state=0;
};
}
else
p_state=1;
}
}
-----------------------------------------------------#define xtal 4000000
flash 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 & 0b00000001;
delay_ms(10);
if(key==0)
{
if(key!=p_state)
{
if(i==15)
{
i=0;
PORTD=digits[i];
}
else
i++;
PORTD = digits[i];
p_state=0;
};
}
else
p_state=1;
}
}
مشکلات من:
1- خط سبز اولی: 0x3f به باینری 6 تا 1 میشه پس اگر به یک پورت که 8 تا پین داره بدیم 2 تا پین دیگه چی می شه؟
2- خط سبز دومی: P_state چیه؟
3- خط سبز سومی: اگر i از نوع کارکتری هست پس چرا با 15 که عدد صحیح هست مقایسه شده؟
فعلا سوالام همینه اگر کمکی کنید ممنون می شم.
با تشکر از کمکتون
دیدگاه