;****************************************************************************************** ; dsPIC P33FJ32GP202 Sample Program ; Project : ; Program Name : ; Programer : ; Create date : Version 1.0 H21.04.05 ; History : ; Laungage : MPLAB ASM30 ;****************************************************************************************** ; (1)Description ; ;****************************************************************************************** .include "p33FJ32GP202.inc" config __FOSCSEL , FNOSC_FRC & IESO_OFF config __FOSC , FCKSM_CSECMD & IOL1WAY_OFF & OSCIOFNC_OFF & POSCMD_NONE .bss .global __reset .section data_area LED_lst: .space 2 ;****************************************************************************************** ; Function Name : main ; Title : ; Input : ; Output : ;****************************************************************************************** .text __reset: ;******************* ; 1.Initialize ;******************* ; (0)Initialize Stack Pointer MOV #__SP_init, W15 ;Initalize the Stack Pointer MOV #__SPLIM_init, W0 ;Initialize the Stack Pointer Limit Register MOV W0, SPLIM NOP ;Add NOP to follow SPLIM initialization ; (1)Set All Digital Port MOV.W #0xFFFF,W0 MOV.W W0,AD1PCFGL ; (2)Define PortA MOV.W #0xFFFF,W0 MOV.W W0,TRISA ; (3)Define PortB MOV.W #0xFF00,W0 MOV.W W0,TRISB ; (4)Set Initial Value LEDlst MOV.W #0x0001,W0 MOV.W W0,LED_lst ; MOV.W LED_lst,W0 MOV.W W0,PORTB ;******************* ; 2.Program main ;******************* main_p: ; (1)Set furst loop value MOV.W #0x000A,W2 ; (2)Check push-sw main_chk_sw: ; 2-1)Count-up loop value MOV.W #0x0001,W3 INC.W W2,W3 MOV.W W3,W2 ; 2-2)Check loop-value (9 W4 MOV.W W4,LED_lst BRA mvLED_end ; ****************** ; 3.End ; ****************** mvLED_end: POP.W W5 POP.W W4 POP.W W3 POP.W W2 POP.W W1 POP.W W0 RETURN ;****************************************************************************************** ; Function Name : wat ; Title : wait function ; Input : ; Output : ; Description : ; W1:Timer_1,W2:Timer_2 ;****************************************************************************************** wat: ; ****************** ; 1.Initialize ; ****************** PUSH.W W0 PUSH.W W1 PUSH.W W2 PUSH.W W3 PUSH.W W4 ; ****************** ; 2.Program main ; ****************** ; (1)wat_1 CLR.W W1 wat_1: MOV.W #0x0001,W3 INC.W W1,W3 MOV.W W3,W1 ; MOV.W #0xC8,W3 ; LP_1 < 0xC8(200) SUB.W W1,W3,W4 BRA LEU,wat_2S BRA wat_e ; ; (2)wat_2 wat_2S: CLR.W W2 wat_2: MOV.W #0x0001,W3 INC.W W2,W3 MOV.W W3,W2 NOP NOP NOP NOP ; MOV.W #0x64,W3 ; LP_2 < 0x64(100) SUB.W W2,W3,W4 BRA LEU,wat_2 BRA wat_1 ; ; ****************** ; 3.End ; ****************** wat_e: POP.W W4 POP.W W3 POP.W W2 POP.W W1 POP.W W0 RETURN