RPM-mittari, jossa AT89C51

N

Noman Yousaf

Guest
Haluan tehdä RPM mittari assambly lang.Tein sen seuraavasti
1: i tehty 1 sek ajastimen kanssa T1, joka ei "2" vaihe jälkeen joka toinen.Ja i-kirjain käytetty T2 kuin tapauksessa laskuri, joka on tulo (P3.4) ja mittari.se laskee pulssia alkaen anturi.
2: tämä rutiini säästää arvo TL0 vuonna ram sitten mulitplies sen 60 (3CH), jotta se RPM: t alkaen RPS jotka lasketaan sekunnissa.sitten tallentaa sen muiden ram osoitteet sitten näytöt.tämän jälkeen se siirtyy 0 TL0 tehdä valmiita seuraavassa käsittelyssä.
Ongelma tässä on muuntaa heksa desimaali desimaalimuodossa, koska kaikki on tehtävä hex mutta tarvitsemme sen näytettäväksi desimaalimuodossa.
voi laitosta kerro ratkaisu?
Thanks in adv.

 
Mitä tarvitsemme, on HEX on BCD muuntaminen rutiinia.
Tässä on yksi www.8052.com
Code:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Kopioi oikeus Ilmoitus ;;;;; ;;;;;;;;;;;

; Tämä ohjelma on tarkoitettu henkilökohtaiseen käyttöön only.You voi muuttua / muuttaa sitä koskevat ur vaatimukset.

; Tämä ohjelma on testattu ja verfied, mutta kyseessä on queries, voit

; sähköpostitse (mail_to_salman (at) yahoo.com) minua.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;; Tämä toiminto on tarkoitettu 16-bittinen Hex on BCD muuntaminen ;;;;;;;;;;;;;;;;; ;;;;;;;;;

;;;;;;;;;;;;;;;;;; Hyväksyy 16 bit binary numero R1, R2 ja palaa 5 numeroinen BCD vuonna R7, R6, R5, R4, R3 (

enintään 64K)Hex2BCD:

MOV R1, # 0fFH; MSByte

MOV R2, # 0FFH; LSByteMOV R3, # 00D

MOV R4, # 00D

MOV R5, # 00D

MOV R6, # 00D

MOV R7, # 00DMOV B, # 10D

MOV A, R2

DIV AB

MOV R3, B;

MOV B, # 10; R7, R6, R5, R4, R3

DIV AB

MOV R4, B

MOV R5, A

CJNE R1, # 0H, HIGH_BYTE; Tarkista KORKEAT BYTE

SJMP ENDDHIGH_BYTE:

MOV A, # 6

ADD A, R3

MOV B, # 10

DIV AB

MOV R3, B

ADD A, # 5

ADD A, R4

MOV B, # 10

DIV AB

MOV R4, B

ADD A, # 2

ADD A, R5

MOV B, # 10

DIV AB

MOV R5, B

CJNE R6, # 00D, ADD_IT

SJMP JATKA

ADD_IT:

ADD A, R6

Jatka:

MOV R6, A

DJNZ R1, HIGH_BYTE

MOV B, # 10D

MOV A, R6

DIV AB

MOV R6, B

MOV R7, A

ENDD: RET

 
jos u muuttaa lang C
u löytää "sprintf" muuntaa int, char, float on desimaaliluku
stringYUV

 

Welcome to EDABoard.com

Sponsor

Back
Top