Need Help! PIC16F628A-Led effects

Thread Starter

semu89

Joined Feb 29, 2012
1
Hi. I have to do assignment to make this code work in the PicsimLab. I have tried most options, spended few hours to search in this forums and Google to get some answers how to make it work. Clearly I am too dumb for this. :confused:
It is Welleman K8048 schemes Demo sample simulation.
Rich (BB code):
;**************************************************************************
;*             VELLEMAN   High-Q KIT  K8048/VM111 SAMPLE SOFTWARE         *
;**************************************************************************
;*          Microchip PIC(tm) Programmer & experiment board               *
;*	    DEMO2 program for testing K8048 with PIC16F627(A)!            *
;*   Generate 4 LED light effects, you can select these with  SW1..4      *
;**************************************************************************
;*          (C) VELLEMAN Components,2003-2008  All rights reserved        *
;**************************************************************************
;*          Hardw. Rev: P8048'1          Softw. Rev:  1.22                *
;*          OSC.......: XT 4MHz Max.     POWER.....:  12V DC              *
;**************************************************************************

W                            EQU     H'0000'
F                            EQU     H'0001'

;----- Register Files------------------------------------------------------

INDF                         EQU     H'0000'
TMR0                         EQU     H'0001'
PCL                          EQU     H'0002'
STATUS                       EQU     H'0003'
FSR                          EQU     H'0004'
PORTA                        EQU     H'0005'
PORTB                        EQU     H'0006'

INTCON                       EQU     H'000B'
OPTION_REG                   EQU     H'0081'
TRISA                        EQU     H'0085'
TRISB                        EQU     H'0086'
CMCON                        EQU     H'001F'

;----- STATUS Bits --------------------------------------------------------
IRP                          EQU     H'0007'
RP1                          EQU     H'0006'
RP0                          EQU     H'0005'
NOT_TO                       EQU     H'0004'
NOT_PD                       EQU     H'0003'
Z                            EQU     H'0002'
DC                           EQU     H'0001'
C                            EQU     H'0000'

;==========================================================================
;
;       RAM Definition
;
;==========================================================================

    __MAXRAM H'01FF'
    __BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
    __BADRAM H'87'-H'89', H'8D', H'8F'-H'91', H'93'-H'97', H'9E'
    __BADRAM H'105', H'107'-H'109', H'10C'-H'11F', H'150'-H'16F'
    __BADRAM H'185', H'187'-H'189', H'18C'-H'1EF'

;==========================================================================
;
;       Configuration Bits
;
;==========================================================================

_BODEN_ON                    EQU     H'3FFF'
_BODEN_OFF                   EQU     H'3FBF'
_CP_ALL                      EQU     H'03FF'
_CP_75                       EQU     H'17FF'
_CP_50                       EQU     H'2BFF'
_CP_OFF                      EQU     H'3FFF'
_DATA_CP_ON                  EQU     H'3EFF'
_DATA_CP_OFF                 EQU     H'3FFF'
_PWRTE_OFF                   EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LVP_ON                      EQU     H'3FFF'
_LVP_OFF                     EQU     H'3F7F'
_MCLRE_ON                    EQU     H'3FFF'
_MCLRE_OFF                   EQU     H'3FDF'
_ER_OSC_CLKOUT               EQU     H'3FFF'
_ER_OSC_NOCLKOUT             EQU     H'3FFE'
_INTRC_OSC_CLKOUT            EQU     H'3FFD'
_INTRC_OSC_NOCLKOUT          EQU     H'3FFC'
_EXTCLK_OSC                  EQU     H'3FEF'
_LP_OSC                      EQU     H'3FEC'
_XT_OSC                      EQU     H'3FED'
_HS_OSC                      EQU     H'3FEE'

	__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC

;==========================================================================
;       Variable Definition
;==========================================================================
;INPUTS
SW1		EQU     H'00'		;SW1 is triggering RA0
SW2		EQU     H'01'		;SW2 is triggering RA1
SW3		EQU     H'02'		;SW3 is triggering RA2
SW4		EQU     H'03'		;SW4 is triggering RA3
TIMER1		EQU	H'20'		;Used in delay routine
TIMER2		EQU	H'21'		; "	"	"	
PATERN		EQU	H'22'		;Pattern data for effect's


		ORG	0		;Reset vector address
		GOTO	RESET		;goto RESET routine when boot.


;		*********************************************
;		*  Example of a delay routine               *
;		*********************************************

DELAY_ROUTINE   MOVLW   D'100'         ;54 Generate approx 10mS delay at 4Mhz CLK
                MOVWF   TIMER2
DEL_LOOP1       MOVLW   D'100'	       ;60	
                MOVWF   TIMER1
DEL_LOOP2       BTFSC	PORTA,SW1
		GOTO	MENU
		BTFSC	PORTA,SW2
		GOTO	MENU
		BTFSC	PORTA,SW3
		GOTO	MENU
		BTFSC	PORTA,SW4
		GOTO	MENU
		DECFSZ  TIMER1,F
                GOTO    DEL_LOOP2
                DECFSZ  TIMER2,F
                GOTO    DEL_LOOP1
		RETLW   0


;	       **********************************
;              **  RESET :  main boot routine  **
;              **********************************

RESET		MOVLW	B'00000111'	;Disable Comparator module's
		MOVWF	CMCON
		;
		BSF	STATUS,RP0	;Switch to register bank 1
					;Disable pull-ups
					;INT on rising edge
					;TMR0 to CLKOUT
					;TMR0 Incr low2high trans.
					;Prescaler assign to Timer0
					;Prescaler rate is 1:256
		MOVLW	B'11010111'	;Set PIC options (See datasheet).
		MOVWF	OPTION_REG	;Write the OPTION register.
		;
		CLRF	INTCON		;Disable interrupts
		MOVLW	B'11000000'
		MOVWF	TRISB		;RB7 & RB6 are inputs.
					;RB5...RB0 are outputs.
		MOVLW	B'11111111'	;all RA ports are inputs
		MOVWF	TRISA
		BCF	STATUS,RP0	;Switch Back to reg. Bank 0
		CLRF	PORTB
		GOTO	EFFECT_4		
		;

MENU		CLRF	PORTB
		;
		BTFSC	PORTA,SW1
		GOTO	EFFECT_1
		BTFSC	PORTA,SW2
		GOTO	EFFECT_2
		BTFSC	PORTA,SW3
		GOTO	EFFECT_3
		BTFSC	PORTA,SW4
		GOTO	EFFECT_4
		GOTO	MENU
				

EFFECT_1	BTFSC	PORTA,SW1
		GOTO	EFFECT_1
E1		MOVLW	B'00100000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00110000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111100'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111110'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111111'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111110'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111100'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00111000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00110000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		GOTO	E1
		

EFFECT_2	BTFSC	PORTA,SW2
		GOTO	EFFECT_2
E2		MOVLW	B'00000001'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00000010'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00000100'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00001000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00010000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00100000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00010000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00001000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00000100'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		MOVLW	B'00000010'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		GOTO	E2

EFFECT_3	BTFSC	PORTA,SW3
		GOTO	EFFECT_3
E3		MOVLW	B'00000111'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		CALL	DELAY_ROUTINE
		MOVLW	B'00111000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		CALL	DELAY_ROUTINE
		GOTO	E3

EFFECT_4	BTFSC	PORTA,SW4
		GOTO	EFFECT_4
E4		MOVLW	B'00001000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		CALL	DELAY_ROUTINE
		MOVLW	B'00000000'	;
		MOVWF	PORTB
		CALL	DELAY_ROUTINE
		CALL	DELAY_ROUTINE
		GOTO	E4


		END
For any assistance i can offer:
Using PicsimLab simulator: http://sourceforge.net/projects/picsim/. Configure options: Board 1 and 4Mhz.
and this compilator to HEX file: http://melabs.com/downloads/MPASMWIN520.zip
I would really appreciate for any help.
 
Top