MEL PICBASIC Forum - Simple Array Demo


  • Simple Array Demo

    Hello,
    this little example just cycles through a 26 element array and displays it's value. I wrote it to
    teach myself array function, and with help from Jerson it works as expected. I am posting it here to assist noobies trying to grasp array function.
    Code:
    '****************************************************************
    '*  Name    : ARRAY DEMO.BAS                                    *
    '*  Author  : Joe S. with Thanks to Jerson in Bombay            *
    '*  Notice  : Copyright (c) Joe S.                              *
    '*          : No Rights Reserved, Use as you see fit            *
    '*  Date    : 5/21/08                                           *
    '*  Version : 1.0                                               *
    '*  Notes   :Demo Array Counter reads array 1 BYTE at a time    *
    '*           and displays serially on backpack LCD              *
    '*          :PBP VER 2.50                                       *
    'DEMONSTRATES USE OF FOR NEXT LOOP TO READ ARRAY                *                                   *
    'THIS PROGRAM PROVES SERIN AND SERIN2 WILL WORK ON THE SAME PIN *
    'WITHIN A SINGLE PROGRAM. DEMONSTRATES USE OF STR FUNCTION WITH *
    'SERIN2.COMPILE WITH MPASM ASSEMBLER.COMPILES TO 419 WORDS IN   *
    '16F628A                                                        *
    '****************************************************************
    @ __config  _HS_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF  & _BODEN_OFF
    DEFINE OSC 20
    include "modedefs.bas"
    '    
        LETTERS VAR BYTE ' VARIABLE TO HOLD CHARACTERS IN F/N LOOP
    '
        CHAR var byte[26]' ARRAY VARIABLE NAMED CHAR 26 ELEMENTS
    '
        serout PortB.6,T9600,[254,128,"ARRAY DEMO"]
                         ' SHOW US YOU ARE ALIVE 
    '
        pause 500        ' TIME TO VIEW LCD SPLASH STATEMENT
    '
        serout PortB.6,T9600,[$FE,1]'CLEAR LCD PRIOR TO WRITING
    '
    '* * * * * * LOAD ARRAY WITH STRING VALUE
    CHAR[0]= "A"
    CHAR[1]= "B"
    CHAR[2]= "C"
    CHAR[3]= "D"
    CHAR[4]= "E"
    CHAR[5]= "F"
    CHAR[6]= "G"
    CHAR[7]= "H"
    CHAR[8]= "I"
    CHAR[9]= "J"
    CHAR[10]="K"
    CHAR[11]="L"
    CHAR[12]="M"
    CHAR[13]="N"
    CHAR[14]="O"
    CHAR[15]="P"
    CHAR[16]="Q"
    CHAR[17]="R"
    CHAR[18]="S"
    CHAR[19]="T"
    CHAR[20]="U"
    CHAR[21]="V"
    CHAR[22]="W"
    CHAR[23]="X"
    CHAR[24]="Y"
    CHAR[25]="Z"
    '* * * * * * * DISPLAY ARRAY ELEMENTS VALUES SEQUENTIALY
    loop:
         FOR LETTERS = 0 to 25 'CYCLE FROM A TO Z
    '
         serout PortB.6,T9600,[254,128,"CHAR is ",(CHAR[LETTERS])]
         pause 500            'TIME TO VIEW LETTER
    NEXT LETTERS
    
         FOR LETTERS=25 TO 0 STEP -1 'CYCLE  THEM IN REVERSE Z TO A
         serout PortB.6,T9600,[254,128,"CHAR is ",(CHAR[LETTERS])]
         PAUSE 500 ' TIME TO VIEW LETTERS
    NEXT LETTERS
    '
         PAUSE 500 'TIME TO VIEW LAST LETTER
    goto LOOP2
    '* * * * * * * * * * DISPLAY ENTIRE ARRAY VALUE AT ONCE
    LOOP2:
          serout2 portb.6,84,[$FE,1]     'CLEAR LCD PRIOR TO WRITING TO IT
    '
          PAUSE 50     'TIME FOR LCD TO SETTLE, DROPS 4 CHARS WITHOUT THIS
    '
          serout2 PortB.6,84,10,[str char\26]
    '     PACE 10 ALLOWS SEROUT2 TO QUICKLY WRITE ARRAY'S FULL VALUE TO LCD
    '
          pause 2000 ' TIME TO VIEW FULL ARRAY'S CONTENT
    '
          serout2 portb.6,84,100,[$FE,1] 'CLEAR LCD BEFORE LOOP
    goto loop
    '
    end
    I realise there are likely easier ways to load the ARRAY . . .Baby Steps
    Anyone wishing to post more or better examples of ARRAY functions are invited to do so on this post.
    Thank You,
    JS
    This article was originally published in forum thread: Simple Array Demo started by Joe S. View original post