forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Školní projekt Světla na křižovatce, zapojení semaforu

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052
 
gibson
Anonymní





PříspěvekZaslal: 24 duben 2011, 14:17    Předmět: Školní projekt Světla na křižovatce, zapojení semaforu Citovat

Zdravím, nevím si rady s následující úlohou:
1. Navrhněte obvodové řešení umožňující připojit na port P1 LED s pracovním proudem 180 mA/3,5 V, které budou plnit funkci světel na křižovatce (diody se rozsvěcují úrovní log. 1 na vývodu portu) a na port P3 přepínač 8 x DIP, který bude sloužit k volbě režimu semaforu. Potřebné parametry použitých součástek volte dle katalogu.
2. Světla na křižovatce budou následující:
◦ červená hlavní
◦ oranžová hlavní
◦ zelená hlavní
◦ červená vedlejší
◦ oranžová vedlejší
◦ zelená vedlejší
◦ zelená chodci hlavní
◦ červená chodci hlavní
3. Sestavte program, který bude plnit následující provozní režimy semaforu:
1. pokud bude , potom bude blikat oranžová na hlavní a vedlejší s periodou 1 s, se střídou 1:1
2. pokud bude , potom bude svítit červená chodci. Po přepnutí P3.0 na log.1:
1. po 15 s rozsvítí oranžová na hlavní silnici a po dalších 3 s se rozsvítí červená na hlavní silnici
2. bude červená chodci svítit ještě 20 s a pak bude následovat zhasnutí červené chodci a rozsvícení zelené chodci na dobu 20 s.

Vím, že se jedná o komplikovanejší zadání, ale prostě z hlavy to nedokažu vymyslet. Má někdo nějaký návrh, nebo pokyn k řešení této úlohy? Předem moc děkuji za jakoukoliv pomoc.fe

Arrow administrator: přejmenováno z "LED k 8051 - jako semafor"
Návrat nahoru
 

 
Atlan
Profesionál
Profesionál


Založen: 4.2.2009
Příspěvky: 889

PříspěvekZaslal: 24 duben 2011, 15:27    Předmět: Citovat

NO ledku pripojiš na tranzistor typu NPN v zapojeni so spoločným emitorom. Z katalogu vyberieš vhodny typ Tranzistora do baze mu daš vhodny odpor (hodntu vypočitaš podla vzorca čo ste sa učili)
Vypočitaš predradny odpor ktory bude zapojeni do serie s ledkou a tranzistorom. aby tiekol menovity prud (nie maximalny urceny v katalogu od LED)

NO ked to budeš mať ozvy sa ....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
P.O
Anonymní





PříspěvekZaslal: 01 květen 2011, 1:17    Předmět: Citovat

Atlan, ve vší úctě, nemáš pocit, že to bylo dost mimo?
Návrat nahoru
 

 
DragonSoul
Profesionál
Profesionál


Založen: 4.3.2010
Příspěvky: 503
Bydliště: Praha

PříspěvekZaslal: 01 květen 2011, 9:00    Předmět: Citovat

Ja myslim ze to Atlan vystihl uplne presne. Pokud se musi ptat na takove veci, tak je potreba zacit od zacatku... Tudiz zapojenim LED a rozblikat ji. Prece neocekava, ze za nej napiseme domaci ulohu. Nehlede na to ze v zadani neco chybi, vzdy je tam pokud bude (zde chybi podminka) atd. Ja jsem se to nenaucil jinak, proste zkouset, zkouset, maximalne odpali soucastku.
_________________
Hodne se ucim (delam hodne chyb).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
P.O
Anonymní





PříspěvekZaslal: 01 květen 2011, 17:55    Předmět: Citovat

Samozřejmě, ať se snaží. V zadání toho chybí poměrně dost, ale i přesto si myslím, že v té Atlanově radě pár nepřesností je:

1. Není uveden druh MCU, nicméně jelikož je to v sekci 8051/8052, tak předpokládám, že to bude na nějaký MCU s tímto jádrem. Jelikož ale 8051 apod. spínají výstupy pouze v nule (jedničku díky vnitřnímu zapojení I/O pinu neumí), tak bych to viděl spíš na tranzistor PNP s LEDkou normálně v kolektoru.

2. Pokud počítám napájení 5V a úbytek napětí na tranzistoru třeba 1.4V a na LED těch zadaných 3.5V, kolik zbyde pro odpor k LED? I kdybych počítal třeba jen volt na tranzistor, tak se může i přesto stát (jelikož se úbytky napětí na výkonových LED pohybují v dost velkých rozptylech, dle výrobce a typu - nebude to v praxi přesně 3.5V, leda že by se vybíralo měřením), že se na těch 180mA nepodívá. Takže je přinejmenším třeba upřesnit, že bude nejspíš potřeba použít vyšší napájecí napětí pro LED + tranzistor + předřadný odpor (zřejmě před stabilizátorem), nebo třeba nějaký zdroj proudu pro LED.
Návrat nahoru
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1449

PříspěvekZaslal: 01 květen 2011, 22:24    Předmět: Citovat

P.O napsal:
... a úbytek napětí na tranzistoru třeba 1.4V...



Preco tak vela? Ak sa da do bazy dostatocny prud, nevidim dovod aby aj pri 0,5A bol ubytok medzi CE mensi ako 0,2V. Ak je tam 1,4V, znamena to, ze tranzistor je privrety, lebo sa mu nedostava dostatocny bazovy prud. Pri pouziti FETU (napr. IRF7341 N-FET, pri 4V UGS ma 0,06ohm * 0,18A = 0,0108V a v puzdre SO8 su hned dva, alebo IRF7342 2x P-FET) ho ani nemusi trapit prud do bazy a moze ho ovladat praimo z x51 (IRF7342) Vykonova strata na FETe je zanedbatelna, (0,18*0,18*0,06 = 2mW), takze to puzdro SO8 je viac ako primerane.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
P.O
Anonymní





PříspěvekZaslal: 02 květen 2011, 11:00    Předmět: Citovat

Jasný, proč ne, já bych byl taky klidně pro FET. Spíš jsem chtěl názorně přiblížit podstatu problému.
Návrat nahoru
 

 
gibson
Anonymní





PříspěvekZaslal: 05 květen 2011, 18:51    Předmět: Citovat

díky příšerné vytíženosti zašlu schéma zítra nebo max v sobotu, doufám, že budete stále otevřeni ku pomoci. A jedná se o 8051.
Návrat nahoru
 

 
gibson
Anonymní





PříspěvekZaslal: 09 květen 2011, 0:18    Předmět: Citovat

zdravím, tak co se tyce navrhu zapojeni, tak to si myslím, že mám správně.. alespoŇ funkčně je to ok. nevylučuji, že existuje snadnější způsob. Ale co se týče samotného programu, tam jsem bohužel bezradný. Byl by někdo ochoten mi nastínit jak na to alespoň nějakým podrobnějším rozborem například pomocí vývojového diagramu? Pokud ano, budu moc vdečný.

Co se týče těch podmínek "Pokud...", tak tam má být toto: 1.pokud bude P3.2 Λ P3.3 = 1, potom bude blikat oranžová na hlavní a vedlejší s periodou 1 s, se střídou 1:1
2. Pokud bude P3.2 Λ not P3.3= 1, potom bude červená chodci. Po přepnutí P3.0 na log.1: atd. atd. atd. viz nahoře
Návrat nahoru
 

 
gibson
Anonymní





PříspěvekZaslal: 11 květen 2011, 20:34    Předmět: Citovat

tak zdravím znovu. Program mám sice hotovy, ale hlásí několik chyb.. v programování v assembleru moc dobrý nejsem, tak doufám, že to budou jenom nějaké snadno odladitelné chybky. A teda ještě doufám, že mi někdo pomůže Very Happy
kód:

  include REG51.INC
  org 0; 
 
 ;HLAVNÍ PROGRAM - START - ******************************************************************************************* 
   
START:   JB      P3.2,      OR_HL_VEDL_BLIK                     ;      bude blikat oranžová na hlavní a vedlejší s periodou 1 s, se střídou 1:1
         SJMP            CER_CHODCI_SVITI                     ;      není-li splněna první podmínka, bude svíti červená chodci
   
         JB      P3.0,      PODM_2_CASTI                        ;      testování brány P3.0   na log. 1, pokud ano -> na navesti
         
 ;HLAVNÍ PROGRAM - KONEC - *******************************************************************************************
   
;**********************************
ZPOZ_1_SEKUNDA:   mov R3,#251      ;*
prd3:              mov R2,#234    ;*
prd2:               mov R1,#7      ;*
prd1:               djnz R1,prd1   ;*
                   djnz R2,prd2   ;*
                   djnz R3,prd3   ;*
                   Ret            ;*
;**********************************
ZPOZ_15_SEKUND:   mov R3,#254      ;*   
pes3:               mov R2,#115    ;*
pes2:               mov R1,#255    ;*
pes1:               djnz R1,pes1   ;*
                   djnz R2,pes2   ;*
                   djnz R3,pes3   ;*
                   Ret            ;*
;**********************************
ZPOZ_3_SEKUND:    mov R3,#254      ;*
krk3:               mov R2,#23     ;*
krk2:               mov R1,#255    ;*
krk1:               djnz R1,krk1   ;*
                   djnz R2,krk2   ;*
                   djnz R3,krk3   ;*
                   Ret            ;*
;**********************************
ZPOZ_20_SEKUND:   mov R3,#255      ;*
prc3:               mov R2,#153    ;*
prc2:               mov R1,#255    ;*
prc1:               djnz R1,prc1   ;*
                   djnz R2,prc2   ;*
                   djnz R3,prc3   ;*
                   Ret            ;*
;**********************************                      

 OR_HL_VEDL_BLIK:         MOV         P1.4,      #0               ;      zhasni ORANŽOVÁ VEDL
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
                        MOV         P1.4,      #1               ;      rozsvit ORANŽOVÁ VEDL
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
                        MOV         P1.1,      #0               ;      zhasni ORANŽOVÁ HLAVNÍ
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
                        MOV         P1.1,      #1               ;      rozsvit ORANŽOVÁ HLAVNÍ
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
                        SJMP         START
 ;****************************************************************************
 CER_CHODCI_SVITI         MOV         P1.7,      #1               ;      svítí červená chodci
                         SJMP         START
 ;****************************************************************************
 PODM_2_CASTI            LCALL         ZPOZ_15_SEKUND            ;      po 15 sekundách další instrukce
                        MOV         P1.1,      #1               ;      rozsvit ORANŽOVÁ HLAVNÍ
                         LCALL         ZPOZ_3_SEKUND            ;      po 3 sekundách další instrukce
                        MOV         P1.0,      #1               ;      rozsvit ČERVENÁ HLAVNÍ
                        MOV         P1.7,      #1               ;      na 20 rozsvit ČERVENÁ CHODCI
                         LCALL         ZPOZ_20_SEKUND            ;      20 s bude svítit ČERVENÁ CHODCI
                        MOV         P1.7,      #0               ;      ČERVENÁ CHODCI zhasnutá
                        MOV         P1.6,      #1               ;      rozsviceni ZELENA CHODCI 20 s
                         LCALL         ZPOZ_20_SEKUND            ;      20 s bude svítit ZELENAÁ CHODCI

   END
Návrat nahoru
 

 
Divous
Profesionál
Profesionál


Založen: 24.4.2009
Příspěvky: 225
Bydliště: Valašsko

PříspěvekZaslal: 12 květen 2011, 8:25    Předmět: Citovat

kód:

include MOD51
;$INCLUDE(MOD51)
  org 0    ;  Jelikož nepoužíváš žádná přerušení, tak je možno začínat od nuly
;ajmp START    ;jinak se doporučuje posunout počátek až za adresy přerušení
 
 ;HLAVNÍ PROGRAM - START - *******************************************************************************************
;org  2Bh   ;mám ten dojem, že toto je doporučovaná adresa pro 89C51
START:   JB      P3.2, OR_HL_VEDL_BLIK    ; bude blikat oranžová na hlavní a vedlejší s periodou 1 s, se střídou 1:1
         JMP            CER_CHODCI_SVITI      ; není-li splněna první podmínka, bude svíti červená chodci
   
         JB      P3.0, PODM_2_CASTI       ; testování brány P3.0   na log. 1, pokud ano -> na navesti
         
 ;HLAVNÍ PROGRAM - KONEC - *******************************************************************************************
   
;**********************************
ZPOZ_1_SEKUNDA:   mov R3,#251      ;*
prd3:              mov R2,#234    ;*
prd2:               mov R1,#7      ;*
prd1:               djnz R1,prd1   ;*
                   djnz R2,prd2   ;*
                   djnz R3,prd3   ;*
                   Ret            ;*
;**********************************
ZPOZ_15_SEKUND:   mov R3,#254      ;*   
pes3:               mov R2,#115    ;*
pes2:               mov R1,#255    ;*
pes1:               djnz R1,pes1   ;*
                   djnz R2,pes2   ;*
                   djnz R3,pes3   ;*
                   Ret            ;*
;**********************************
ZPOZ_3_SEKUND:    mov R3,#254      ;*
krk3:               mov R2,#23     ;*
krk2:               mov R1,#255    ;*
krk1:               djnz R1,krk1   ;*
                   djnz R2,krk2   ;*
                   djnz R3,krk3   ;*
                   Ret            ;*
;**********************************
ZPOZ_20_SEKUND:   mov R3,#255      ;*
prc3:               mov R2,#153    ;*
prc2:               mov R1,#255    ;*
prc1:               djnz R1,prc1   ;*
                   djnz R2,prc2   ;*
                   djnz R3,prc3   ;*
                   Ret            ;*
;**********************************                     

 OR_HL_VEDL_BLIK:       clr   P1.4   ;      zhasni ORANŽOVÁ VEDL
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
         setb   P1.4   ;      rozsvit ORANŽOVÁ VEDL
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
         clr   P1.1   ;      zhasni ORANŽOVÁ HLAVNÍ
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
         setb   P1.1   ;      rozsvit ORANŽOVÁ HLAVNÍ
                        LCALL         ZPOZ_1_SEKUNDA            ;      zpoždění 1 sekunda
                        SJMP         START
 ;****************************************************************************
 CER_CHODCI_SVITI:     setb   P1.7   ;      svítí červená chodci
                         SJMP         START
 ;****************************************************************************
 PODM_2_CASTI:            LCALL         ZPOZ_15_SEKUND            ;      po 15 sekundách další instrukce
         setb   P1.1   ;      rozsvit ORANŽOVÁ HLAVNÍ
                         LCALL         ZPOZ_3_SEKUND            ;      po 3 sekundách další instrukce
         setb   P1.0   ;      rozsvit ČERVENÁ HLAVNÍ
         setb   P1.7   ;      na 20 rozsvit ČERVENÁ CHODCI
                         LCALL         ZPOZ_20_SEKUND            ;      20 s bude svítit ČERVENÁ CHODCI
         clr   P1.7   ;      ČERVENÁ CHODCI zhasnutá
         setb   P1.6   ;      rozsviceni ZELENA CHODCI 20 s
                         LCALL         ZPOZ_20_SEKUND            ;      20 s bude svítit ZELENAÁ CHODCI

   END


51čkový assembler nezná SJMP. Změna stavu bitu se dělá pomocí clr nebo setb, nikoli mov.
U návěstí CER_CHODCI_SVITI a PODM_2_CASTI ti chyběly dvojtečky.

_________________
AVR Studio 4.18 + WinAVR, AVR Studio 6.2
Elnec T51prog, ASIX PRESTO, AVR MKII
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)