;*************************************************** ;* PIC18Fxx20 sample program ;* Standard I/O test program ;* ;*************************************************** ;**** Define Processor LIST P=PIC18F2320 #include "P18F2320.INC" ;**** Configurations __CONFIG _CONFIG1H, _IESO_OFF_1H & _FSCMEN_OFF_1H & _HS_OSC_1H __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L & _BORV_20_2L __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_32K_2H __CONFIG _CONFIG3H, _MCLRE_ON_3H & _PBAD_DIG_3H & _CCP2MX_C1_3H __CONFIG _CONFIG4L, _BKBUG_OFF_4L & _LVP_OFF_4L & _STVR_OFF_4L ;***** All memory protect Off __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L __CONFIG _CONFIG7H, _EBTRB_OFF_7H ;**** Define Variables CNT1 EQU 0 CNT2 EQU 1 CNT3 EQU 2 ;**** Standard Input/Output ORG 0 ;**** Initial Setting MOVLW 07 MOVWF ADCON1 ;All Output CLRF TRISA MOVWF 0FFH ;All Input MOVWf TRISB ;****************************************** MainLoop BTFSS PORTB,0 ;RB0 BRA CaseB ;***** If RB0==1 CaseA MOVLW 03CH ;All LED Off MOVWF PORTA ;Output to PORT RCALL T05SEC ;Delay 0.5sec CLRF PORTA ;All LED On RCALL T05SEC BRA MainLoop ;**** If RB==0 CaseB MOVLW 014H ;Even LED MOVWF LATA ;Output to LATCH RCALL T05SEC MOVLW 028H ;Odd LED MOVWF LATA ;Output to LATCH RCALL T05SEC BRA MainLoop ;****************************************** ;****** Clock = 20MHz ; 100usec Timer Subroutine TIM100 ;100usecタイマ MOVLW 063H ;99回 MOVWF CNT1 ;2cycle LOOP1 NOP NOP ;(2+3)*99-1=494 cycle DECFSZ CNT1,F BRA LOOP1 RETURN ;2+494+2=498 cycle ;********* ; 10msec Timer Subroutine TIM10M MOVLW 063H ;99回 MOVWF CNT2 LOOP2 RCALL TIM100 ;(2+248+3)*98-1=25046 DECFSZ CNT2,F BRA LOOP2 RETURN ;2+25046+2=25050サイクル ;25050*0.4=10.02msec ;********** ; 0.5sec Timer Subroutine T05SEC MOVLW 032H ;50回 MOVWF CNT3 ;10msec * 50 LOOP3 RCALL TIM10M ;(2+25050+3)*50-1=1252749 DECFSZ CNT3,F ; BRA LOOP3 RETURN ;2+1252749+2=1252754 ;1252754*0.4=5.011sec END