RPM metr s AT89C51

N

Noman Yousaf

Guest
Chci podat RPM metr v assambly lang.Udělal jsem to takto
1: i uskutečnil 1 sec stopky s T1, který znamená "2" krok po každé druhé.A T2 jsem použil jako událost, která je proti vstupu (P3.4) na metr.záleží na impulsy od senzoru.
2: to rutinní šetří hodnota TL0 v ram pak mulitplies s 60 (3CH), aby RPM z RPS, které se počítají za jednu sekundu.pak ukládá je do jiných ram adresy zobrazí.Po této akci se přesune 0 do TL0 učinit připraven pro další čtení.
problém tu je převést hexa desetinné v desetinné místo, protože všechny postup se provádí v hex, ale potřebujeme k zobrazení je v desítkové soustavě.
může každý subjekt, řekni mi, že řešení?
Thanks in adv.

 
Co potřebujete je HEX na BCD konverzní rutiny.
Zde je jeden z www.8052.com
Kód:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Kopír právo Oznámení ;;;;; ;;;;;;;;;;;

; Tento program je určen pro osobní použití only.You může změnit / upravit požadavky týkající se ur.

; Tento program byl testován a verfied, ale v případě jakýchkoliv dotazů, neváhejte

; e-mailem (mail_to_salman (at) yahoo.com) mě.

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

;;;;;;;;;;;;;;;;;;;;;;; Tato rutina je pro 16 bit Hex na BCD konverzní ;;;;;;;;;;;;;;;;; ;;;;;;;;;

;;;;;;;;;;;;;;;;;; Přijímá a 16 bitové binární číslo v R1, R2 a vrací 5 digit BCD v R7, R6, R5, R4, R3 (

až 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; CHECK PRO VYSOKOU 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 POKRAČOVAT

ADD_IT:

ADD A, R6

Pokračovat:

MOV R6, A

DJNZ R1, HIGH_BYTE

MOV B, # 10D

MOV A, R6

DIV AB

MOV R6, B

MOV R7, A

ENDD: RET

 
pokud u změn lang na C
u najít "sprintf" bude konvertovat int, char, float na desetinná
ŘetězecYUV

 

Welcome to EDABoard.com

Sponsor

Back
Top