1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

wish to learn microcontroller....... need your help

Discussion in 'Microcontrollers' started by ikelectro, Apr 6, 2013.

  1. Ian Rogers

    Ian Rogers Super Moderator Most Helpful Member

    Joined:
    Mar 28, 2011
    Messages:
    9,168
    Likes:
    910
    Location:
    Rochdale UK
    ONLINE
    I'll try....

    Line by line..

    Delay: ( this is a label.. This constitutes the beginning of the routine... You can "Call" a label or you can "jmp" a label.. If you "Call" a routine you MUST return "ret"..

    If you "jmp" a label you MUST jmp back... There are a few types of "Call" and "jmp" commands.. Long.. lcall and ljmp there is absolute... acall and ajmp... You can also have a short jmp sjmp.... all these depend on how far you are calling and jumping..

    mov R1.#010h... Move direct command.. place 0x10h ( 16 decimal ) into Resister R1..
    mov R2,#010h... Move direct command.. place 0x10h ( 16 decimal ) into Resister R2..

    dznz R2,Dy2... Decrease R2 by one and only jump to labe1 Dy2 if the register R2 is not zero
    dznz R1,Dy1... Decrease R1 by one and only jump to labe1 Dy1 if the register R1 is not zero

    If both registers are zero the last command ret returns to the calling routine..

    Does that make it any clearer...
     
  2. absf

    absf Active Member

    Joined:
    Jun 18, 2012
    Messages:
    206
    Likes:
    27
    Location:
    Malaysia
    It's been quite some time you're away from your thread.

    Here, let me try to explain the above program with a picture attached. In a stadium, there are 2 gates "A" & "B". Mr. "R1" is the gatekeeper of gate "A" & Mr. "R2" is the gatekeeper of Gate "B". You are a runner.

    When you enter Gate "A", Mr R1 hands you a letter and asks you to report to Mr R2 at gate "B". When you're at gate "B" Mr R2 read the letter and give you 16 apples. You have to go round the track colored in red and on each round drop one apple into a basket.

    After you've run the track 16 times and finished dropping 16 apples, you go to Mr R1 through Gate "B" and get another letter with same contents from Mr R1.

    This will repeat 16 times as Mr R1 only has 16 letters. So you dropped a total of 16x16 = 256 apples onto the basket. After that you exit through Gate "A" and complete the job.

    That is roughly what the program is doing and it acomplished nothing except wasting time. If you want to delay more time you can either increase the number of apples on the track or increase the number of letters. Or you can add jobs to do while you're runing on the track like this:

    Code (text):
    Delay:  mov R1,#010h
    Dy1:    mov R2,#010h
    Dy2:    nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        nop ;waste 1us
        djnz    R2,Dy2
        djnz    R1,Dy1
        ret
     
    Allen
     

    Attached Files:

  3. Ian Rogers

    Ian Rogers Super Moderator Most Helpful Member

    Joined:
    Mar 28, 2011
    Messages:
    9,168
    Likes:
    910
    Location:
    Rochdale UK
    ONLINE
    I think electro has given up... He has a new thread on AAC , I think my teaching skills are rubbish.... Anyway, you seem to have grasped the syntax fairly well... I'm glad John is helping as well.... If you need to move onto C, just let me know..
     
  4. dave

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    -
    Likes:
    0


     
  5. ikelectro

    ikelectro Member

    Joined:
    Aug 25, 2012
    Messages:
    388
    Likes:
    4
    Location:
    Kolkata, Proud to be an Indian.

    Hi Ian, I'm don't. I am still see the thread to find something new everyday.. for my understanding..... you are too ahead of me and I'm too behind you to catch up what you were said in the previous comments....
     
  6. Ian Rogers

    Ian Rogers Super Moderator Most Helpful Member

    Joined:
    Mar 28, 2011
    Messages:
    9,168
    Likes:
    910
    Location:
    Rochdale UK
    ONLINE
    Explain to me what you think you need to see.... I now assume I have to step it down a little... We need to go through the commands one by one..

    Do you know how the basic MPU model works... ALU, Register addressing, moving / loading? Or do you only want to know assembler and the programming model up?

    Have you looked at the tutorials I sent you?
     
  7. absf

    absf Active Member

    Joined:
    Jun 18, 2012
    Messages:
    206
    Likes:
    27
    Location:
    Malaysia
    Hi Ian,

    The tutorial and instruction sets are good for beginner in 8051 who have prior experience in mcu. It is good for reference when programming the 8051. There are too little example codes to explain how each instruction work.

    Hi ikelectro,

    I suggest you also read the MCS51 Family Users Guide by Intel. It is a 144 page file and has great details on the 8051. I also learn by reading the past threads on 8051 in this forum. There are so many posts I have not finished reading them yet.

    If I find any books that has a lot of examples on how each instruction works, I'll list them here for your reference. I have one book I borrowed from my friend on 8051 with examples on the proteus but it was written in Chinese, so I won't recommend it to you. But it has examples in ASM and C so I think it is a very good book for me.

    Allen
     
    Last edited: May 11, 2013
  8. ikelectro

    ikelectro Member

    Joined:
    Aug 25, 2012
    Messages:
    388
    Likes:
    4
    Location:
    Kolkata, Proud to be an Indian.
    Hi Ian, thanks for your reply. As you know I have started a new thread on other forum. I wish to continue both. Hope you don't mind.
    No Ian I don't know.

    And absf I'm very happy to know that you are also here to help me out......

    can you plz send me the link.
     
  9. absf

    absf Active Member

    Joined:
    Jun 18, 2012
    Messages:
    206
    Likes:
    27
    Location:
    Malaysia

Share This Page