- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 11

Thema: Ämfänger braucht hilfe "Byte nach BCD auf Portx"

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.09.2008
    Beiträge
    6
    habe mir dank eurer Hilfe mal was zum testen gebastelt um aus einer 2 Stelligen numeric nach 2 x BCD aufzulösen und auf dem LCD anzuzeigen.

    Mir hat es für das Verständnis weiter geholfen.

    Code:
    'Demonstration zur Wandlung von 2 Stelligen Zahlen nach BCD
    '----------------------------------------------------------
    $regfile = "m8def.dat"                                      'ATmega8-Deklarationen
    $crystal = 3686400                                          'Taktfrequenz: 3,6864 MHz
    $baud = 9600
    
    On Urxc Onrxd                                               'Interrupt-Routine setzen
     Enable Urxc                                                'Interrupt URXC einschalten
     Enable Interrupts                                          'Interrupts global zulassen
    
    
    Config Lcd = 20 * 4
     Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portd.4
     Config Lcdbus = 4
    
     Cls
    
    
    
     Dim A As Byte
     Dim B As Byte
     Dim C As Byte
     Dim D As Byte
     Dim E As Byte
     Dim F As Byte
     Dim G As Byte
     Dim H As Byte
     Dim I As Byte
     Dim L As Byte
    
     Dim Z As Byte
     Dim Y As Byte
     Dim U As Byte
     'Dim V As String * 4
    
    
    
     Z = 96
     '----------------------------------------------------------
    
     Main:
     Cls
    
     Y = Makebcd(z)
    
    
       L = Y And &B0000_1111                                    'Mask To Get Only Low Nibble Of Byte , Store As C
    
       H = Y And &B1111_0000                                    'Mask To Get Only High Nibble Of Byte
       Shift H , Right , 4                                      'Shift High Nibble To Low Nibble Position , Store As H
    
    
       A = L And &B0000_0001                                    'Low Byte zerlegen in BCD Code
       If A >= 1 Then A = 1                                     'abfrage
       B = L And &B0000_0010
       If B >= 1 Then B = 1
       C = L And &B0000_0100
       If C >= 1 Then C = 1
       D = L And &B0000_1000
       If D >= 1 Then D = 1
    
       E = H And &B0000_0001
       If E >= 1 Then E = 1
       F = H And &B0000_0010
       If F >= 1 Then F = 1
       G = H And &B0000_0100
       If G >= 1 Then G = 1
       I = H And &B0000_1000
       If I >= 1 Then I = 1
    
    
     Locate 1 , 1
     Lcd Bcd(h) ; " High"                                       'Ausgabe des high Byte
     Locate 1 , 10
     Lcd I ; " " ; G ; " " ; F ; " " ; E                        'Ausgabe des BCD codes
     Locate 3 , 1
     Lcd Bcd(l) ; " Low "
     Locate 3 , 10
     Lcd D ; " " ; C ; " " ; B ; " " ; A
    
    'BCD High = 8 4 2 1
    'variable = I G F E
    'BCD Low  = 8 4 2 1
    'variable = D C B A
     Wait 1
    
     Goto Main
    
    Onrxd:
      U = Udr                                                   'Byte aus der UART auslesen
      Udr = U                                                   'Byte als Echo zurückgeben
      Z = U
    Return
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken numeric_to_bcd.jpg  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen