|
[ BigBadM @ 12.06.2008. 10:56 ] @
|
Imam problem sa resavanjem doticnog zadatka. Iskreno stvarno ne znam kako da odradim zadatak a potrebno mi je da ga resim kako bih mogao da polozim ispit.Predavanja su bila veoma losa i vrlo malo sam mogao da naucim pa nemam alternaivu.Covek mora da se snadje...
Realizovati oscilator različitih, unapred definisanih, učestanosti. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTA.0 Izlaz oscilatora
PORTA,1 Invertovani izlaz oscilatora
PORTB.0 60 impulsa/min
PORTB.1 120 impulsa/min
PORTB.1 240 impulsa/min
Samo bih zamolio nekog ko zna da programira u assembleru MPlab softver da mi da neku ideju ili tip kako da odradim zadatak.
plzzzzzzz
|
[ pera89 @ 13.06.2008. 01:20 ] @
Code:
LIST P=16F84, F=INHX8M
include "P16F84.inc"
count1 equ 0x0c
count2 equ 0x0d
bsf STATUS,Rp0
clrf trisa ; RA0..RA5 izlazi
movlw b'111' ; RB0..RB2 ulazi
movwf TRISB
bcf STATUS,Rp0
goto main
delay ;rutina za pauzu od oko 250mS
movlw d'243'
movwf count2
pom ;pomocna labela u rutini za pauzu
nop
decfsz count1,f
goto pom
decfsz count2,f
goto pom
return
main
btfsc portb,0
call freq1
btfsc portb,1
call freq2
btfsc portb,2
call freq3
goto main
freq1
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay ;pauza od 4x250mS
call delay
call delay
call delay
return
freq2
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay ;pauza od 2x250mS
call delay
return
freq3
movlw b'01'
movwf porta
movlw b'10'
movwf porta
call delay ;pauza od 250mS
return
end
Moze i krace ali je ovako preglednije. Pisao sam na brzinu, mozda se provukla neka greska negde. Znaci dok je aktivan portb,0 generise se frekvencija od 60 impulsa u minutu tj 1Hz, portb,1-2Hz, portb,2-4Hz. Ako asembliras fajl iskljuci case sensitive, zato sto sam porta,portb i mozda jos nesto kucao malim slovima.
[ mikosa @ 13.06.2008. 10:47 ] @
je l' moze neko da mi pogomogne da uradim program za microcontroler PIC16F84 na asembleru?
Zadatak:
Napraviti demonstraciju JK flip-flopa,
PORTA,0 J ulaz
PORTA.1 K ulaz
PORTB.8 Izlaz
Unapred hvala.
[ TRAJKO41 @ 13.06.2008. 10:51 ] @
Molim Vas treba sto pre da uradim jedan zadatak u asembleru koji se realizuje pomocu mikrokontrolera PIC16F84 a nisam bas nesto radio do sada u asembleru. Molim vas ako neko zna neka pomaze. Sto pre. Hvala unapred.
Zadatak glasi:
Pritiskom na tastere pomerati upaljenu Led diodu na izlazu. U zavisnosti od toga koji se taster pritisne pali se prva leva ili prva desna Led dioda do diode koja je upaljena. Dioda koja je bila upaljena gasi se. Pomeranje prve Led diode (PORTB,0) udesno pali poslednju Led diodu (PORTB,7). Pomeranje poslednje Led diode (PORTB,7) udesno pali prvu Led diodu (PORTB,0).. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTB Prikaz
PORTA.0 Pomeranje ulevo
PORTA.1 Pomeranje udesno
Ako neko moze da pomogne neka me kontaktira na mail [email protected]
ili neka napise ovde
[ BigBadM @ 13.06.2008. 11:31 ] @
E hvala ti brate do neeeeeeeebaaaaaaaaaaaa
nema veze ako ima neka greska ispravicu ako nesto ne valja .......
[ pera89 @ 13.06.2008. 16:13 ] @
Mora da vam je taj profesor mnogo dobar kad vam trebaju resenja za ovakve zadatke :-D :-D :-D. Ovaj zadatak sa oscilatorom ispada najtezi.
@BigBadM:
Nema na cemu. P.S. zaboravio sam da ti napisem da ova rutina za pauzu od 250mS je za frekvenciju oscilatora od 4MHz, posto se on najcesce koristi za ovaj pic.
[ stefic_kg @ 13.06.2008. 17:04 ] @
Ma nije profesor. Profesorka je. :)
Imam jedan resen primer, ali mene interesuje "malo" drugaciji.
Ovako glasi tekst resenog zadatka:
Prikazati redom brojeve od 0 do 9 na sedmosegmentnom displeju. Svaka cifra se prikazuje 1 sekundu.
Prikaz može da bude u rastućem ili opadajućem redosledu.
Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
Napomena: Mozdace nekome trebati ovaj zadatak....
resenje zadatka je:
Code:
#include p16f84.inc ; inicijalizaija procesora koji ce se koristiti
processor 16f84
org 5 ; program pocinje od pozicije 5 u memoriji
; inicijalizacija
clrf PORTA ;
clrf PORTB ;
bsf STATUS,RP0 ; prebaciti se u banku 1 memorije
movlw 0x1f ; definisanje da je port A ulazni
movwf TRISA ; nazivi registara pisu se velikim slovom
movlw B'00000000' ; definisanje da je portb izlazni
movwf TRISB ; vratiti se iz banke 1 memorije
bcf STATUS,RP0
reset equ 0x20 ; deklaracija promenljive
rastuci equ 0x21 ; deklaracija promenljive
brojac equ 0x22 ; deklaracija promenljive
stop equ 0x23 ; deklaracija promenljive
inc equ 0x24 ; deklaracija promenljive
brojac2 equ 0x25 ; deklaracija promenljive
movlw B'00000000' ; pocetno je reset jednak nuli
movwf reset ;
movlw B'00000001' ; pocetno je niz rastuci
movwf rastuci ;
nula
movlw B'10111111' ; stampanje nule na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto nula
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto jedan
goto devet
jedan
movlw B'10000110' ; stampanje jedinice na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto jedan
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto dva
goto nula
dva
movlw B'11011011' ; stampanje dvojke na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto dva
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto tri
goto jedan
tri
movlw B'11001111' ; stampanje trojke na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto tri
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto cetiri
goto dva
cetiri
movlw B'11100110' ; stampanje cetvorke na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto cetiri
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto pet
goto tri
pet
movlw B'11101101' ; stampanje petice na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto pet
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto sest
goto cetiri
sest
movlw B'11111101' ; stampanje sestice na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto sest
btfsc rastuci,0 ; da li je trazen rastuci prikaz
goto sedam
goto pet
sedam
movlw B'10000111' ; stampanje sedmice na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto sedam
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto osam
goto sest
osam
movlw B'11111111' ; stampanje osmice na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nula
btfsc stop,1
goto osam
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto devet
goto sedam
devet
movlw B'11101111' ; stampanje devetke na displeju
movwf PORTB
bcf reset,0 ; brisanje reset tastera
call pauza
btfsc reset,0 ; provera da li je pritisnut taster za reset sabiraka
goto nula ; reset znaci idi na nulu
btfsc stop,1
goto devet
btfsc rastuci,0 ; da li je trazen rastuci prikaz?
goto nula
goto osam
pauza
movlw 0x02 ; kasnjenje
movwf brojac
petlja
btfsc PORTA,4 ; provera da li je pritisnut taster za reset
bsf reset,0
btfsc PORTA,1 ; provera da li je pritisnut taster za rastuci niz
bsf rastuci,0
btfsc PORTA,2 ; provera da li je pritisnut taster za opadajuci
bcf rastuci,0
btfsc PORTA,3 ; provera da li je pritisnut taster za stop/start prikaza
call zastop ; pozivanje potprograma za start ili stop prikaza
btfss PORTA,3 ; provera da li je pritisnut taster za stop/start prikaza
bcf inc,1
pauza2
movlw 0x02 ; kasnjenje
movwf brojac2
petlja2
decfsz brojac2,1
goto petlja2
decfsz brojac,1
goto petlja
return
zastop
btfsc inc,1
return
bsf inc,1
btfsc stop,1
goto jeste
btfss stop,1
goto nije
povratak
return
jeste
bcf stop,1
goto povratak
nije
bsf stop,1
goto povratak
; konfiguraciona rec
__config B'11111111110001' ; nema zastite koda, powerup dozvoljeno,
; wd iskljucen, xt oscilator
end ; kraj programa
E sad, meni treba ovaj zadatak:
Realizovati svetlosni efekat tako da se led diode PORTAB, PORTA,0 i PORTA,1, PORTA,2 se pale po jedna sa leve i desne strane počev od PORTB,5 (koja se pali sama) redom svake sekunde. Kada se sve upale prvo se gase poslednje upaljene led diode Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
Svaki komentar je dobrodosao.
[ BigBadM @ 13.06.2008. 18:22 ] @
jbg brate situacija je taka i taka .....
[ Slavenko @ 13.06.2008. 18:25 ] @
MIKOSA , evo i tebi resenje nadam se da si zadovoljan. Samo da naglasim da ti imaš za cilj da RB8 pin predstaviš kao izlaz Q, JK flip-flopa a ja sam ti uradio da se svi izlazi porta B menjaju kada je J=1 i K=1 preko operacije komplementiranja to je ono gde je napisao "comf PORTB,f" što odgovara uslovima zadatka jer nemaš ni jedan drugi rezervisani izlaz PORTB. U ostalim slučajevima se ili setuje ili resetuje samo RB8.
Ako ima nekih problema javi !
Za Stefic_KG : Taj kod što si ti napisao od tvoje profesorke može da se smanji za čitavih, barem jedno 70-80 % !
Za BigBadM :
napisao si :
PORTA.0 Izlaz oscilatora
PORTA,1 Invertovani izlaz oscilatora
PORTB.0 60 impulsa/min
PORTB.1 120 impulsa/min
PORTB.1 240 impulsa/min -pretpostavljam da ovde treba PORTB.2
Mislim da rešenje koje je ponuđeno neće raditi kako treba ali nemam živce da proverim samo sam pogledao na brzaka , možda mi se samo čini ???. Ja sada tebe pitam ako se vratiš da pročitaš ovo: Šta treba da bude na PORTA.0 i PORTA,1 , odnosno o kom oscilatoru tačnije o kojoj frekvenciji se radi konkretno za ovaj deo, jer barem meni nije jasno šta treba da bude na PORTA.0 i PORTA.1 , izlaz kog oscilatora ? Ako sam te dobro shvatio cilj zadatka je da na ostalim izlazima PORTB.0,1,2 dobiješ ove frekvenicje odnosno impulse/min kako si napisao.
Code:
;******** Za Mikosa ********
list p=16F84
#include <p16F84.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;___________________________________________________________
;
; SIMULACIJA RADA JK FLIP FLOPA
;
; RA0=J, RA1=K, RA8=Q
;___________________________________________________________
bsf STATUS,RP0
movlw b'00000011' ; RA0 i RA1 - ulazi, ostalo izlazi
movwf TRISA
clrf TRISB ; PORTB definisan kompletno kao izlazni
bcf STATUS,RP0
Pocetak
btfsc PORTA,0 ; Da li je na RA0=0 ?
goto Nije ; RA0=1
goto Jeste_jbte ; RA0=0
Nije
btfsc PORTA,1 ; RA0=1 a da li je RA1=0 ?
goto Jok_nije ; RA1=1
bsf PORTB,8 ; RA0=1 i RA1=0, Q izlaz JK flip-flopa se setuje !
goto Pocetak
Jok_nije ; RA0=1 i RA=1, sto znaci da se stanje Q JK ff menja tj.
comf PORTB,f ; invertuje prethodno zateceno stanje na svim izlazima PORTB
; i naravno na trazenom RB8 koji ti je zadat u zadatku !
goto Pocetak
Jeste_jbte
btfsc PORTA,1 ; RA0=0 a da li je RA1=0 ?
bsf PORTB,8 ; RA0=0 i RA1=1 , stanje Q JK FF se resetuje !
goto Pocetak ; RA0=0 i RA1=0 stanje se ne menja i ide na pocetak programa
end ; Kraj programa !
Tablica stanja JK flip-flopa po kojoj je program urađen je :
J | K | Q
0 | 0 | stanje izlaza se ne menja u ovoj kombinaciju ulaza
0 | 1 | stanje Q izlaza JK f.f. se resetuje ili prevedeno postaje log. "0"
1 | 0 | stanje Q izlaza JK f.f. se setuje ili prevedeno postavlja na log. "1"
1 | 1 | stanje Q izlaza se menja tj. ako je bila log. "0" biće log. "1" i obrnuto
Pozzz !
Sada sam primijetio da je program mogao da se napiše sa još jednom linijom manje ali biće tvoja profesorka zadovoljena i sa ovim rešenjem !
[Ovu poruku je menjao Slavenko dana 14.06.2008. u 22:46 GMT+1]
[ mikosa @ 16.06.2008. 16:00 ] @
Hvala Slavenko. Nadam se da ce mi koristiti.
[ Slavenko @ 16.06.2008. 16:14 ] @
Nema na čemu, bilo mi je zadovoljstvo da se prisetim JK F.F.-pa  .
[ TRAJKO41 @ 16.06.2008. 17:42 ] @
Molim Vas treba sto pre da uradim jedan zadatak u asembleru koji se realizuje pomocu mikrokontrolera PIC16F84 a nisam bas nesto radio do sada u asembleru. Molim vas ako neko zna neka pomaze. Sto pre. Hvala unapred.
Zadatak glasi:
Pritiskom na tastere pomerati upaljenu Led diodu na izlazu. U zavisnosti od toga koji se taster pritisne pali se prva leva ili prva desna Led dioda do diode koja je upaljena. Dioda koja je bila upaljena gasi se. Pomeranje prve Led diode (PORTB,0) udesno pali poslednju Led diodu (PORTB,7). Pomeranje poslednje Led diode (PORTB,7) udesno pali prvu Led diodu (PORTB,0).. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTB Prikaz
PORTA.0 Pomeranje ulevo
PORTA.1 Pomeranje udesno
ajde ljudi svima ste uradili samo meni niko nece da pomogne. molim vas treba mi hitno
[ Slavenko @ 16.06.2008. 21:06 ] @
[ mikosa @ 18.06.2008. 11:52 ] @
Code:
;******** Za Mikosa ********
list p=16F84
#include <p16F84.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;___________________________________________________________
;
; SIMULACIJA RADA JK FLIP FLOPA
;
; RA0=J, RA1=K, RA8=Q
;___________________________________________________________
bsf STATUS,RP0
movlw b'00000011' ; RA0 i RA1 - ulazi, ostalo izlazi
movwf TRISA
clrf TRISB ; PORTB definisan kompletno kao izlazni
bcf STATUS,RP0
Pocetak
btfsc PORTA,0 ; Da li je na RA0=0 ?
goto Nije ; RA0=1
goto Jeste_jbte ; RA0=0
Nije
btfsc PORTA,1 ; RA0=1 a da li je RA1=0 ?
goto Jok_nije ; RA1=1
bsf PORTB,8 ; RA0=1 i RA1=0, Q izlaz JK flip-flopa se setuje !
goto Pocetak
Jok_nije ; RA0=1 i RA=1, sto znaci da se stanje Q JK ff menja tj.
comf PORTB,f ; invertuje prethodno zateceno stanje na svim izlazima PORTB
; i naravno na trazenom RB8 koji ti je zadat u zadatku !
goto Pocetak
Jeste_jbte
btfsc PORTA,1 ; RA0=0 a da li je RA1=0 ?
bsf PORTB,8 ; RA0=0 i RA1=1 , stanje Q JK FF se resetuje !
goto Pocetak ; RA0=0 i RA1=0 stanje se ne menja i ide na pocetak programa
end ; Kraj programa !
ovaj zadatak ne funkcionise kako bi trebalo. treba da se definise neka gornja ivica, ja ne znam nista o tome.
ako neko zna neka napise kako treba to da se izmeni.pozdrav
[ Slavenko @ 18.06.2008. 15:10 ] @
Čoveče šta je problem niste mi jasni !
Koja gornja ivica, jel zna neko nešto bliže o tome da pojasni ? Šta je gornja ivica ?
Veselinoviću , Stojane da li vi znate šta je to ?
[ Seme @ 18.06.2008. 16:54 ] @
Ti si Slavenko totalno poludeo. :) Dokle mislis da im resavas ove zadatke. Pa valjda vidis da ni jedan od njih nece da pipne knjigu pa protumaci zadatak i ako se provuce neka greska ispravi je sam. Mislim da su svi zadaci koje su postavili na forumu elementarni i da uz malo truda svako moze da ih resi. Gde ide ovo nase skolstvo? Pretvara se u resavsku skolu. Pusti ih neka malo misle, cilj ovog foruma nije "imam problem resite mi ga", vec "imam problem navedite me na resenje". Pozdrav i kragujevcani sedite malo i zagrejite stolicu pa ce vam zadaci biti mnogo jasniji. Pozdrav i tebi slavneko i svaka cast na strpljenju.
[ Slavenko @ 18.06.2008. 18:30 ] @
U pravu si , to sam na više mesta i rekao neću više da rešavam njihove zadatke još samo jednom studentu kome sam obećao i to je sve od mene, međutim totalno sam zbunjen terminom "gornja ivica" ????
Da ironija bude veća zadaci rade u simulatoru a mplab simulator ne greši !
Očigledno svi studenti kojima sam uradio zadatak traže neku korekciju kako njihov asistent kaže zvanu "gornja ivica" !
Bojim se da će posle "gornje ivice" ako se neko javi da nam objasni taj termin, posle tražiti "donju maricu" pa ćemo doći u situaciju da pitamo šta je marica i tako ćemo napraviti bajku na elitesecurity !
Ajde još jednom da naglasim jer znam da ovaj sajt posećuju i oni koji znaju ali ne komentarišu :
DA LI NEKO ZNA ILI JE ČUO ZA TERMIN "GORNJA IVICA" A JOŠ BI LEPŠE BILO DA NAM OBJASNI ŠTA JE TO - AKO MOŽE ?
Ne dozvolite da živim u neznanju !
[ Stojan Trifunovic @ 18.06.2008. 18:42 ] @
Evo, znam ja šta je u pitanju. Trajko je samo odneo asistentu tvoj PRVI program za njega (onaj gde nije reseno prekoračenje rotacije), a onda se nije potrudio da uopšte vidi ispravke programa pre nego što te je napao.
[ Slavenko @ 18.06.2008. 20:52 ] @
To sam i ja posmislio ali šta je sa "gornjom ivicom" u zadatku sa JK flip-flopom ?
Pogledaj tablicu stanja u zadatku za JK flip-flop i pogledaj rešenje koje sam napisao. Ja ne vidim šta je tu problem !
Ajde poznavaoci mikrokotrolera i asemblera pogledajte taj zadatak pa mi recite gde je greška ako je ima, nemojte da komentarišemo samo nas trojica koji ne vidimo problem a pri tome se ne libite u drugim temama da kažete da su zadaci laki !
Ako su laki što neće da radi kod njih a kod mene hoće ? Šta je problem živo me interesuje a još više šta je to "gornja ivica" ?
Da li sam u pravu da je kod tačan ? Dajte komentare !
Očekujem vaše mišljenje !
PS: Mikoša , nisi valjda odneo profesoru ( asistentu ) doslovno prepisan zadatak, mislim na nazive labela "Jeste_jbte" i "Jok_nije" ?
[Ovu poruku je menjao Slavenko dana 19.06.2008. u 14:06 GMT+1]
[ mikosa @ 23.06.2008. 12:14 ] @
SLAVENKO, Izvinjavam se, mislio sam na "GORNJU i DONjU" ili leva-desna ivica (ne znam tacno koji izraz je asistent naveo) tj. ivica od koje pocinje da "radi".
P.S. Ispravio sam labele pre predaje asisstentu.
[ Sepa011 @ 23.06.2008. 16:51 ] @
Asistentu, profesoru ili onome ko je postavio zadatak treba reci: "Vrlo dobro, sedi JEDAN!"
Koliko je meni poznato u digitalnoj elektronici postoji UZLAZNA i OPADAJUCA ivica signala (Rising edge / Falling edge).
Toliko.
[ Slavenko @ 23.06.2008. 23:11 ] @
Sepa011 mislim da se ne radi ni o uzlaznoj odnosno silaznoj (opadajućnoj ) ivici jer bi ovaj zadatak o kome pričamo morao da radi bez definisanja na koju ivicu da reaguje ako si pogledao kod.
Ne znam da li je možda mislio na direktivu org 0x00, mada može i bez nje tako da sam ostao bez argumenata šta bi to moglo biti. Glupo je uopšte što su barem po njihovim reakcijama nedovoljno obradili samu materiju a od njih se traži da rešavaju zadatke. Ako nisu imali vremena na vežbama čemu onda uopšte sve što su radili. Vidiš da nisu pominjali interapte kao ni korišćenje tajmera ali su zato zapeli na "gornjoj ivici" koja nikome nije jasna u smislu šta bi to moglo da bude.
I dalje sam neobavešten, počinjem da ličim na Koštunicu !
Mikosa ja ti stvarno ne mogu više pomoći jer mi je "gornja ivica" i dalje nepoznat termin a kao što vidiš još se niko nije javio ko bi mogao da kaže šta je asistent tačno mislio kada je to rekao !
[Ovu poruku je menjao Slavenko dana 24.06.2008. u 10:47 GMT+1]
[ mikosa @ 24.06.2008. 19:50 ] @
Konacno sam UBOOOO sta je "leva-desna ivica", nasao sam da se to zove "prednja i zadnja ivica" tj. kada imam stanje 0 koje "prelazi" na 1 i stanje 1 kada "prelazi" na 0.
Slikovito:
________
___| |___
0 1 1 0
POZDRAV R.KEkeric
[ Slavenko @ 24.06.2008. 21:05 ] @
Mikosa tvoj zadatak je ako se sećam bio simulacija JK FF. Uopste nije potrebno definisanje prednje i zadnje ivice u njemu jer se program stalno vraća na početak i vrši stalna testiranja stanja na zadatim pinovima. Tvoje kolege pominju čitavo vreme "gornja ivica" a ne leva i desna !
Da li znaš šta je "gornja ivica" ?
[ Slavenko @ 25.06.2008. 22:40 ] @
Mikosa evo primetio sam jednu gresku koja se potkrala u tvom zadatku. Da ne bih kopirao čitav zadatak samo ću navesti njegov deo gde je greška i deo sa ispravljenim kodom :
Dakle sledeći deo koda ima grešku :
Code:
Jeste_jbte
btfsc PORTA,1 ; RA0=0 a da li je RA1=0 ?
bsf PORTB,8 ; RA0=0 i RA1=1 , stanje Q JK FF se resetuje !
goto Pocetak
Greška u prethodnom delu je u instrukciji bsf PORTB.8 ! Desno od nje u komentaru stoji da je u ovom slučaju RA=0 i RA=1 pa stanje Q, JK FF se resetuje a pomenutom instrukcijom se zapravo setuje što je jedina greška koju sam primetio. Dakle Umesto bsf PORTB.8 treba da stoji bcf PORTB.8 pa onda ispravljeni kod ima oblik :
Code:
Jeste_jbte
btfsc PORTA,1 ; RA0=0 a da li je RA1=0 ?
bcf PORTB,8 ; RA0=0 i RA1=1 , stanje Q JK FF se resetuje !
goto Pocetak
Znači, izmeni ovaj deo gde je greška i odnesi asistentu da proveri jer stanje izlaza Q u ovoj kominaciji ulaza mora da bude resetovano kao što je i napisano u komentaru ali se greška potkrala u naredbi.
Nadam se da je problem sada otklonjen i bez gornje ivice !
PS: Verovatno do sada niko nije analizirao ovaj zadatak na forumu zato što zahteva malo koncentracije zbog testiranja uslova pa je ova greška do sada bila neuočena !
[ nebojsajovanovic @ 20.06.2009. 21:55 ] @
Pozdrav svima , potrebna mi je pomoć oko zadatka , tekst zadatka glasi :
Odbrojavati pritiske na taster. Svaki pritisak na taster0 povećava na portu B prikaz binarnog broja za 5 a pritisak na taster1 smanjuje za 3. Broj na portuB se nalazi izmedju 0 i 200. Ako bi rezultat pritiskanja tastera bio van zadatog opsega operacija se ne izvsava a pali se led dioda na PORTA.3 sa frekvencijom od 1 Hz. Zadatak realizovati pomoću mikrokontrolera PIC16F84 na asembleru.
PORTB Prikaz binarnog broja
PORTA.0 Taster + 5
PORTA.1 Taster -3
PORTA.3 Signalizacija prekoracenja
PORTA.4 Reset prikaza (vraćanje na prikaz 0)
Unapred hvala , znam da je ovako nezahvalno da upadam i tražim ali ne mogu da stignem da uradim i ovo jer se spremam da dajem gomilu drugih predmeta.
[ foxhunter @ 23.06.2009. 08:17 ] @
Code: Jeste_jbte
btfsc PORTA,1 ; RA0=0 a da li je RA1=0 ?
bcf PORTB,8 ; RA0=0 i RA1=1 , stanje Q JK FF se resetuje ! <<<<??????????
goto Pocetak
PORTB je osmo bitni, PORTB,8 ne postoji, MSBit je 7 a ne 8 !
PORTB,7 je oket, PORTB,8 nece moci! Verovatno lapsus?
[ miki2102 @ 26.01.2012. 13:23 ] @
Da li moze neko da mi pomogne oko zadatka? PORTA,1=1 treba da promenim da bude PORTA,1=0. Kako da to uradim, kojom komandom? I ako neko ima, neka okaci spisak komandi koje se koriste u asembleru, i zasta koja sluzi.
[Ovu poruku je menjao miki2102 dana 26.01.2012. u 21:20 GMT+1]
[ veselinovic @ 26.01.2012. 18:39 ] @
Citat: miki2102: Da li moze neko da mi pomogne oko zadatka?
Moze, naravno, ali samo jedna osoba. A to si Ti.
Citas li ti uopste prethodne poruke?
Nema kompletnog rjesabvanja zadataka i slus.
Ukoliko se jos ijedan "student" pojavi na ovom forumu obecavam da cu kontaktirati vaseg asistenta sa prijedlogom da izbaci seminarske i ubaci rjesavanje zadataka na casu.
[ Odin D. @ 26.01.2012. 19:43 ] @
^^ A ukoliko se jos jednom pojavi zadatak za 16F84 ja obecavam da cu kontaktirati asistenta i nazvati ga magarcem sa predlogom da se sam izbaci iz akademskog zivota.
[ calle90buk @ 01.02.2014. 17:23 ] @
Moze li pomoc oko zadatka, cenim da je lagan ali sam pocetnik pa samim tim nema sanse da ga uradim. Hvala unapred
Zadatak:
Pritiskom na taster RA0 i RA1 vrsi se inkrementiranje i dekrementiranje 3-bitnog binarnog broja.
Pritiskom na RA2 racuna se kvadrat ovog broja i rezultat se ispisuje na RB izlaz. Inicijalna vrednost binarnog broja jednaa je nuli.
[ bogdan.kecman @ 01.02.2014. 17:25 ] @
> Moze li pomoc oko zadatk
moze, sta si uradio do sada, gde je zapelo?
[ calle90buk @ 01.02.2014. 17:32 ] @
Zapelo je na samom pocetku, prof je drzao predavanja 15 min objasnjavajuci taj MPLAB i dao je zadatak da se uradi za seminarski. Ne znam ni po kom redosledu to treba da se radi da bi zadatak bio kompletan i da bi kod radio.
[ bogdan.kecman @ 01.02.2014. 17:47 ] @
[ calle90buk @ 02.02.2014. 20:37 ] @
Probacu, hvala u svakom slucaju.
[ mikikg @ 05.02.2014. 08:30 ] @
[ calle90buk @ 05.02.2014. 16:35 ] @
Hvala, ovo mi je dosta pomoglo, odradio sam zadatak i poslao ga asistentu da ga pregleda i ukaze na greske za koje mislim da ih ima.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|