;************************************************************************* ; PDB18 TEST Program for PIC16F628A ; ; ;------------------------------------------------------------------------- ; CONFIGRATION FUSE ; WDT:Disable OSC:INTRC Code Protect:OFF Power up timer:ON ; OSCILLATOR ; 4MHz ;************************************************************************* ; LIST P=PIC16F628A, R=DEC ;Target Processor INCLUDE P16F628A.INC ; __CONFIG _BOREN_OFF & _WDT_OFF & _XT_OSC & _CP_OFF & _PWRTE_ON & _DATA_CP_OFF & _LVP_OFF & _MCLRE_OFF ; __idlocs H'0100' ;V1.00 2004/07/20 ; ;------------------------------------------------------------------------- ; DEFINE I/O Port ;------------------------------------------------------------------------- LED EQU 0 ;------------------------------------------------------------------------- ; Registers ;------------------------------------------------------------------------- ; TEMP0 EQU H'20' ; Temporary Reg. TEMP1 EQU H'21' ; Temporary Reg. TEMP2 EQU H'22' ; Temporary Reg. CNT0 EQU H'23' CNT1 EQU H'24' CNT2 EQU H'25' ; ;------------------------------------------------------------------------- ; Program code ;------------------------------------------------------------------------- ; ORG H'00' ; Power ON GOTO START ; ; ;------------------------------------------------------------------------- ; Initialize ;------------------------------------------------------------------------- START BSF STATUS,RP0 ; BANK1にセット MOVLW B'01000111' ; Bit7を 0(ポートBプルアップ)にする ; RB0intを立ち上がりエッジのセット MOVWF OPTION_REG ; OPTION_REGレジスタをセット MOVLW B'11111110' ; 各ポートの入出力を設定する MOVWF TRISA ; ポートAの設定 MOVLW B'11111111' ; MOVWF TRISB ; ポートBの設定 MOVLW B'00000111' MOVWF CMCON BCF STATUS,RP0 ; BANK0にセット ; ;---------------------- ; OUTPUT Initialize ;---------------------- CLRF PORTA ; ポートAをクリア CLRF PORTB ; ポートBをクリア ;******************************************************* ; MAIN PROGRAM ;******************************************************* MAIN BSF PORTA,0 CALL WAIT100M BCF PORTA,0 CALL WAIT100M GOTO MAIN ; ;----------------------------------------------------------- ; ウェイト時間 WAIT1M ; 1msec ウェイト MOVLW 100 MOVWF CNT0 NOP GOTO $+1 GOTO $+1 GOTO $+1 DECFSZ CNT0,F GOTO $-5 RETURN WAIT100M ; 100msec ウェイト MOVLW 100 MOVWF CNT1 CALL WAIT1M DECFSZ CNT1,F GOTO $-2 RETURN ; END