C
chanduchi
Guest
Hi draugiem
Šeit IAM parādīti sprieguma gada 7 segmentu displeju
Šajā programmā IAM saskaras diaplay probalm
Tas mirgo, un nerāda pareizo vērtību uz displeja
Lūdzam atrisināt šo problam
Sveicieni
Naresh/ * Programma parādīt analogo sprieguma gada 7 segmentu displeju * /
# Ietvert <reg51.h>
# Ietvert <stdio.h>
par spēkā neesošu Delay (neparakstīta int);
sbit R = P1 ^ 0; / * ADC kontroles biti * /
sbit W = P1 ^ 1;
sbit I = P1 ^ 2;sbit c1 = P3 ^ 0; / * slēdzeni varētu mazliet par 1 septiņu segmentu displejs * /
sbit C2 = P3 ^ 1; / * slēdzeni varētu mazliet par 2 septiņiem segmentu displejs * /
sbit C3 = P3 ^ 0; / * slēdzeni varētu mazliet 3 septiņiem segmentu displejs * /
sbit C4 = P3 ^ 1; / * slēdzeni varētu mazliet par 4seven segmentu displeju * /
par spēkā neesošu galvenais (spēkā neesošs)
(
char pārvērst [10] = (0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90); / * Parādīt elementu * /neparakstīts char vērtība, vērtība1;
neparakstīts char a, b, c, s1, s2, s3, S4, A1, B1, D1;
ilgi int f, e;
vērtība1 = 0;
b = 0xc4;
c = 0x64;
P0 = 0xFF; / * P0 ir Input Port * /
I = 0; / * ADC vadības elementus inicializācijas * /
R = 1;
W = 1;
Vērtība = 0;
Kaut (1)
(
W = 0;
W = 1; / * ADC konvertēšanas sākas šeit * /
Kamēr (I == 1);
R = 0;
Vērtība = P0; / * Iegūstiet hex skaits, kas atbilst analogā ieejas spriegums * /= vērtība; / * konversijas Hex numuru sprieguma Ex: 0XFF = 5.00V * /
e = a * b;
f = e / c;
s1 = f/10; / * Hex līdz zīmei aiz konversijas * /
s2 = f% 10;
s3 = s1/10;
S4 = s1% 10;
a1 = pārvērst [S3] / * septiņu segmentu displejs konversijas * /
d1 = pārvērst [S4];
b1 = pārvērst [s2];
ja (vērtība = vērtība1)
(
P2 = s1;
C1 = 1; / * slēdzeni varētu * /
Delay (100);
c1 = 0; / * slēdzeni atslēgt * /
P2 = s2;
C2 = 1; / * slēdzeni varētu * /
Delay (100);
C2 = 0; / * slēdzeni atslēgt * /
P2 = s3;
C3 = 1; / * slēdzeni varētu * /
Delay (100);
C3 = 0; / * slēdzeni atslēgt * /
P2 = s3;
C3 = 1; / * slēdzeni varētu * /
Delay (100);
C3 = 0; / * slēdzeni atslēgt * /
)
Vērtība1 = vērtība;
R = 1;
)
/ * IAM izmantojot 11.052MHZ Crystal * /
par spēkā neesošu Delay (neparakstīta int laiku)
(
neparakstīts int i, j;
(i = 0; i <laikā; i )
par (j = 0, j <1275; j );
)
Šeit IAM parādīti sprieguma gada 7 segmentu displeju
Šajā programmā IAM saskaras diaplay probalm
Tas mirgo, un nerāda pareizo vērtību uz displeja
Lūdzam atrisināt šo problam
Sveicieni
Naresh/ * Programma parādīt analogo sprieguma gada 7 segmentu displeju * /
# Ietvert <reg51.h>
# Ietvert <stdio.h>
par spēkā neesošu Delay (neparakstīta int);
sbit R = P1 ^ 0; / * ADC kontroles biti * /
sbit W = P1 ^ 1;
sbit I = P1 ^ 2;sbit c1 = P3 ^ 0; / * slēdzeni varētu mazliet par 1 septiņu segmentu displejs * /
sbit C2 = P3 ^ 1; / * slēdzeni varētu mazliet par 2 septiņiem segmentu displejs * /
sbit C3 = P3 ^ 0; / * slēdzeni varētu mazliet 3 septiņiem segmentu displejs * /
sbit C4 = P3 ^ 1; / * slēdzeni varētu mazliet par 4seven segmentu displeju * /
par spēkā neesošu galvenais (spēkā neesošs)
(
char pārvērst [10] = (0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90); / * Parādīt elementu * /neparakstīts char vērtība, vērtība1;
neparakstīts char a, b, c, s1, s2, s3, S4, A1, B1, D1;
ilgi int f, e;
vērtība1 = 0;
b = 0xc4;
c = 0x64;
P0 = 0xFF; / * P0 ir Input Port * /
I = 0; / * ADC vadības elementus inicializācijas * /
R = 1;
W = 1;
Vērtība = 0;
Kaut (1)
(
W = 0;
W = 1; / * ADC konvertēšanas sākas šeit * /
Kamēr (I == 1);
R = 0;
Vērtība = P0; / * Iegūstiet hex skaits, kas atbilst analogā ieejas spriegums * /= vērtība; / * konversijas Hex numuru sprieguma Ex: 0XFF = 5.00V * /
e = a * b;
f = e / c;
s1 = f/10; / * Hex līdz zīmei aiz konversijas * /
s2 = f% 10;
s3 = s1/10;
S4 = s1% 10;
a1 = pārvērst [S3] / * septiņu segmentu displejs konversijas * /
d1 = pārvērst [S4];
b1 = pārvērst [s2];
ja (vērtība = vērtība1)
(
P2 = s1;
C1 = 1; / * slēdzeni varētu * /
Delay (100);
c1 = 0; / * slēdzeni atslēgt * /
P2 = s2;
C2 = 1; / * slēdzeni varētu * /
Delay (100);
C2 = 0; / * slēdzeni atslēgt * /
P2 = s3;
C3 = 1; / * slēdzeni varētu * /
Delay (100);
C3 = 0; / * slēdzeni atslēgt * /
P2 = s3;
C3 = 1; / * slēdzeni varētu * /
Delay (100);
C3 = 0; / * slēdzeni atslēgt * /
)
Vērtība1 = vērtība;
R = 1;
)
/ * IAM izmantojot 11.052MHZ Crystal * /
par spēkā neesošu Delay (neparakstīta int laiku)
(
neparakstīts int i, j;
(i = 0; i <laikā; i )
par (j = 0, j <1275; j );
)