; Copyright 2005 Doi Shigeki ;list0803.asm PIC16F88テスト・プログラム ; シリアル通信のテスト 9600ボー@8MHz LIST P=16F88 #INCLUDE P16F88.inc ;コンフィグレーション・ワード 1 __CONFIG _CONFIG1, _BODEN_OFF & _WDT_OFF & _INTRC_IO ; _CP_OFF,_CCP1_RB0,_DEBUG_OFF,_WRT_PROTECT_OFF,_CPD_OFF,_LVP_ON,_MCLR_ON,_PWRTE_OFFはデフォルト ;コンフィグレーション・ワード 2 __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF ORG 0 ;0番地より展開 MAIN NOP ;割り込みの場合も再スタート NOP NOP NOP START BSF STATUS, RP0 ;バンク1へ切替え MOVLW B'01110000' ;内蔵OSCを8MHzに設定 MOVWF OSCCON MOVLW B'00000000' ;RAはすべて出力 MOVWF TRISA MOVLW B'00000111' ;RB2(RX),RB1,RB0を読み込み MOVWF TRISB MOVLW B'00100100' ;TXEN=1,BRGH=1,送信可,ボーレート*16 MOVWF TXSTA MOVLW D'51' ;8/(16(51+1))=9600 MOVWF SPBRG BCF STATUS, RP0 ;バンク0へ切り替え MOVLW B'10010000' ;SPEN=1,連続受信=1 MOVWF RCSTA CHECK BTFSS PIR1,RCIF ;RCIF=1なら受信あり,スキップ GOTO CHECK MOVF RCREG,W ;受信レジスタからデータ取り出し MOVWF PORTA ;LEDへ出力 CHECK2 BTFSS PIR1,TXIF ;TXIF=1なら送信レジスタ空き,スキップ GOTO CHECK2 MOVWF TXREG ;PCへエコー MOVF PORTB,W ;スイッチ読み込み ANDLW B'00000011' ;データを数字に ADDLW 0x30 CHECK3 BTFSS PIR1,4 ;TXIF=1なら送信レジスタ空き,スキップ GOTO CHECK3 MOVWF TXREG ;PCへ送信 GOTO CHECK END