Mga boss patulong po sana ako kung pano at ano gagamitin kung software sa pag assemble/compile nitong code na to..
Nakuha ko po tong code na to sa EPE Magazine.. Para po to sa LED Message Display na featured project doon.. gusto ko po sana subukan.. kaso andaming errors nung inassemble ko gamit ang MPASM..
Sana po matulungan nyo ko.. eto po yung part ng code (hindi kasi kasya dito yung complete code):
; MASTERMSG480M 26JUN06 - COPYRIGHT JOHN BECKER - EPE MOVING MESSAGE DISPLAY MASTER
; PIC16F628, INTERNAL OSC WDT OFF, POR ON, INTRC 100
; command codes:
; 1 Setup PIC ID numbers **
; 2 not used **
; 3 get & send on character data block **
; 4 receive normal data from PC for scrolling **
; 5 clear anim & static flags **
; 6 halt display **
; 7 receive animate display data from PC **
; 8 Sync Off **
; 9 Sync On **
; 10 not used by master; only by slaves ; send on received animate display data **
; 11 send on anim rate value **
; 12 receive message scroll rate **
; 13 code to select moving message mode **
; 14 code to select animation mode **
; 15 code to select static display mode **
; 16 moving message stop - not used by slaves **
; 17 check PIC IDs **
; 18 Stop animate mode **
; 19 Stop static mode **
; 20 Run Mode
; 21 Program Mode
; 22 slaves only
; 23 show sync
#DEFINE BANK0 BCF $03,5
#DEFINE BANK1 BSF $03,5
List P = PIC16F628, R=DEC;
__CONFIG h'3F30'
include P16F628.inc
CBLOCK
STORE1
STORE2
STORE3
COLUMN0
COLUMN1
COLUMN2
COLUMN3
COLUMN4
COLUMN5
CHARACTER
COUNT1
LOOP
COLUMN0A
COLUMN1A
COLUMN2A
COLUMN3A
COLUMN4A
COLUMN5A
LENGTH
SCROLLRATE
SWITCH
PREVSWITCH
NEWSWITCH
SYNCFLAG
MOVINGFLAG
ANIMRATE
ANIMADDRESS
ANIMSTORE ; extends to $6F
ENDC
; do not add REGs after ANIMSTORE
PROMVAL .EQU $70 ; in both pages
SPBRG .EQU $99 ; not in INC file for some odd reason. Bank 1
; **************
.ORG 0
goto GIEOFF
.ORG 4 ; Interrupt vector address
goto GIEOFF
.ORG 5 ; Start of program memory
GIEOFF: BCF INTCON,GIE ; turn off global interrupts
BTFSC INTCON,GIE
goto GIEOFF
goto START
ROUTEITRUNMODE: movf STORE1,W
andlw 31
addwf PCL,F
goto RUNMODE2 ; 0 not used at all
goto SETUP ; 1 Setup
goto RUNMODE2 ; 2 not used at all
goto GETSTATIC ; 3 receive & send on static characters to slaves
goto RECEIVEPC ; 4 receive normal data from PC for scrolling
goto CLEARFLAGS ; 5 clear anim & static flags
goto RUNMODE2 ; 6 not used in this mode
goto SENDANIMATION ; 7 receive and send on Animation to slaves
goto SENDONSYNC ; 8 sync off
goto SENDONSYNC ; 9 sync on
goto RUNMODE2 ; 10 not used to receive, slave command only
goto SENDONANIMRATE ; 11 send on animate rate change to slaves
goto GETSCROLLRATE ; 12 moving message scroll rate
goto MOVINGMODE ; 13 start moving message
goto ANIMATIONMODE ; 14 start animation
goto STATICMODE ; 15 static static
goto STOPMOVING ; 16 stop moving message
goto CHECKPICIDS ; 17 Check PIC IDs
goto STOPANIMATE ; 18 Stop animate mode
goto STOPSTATIC ; 19 Stop static mode
goto RUNMODE2 ; 20 Run Mode
goto RUNMODE2 ; 21 Run Mode
goto RUNMODE2 ; 22 Run Mode
goto SHOWSYNC ; 23 tell slaves to show sync
goto RUNMODE2 ; 24 Run Mode
goto RUNMODE2 ; 25 Run Mode
goto RUNMODE2 ; 26 Run Mode
goto RUNMODE2 ; 27 Run Mode
goto RUNMODE2 ; 28 Run Mode
goto RUNMODE2 ; 29 Run Mode
goto RUNMODE2 ; 30 Run Mode
goto RUNMODE2 ; 31 Run Mode
;*******************
TABLE: movf CHARACTER,W
andlw 127
addwf PCL,F
include lcdmtx2.inc"
;*******************
START: clrf PORTA
clrf PORTB
movlw $07
movwf CMCON
BANK1
movlw %11100110 ; RB1 & RB2 for serial, RB7-RB5 switches, RB4 as output test point
; movlw %00000110 ; RB1 & RB2 for serial, RB7-RB4 leds
movwf TRISB
movlw %00010000 ; RA4 as input for PIC mode use
movwf TRISA
movlw %00000111 ; timer 1:128, pull-ups on (bit 7 = 0)
movwf OPTION_REG
BANK0
call JOESETBAUD ; initialise serial BAUD rate etc
;****************** START OF MAIN
MAIN: clrf PORTB
clrf STORE1
clrf STORE2
clrf STORE3
clrf PORTA
clrf COUNT1
clrf COLUMN1A
clrf COLUMN2A
clrf COLUMN3A
clrf COLUMN4A
clrf COLUMN5A
clrf SWITCH
clrf PREVSWITCH
clrf NEWSWITCH
clrf MOVINGFLAG
movlw 8
movwf SYNCFLAG
CHECKSWITCHMAIN:
comf PORTB,W ; invert switch inputs to PORTB
andlw %11100000
movwf SWITCH ; any switch press?
swapf SWITCH,F ; swap bits 8-4 with bits 3-0
movf SWITCH,W ; get switch
movwf PREVSWITCH ; store as prev switch
CHKS1: btfss SWITCH,1 ; is S1 pressed (moving mode)?
goto CHKS2
bsf MOVINGFLAG,0 ; yes, set running mode in Master
CHKS2: btfss SWITCH,2 ; is S2 pressed (animate mode)?
goto CHKS3 ; no, not animation
movlw 14
call TXBYTE ; yes, activate animate
CHKS3: btfss SWITCH,3 ; is S3 pressed (static mode)?
goto LOOP0 ; no, not static
movlw 15 ; yes, activate static
call TXBYTE
LOOP0: movlw 2
movwf LOOP
movlw 0
call PRMGET
addlw 2
andlw 127
movwf LENGTH
movlw 1
call PRMGET
movwf SCROLLRATE
LOOPIT: movf LOOP,W
call PRMGET
movwf CHARACTER
andlw 128
btfsc STATUS,Z
goto LOOPIT2
movf CHARACTER,W
movwf COLUMN5A
incf LOOP,F
movf LOOP,W
call PRMGET
movwf COLUMN1
incf LOOP,F
movf LOOP,W
call PRMGET
movwf COLUMN2
incf LOOP,F
movf LOOP,W
call PRMGET
movwf COLUMN3
incf LOOP,F
movf LOOP,W
call PRMGET
movwf COLUMN4
goto COL0
LOOPIT2: movf SCROLLRATE,W ; sets scroll delay rate
movwf COUNT1
call TABLE
COL0: btfss MOVINGFLAG,0
goto RUNMODE1
call SHOWCHAR
btfss PIR1,RCIF ; Check for any RX'd data
goto COL0B
movf RCREG,W ; zero ignored - PC turn off/on condition
btfsc STATUS,Z
goto COL0B
movwf STORE1
goto ROUTEITRUNMODE
COL0B:
; CHECKSWITCHMOVING:
comf PORTB,W ; invert switch inputs to PORTB
andlw %11100000
movwf SWITCH ; any switch press?
swapf SWITCH,F ; swap bits 8-4 with bits 3-0
movf PREVSWITCH,W ; get prev switch
xorwf SWITCH,W ; is it the same as SWITCH?
movwf NEWSWITCH ; store XORed value
btfsc STATUS,Z
goto COL0C ; yes, the same
goto ROUTESWITCH ; no, different, so route it
gusto ko lang po malaman kung anong software ang gagamitin ko para dito.. Salamat po!