Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/25/06 04:40
Read: times


 
#126967 - Decimal Counting down
Responding to: ???'s previous message
Store each BCD digit in its own byte.

Load the LCB digits into the accumulator and decrement it. When the accumulator underflows to FF, then reload it with 9. Use the branch to decrement the next most significant digit.

Merge the digits to print them.

BEG: MOV A,COUNT1     ; Move LSD to A
    DEC  A            ; Decrement the LSD
    CJNE 0FFh, BEG2   ; Check for underflow
    MOV  COUNT1, #09h ; If underflow, reload with 09 and dec MSD
;
    MOV  A, COUNT2    ; Fetch MSD
    DEC  A            ; Decrement the MSD
    CJNE 0FFh, BEG1   ; Check for underflow
    MOV  A, #09h      ; Reload MSD with 9
BEG1: MOV COUNT2, A   ; Save the MSD
    JP   BEG3         ; Jump to end
BEG2: MOV COUNT1,A    ; Save LSD
BEG3:


Good Luck

List of 15 messages in thread
TopicAuthorDate
AT89C51 countdown timer            01/01/70 00:00      
   I Think...            01/01/70 00:00      
   Decimal Counting down            01/01/70 00:00      
      if you post errors            01/01/70 00:00      
         it seems to be non-51            01/01/70 00:00      
            aha            01/01/70 00:00      
               I screwed up            01/01/70 00:00      
                  we just wanted to run down on somebody :-)            01/01/70 00:00      
                  This group            01/01/70 00:00      
   BCD=IncrementByAdding01HDecByAdding99H            01/01/70 00:00      
      RTFB            01/01/70 00:00      
   Why count BCD down?            01/01/70 00:00      
      Why microcontroller?            01/01/70 00:00      
      The Appliction            01/01/70 00:00      
   Why count BCD down?            01/01/70 00:00      

Back to Subject List