۰۶-اردیبهشت-۱۳۹۰, ۲۲:۰۲:۰۶
۰۶-اردیبهشت-۱۳۹۰, ۲۳:۱۰:۴۵
خوب برنامتو بذار تا هر کی تونست بهت کمک کنه
۰۷-اردیبهشت-۱۳۹۰, ۰۸:۳۸:۱۱
میخوام با یک Atmega16 یک کلید و یک یک سون سگمنت 4تایی برنامه ای بنویسم که هروقت کلیدو زدی یک عدد روی 7سگمنت نشون بده از 0 تا 9999
برنامه اینه :
برنامه اینه :
کد:
#include <mega16.h>
#include <delay.h>
unsigned int x=0,j=0;
unsigned char i;
char digits[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
void main(void)
{
DDRC=0XFF;
PORTC=digits[0];
DDRD=0XFF ;
P0RTD=0XFF;
DDRB=0X00;
PORTB=0XFF;
while(1)
{
if (!PINB.0)
{ i++;
if(i==9999) i=0;
x=i;
for(j=1,j<=8,j=j*2)
PORTC=digits[x%10];
x=x/10;
PORTD=j;
delay_ms(10);
PORTD=0;
}
while(!PINB.0);
delay_ms(12);
while(PINB.0);
delay_ms(12);
}
}
۰۷-اردیبهشت-۱۳۹۰, ۱۲:۳۹:۴۴
کد:
for(j=1,j<=8,j=j*2)
کد:
for(j=1;j<=8;j=j*2)
کد:
#include <mega16.h>
#include <delay.h>
unsigned int x=0,j=0;
unsigned char i;
char digits[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
void main(void)
{
DDRC=0XFF;
PORTC=digits[0];
DDRD=0XFF;
PORTD=0XFF;
DDRB=0X00;
PORTB=0XFF;
while(1)
{
if (!PINB.0)
{ i++;
if(i==9999){
i=0;
x=i;
}
for(j=1;j<=8;j=j*2)
PORTC=digits[x%10];
x=x/10;
PORTD=j;
delay_ms(10);
PORTD=0x00;
}
while(!PINB.0);
delay_ms(12);
while(PINB.0);
delay_ms(12);
}
}
۰۸-اردیبهشت-۱۳۹۰, ۱۰:۲۴:۲۴
ممنون مهندس حالا اگه بخوام یکم تغییرات بدم مثلا کلیدو که زدیم بعد از 2 ثانیه به مدت 1ثانیه تا 10 رو بشماره خودم روش کار کردم اما مشکل دارم همش ارور میده اعصابمو خورد کرده