F
fatihbasaris
Guest
Zdravím všechny,
I am using Keil a AT89C51RC2.I připojení LCD a ADC rozhraní k PORT2.Mezi LCD a PORT2 používám 74ls374 (zámek a tři státní buffer) Za prvé, jsem poslal něco (např. "panel ayarlandi") na LCD.a není žádný problém.Pak jsem dělat to (74ls374) zdravotně postižených.Chci číst 8 bitů z ADC.pak pište na LCD.ale já didnt uspět.
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Smutný" border="0" />
Vzhledem k tomu, PORT2 fisrt pomocí výstupů, později pak vstup výstup .????
Prosím, pomozte mi!
Kódy:
# Include <89c51rd2.H>
# Include <stdio.h>
# Include <stdlib.h>
# Include <float.h>
# Define SIL 1
# Define doma 2
# Define solayaz 4
# Define sagayaz 6
# Define kursorgizle 12
# Define kursoryanson 15
# Define kursorgeri 16
# Define kaydirsaga 24
# Define kaydirsola 28
# Define displaykapat 0
# Define birincisatir 128
# Define ikincisatir 192
# Define karakuretadres 64
# Define ciftsatir8bit 56# Define oe2 P3_5
# Define OE P3_6
# Define hodiny P3_7
# Define DATA P2
# Define RS P3_0
# Define RW P3_1
# Define EN P3_2
neplatné lcdgecikme (int zpoždění)
(
int i, j;
pro (j = 0; j <zpoždění; j )
pro (i = 0; i <2000; i );
)
neplatné DATAkomut (int komut)
(
RS = 0; lcdgecikme (1);
RW = 0; lcdgecikme (1);
EN = 1; lcdgecikme (1);
Hodiny = 0;
DATA = komut;
Hodiny = 1;
EN = 0; lcdgecikme (1);
)
neplatné DATAveri (char veri [])
(
int i = 0;
while (veri ! = 0)
(
RS = 1; lcdgecikme (1);
RW = 0; lcdgecikme (1);
EN = 1; lcdgecikme (1);
Hodiny = 0;
DATA = veri ;
Hodiny = 1;
EN = 0; lcdgecikme (1);
i ;
)
)
neplatné LCDac (void)
(
int baslangic [] = (kursorgizle, ciftsatir8bit, sagayaz), t;
pro (t = 0; t <3; t )
DATAkomut (baslangic [t]); lcdgecikme (1);
)neplatné degeroku ()
(
int k;
float i;
unsigned char dizitam [3];
unsigned char diziondalik [3];
unsigned char Port2_deger;
oe = 1; / / první 74ls374 je zakázáno.
lcdgecikme (10);Port2_deger = P2, / / 8 bitů je čtení ...
i = (Port2_deger * 5) / 255,0;
k = i * 10;
dizitam [0] = k / 10 0x30;
dizitam [1] = 0x00;
diziondalik [0] = k% 10 0x30;
diziondalik [1] = 0x00;OE = 0;
DATAkomut (ikincisatir);
DATAveri (dizitam);
DATAveri (",");
DATAveri (diziondalik);
DATAveri ("volt");
)
void main ()
(
OE = 0; / / první 74ls374 je povolen.
oe2 = 1; / / secaond 74ls374 zdravotně postižené.LCDac ();
DATAkomut (birincisatir);
DATAveri ("panel ayarlandi");
while (1)
(
degeroku ();
)
)
I am using Keil a AT89C51RC2.I připojení LCD a ADC rozhraní k PORT2.Mezi LCD a PORT2 používám 74ls374 (zámek a tři státní buffer) Za prvé, jsem poslal něco (např. "panel ayarlandi") na LCD.a není žádný problém.Pak jsem dělat to (74ls374) zdravotně postižených.Chci číst 8 bitů z ADC.pak pište na LCD.ale já didnt uspět.
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Smutný" border="0" />
Vzhledem k tomu, PORT2 fisrt pomocí výstupů, později pak vstup výstup .????
Prosím, pomozte mi!
Kódy:
# Include <89c51rd2.H>
# Include <stdio.h>
# Include <stdlib.h>
# Include <float.h>
# Define SIL 1
# Define doma 2
# Define solayaz 4
# Define sagayaz 6
# Define kursorgizle 12
# Define kursoryanson 15
# Define kursorgeri 16
# Define kaydirsaga 24
# Define kaydirsola 28
# Define displaykapat 0
# Define birincisatir 128
# Define ikincisatir 192
# Define karakuretadres 64
# Define ciftsatir8bit 56# Define oe2 P3_5
# Define OE P3_6
# Define hodiny P3_7
# Define DATA P2
# Define RS P3_0
# Define RW P3_1
# Define EN P3_2
neplatné lcdgecikme (int zpoždění)
(
int i, j;
pro (j = 0; j <zpoždění; j )
pro (i = 0; i <2000; i );
)
neplatné DATAkomut (int komut)
(
RS = 0; lcdgecikme (1);
RW = 0; lcdgecikme (1);
EN = 1; lcdgecikme (1);
Hodiny = 0;
DATA = komut;
Hodiny = 1;
EN = 0; lcdgecikme (1);
)
neplatné DATAveri (char veri [])
(
int i = 0;
while (veri ! = 0)
(
RS = 1; lcdgecikme (1);
RW = 0; lcdgecikme (1);
EN = 1; lcdgecikme (1);
Hodiny = 0;
DATA = veri ;
Hodiny = 1;
EN = 0; lcdgecikme (1);
i ;
)
)
neplatné LCDac (void)
(
int baslangic [] = (kursorgizle, ciftsatir8bit, sagayaz), t;
pro (t = 0; t <3; t )
DATAkomut (baslangic [t]); lcdgecikme (1);
)neplatné degeroku ()
(
int k;
float i;
unsigned char dizitam [3];
unsigned char diziondalik [3];
unsigned char Port2_deger;
oe = 1; / / první 74ls374 je zakázáno.
lcdgecikme (10);Port2_deger = P2, / / 8 bitů je čtení ...
i = (Port2_deger * 5) / 255,0;
k = i * 10;
dizitam [0] = k / 10 0x30;
dizitam [1] = 0x00;
diziondalik [0] = k% 10 0x30;
diziondalik [1] = 0x00;OE = 0;
DATAkomut (ikincisatir);
DATAveri (dizitam);
DATAveri (",");
DATAveri (diziondalik);
DATAveri ("volt");
)
void main ()
(
OE = 0; / / první 74ls374 je povolen.
oe2 = 1; / / secaond 74ls374 zdravotně postižené.LCDac ();
DATAkomut (birincisatir);
DATAveri ("panel ayarlandi");
while (1)
(
degeroku ();
)
)