nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

基板2550 LEDピカピカ ASMリスト

ラトルズ2550基板対応LEDON/OFF(RB4,RB)リストです。

; ********************************************************
;	led_onoff.asm for PIC18F2550 of RUTLEs EVAL BOARD
; 
;	modified by nobcha 2010.12.11 V0.1
;	Turn LEDs on & off on RB5,RB4
; ********************************************************
    LIST         P=18F2550
    INCLUDE   P18F2550.INC
; ********************************************************
    CONFIG     PLLDIV = 5	 ;4MHz = 20MHz / 5
    CONFIG     CPUDIV = OSC1_PLL2	;48MHz = 96MHz / 2
    CONFIG     FOSC = HSPLL_HS
; ********************************************************
    CBLOCK     0x000
    CNT20us
    CNT4ms
    CNT1s
    ENDC
; ******** reset *****************************************
    ORG         0x0000
; ******** init *****************************************
    MOVLW     0xCF     ;RB5,4=output
    MOVWF     TRISB   ;LED
; ******** main ******************************************
main
    BSF      LATB,4       ;RB4 LED on
    BCF      LATB,5       ;RB5 LED off
    CALL    time1sec     ;wait 1sec
    BCF      LATB,4
    BSF      LATB,5
    CALL    time1sec
    GOTO    main
; ******** 1 sec timer ***********************************
time1sec
    MOVLW  d'250'	; 4mS * 250 = 1 SEC
    MOVWF  CNT1s
wait1sec
    CALL     time4ms
    DECFSZ	CNT1s
    GOTO     wait1sec
    RETURN
; ******** 4mStimer **************************************
time4ms
    MOVLW  d'200'	; 20uS*200 = 4 mS
    MOVWF  CNT4ms
wait4ms
    CALL     time20us
    DECFSZ	CNT4ms
    GOTO     wait4ms
    RETURN
; ******** 20uS timer *************************************
time20us
    MOVLW  d'92'	; 48MHz->20.8nS*4=83.3nS/inst cycle
    MOVWF  CNT20us	; 20uS/(83.3nS*3 inst)=92
wait20us
    NOP
    DECFSZ  CNT20us,F
    GOTO     wait20us
    RETURN
; *********************************************************
END


http://chitose6thplant.web.fc2.com/