Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 45 odgovora
  • 12.356 pregleda

Najnovija ↓

Re: Mikroprocesor 8051 arhitekture 03.07.2018. u 11:46 · pre 101 mesec #41
Potreban mi je jos jedan mali savet. Naime, na port P1 procesora povezani su preko ULN2803 kola displeji. Takodje, Q1-Q7 izlazi kola 74HC573 povezani su na P1 port procesora, dok su na D4, D5,D6 i D7 ulaze kola 74HC573 povezani E0,A2,A1,A0 izlazi kola 74LS148. OE pin kola 74HC573 povezan je na x7 izlaz kola 4051. Ideja je da se u zavisnosti od vrednosti A2,A1,A0 kola 74LS148 na displeju prikazu odgovarajuce poruke, a kada nije aktivan nijedan od ulaza 74LS148, na displeju prikaze ono sto se prima sa serijskog porta. Sve mi je to jasno sta treba raditi. Ali ono sto mi predstavlja problem, je kako nakon sto procesor na P1 portu detektuje koju poruku treba prikazati, promeniti ulogu porta P1 da on sada ukljuci segmente na displeju, da bi se prikazala poruka? Da li moze neko da mi da savet kako ili u kom pravcu treba razmisljati da bi se resio navedeni problem? U prilogu dostavljam navedenu semu. Hvala unapred svima na odgovorima i savetima.

Re: Mikroprocesor 8051 arhitekture 10.07.2018. u 12:15 · pre 101 mesec #42
Kod u prilogu ispisuje poruku na displeju. Kod odlicno radi kada je OE pin 74HC573 kola povezan direktno na procesor. Medjutim, kada se OE pin 74HC573 kola poveze na x7 izlaz kola 4051 (multipleksera) poruka se ne ispisuje na displeju onako kako bi trebalo. Poruka je START. Moze li mi neko reci, gde je problem u navedenom kodu, zbog cega ne radi kada je OE pin 74HC573 povezan na kolo 4051? Hvala unapred na savetima i odgovoru.

Code:

 void timer0(void) interrupt 1
 {
    TH0=0xFC;
    TL0=0x66;
    switch(disp)
        {
            case 1:
               C=0;
           BB=0;
           A=1;
     //           oe=0;
           P3=P3|0xE3; // OE=0 kod 74HC573
                if(q5==0 && q6==0 && q7==0)
        {
     //             oe=1;
             P3=P3&0x03; // disable 74HC573
             displayDigit('T');
             delay(5);
             displayDigit(0xFF);
        }
            break;
            case 2:
               C=0;
           BB=1;
           A=0;
      //       oe=0;
           P3=P3|0xE3; // OE=0 kod 74HC573
           if(q5==0 && q6==0 && q7==0)
           {
      //         oe=1;
             P3=P3&0x03; // disable 74HC573
             displayDigit('R');
             delay(5);
             displayDigit(0xFF);
           }
            break;
            case 3:
               C=0;
           BB=1;
           A=1;
      //       oe=0;
           P3=P3|0xE3; // OE=0 kod 74HC573
           if(q5==0 && q6==0 && q7==0)
           {
     //            oe=1;
            P3=P3&0x03; // disable 74HC573
            displayDigit('A');
            delay(5);
            displayDigit(0xFF);
        }
            break;
            case 4:
               C=1;
           BB=0;
           A=0;
       //      oe=0;
           P3=P3|0xE3; // OE=0 kod 74HC573
           if(q5==0 && q6==0 && q7==0)
           {
       //           oe=1;
             P3=P3&0x03; // disable 74HC573
             displayDigit('T');
             delay(5);
             displayDigit(0xFF);
        }
            break;
            case 5:
                C=1;
            BB=0;
            A=1;
        //    oe=0;
            P3=P3|0xE3; // OE=0 kod 74HC573
            if(q5==0 && q6==0 && q7==0)
            {
       //         oe=1;
             P3=P3&0x03; // disable 74HC573
             displayDigit('S');
             delay(5);
             displayDigit(0xFF);
        }
           break;
        }
        disp++;
    //  oe=0;
         P3=P3|0xE3;
         if(e0==1 && q5==0 && q6==0 && q7==0)
     {
    //            oe=1;
            P3=P3&0x03;
            if(disp>5)
             disp=1;
     }
 }
Re: Mikroprocesor 8051 arhitekture 16.08.2018. u 10:28 · pre 99 meseci #43
Da li moze neko da mi da konkretan savet u vezi jednog problema? Naime, program treba da na displeju prikaze odredjenu poruku. Kada testiram program u simulatoru, sve savrseno radi, ali kada se program izvrsava na fizickom hardveru, dolazi do problema, ne ukljucuju se svi segmenti, samim tim poruka se ne prikazuje kako treba. Procesor je 80C32. DIP Switch su povezani na ulaz 74HC573, 74HC573 je povezan na P1 port procesora, takodje na P1 port procesora preko ULN2803 povezani su i displeji. Kombinacijom DipSWitch - eva prikazuje se odredjena poruka. Da li moze neko da mi pomogne oko datog problema, posto mi je potrebna pomoc? Hvala unapred svima na savetima i odgovorima.
Re: Mikroprocesor 8051 arhitekture 16.08.2018. u 10:36 · pre 99 meseci #44
Citat:
janko11: Da li moze neko da mi da konkretan savet u vezi jednog problema? Naime, program treba da na displeju prikaze odredjenu poruku. Kada testiram program u simulatoru, sve savrseno radi, ali kada se program izvrsava na fizickom hardveru, dolazi do problema, ne ukljucuju se svi segmenti, samim tim poruka se ne prikazuje kako treba. Procesor je 80C32. DIP Switch su povezani na ulaz 74HC573, 74HC573 je povezan na P1 port procesora, takodje na P1 port procesora preko ULN2803 povezani su i displeji. Kombinacijom DipSWitch - eva prikazuje se odredjena poruka. Da li moze neko da mi pomogne oko datog problema, posto mi je potrebna pomoc? Hvala unapred svima na savetima i odgovorima.


prvo, mislim da je bilo bolje da si otvorio zasebnu temu za ovaj rpoblem
drugo, ja te nista nisam skontao sta si uradio?!
573 je transparent latch kakve veze imaju dip switchevi sa latch-em? namestis switch pa mcu upali OE procita dip pa ugasi OE da bi koristio P1 za display? kakav display koristis 7seg? koliko komada? 1 ili vise? moraces da pokazes semu posto iz teksta nije jasno sta si uradio...

a 99% je pitanje tajminga to sto radi u simulatoru a ne radi live
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Mikroprocesor 8051 arhitekture 16.08.2018. u 11:22 · pre 99 meseci #45
Otvoricu posebnu temu za dati problem, ali da posaljem odgovor i ovde. Displeji su sa zajednickom anodom. Ima ih 6, ali se samo 5 ukljucuju i na njima se ispisuje poruka.
Navedeni program gde se ispisuje poruka izgleda ovako:
Code:

 void timer0(void) interrupt 1
{ 
  TH0=0xFC;
  TL0=0x66;
  switch(disp)
  {
    case 1:
       C=1;
       BB=1;  // OE=0 kod 573
       A=1;
       if(e0==1 && q4==0 && q5==0 && q6==0)  // proveri koji je switch pristisnut
        pom=1;
    break;
    case 2:
       C=1;
       BB=0;
       A=1;
       if(pom==1)
          displayDigit('S');
       delay(5);
    break;
    case 3:
       C=1;
           BB=0;
       A=0;
       if(pom==1)
          displayDigit('T');
       delay(5);
    break;
    case 4:
       C=0;
       BB=1;
       A=1;    
           if(pom==1)
          displayDigit('A');
       delay(5);
    break;
    case 5:
       C=0;
       BB=1;
           A=0;
       if(pom==1)
          displayDigit('R');
       delay(5);
    break;
        case 6:
       C=0;
       BB=0;
       A=1;
       if(pom==1)
          displayDigit('T');
      delay(5);
    break;
    }
    disp++;
    if(disp>6)
      disp=1;
}

// funkcija koja ukljucuje masku
void displayDigit(unsigned char cifra)
{
   switch(cifra)
   {
      case 'S': P1=0x6D; break;
      case 'T': P1=0x78; break;
      case 'A': P1=0x77; break;
      case 'R': P1=0x50; break;
   }
}

void delayTimer()
{
  TMOD&=0xF0;
  TMOD|=0x01;
  TH0=0xFC;
  TL0=0x66;
  TR0=1;
}


U prilogu dostavljam i semu
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme