led7seg.inc
changeset 25 33496b1a964f
parent 23 a6afc0eb347f
child 26 db2ec641c955
equal deleted inserted replaced
24:8100038e3d58 25:33496b1a964f
    85     ; Load char
    85     ; Load char
    86         lpm         r8, Z
    86         lpm         r8, Z
    87 
    87 
    88     ; Done
    88     ; Done
    89         ret
    89         ret
    90  
    90 
       
    91 ;; Display an 8-bit hexadecimal value on the display
       
    92 ;;  Input: r16
       
    93 LED7_ShowHex:
       
    94         ; base16
       
    95         ldi         r17, 16 
       
    96 
       
    97         ; 1's
       
    98         call        div8u
       
    99         
       
   100         ; r16 = result, r15 = remainder
       
   101         mov         r17, r15 
       
   102 
       
   103     ; Continue
       
   104         rjmp        LED7_Show
       
   105 
       
   106 ;; Display an 8-bit decimal value on the display
       
   107 ;;  Input: r16
       
   108 LED7_ShowDec:
       
   109         ; base10
       
   110         ldi         r17, 10
       
   111 
       
   112         ; 1's
       
   113         call        div8u
       
   114         mov         r8, r15
       
   115 
       
   116         ; 10's
       
   117         call        div8u
       
   118         mov         r9, r16         ; 100's
       
   119         
       
   120         ; 1's from r8
       
   121         rcall       LED7_LoadChar
       
   122         mov         r17, r8
       
   123 
       
   124         ; 10's from r15
       
   125         mov         r8, r15
       
   126         rcall       LED7_LoadChar
       
   127         mov         r16, r8
       
   128            
       
   129         ; Set dots for 100's 
       
   130         sbrc        r9, 0
       
   131         ori         r17, 0b10000000 ; +100
       
   132         sbrc        r9, 1
       
   133         ori         r16, 0b10000000 ; +200
       
   134 
       
   135     ; Continue
       
   136         rjmp        LED7_ShowRaw
       
   137 
    91 ;; Display a single digit on the display
   138 ;; Display a single digit on the display
    92 ;;  Input: r16, r17
   139 ;;  Input: r16, r17
    93 LED7_Show:
   140 LED7_Show:
    94         mov         r8, r16
   141         mov         r8, r16
    95         rcall       LED7_LoadChar
   142         rcall       LED7_LoadChar
    96         mov         r16, r8
   143         mov         r16, r8
    97 
   144 
    98         mov         r8, r16
   145         mov         r8, r17
    99         rcall       LED7_LoadChar
   146         rcall       LED7_LoadChar
   100         mov         r16, r8
   147         mov         r17, r8
   101         
   148         
   102     ;; Continue
   149     ;; Continue
   103 
   150 
   104 ;; Display a raw segment mask
   151 ;; Display a raw segment mask
   105 ;;  Input: r16, r17
   152 ;;  Input: r16, r17