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
Anyone wishing to post more or better examples of ARRAY functions are invited to do so on this post.
Thank You,
JS


Menu
LCDOUT command followed by variable data
Hi,
flotulopex Yesterday, 09:55This must be recurrent subject but/and I can't recall how to handle this.
My project is about displaying time and adapting the output format to the number of digits to display adjusting...