Normaal programmering vraag

S

stevenlkz

Guest
Ik heb twee vragen over de programmering van de PIC16F877.
1.Normaal gesproken, als we 8 keer met 8-bits data draaien, krijgen we weer dezelfde gegevens juist?Maar als ik een keer draaien, bel dan een subroutine of goto andere plaats, de carry vlag al veranderen.Dan terug naar hier en draaien weer.Deze lus gaat op voor 8 keer, is het uiteindelijk nog terug kunt krijgen dezelfde gegevens?
2.Als ik 8 bit gegevens met een andere 8 bit gegevens toe te voegen en het resultaat is, is overbelasting tot 9 of 10 bit, dan hoe een resultaat zal slaan?

 
Volgens de datasheet:
"RLF Linksom draaien f door Carry
Syntax: [label] RLF f, d
Operanden: 0 ≤ f ≤ 127
d ∈ [0,1]

Beschrijving: De inhoud van register F worden geroteerd
een beetje naar links door de Carry
Flag.Als d is 0, is het resultaat gebracht
de W register.Als d is 1, het resultaat is "

Dus:
1) Na 8 rotaties je niet krijgt dezelfde gegevens (omdat rotaties zijn via Carry)
2) Als u toevoegt, 8 bit gegevens met een andere 8 bit data, zal je nooit groter dan 9 bits, en in dat geval, krijgt u een vlag dragen set

 
Ik heb een andere vraag 6 met MPLAB assembler programmering.
1.Is de PIC kan gebruiken om de waarde of het een positieve of negatieve waarde controleren?
2.Is de IF / ELSE statement beschikbaar in MPLAB?
3.Hoe te vergelijken en ontvang het kleinste getal tussen drie nummer?
4.Nadat ik gebruik van het vaste punt afsplitsing van de aanvrage nota, AN617 in de microchip, maar de output is in floating point, dan te lezen hoe het resultaat?
5.Indien het maximum aantal floating point is 0.125 in decimale getal, dan hoeveel bits moet ik gebruiken voor wiskunde operatie?
6.In de application note, AN575 in de microchip, zei dat floating point 0X823C5198, maar hoe het te lezen?Wat decimale waarde is het?

 
Ik wil erop wijzen iets ..MPLAB is niet een copiler zelf ..dwz je schrijft met de beschikbare programmering languge op het ..nu ..uw quitions
1.Is de PIC kan gebruiken om de waarde of het een positieve of negatieve waarde controleren?
ans.ja je gemakkelijk kunt doen ..in assemly taal kunt u doen door het controleren van de carry vlag ..en als deze is ingesteld (dwz gelijk aan een) betekent dit dat aantal is positief ...en vice versa ..eenvoud ..We noemen het Carry = lenen bar
Ik hoop dat het nu duidelijk ..

2.Is de IF / ELSE statement beschikbaar in MPLAB?
ans.beschikbaar is op basis van de programmeertaal die u gebruikt om uw code te schrijven ..
in C bijvoorbeeld: het als ...elseif statement abailable .. en het neemt de vorm:

indien <conditon>
(
/ / Set van uitspraken
) elseif <een andere aandoening>
(
/ / Een andere set van uitspraken
) else
/ / Default besluit

Assembly taal kan hetzelfde worden verkregen met behulp opeenvolgende BTFSS of BTFSC verschillende vlaggen tijdens de werking te testen ..

Ik hoop dat dit suffiecient ..PM me als je meer hulp nodig ..3.Hoe te vergelijken en ontvang het kleinste getal tussen drie nummer?
ans.dit is ook erg makkelijk ..u aannemen dat de eerste is de kleinere en bewaar deze op bepaalde locatie of in een GPR (Algemene Purpuse Register) dan vergelijken met andere aantal (drie of meer) en elke keer dat u de sutable decesion om min of niet vervangen.

Voor uw overige 3 Quistions ..sorry ..Ik heb niet veel voor met zwevend nummer in microcontroller ...so sorry ..
Ik hoop dat ik je geholpen ..Succes

 

Welcome to EDABoard.com

Sponsor

Back
Top