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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Kai Klaas
03/23/06 06:40
Read: 2026 times
Germany


 
#112864 - Do you really need to build it?
Responding to: Suresh R's previous message
Suresh said:
So if possible can you let me know on its suitability to use in the circuit you have given me?

Suresh, in the meanwhile I have given you 3 circuits. This one:




This one:



And this one, also with a complete code:


                    $nomod51
                    $include (89s52.mcu)    

                    org 0
            
                    sjmp begin

                    org 002bh

                                            ;initialize
begin:              mov auxr,#00011001b     ;reset pin is input
                    mov tmod,#00000001b     ;timer 0 in modus 1
                
                                          
                                            ;Total delay is
                                            ;number 'z' (BCD- 
                                            ;switches) times
                                            ;10msec delay of
                                            ;timer 0
                                            
                                            ;reads 'start' and
                                            ;BCD switches

start_pressed?:     clr p1.4                ;strobe watchdog
                    mov c,p0.2              ;read 'start'
                    setb p1.4               ;strobe watchdog

                                            ;'start' pressed?
                    jc start_pressed?       ;No!

                                            ;'start' is pressed:            
                    mov a,p0                ;read "1"
                    swap a                  ;eases layout
                    cpl a                   ;true data
                    anl a,#00001111b        ;low nibble needed
                    mov r0,a                ;store "1" in r0
                    mov a,p2                ;read "10","100"
                    cpl a                   ;true data
                    mov r1,a                ;store it in r1
                    swap a                  ;eases layout
                    anl a,#00001111b        ;low nibble needed
                    mov b,#10               ;load #10 into b
                    mul ab                  ;a = "10" x 10
                    add a,r0                ;add r0 ("1")
                    mov r0,a                ;store it in r0
                    mov a,r1                ;now we need "100"
                    anl a,#00001111b        ;low nibble needed
                    mov b,#100              ;load #100 into b
                    mul ab                  ;a = "100" x 100
                    add a,r0                ;add r0
                    mov r0,a                ;low byte in r0
                    mov a,#0                ;carry?
                    addc a,b                ;add carry to b
                    mov r1,a                ;high byte in r1
                        
                                            ;r1=0?
                    jnz activate_relay      ;r1<>0!

                                            ;r1=0!
                    mov a,r0                ;r0=0?

                    jz start_released?      ;r0=0 and r1=0!
                                            ;means z=0!                     
                               
                                            ;r0<>0 or r1<>0!
                                            ;means z<>0!
activate_relay:     clr p0.0                ;turn on relay

                                            ;initialize timer            
timer_delay:        mov th0,#220            ;reload high byte
                    mov tl0,#15             ;reload low byte
                    setb tr0                ;start timer 0
                    clr p1.4                ;strobe watchdog

                                            ;timer busy?
timer_busy?:        jnb tf0,timer_busy?     ;timer busy!

                                            ;10msec delay over
                    clr tr0                 ;stop timer 0
                    clr tf0                 ;clear overfl. flag
                    setb p1.4               ;strobe watchdog

                                            ;decrement z
                    mov a,r0                ;                
                    clr c                   ;
                    subb a,#1               ;a=r0-1
                    mov r0,a                ;low byte of z=z-1
                                            ;into r0
                    mov a,r1                ;carry?
                    subb a,#0               ;
                    mov r1,a                ;high byte of z=
                                            ;z-1 into r1

                                            ;r1=0?
                    jnz timer_delay         ;r1<>0!

                                            ;r1=0!
                    mov a,r0                ;r0=0?

                    jnz timer_delay         ;r0<>0!

                                            ;r0=0 and r1=0!
                                            ;means z=0!
                    setb p0.0               ;turn off relay

start_released?:    clr p1.4                ;strobe watchdog
                    mov c,p0.2              ;read 'start'
                    setb p1.4               ;strobe watchdog

                                            ;'start' released?
                    jnc start_released?     ;No!

                                            ;'start' released!
                                            ;initialize waiting
                                            ;loop
                    mov r1,#103             ;'start' released
waiting_loop_1:     mov r0,#255             ;for 0.2 sec?
waiting_loop_2:     clr p1.4                ;strobe watchdog
                    mov c,p0.2              ;read 'start'
                    setb p1.4               ;strobe watchdog

                                            ;still released?
                    jnc start_released?     ;No!
                                            
                                            ;still released!
                    djnz r0,waiting_loop_2  ;repeat loop 2

                    djnz r1,waiting_loop_1  ;repeat loop 1

                    ljmp start_pressed?     ;'start' released
                                            ;for at least
                                            ;0.2sec!


                    end


Are you really expecting, that I discuss with you the CD4541 now? Do you really need to build such a dispenser or are you only toying with it?

Kai

List of 39 messages in thread
TopicAuthorDate
Pressing 555 trigger SW continuously.      Suresh R      02/24/06 03:57      
   Again      Andy Neil      02/24/06 04:38      
   capacitor couple it.      Steve M. Taylor      02/24/06 10:34      
      Re: cap coupling      Suresh R      02/24/06 23:37      
         Look up the internal block diagram      Kalpak Dabir      02/24/06 23:51      
            Read the Data Sheet!!      Andy Neil      02/25/06 03:17      
      got the o/p      Suresh R      02/25/06 03:59      
         Satisfaction      Steve M. Taylor      02/25/06 04:08      
            Thanku steve      Suresh R      02/25/06 04:33      
         Not enough      Kai Klaas      02/25/06 07:33      
            alternatives ?      Suresh R      02/26/06 22:01      
               Remedy      Kai Klaas      02/27/06 19:16      
                  remedy?      Andy Neil      02/28/06 01:04      
                     Alternatives      Kai Klaas      02/28/06 06:56      
                  BC550 & diodes      Suresh R      02/28/06 04:34      
                     Try it by yourself, it's simple!      Kai Klaas      02/28/06 06:47      
                        analysis results      Suresh R      03/01/06 03:37      
                           Analysis      Kai Klaas      03/01/06 20:14      
                              Thank you      Suresh R      03/01/06 23:10      
                              after the set delay Time      Suresh R      03/02/06 02:07      
                                 Enhanced debouncing      Kai Klaas      03/02/06 10:03      
                                    What do you think about it, Suresh?      Kai Klaas      03/06/06 17:55      
   why the neqw thread      Erik Malund      02/24/06 10:55      
      reply      Suresh R      02/24/06 23:20      
         Read the Data Sheet!!      Andy Neil      02/25/06 03:16      
   kalpak dabir      Satish S Munot      02/25/06 00:52      
   Have you considered using a 74121?      Richard Erlacher      03/04/06 15:18      
      74121 versus CMOS555      Kai Klaas      03/05/06 06:53      
      74121 fine for short period delays?      Suresh R      03/07/06 06:03      
         No debounce needed???      Kai Klaas      03/07/06 06:33      
            Schmitt trigger operation?      Suresh R      03/08/06 05:41      
               Transition times of input signal      Kai Klaas      03/08/06 09:21      
                  controlling noise related issues      Suresh R      03/11/06 04:08      
                     Schmitt-trigger operation      Kai Klaas      03/11/06 06:48      
                      CD 4541BC = Alternative for ICM 7555?      Suresh R      03/22/06 04:52      
                        Do you really need to build it?      Kai Klaas      03/23/06 06:40      
                           Yes.      Suresh R      03/23/06 08:38      
                              try try try again      Steve M. Taylor      03/23/06 09:22      
                                 a sign of confidence      Suresh R      03/23/06 09:59      

Back to Subject List