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
Bookmarks