Sari la conținut
ELFORUM - Forumul electronistilor

un exemplu de prog


cosmin_ctin2005

Postări Recomandate

  • Răspunsuri 15
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • cosmin_ctin2005

    8

  • cirip

    3

  • sofian

    1

  • Liviu M

    1

Top autori în acest subiect

Aprinzi niste leduri in functie de valoare?Adica definesti un numar de pini ca iesiri, legi niste leduri la ele si comazi iesirile definite anterior cu valoarea pe care vrei s-o vezi. Pe leduri o sa vezi cod binar.

Link spre comentariu

esti neclar in ceea ce vrei, sau poate credeam eu ca stiu pre multe despre mcu si nu-i asa :smt003

MOVF var         ; (muta var in acumualtoru W si apoi faci ce vrei cu el)MOVWF PORTB ; il scoti la portu BMOVWF var2    ; il pui in alta variabilaCALL rutina_ta ; care rutina face ce vrei tu trimite W pe lcd, rs232 etc.
Link spre comentariu

dar daca vreau ca atunci cand ajunge la val. 5 sa se faca o iesire cum fac? asta este ce vreau eu.vreu sa comand diferite iesiri in functie de valoarea pe care o da INC-ul .se poate? multumesc mult

Link spre comentariu

Testarea egalitatii se face cu XOR.

EDIT: Reformulez. O modalitate posibila de a testa egalitatea este folosind XOR. Mai sunt si altele.

 

De ex, daca variabila incrementata se afla in var, testezi asa:

 

incf var, fmovlw 0x5 ;incarci w cu valoarea de comparatiexorwf var, w ;comparibz var_egal_5 ;Z e setat in caz de egalitate b  var_nu_e_5

mai simplu e sa folosesti

 

decfsz var

Citeste in foaia de catalog modul de operare al instructiunii decfsz

 

Spor!

Cirip

Link spre comentariu
  • 4 săptămâni mai târziu...

nu stiu unde gresesc?daca fac asa:movlw 5movwf valoare ; nu se transfera 5 in variabila ''valoare''?loopif valoare == 5goto onelsegoto offendifgoto loopnormal trebuie sa se faca subrutina on, nu? daca nu, cum trebuie sa fac sa se faca subrutina on cand '' valoare = 5''?

Link spre comentariu

In ce limbaj scrii? Ce mediu de programare folosesti? M-as mira ca ceea ce ai scris acolo sa compileze, dapai sa mai si ruleze.

 

Picul nu stie ce e aia "if valoare == 5". Ai inceput cu asamblare, apoi ai continuat cu "if"... Incearca asa, in asembler:

 

movlw 5movwf valoare    ; nu se transfera 5 in variabila ''valoare''?... Ba da.loopmovlw 5xorwf valoare, w ;rezultatul xorului il depui in w, ca sa nu busesti "valoare".                        ;In realitate folosesti numai flagul Zbz on                ;if valoare == 5                       ;goto ongoto off            ;altfel, executa off
Link spre comentariu
  • 2 luni mai târziu...

multumesc mult, a mers OK. :supz: inca o intrebare daca se poate.Cum se poate citi si inregistra un semnal analogic cu PIC16F84A dupa ce a fost convertit in semnal digital?

Link spre comentariu

Cum se poate citi si inregistra un semnal analogic cu PIC16F84A dupa ce a fost convertit in semnal digital?

Prea putine detalii. Probabil ca stii ca 16F84 nu are convertor A/D. "dupa ce a fost convertit"... de catre cine? Cu ce cipan? Ce format scoate la iesire? Serial, paralel, ce tip de interfata? "si inregistra"... unde? pe ce suport/memorie? Cat de repede?Mai bine zi direct ce vrei sa faci.Cirip
Link spre comentariu
  • 3 luni mai târziu...

In limbajul asamblare ce instructiune sa folosesc pentru a compara o variabila cu o constanta:movlw 0x06movwf ''test''daca ''valoare''<= ''test'' goto ondaca ''valoare'' > ''test'' goto offonbsf PORTB,7returnoffbsf PORTB,6return :smt032

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări