[ dejanmaksimovic1976 @ 17.01.2009. 20:12 ] @
Pokusavam da napisem program za jedan prost brojac koji ce da broji od 0 do 9 kada se pritisne taster.
Program sam pisao u MicroCode studiu i ide ovako:


[ nicolabre @ 18.01.2009. 03:36 ] @
Jel si ti pisao ovaj program i jel je ovo tvoj sklop za uvecavanje vrednosti
[ dejanmaksimovic1976 @ 18.01.2009. 06:54 ] @
Moj sklop.
Ja sam eksperimentisao i sa sklopom i sa kodom. To sto ja hocu da napravim moze i sa dva kola 74LS47 i 74LS90, ali ja hocu sa PIC 16F84A.



[Ovu poruku je menjao dejanmaksimovic1976 dana 18.01.2009. u 08:16 GMT+1]
[ rsinisa @ 18.01.2009. 09:05 ] @
Kao prvo, par saveta za crtanje šema za simulaciju.
Kada radiš digitalni sklop, trudiš se da postaviš što je moguće više digitalnih komponenti kako bi simulacija radila što brže, tj. kako ne bi morala da radi obradu analognih podataka, što može znatno da uspori simulaciju sa više komponenti. Konkretno, u tvojoj šemi onaj otpornik od 10K koji služi kao pull-up zameniš otpornikom koji se tako i zove u biblioteci - "pullup". Otpornike od 470 oma za displej izbaciš jer neće LED displeju ništa da se dogodi, a tranzistor (koji je ionako pogrešnog tipa na tvojoj šemi) zameniš invertorom kada radi kao prekidač i takodje izbaciš bazni otpornik. Reset kolo ti takodje nije potrebno, i ako treba da povežeš neku tačku na napon koji je isti kao napon napajanja, upotrebiš POWER iz terminala. Evo ti 2 verzije šeme, jedna sa tranzistorom, druga sa invertorom; ova druga je jedva primetno brža (jer smo izbacili silne otpornike i sa prve), ali kada bude bilo više tranzistora, razlika će da bude očigledna.

Što se tiče programa, nema potrebe da koristiš naredbu input tas1 kad si već postavio TRISA registar. Ima tu još par stvari, ali nemam trenutno više vremena. Evo ti program koji radi to što tražiš, ali to je samo školski primer, treba tu još par stvari rešiti da bi se koristio u realnom radu.


Code:

brojac var byte
taster var porta.0

trisb=%00000000
portb=0
brojac=0

vrti:
if taster=0 then
  brojac=brojac+1
  if brojac = 10 then
    brojac=0
  endif
  portb=brojac
  pause 300
endif
goto vrti

end


Pozdrav.
Sinisha

[ dejanmaksimovic1976 @ 18.01.2009. 09:33 ] @
Hvala RSINISA.
To je ono oko ceka sam lupao glavu.