من برای فرستادن دیتا روی سونسگمنت به صورت مالتیپلکس مشکل دارم این هم برنامه ای که برایه سنسور دمای 35 lmنوشتم ولی دیتا درست روی سگمنت نمیافته اگه کمکم کنید ممنون میشم سگمنت به port cوخطوط data به portd.0,1متصلند.اگه یه برنامه راحتتر هم برام بنویسید ممنون میشم.
float w,w1;
unsigned int a,in;
char out1,out2;
unsigned char str[2];
unsigned char coding(unsigned char b){
switch(b)
{
case 0:
return 0xC0;
break;
case 1:
return 0xF9;
break;
case 2:
return 0xA4;
break;
case 3:
return 0xB0;
break;
case 4:
return 0x99;
break;
case 5:
return 0x92;
break;
case 6:
return 0x82;
break;
case 7:
return 0xF8;
break;
case 8:
return 0x80;
break;
case 9:
return 0x98;
break;
}
}
void dec_7seg(float w){
in=(int)w;
itoa(in,str);
a=strlen(str);
if(a==2){
out1=str[0];
out2=str[1];
}else{
out1=0x00;
out2=str[0];
}
}
void main(void)
{
while (1)
{
// Place your code here
w1=read_adc(0);
w=(w1/2);
dec_7seg(w);
PORTD=0b0010;
PORTC=coding(out2);
delay_ms(50);
PORTD=0b0001;
PORTC=coding(out1);
delay_ms(50);
};
float w,w1;
unsigned int a,in;
char out1,out2;
unsigned char str[2];
unsigned char coding(unsigned char b){
switch(b)
{
case 0:
return 0xC0;
break;
case 1:
return 0xF9;
break;
case 2:
return 0xA4;
break;
case 3:
return 0xB0;
break;
case 4:
return 0x99;
break;
case 5:
return 0x92;
break;
case 6:
return 0x82;
break;
case 7:
return 0xF8;
break;
case 8:
return 0x80;
break;
case 9:
return 0x98;
break;
}
}
void dec_7seg(float w){
in=(int)w;
itoa(in,str);
a=strlen(str);
if(a==2){
out1=str[0];
out2=str[1];
}else{
out1=0x00;
out2=str[0];
}
}
void main(void)
{
while (1)
{
// Place your code here
w1=read_adc(0);
w=(w1/2);
dec_7seg(w);
PORTD=0b0010;
PORTC=coding(out2);
delay_ms(50);
PORTD=0b0001;
PORTC=coding(out1);
delay_ms(50);
};
دیدگاه