BCD/de

From MCS Wiki AVR
< BCD
Jump to: navigation, search

Contents

Funktion

Konvertiert eine BCD-kodierte Variable in einen String.

 

 

Syntax

PRINT BCD( var )

LCD BCD( var)

 

 

Remarks

Var

Die zu konvertierende numerische Variable.

 

Wenn Sie eine I²C-Uhr verwenden die die Daten im BCD-kodiertem Format bereitstellt, kann diese Funktion verwendet werden um die Daten korrekt anzuzeigen.

BCD() zeigt die Werte mit einer führenden 0 an.

 

Die BCD()-Funktion ist für Print- oder LCD-Anweisungen gedacht.

Die Funktion MAKEBCD konvertiert Variablen vom Dezimal- in das BCD-Format.

Die Funktion MAKEDEC konvertiert Variablen vom BCD- in das Dezimal-Format.


 

 

Siehe auch

MAKEDEC , MAKEBCD

 

 

ASM

Calls: _BcdStr

Input: X hält sie Adresse der Variablen

Output: R0 Die Anzahl der Bytes der Daten im Frame.

 

 

Beispiel


'--------------------------------------------------------------------------------
'name : bcd.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demonstration of split and combine BCD Bytes
'suited for demo : yes
'commercial addon needed : no
'use in simulator : possible
'--------------------------------------------------------------------------------
$regfile = "m48def.dat" ' specify the used micro
$crystal = 4000000 ' used crystal frequency
$baud = 19200 ' use baud rate
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
 
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
'===============================================================================
' Set up Variables
'===============================================================================
Dim A As Byte 'Setup A Variable
Dim B As Byte 'Setup B Variable
Dim C As Byte 'Setup C Variable
 
A = &H89 
'===============================================================================
' Main
'===============================================================================
Main:
Print "Combined : " ; Hex(a) 'Print A
 
'-------------------------------------------------------------------------------
B = A And &B1111_0000 'Mask To Get Only High Nibble Of Byte
Shift B , Right , 4 'Shift High Nibble To Low Nibble Position , Store As B
 
C = A And &B0000_1111 'Mask To Get Only Low Nibble Of Byte , Store As C
 
Print "Split : " ; B ; " " ; C 'Print B (High Nibble) , C(low Nibble)
 
'-------------------------------------------------------------------------------
Shift B , Left , 4 'Shift Data From Low Nibble Into High Nibble Position
 
A = B + C 'Add B (High Nibble) And C(low Nibble) Together
 
Print "Re-Combined: " ; Hex(a); " " ; Bcd(a) 'Print A (re -combined Byte)
End 'End Program

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language