home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / hc11dev / hcs / simpleled_1.s < prev    next >
Text File  |  1995-02-27  |  3KB  |  90 lines

  1. *    $VER: SimpleLED_1_Source 1.0 (21-Oct-93)
  2.  
  3. *    *****************************************
  4. *    * SimpleLED_1.s v1.0            *
  5. *    * Copyright © 1993, Richard Karlsson    *
  6. *    *                    *
  7. *    * Klövergränd 4                *
  8. *    * SF-22100 Mariehamn            *
  9. *    * Finland                *
  10. *    *                    *
  11. *    * Ph. +358-28-22441            *
  12. *    *****************************************
  13.  
  14. * This little program will do a binary count from 0 to 255 on PORTB.
  15. * You should set up LEDs on this port to see the result. To do this
  16. * you can either use a transistor to drive the LEDs. Base of transistor
  17. * to the port pin. You will need one transistor for each PORTB pin. OR
  18. * you can set up the LEDs straight from the PORTB pins to VSS, through a
  19. * resistor. This method is probably a strain on the MCU and probably
  20. * not within the guaranteed ratings of the MCU. But I've used this
  21. * method many times, and still haven't destroyed any Hc11s that way.
  22.  
  23. * PORTB Pin0----LED---Resistor---VSS
  24.  
  25. * The resistor should be about 300 ohms, and the LED should be turned
  26. * the right way. If you don't know which way is the right way then
  27. * try one way and if that doesn't work then turn it the other way.
  28.  
  29. * You will need to make one of theese for every PORTB pin.
  30.  
  31. * PORTB is to my knowledge an outport on all HC11 models. If it's not
  32. * on the model you are using then you try using another port. Just
  33. * change the PORTBs in this source to what ever port you are using.
  34. * If the port you are using is a bi-directional port then you will
  35. * have to set it to output mode.
  36.  
  37. EEPROM        =    $b600    ; Change this to where you have space
  38.                 ; to put the program. NOT in the MCUs
  39.                 ; internal RAM. The talker file is
  40.                 ; resident there.
  41.                 ; If you have the program in EEPROM
  42.                 ; as you probably will, then remember
  43.                 ; to set the EEPROM range in HitMon11
  44.                 ; when transferring this program
  45.                 ; to the Hc11 MCU. Else programming
  46.                 ; will fail. The EEPROM range is set
  47.                 ; with the "EEPROM" command.
  48.  
  49. RegBase        =    $1000    ; This is where the register base is
  50.                 ; in the MCU you are using. It should
  51.                 ; be HEX 1000 at all Hc11s. If you
  52.                 ; havent changed it manually that is.
  53.                 ; To change the register base is only
  54.                 ; possable on some MCUs.
  55.  
  56.     Include    "HcInclude:A8Regs.i"    ; Sets all the register to the
  57.                     ; right addresses. If you are
  58.                     ; not using the Hc11A0, A1 or A8
  59.                     ; then you will have to change
  60.                     ; this.
  61.  
  62.     org    EEPROM        ; Set PC to beginning of EEPROM.
  63.  
  64.     clra            ; Clear Accumulator A (AccA)
  65. Main
  66.     staa    PORTB        ; Store AccA at PORTB. If you have LEDs
  67.                 ; set up at PORTB they should light up
  68.                 ; according to the bits set in AccA.
  69.     inca            ; Binary add 1 to AccA
  70.     bsr    HumaneDelay    ; Wait a while so that you can see how
  71.                 ; the LEDs look.
  72.     bra    Main        ; Go back to Main, and start all over
  73.                 ; again.
  74.  
  75. HumaneDelay
  76. * This routine counts to 5 times 60000 (=300000) that should be long
  77. * enough for you to see the LEDs pattern.
  78.  
  79. * It trashes index registers X and Y.
  80.  
  81.     ldx    #5
  82. HD_Outer
  83.     ldy    #60000
  84. HD_Inner
  85.     dey
  86.     bne    HD_Inner
  87.     dex
  88.     bne    HD_Outer
  89.     rts
  90.