Analog Displejs

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 );
)

 
Ko es saprotu ir tas, ka 7-segmentu displeju ņirbēt,
ja tas ir rakstīt pēc tam
Pārbaudi biežums ciparu displejs ir> = 50Hz.
izslēdz visus ciparus pirms attēlot jebkuru vērtību.
Pārbaudiet displeja funkciju ar konstantu vērtību, drīzāk mV mesured ar ADC, jo var būt mirgošanas ADC arī,

paldies
babesh

 

Welcome to EDABoard.com

Sponsor

Back
Top