;****************************************************************************************** ; Program Name : 16F88 Sample Program ; Programer : ; Create date : 2009/09/01 ; History : ; Discription : ;****************************************************************************************** ; (1)Define I/O ; PORTB(4):LATCH ; PORTB(5):CLOCK ; PORTB(6):RED AND GREEN ENABLE ; PORTB(7):INPUT RED DATA ;****************************************************************************************** ; LIST P=PIC16F88,ST=OFF,R=DEC INCLUDE "P16F88.inc" __CONFIG _CONFIG1 , _CP_OFF & _CCP1_RB3 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO ; __CONFIG _CONFIG1 , _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO ; __CONFIG _CONFIG1 , _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC __CONFIG _CONFIG2 , _IESO_OFF & _FCMEN_OFF ; Define PORT NO LATCH EQU H'4' CLOCK EQU H'5' ENABLE EQU H'6' IN_DATA EQU H'7' ; Define Parameter SCROLL_LFT EQU H'00' SCROLL_RHT EQU H'01' ; CLK_LP EQU 20H LP0 EQU 21H SFT_DAT EQU 22H SFT_DAT11 EQU 23H SFT_DAT10 EQU 24H SFT_DAT01 EQU 25H SFT_DAT00 EQU 26H SFT_LP0 EQU 27H SFT32_LP0 EQU 28H CLRLP0 EQU 29H LPWAT010 EQU 2AH LPWAT011 EQU 2BH LPWAT012 EQU 2CH R_CHAR EQU 2DH G_CHAR EQU 2EH DSPCHARLP EQU 2FH X1 EQU 31H X2 EQU 32H X3 EQU 33H X4 EQU 34H X5 EQU 35H X6 EQU 36H CHR EQU 37H DSPCOD EQU 38H DTMP0 EQU 39H DTMP1 EQU 3AH DTMP2 EQU 3BH DTMPIN EQU 3CH SCR86LP EQU 3DH CNVFTMP EQU 3EH SCR_FWD EQU 3FH ; DSP71R EQU 40H DSP70R EQU 41H DSP61R EQU 42H DSP60R EQU 43H DSP51R EQU 44H DSP50R EQU 45H DSP41R EQU 46H DSP40R EQU 47H DSP31R EQU 48H DSP30R EQU 49H DSP21R EQU 4AH DSP20R EQU 4BH DSP11R EQU 4CH DSP10R EQU 4DH DSP01R EQU 4EH DSP00R EQU 4FH DSP71G EQU 50H DSP70G EQU 51H DSP61G EQU 52H DSP60G EQU 53H DSP51G EQU 54H DSP50G EQU 55H DSP41G EQU 56H DSP40G EQU 57H DSP31G EQU 58H DSP30G EQU 59H DSP21G EQU 5AH DSP20G EQU 5BH DSP11G EQU 5CH DSP10G EQU 5DH DSP01G EQU 5EH DSP00G EQU 5FH DSPFNT7R EQU 60H DSPFNT7G EQU 61H DSPFNT6R EQU 62H DSPFNT6G EQU 63H DSPFNT5R EQU 64H DSPFNT5G EQU 65H DSPFNT4R EQU 66H DSPFNT4G EQU 67H DSPFNT3R EQU 68H DSPFNT3G EQU 69H DSPFNT2R EQU 6AH DSPFNT2G EQU 6BH DSPFNT1R EQU 6CH DSPFNT1G EQU 6DH DSPFNT0R EQU 6EH DSPFNT0G EQU 6FH ; ORG 0 GOTO START ORG 4 GOTO START ; ; ********************************** ; 1.Initialize ; ********************************** START ;(1)初期化(1) ; Bank0での設定 BCF STATUS,RP0 ; SET BANK0 CLRF PORTA ; PortAの初期化(Bank0) CLRF PORTB ; PortBの初期化 ; Bank1での設定 BSF STATUS,RP0 ; SET BANK1 MOVLW B'01111110' ; 内部OSC選択,内部OSCに8MHzを選択 MOVWF OSCCON MOVLW B'00000000' ; 全てをDegitalに設定 MOVWF ANSEL ; Degital Inputに設定(Bank1) MOVLW B'11111111' MOVWF TRISA ; PortAのI/O設定(Bank1) MOVLW B'00001111' MOVWF TRISB ; PortBのI/O設定(Bank1) ; Bank0に戻す BCF STATUS,RP0 ; SET BANK1 ; ; ; ********************************** ; 2.Main Program ; ********************************** ; (1)ENABLE DISPLAY CALL INT_DSP ; (2)CLEAR DISPLAY CALL CLRDSP ; (3)CLEAR VRAM CALL CLRVRM MAIN ; ************************ ; 左スクロールサンプル ; ************************ MOVLW SCROLL_LFT MOVWF SCR_FWD CALL DEMO1 CALL DEMO2 CALL DEMO3 CALL DEMO0 ; ************************ ; 右スクロールサンプル ; ************************ MOVLW SCROLL_RHT MOVWF SCR_FWD CALL DEMO1 CALL DEMO2 CALL DEMO3 CALL DEMO0 GOTO MAIN ;****************************************************************************************** ; Function Name : DEMO0 ; Title : クリア表示 ; Input : ; Output : ; Description : ;****************************************************************************************** DEMO0 ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR RETURN ;****************************************************************************************** ; Function Name : DEMO1 ; Title : A〜Zを赤緑交互に表示 ; Input : ; Output : ; Description : ;****************************************************************************************** DEMO1 ; **************************************************** ; 文字 ; **************************************************** MOVLW 'A' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'B' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'C' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'D' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'E' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'F' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'G' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'H' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'I' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'J' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'K' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'L' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'M' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'N' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'O' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'P' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'Q' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'R' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'S' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'T' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'U' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'V' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'W' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'X' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'Y' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW 'Z' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR RETURN ;****************************************************************************************** ; Function Name : DEMO2 ; Title : 0〜9を赤緑交互に表示 ; Input : ; Output : ; Description : ;****************************************************************************************** DEMO2 ; **************************************************** ; 文字 ; **************************************************** MOVLW '0' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW '1' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW '2' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW '3' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW '4' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW '5' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW '6' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW '7' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW '8' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW '9' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR RETURN ;****************************************************************************************** ; Function Name : DEMO3 ; Title : 赤緑を重ねて表示 ; Input : ; Output : ; Description : ;****************************************************************************************** DEMO3 ; **************************************************** ; 文字 ; **************************************************** MOVLW 'A' MOVWF R_CHAR MOVLW H'FC' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW 'a' MOVWF R_CHAR MOVLW 'A' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW '+' MOVWF R_CHAR MOVLW '/' MOVWF G_CHAR CALL DSPCHAR ; **************************************************** ; 文字 ; **************************************************** MOVLW ' ' MOVWF R_CHAR MOVLW ' ' MOVWF G_CHAR CALL DSPCHAR RETURN ;****************************************************************************************** ; Function Name : DSPCHAR ; Title : 文字の表示 ; Input : R_CHAR,G_CHAR ; Output : ; Description : ;****************************************************************************************** DSPCHAR ; 1.フォントをセット CALL CLRFNT CALL CLRFNTR MOVFW R_CHAR MOVWF DSPCOD CALL CNVCHRFR CALL CLRFNT CALL CLRFNTG MOVFW G_CHAR MOVWF DSPCOD CALL CNVCHRFG ; MOVLW H'06' MOVWF DSPCHARLP DSPCHAR_1 ; ; 2.スクロールさせる(1DOT) CALL SCR_86 ; ; 3.表示RAMに設定 CALL DSP_3242 ; ; 4.ラッチ(データを読み込ませる) CALL SET_LAT ; ; 5.ウエイト CALL WAT01 ; DECFSZ DSPCHARLP,F GOTO DSPCHAR_1 RETURN ;****************************************************************************************** ; Function Name : CLRVRM ; Title : 表示変数の初期化 ; Input : ; Output : ; Description : ;****************************************************************************************** CLRVRM CLRF DSP00R CLRF DSP01R CLRF DSP00G CLRF DSP01G CLRF DSP10R CLRF DSP11R CLRF DSP10G CLRF DSP11G CLRF DSP20R CLRF DSP21R CLRF DSP20G CLRF DSP21G CLRF DSP30R CLRF DSP31R CLRF DSP30G CLRF DSP31G CLRF DSP40R CLRF DSP41R CLRF DSP40G CLRF DSP41G CLRF DSP50R CLRF DSP51R CLRF DSP50G CLRF DSP51G CLRF DSP60R CLRF DSP61R CLRF DSP60G CLRF DSP61G CLRF DSP70R CLRF DSP71R CLRF DSP70G CLRF DSP71G RETURN ;****************************************************************************************** ; Function Name : CLRFNT ; Title : フォント変数の初期化 ; Input : ; Output : ; Description : ;****************************************************************************************** CLRFNT CLRF X1 CLRF X2 CLRF X3 CLRF X4 CLRF X5 CLRF X6 RETURN ;****************************************************************************************** ; Function Name : CLRFNTG ; Title : フォント変数2(GREEN)の初期化 ; Input : ; Output : ; Description : ;****************************************************************************************** CLRFNTG CLRF DSPFNT7G CLRF DSPFNT6G CLRF DSPFNT5G CLRF DSPFNT4G CLRF DSPFNT3G CLRF DSPFNT2G CLRF DSPFNT1G CLRF DSPFNT0G RETURN ;****************************************************************************************** ; Function Name : CLRFNTR ; Title : フォント変数2(RED)の初期化 ; Input : ; Output : ; Description : ;****************************************************************************************** CLRFNTR CLRF DSPFNT7R CLRF DSPFNT6R CLRF DSPFNT5R CLRF DSPFNT4R CLRF DSPFNT3R CLRF DSPFNT2R CLRF DSPFNT1R CLRF DSPFNT0R RETURN ;****************************************************************************************** ; Function Name : CLRDSP ; Title : 表示機の初期化(画面をクリアにする) ; Input : ; Output : ; Description : ;****************************************************************************************** CLRDSP BCF PORTB,IN_DATA ; MOVLW H'FF' MOVWF CLRLP0 CLRDSP1 CALL CLK_S DECFSZ CLRLP0,F GOTO CLRDSP1 ; CALL SET_LAT RETURN ;****************************************************************************************** ; Function Name : INT_DSP ; Title : 表示機の初期設定 ; Input : ; Output : ; Description : ;****************************************************************************************** INT_DSP BCF PORTB,ENABLE BSF PORTB,LATCH BSF PORTB,IN_DATA RETURN ;****************************************************************************************** ; Function Name : SET_LAT ; Title : データの読み込み(LATCH) ; Input : ; Output : ; Description : ;****************************************************************************************** SET_LAT BCF PORTB,LATCH NOP BSF PORTB,LATCH NOP RETURN ;****************************************************************************************** ; Function Name : CNVCHRFG ; Title : キャラクタをフォントに変換する(GREEN) ; Input : DSPCOD ; Output : DSPFNT0R,DSPFNT0G〜DSPFNT7R,DSPFNT7G ; Description : ;****************************************************************************************** CNVCHRFG ; 1.キャラクタをフォントに変換(DSPCOD=>X0〜X6) BSF PCLATH,3 BCF PCLATH,4 CALL SETFNT86 BCF PCLATH,3 BCF PCLATH,4 ; 2.フォントをフォント表示RAMに設定する CALL CNVFNTRAMG RETURN ;****************************************************************************************** ; Function Name : CNVCHRFR ; Title : キャラクタをフォントに変換する(RED) ; Input : DSPCOD ; Output : DSPFNT0R,DSPFNT0G〜DSPFNT7R,DSPFNT7G ; Description : ;****************************************************************************************** CNVCHRFR ; 1.キャラクタをフォントに変換(DSPCOD=>X0〜X6) BSF PCLATH,3 BCF PCLATH,4 CALL SETFNT86 BCF PCLATH,3 BCF PCLATH,4 ; 2.フォントをフォント表示RAMに設定する CALL CNVFNTRAMR RETURN ;****************************************************************************************** ; Function Name : CNVFNTRAMG ; Title : キャラクタをフォントに変換する(GREEN) ; Input : X0〜X6 ; Output : DSPFNT0R,DSPFNT0G〜DSPFNT7R,DSPFNT7G ; Description : ;****************************************************************************************** CNVFNTRAMG CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT7G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT6G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT5G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT4G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT3G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT2G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT1G CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT0G RETURN ;****************************************************************************************** ; Function Name : CNVFNTRAMR ; Title : キャラクタをフォントに変換する(RED) ; Input : X0〜X6 ; Output : DSPFNT0R,DSPFNT0G〜DSPFNT7R,DSPFNT7G ; Description : ;****************************************************************************************** CNVFNTRAMR CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT7R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT6R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT5R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT4R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT3R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT2R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT1R CALL CNVFNTRAMB MOVFW CNVFTMP MOVWF DSPFNT0R RETURN ;****************************************************************************************** ; Function Name : CNVFNTRAMB ; Title : Temporary ; Input : ; Output : CNVFTMP ; Description : ;****************************************************************************************** CNVFNTRAMB BTFSS X1,0 BCF CNVFTMP,5 BTFSC X1,0 BSF CNVFTMP,5 BTFSS X2,0 BCF CNVFTMP,4 BTFSC X2,0 BSF CNVFTMP,4 BTFSS X3,0 BCF CNVFTMP,3 BTFSC X3,0 BSF CNVFTMP,3 BTFSS X4,0 BCF CNVFTMP,2 BTFSC X4,0 BSF CNVFTMP,2 BTFSS X5,0 BCF CNVFTMP,1 BTFSC X5,0 BSF CNVFTMP,1 BTFSS X6,0 BCF CNVFTMP,0 BTFSC X6,0 BSF CNVFTMP,0 ; RRF X1 RRF X2 RRF X3 RRF X4 RRF X5 RRF X6 RETURN ;****************************************************************************************** ; Function Name : SCR_86 ; Title : 8*6フォントの左右スクロール ; Input : ; Output : ; Description : SCR_FWDが0の時に右スクロール、それ以外の時は左スクロールする ;****************************************************************************************** SCR_86 MOVFW DSP71R MOVWF DTMP1 MOVFW DSP70R MOVWF DTMP0 MOVFW DSPFNT7R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP71R MOVFW DTMP0 MOVWF DSP70R MOVFW DTMPIN MOVWF DSPFNT7R MOVFW DSP71G MOVWF DTMP1 MOVFW DSP70G MOVWF DTMP0 MOVFW DSPFNT7G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP71G MOVFW DTMP0 MOVWF DSP70G MOVFW DTMPIN MOVWF DSPFNT7G ; ; ; MOVFW DSP61R MOVWF DTMP1 MOVFW DSP60R MOVWF DTMP0 MOVFW DSPFNT6R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP61R MOVFW DTMP0 MOVWF DSP60R MOVFW DTMPIN MOVWF DSPFNT6R MOVFW DSP61G MOVWF DTMP1 MOVFW DSP60G MOVWF DTMP0 MOVFW DSPFNT6G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP61G MOVFW DTMP0 MOVWF DSP60G MOVFW DTMPIN MOVWF DSPFNT6G ; ; ; MOVFW DSP51R MOVWF DTMP1 MOVFW DSP50R MOVWF DTMP0 MOVFW DSPFNT5R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP51R MOVFW DTMP0 MOVWF DSP50R MOVFW DTMPIN MOVWF DSPFNT5R MOVFW DSP51G MOVWF DTMP1 MOVFW DSP50G MOVWF DTMP0 MOVFW DSPFNT5G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP51G MOVFW DTMP0 MOVWF DSP50G MOVFW DTMPIN MOVWF DSPFNT5G ; ; ; MOVFW DSP41R MOVWF DTMP1 MOVFW DSP40R MOVWF DTMP0 MOVFW DSPFNT4R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP41R MOVFW DTMP0 MOVWF DSP40R MOVFW DTMPIN MOVWF DSPFNT4R MOVFW DSP41G MOVWF DTMP1 MOVFW DSP40G MOVWF DTMP0 MOVFW DSPFNT4G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP41G MOVFW DTMP0 MOVWF DSP40G MOVFW DTMPIN MOVWF DSPFNT4G ; ; ; MOVFW DSP31R MOVWF DTMP1 MOVFW DSP30R MOVWF DTMP0 MOVFW DSPFNT3R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP31R MOVFW DTMP0 MOVWF DSP30R MOVFW DTMPIN MOVWF DSPFNT3R MOVFW DSP31G MOVWF DTMP1 MOVFW DSP30G MOVWF DTMP0 MOVFW DSPFNT3G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP31G MOVFW DTMP0 MOVWF DSP30G MOVFW DTMPIN MOVWF DSPFNT3G ; ; ; MOVFW DSP21R MOVWF DTMP1 MOVFW DSP20R MOVWF DTMP0 MOVFW DSPFNT2R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP21R MOVFW DTMP0 MOVWF DSP20R MOVFW DTMPIN MOVWF DSPFNT2R MOVFW DSP21G MOVWF DTMP1 MOVFW DSP20G MOVWF DTMP0 MOVFW DSPFNT2G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP21G MOVFW DTMP0 MOVWF DSP20G MOVFW DTMPIN MOVWF DSPFNT2G ; ; ; MOVFW DSP11R MOVWF DTMP1 MOVFW DSP10R MOVWF DTMP0 MOVFW DSPFNT1R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP11R MOVFW DTMP0 MOVWF DSP10R MOVFW DTMPIN MOVWF DSPFNT1R MOVFW DSP11G MOVWF DTMP1 MOVFW DSP10G MOVWF DTMP0 MOVFW DSPFNT1G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP11G MOVFW DTMP0 MOVWF DSP10G MOVFW DTMPIN MOVWF DSPFNT1G ; ; ; MOVFW DSP01R MOVWF DTMP1 MOVFW DSP00R MOVWF DTMP0 MOVFW DSPFNT0R MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP01R MOVFW DTMP0 MOVWF DSP00R MOVFW DTMPIN MOVWF DSPFNT0R MOVFW DSP01G MOVWF DTMP1 MOVFW DSP00G MOVWF DTMP0 MOVFW DSPFNT0G MOVWF DTMPIN CALL SCR_86_B MOVFW DTMP1 MOVWF DSP01G MOVFW DTMP0 MOVWF DSP00G MOVFW DTMPIN MOVWF DSPFNT0G ; ; RETURN ;****************************************************************************************** ; Function Name : SCR_86_B ; Title : ; Input : Temporary ; Output : ; Description : ;****************************************************************************************** SCR_86_B BTFSS SCR_FWD,0 GOTO SCR_86L_B ; ; MOVLW H'06' ; MOVWF SCR86LP ;SCR_86_B1 RRF DTMP0 BTFSS DTMP1,0 BCF DTMP0,7 BTFSC DTMP1,0 BSF DTMP0,7 ; RRF DTMP1 BTFSS DTMPIN,0 BCF DTMP1,7 BTFSC DTMPIN,0 BSF DTMP1,7 ; RRF DTMPIN ; ; DECFSZ SCR86LP,F ; GOTO SCR_86_B1 RETURN SCR_86L_B ; MOVLW H'06' ; MOVWF SCR86LP ;SCR_86L_B1 RLF DTMP1 BTFSS DTMP0,7 BCF DTMP1,0 BTFSC DTMP0,7 BSF DTMP1,0 ; RLF DTMP0 BTFSS DTMPIN,5 BCF DTMP0,0 BTFSC DTMPIN,5 BSF DTMP0,0 ; RLF DTMPIN ; ; DECFSZ SCR86LP,F ; GOTO SCR_86L_B1 RETURN ;****************************************************************************************** ; Function Name : DSP_3242 ; Title : 32個*4段*2色のLEDを設定 ; Input : DSP71R,DSP70R,DSP61R,DSP60R,DSP51R,DSP50R,DSP41R,DSP40R ; DSP31R,DSP30R,DSP21R,DSP20R,DSP11R,DSP10R,DSP01R,DSP00R ; DSP71G,DSP70G,DSP61G,DSP60G,DSP51G,DSP50G,DSP41G,DSP40G ; DSP31G,DSP30G,DSP21G,DSP20G,DSP11G,DSP10G,DSP01G,DSP00G ; Output : ; Tmporary : SFT_DAT11,SFT_DAT10,SFT_DAT01,SFT_DAT00 ; Description : ;****************************************************************************************** DSP_3242 ; Green MOVFW DSP11G MOVWF SFT_DAT11 MOVFW DSP10G MOVWF SFT_DAT01 MOVFW DSP01G MOVWF SFT_DAT10 MOVFW DSP00G MOVWF SFT_DAT00 CALL SFT_REC32 ; Red MOVFW DSP11R MOVWF SFT_DAT11 MOVFW DSP10R MOVWF SFT_DAT01 MOVFW DSP01R MOVWF SFT_DAT10 MOVFW DSP00R MOVWF SFT_DAT00 CALL SFT_REC32 ; ; ; Green MOVFW DSP31G MOVWF SFT_DAT11 MOVFW DSP30G MOVWF SFT_DAT01 MOVFW DSP21G MOVWF SFT_DAT10 MOVFW DSP20G MOVWF SFT_DAT00 CALL SFT_REC32 ; Red MOVFW DSP31R MOVWF SFT_DAT11 MOVFW DSP30R MOVWF SFT_DAT01 MOVFW DSP21R MOVWF SFT_DAT10 MOVFW DSP20R MOVWF SFT_DAT00 CALL SFT_REC32 ; ; ; Green MOVFW DSP51G MOVWF SFT_DAT11 MOVFW DSP50G MOVWF SFT_DAT01 MOVFW DSP41G MOVWF SFT_DAT10 MOVFW DSP40G MOVWF SFT_DAT00 CALL SFT_REC32 ; Red MOVFW DSP51R MOVWF SFT_DAT11 MOVFW DSP50R MOVWF SFT_DAT01 MOVFW DSP41R MOVWF SFT_DAT10 MOVFW DSP40R MOVWF SFT_DAT00 CALL SFT_REC32 ; ; ; Green MOVFW DSP71G MOVWF SFT_DAT11 MOVFW DSP70G MOVWF SFT_DAT01 MOVFW DSP61G MOVWF SFT_DAT10 MOVFW DSP60G MOVWF SFT_DAT00 CALL SFT_REC32 ; Red MOVFW DSP71R MOVWF SFT_DAT11 MOVFW DSP70R MOVWF SFT_DAT01 MOVFW DSP61R MOVWF SFT_DAT10 MOVFW DSP60R MOVWF SFT_DAT00 CALL SFT_REC32 ; ; RETURN ;****************************************************************************************** ; Function Name : SFT_REC32 ; Title : 32個のLEDを設定 ; Input : SFT_DAT11(32),SFT_DAT10(31),SFT_DAT01(16),SFT_DAT00(15) ; Output : ; Description : ;****************************************************************************************** SFT_REC32 ; ******************************** ; 1.SFT_DAT01,SFT_DAT00を送信 ; ******************************** MOVLW H'08' MOVWF SFT32_LP0 SFT_REC32_1 BTFSS SFT_DAT01,0 ; ビットデータが0の時, 0を立てる BCF PORTB,IN_DATA BTFSC SFT_DAT01,0 ; ビットデータが1の時, 1を立てる BSF PORTB,IN_DATA CALL CLK_S ; BTFSS SFT_DAT00,0 ; ビットデータが0の時, 0を立てる BCF PORTB,IN_DATA BTFSC SFT_DAT00,0 ; ビットデータが1の時, 1を立てる BSF PORTB,IN_DATA CALL CLK_S ; RRF SFT_DAT01 RRF SFT_DAT00 ; DECFSZ SFT32_LP0,F GOTO SFT_REC32_1 ; ; ******************************** ; 2.SFT_DAT11,SFT_DAT10を送信 ; ******************************** MOVLW H'08' MOVWF SFT32_LP0 SFT_REC32_2 BTFSS SFT_DAT11,0 ; ビットデータが0の時, 0を立てる BCF PORTB,IN_DATA BTFSC SFT_DAT11,0 ; ビットデータが1の時, 1を立てる BSF PORTB,IN_DATA CALL CLK_S ; BTFSS SFT_DAT10,0 ; ビットデータが0の時, 0を立てる BCF PORTB,IN_DATA BTFSC SFT_DAT10,0 ; ビットデータが1の時, 1を立てる BSF PORTB,IN_DATA CALL CLK_S ; RRF SFT_DAT11 RRF SFT_DAT10 ; DECFSZ SFT32_LP0,F GOTO SFT_REC32_2 RETURN ;****************************************************************************************** ; Function Name : SFT_REC ; Title : 1バイトのデータ設定 ; Input : SFT_DAT ; Output : ; Description : ;****************************************************************************************** SFT_REC MOVLW H'08' MOVWF SFT_LP0 SFT_REC1 BTFSS SFT_DAT,0 ; ビットデータが0の時, 0を立てる BCF PORTB,IN_DATA BTFSC SFT_DAT,0 ; ビットデータが1の時, 1を立てる BSF PORTB,IN_DATA RRF SFT_DAT CALL CLK_S DECFSZ SFT_LP0,F GOTO SFT_REC1 RETURN ;****************************************************************************************** ; Function Name : CLK_S ; Title : 1クロックを与える ; Input : ; Output : ; Description : 10μS以上 0.000010[S]/(1/(8MHz/4))/2 ==> 10(STEP)以上 ;****************************************************************************************** CLK_S BSF PORTB,CLOCK MOVLW H'05' MOVWF CLK_LP CLK_S1 NOP DECFSZ CLK_LP,F GOTO CLK_S1 BCF PORTB,CLOCK ; MOVLW H'05' MOVWF CLK_LP CLK_S2 NOP DECFSZ CLK_LP,F GOTO CLK_S2 RETURN ;****************************************************************************************** ; Function Name : WAT05 ; Title : About 0.5秒タイマー ; Input : ; Output : ; Description : ;****************************************************************************************** WAT05 CALL WAT01 CALL WAT01 CALL WAT01 CALL WAT01 CALL WAT01 RETURN ;****************************************************************************************** ; Function Name : WAT01 ; Title : About 0.1秒タイマー ; Input : ; Output : ; Description : 8MHz/4 ==(200)==> 10KHz ==(100)==> 100Hz ==(10)==>10Hz ;****************************************************************************************** WAT01 MOVLW 10 MOVWF LPWAT012 WAT012 MOVLW 100 MOVWF LPWAT011 WAT011 MOVLW 20 MOVWF LPWAT010 WAT010 NOP NOP NOP NOP NOP NOP NOP NOP DECFSZ LPWAT010,F GOTO WAT010 DECFSZ LPWAT011,F GOTO WAT011 DECFSZ LPWAT012,F GOTO WAT012 RETURN ;****************************************************************************************** ; Function Name : SETFNT86 ; Title : 文字コードを指定して、フォントをセットする(8*6) ; Input : W-reg ; Output : ; Description : ;****************************************************************************************** ORG 0x0800 SETFNT86 MOVF DSPCOD,W MOVWF CHR CLRF X6 ; ; **************** ; 0-9 ; **************** ; MOVF CHR,W XORLW '0' BTFSS STATUS,Z GOTO SETFNT1 MOVLW B'00000000' MOVWF X1 MOVLW B'00111110' MOVWF X2 MOVLW B'01000001' MOVWF X3 MOVLW B'00111110' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNT1 MOVF CHR,W XORLW '1' BTFSS STATUS,Z GOTO SETFNT2 MOVLW B'00000000' MOVWF X1 MOVLW B'01000010' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNT2 MOVF CHR,W XORLW '2' BTFSS STATUS,Z GOTO SETFNT3 MOVLW B'01000010' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01100001' MOVWF X3 MOVLW B'01010001' MOVWF X4 MOVLW B'01001110' MOVWF X5 RETURN ; SETFNT3 MOVF CHR,W XORLW '3' BTFSS STATUS,Z GOTO SETFNT4 MOVLW B'00100010' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110110' MOVWF X5 RETURN ; SETFNT4 MOVF CHR,W XORLW '4' BTFSS STATUS,Z GOTO SETFNT5 MOVLW B'00111100' MOVWF X1 MOVLW B'00100010' MOVWF X2 MOVLW B'00100001' MOVWF X3 MOVLW B'01111111' MOVWF X4 MOVLW B'00100000' MOVWF X5 RETURN ; SETFNT5 MOVF CHR,W XORLW '5' BTFSS STATUS,Z GOTO SETFNT6 MOVLW B'01001111' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110000' MOVWF X5 RETURN ; SETFNT6 MOVF CHR,W XORLW '6' BTFSS STATUS,Z GOTO SETFNT7 MOVLW B'00111110' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110000' MOVWF X5 RETURN ; SETFNT7 MOVF CHR,W XORLW '7' BTFSS STATUS,Z GOTO SETFNT8 MOVLW B'00000001' MOVWF X1 MOVLW B'00000001' MOVWF X2 MOVLW B'01110001' MOVWF X3 MOVLW B'00001001' MOVWF X4 MOVLW B'00000111' MOVWF X5 RETURN ; SETFNT8 MOVF CHR,W XORLW '8' BTFSS STATUS,Z GOTO SETFNT9 MOVLW B'00110110' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110110' MOVWF X5 RETURN ; SETFNT9 MOVF CHR,W XORLW '9' BTFSS STATUS,Z GOTO SETFNTA MOVLW B'00100110' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; **************** ; A-Z ; **************** ; SETFNTA MOVF CHR,W XORLW 'A' BTFSS STATUS,Z GOTO SETFNTB MOVLW B'01111100' MOVWF X1 MOVLW B'00010010' MOVWF X2 MOVLW B'00010001' MOVWF X3 MOVLW B'00010010' MOVWF X4 MOVLW B'01111100' MOVWF X5 RETURN ; SETFNTB MOVF CHR,W XORLW 'B' BTFSS STATUS,Z GOTO SETFNTC MOVLW B'01111111' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110110' MOVWF X5 RETURN ; SETFNTC MOVF CHR,W XORLW 'C' BTFSS STATUS,Z GOTO SETFNTD MOVLW B'00111110' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01000001' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00100010' MOVWF X5 RETURN ; SETFNTD MOVF CHR,W XORLW 'D' BTFSS STATUS,Z GOTO SETFNTE MOVLW B'01111111' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01000001' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTE MOVF CHR,W XORLW 'E' BTFSS STATUS,Z GOTO SETFNTF MOVLW B'01111111' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'01001001' MOVWF X5 RETURN ; SETFNTF MOVF CHR,W XORLW 'F' BTFSS STATUS,Z GOTO SETFNTG MOVLW B'01111111' MOVWF X1 MOVLW B'00001001' MOVWF X2 MOVLW B'00001001' MOVWF X3 MOVLW B'00001001' MOVWF X4 MOVLW B'00001001' MOVWF X5 RETURN ; SETFNTG MOVF CHR,W XORLW 'G' BTFSS STATUS,Z GOTO SETFNTH MOVLW B'00111110' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'01111010' MOVWF X5 RETURN ; SETFNTH MOVF CHR,W XORLW 'H' BTFSS STATUS,Z GOTO SETFNTI MOVLW B'01111111' MOVWF X1 MOVLW B'00001000' MOVWF X2 MOVLW B'00001000' MOVWF X3 MOVLW B'00001000' MOVWF X4 MOVLW B'01111111' MOVWF X5 RETURN ; SETFNTI MOVF CHR,W XORLW 'I' BTFSS STATUS,Z GOTO SETFNTJ MOVLW B'00000000' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTJ MOVF CHR,W XORLW 'J' BTFSS STATUS,Z GOTO SETFNTK MOVLW B'00100000' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00111111' MOVWF X5 RETURN ; SETFNTK MOVF CHR,W XORLW 'K' BTFSS STATUS,Z GOTO SETFNTL MOVLW B'01111111' MOVWF X1 MOVLW B'00001000' MOVWF X2 MOVLW B'00010100' MOVWF X3 MOVLW B'00100010' MOVWF X4 MOVLW B'01000001' MOVWF X5 RETURN ; SETFNTL MOVF CHR,W XORLW 'L' BTFSS STATUS,Z GOTO SETFNTM MOVLW B'01111111' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTM MOVF CHR,W XORLW 'M' BTFSS STATUS,Z GOTO SETFNTN MOVLW B'01111111' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'00011100' MOVWF X3 MOVLW B'00000010' MOVWF X4 MOVLW B'01111111' MOVWF X5 RETURN ; SETFNTN MOVF CHR,W XORLW 'N' BTFSS STATUS,Z GOTO SETFNTO MOVLW B'01111111' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'00001000' MOVWF X3 MOVLW B'00100000' MOVWF X4 MOVLW B'01111111' MOVWF X5 RETURN ; SETFNTO MOVF CHR,W XORLW 'O' BTFSS STATUS,Z GOTO SETFNTP MOVLW B'00111110' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01000001' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTP MOVF CHR,W XORLW 'P' BTFSS STATUS,Z GOTO SETFNTQ MOVLW B'01111111' MOVWF X1 MOVLW B'00001001' MOVWF X2 MOVLW B'00001001' MOVWF X3 MOVLW B'00001001' MOVWF X4 MOVLW B'00000110' MOVWF X5 RETURN ; SETFNTQ MOVF CHR,W XORLW 'Q' BTFSS STATUS,Z GOTO SETFNTR MOVLW B'00111110' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'01010001' MOVWF X3 MOVLW B'00111110' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTR MOVF CHR,W XORLW 'R' BTFSS STATUS,Z GOTO SETFNTS MOVLW B'01111111' MOVWF X1 MOVLW B'00001001' MOVWF X2 MOVLW B'00011001' MOVWF X3 MOVLW B'00101001' MOVWF X4 MOVLW B'01000110' MOVWF X5 RETURN ; SETFNTS MOVF CHR,W XORLW 'S' BTFSS STATUS,Z GOTO SETFNTT MOVLW B'00100110' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00110010' MOVWF X5 RETURN ; SETFNTT MOVF CHR,W XORLW 'T' BTFSS STATUS,Z GOTO SETFNTU MOVLW B'00000001' MOVWF X1 MOVLW B'00000001' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00000001' MOVWF X4 MOVLW B'00000001' MOVWF X5 RETURN ; SETFNTU MOVF CHR,W XORLW 'U' BTFSS STATUS,Z GOTO SETFNTV MOVLW B'00111111' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00111111' MOVWF X5 RETURN ; SETFNTV MOVF CHR,W XORLW 'V' BTFSS STATUS,Z GOTO SETFNTW MOVLW B'00011111' MOVWF X1 MOVLW B'00100000' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'00100000' MOVWF X4 MOVLW B'00011111' MOVWF X5 RETURN ; SETFNTW MOVF CHR,W XORLW 'W' BTFSS STATUS,Z GOTO SETFNTX MOVLW B'00111111' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'00111111' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00111111' MOVWF X5 RETURN ; SETFNTX MOVF CHR,W XORLW 'X' BTFSS STATUS,Z GOTO SETFNTY MOVLW B'01000001' MOVWF X1 MOVLW B'00100010' MOVWF X2 MOVLW B'00011100' MOVWF X3 MOVLW B'00100010' MOVWF X4 MOVLW B'01000001' MOVWF X5 RETURN ; SETFNTY MOVF CHR,W XORLW 'Y' BTFSS STATUS,Z GOTO SETFNTZ MOVLW B'00000001' MOVWF X1 MOVLW B'00000100' MOVWF X2 MOVLW B'01110000' MOVWF X3 MOVLW B'00000100' MOVWF X4 MOVLW B'00000001' MOVWF X5 RETURN ; SETFNTZ MOVF CHR,W XORLW 'Z' BTFSS STATUS,Z GOTO SETFNTKNNA MOVLW B'01100001' MOVWF X1 MOVLW B'01010001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01000101' MOVWF X4 MOVLW B'01000011' MOVWF X5 RETURN ; **************** ; カナ文字 ; **************** ; SETFNTKNNA ; MOVF CHR,W XORLW 'ア' BTFSS STATUS,Z GOTO SETFNTKNNI MOVLW B'00000001' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'00111101' MOVWF X3 MOVLW B'00001001' MOVWF X4 MOVLW B'00000111' MOVWF X5 RETURN ; SETFNTKNNI MOVF CHR,W XORLW 'イ' BTFSS STATUS,Z GOTO SETFNTKNNU MOVLW B'00100000' MOVWF X1 MOVLW B'00010000' MOVWF X2 MOVLW B'01111100' MOVWF X3 MOVLW B'00000011' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNU ; MOVF CHR,W XORLW 'ウ' BTFSS STATUS,Z GOTO SETFNTKNNE MOVLW B'00000110' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'01000011' MOVWF X3 MOVLW B'00100010' MOVWF X4 MOVLW B'00011110' MOVWF X5 RETURN ; SETFNTKNNE ; MOVF CHR,W XORLW 'エ' BTFSS STATUS,Z GOTO SETFNTKNNO MOVLW B'01000000' MOVWF X1 MOVLW B'01000010' MOVWF X2 MOVLW B'01111110' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTKNNO MOVF CHR,W XORLW 'オ' BTFSS STATUS,Z GOTO SETFNTKNNKA MOVLW B'00100010' MOVWF X1 MOVLW B'00010010' MOVWF X2 MOVLW B'00001010' MOVWF X3 MOVLW B'01111111' MOVWF X4 MOVLW B'00000010' MOVWF X5 RETURN ; SETFNTKNNKA MOVF CHR,W XORLW 'カ' BTFSS STATUS,Z GOTO SETFNTKNNKI MOVLW B'01000010' MOVWF X1 MOVLW B'00111111' MOVWF X2 MOVLW B'00000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTKNNKI MOVF CHR,W XORLW 'キ' BTFSS STATUS,Z GOTO SETFNTKNNKU MOVLW B'00001010' MOVWF X1 MOVLW B'00001010' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00001010' MOVWF X4 MOVLW B'00001010' MOVWF X5 RETURN ; SETFNTKNNKU MOVF CHR,W XORLW 'ク' BTFSS STATUS,Z GOTO SETFNTKNNKE MOVLW B'00000100' MOVWF X1 MOVLW B'00000011' MOVWF X2 MOVLW B'01000001' MOVWF X3 MOVLW B'00100001' MOVWF X4 MOVLW B'00011111' MOVWF X5 RETURN ; SETFNTKNNKE MOVF CHR,W XORLW 'ケ' BTFSS STATUS,Z GOTO SETFNTKNNKO MOVLW B'00001000' MOVWF X1 MOVLW B'00000111' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'00111110' MOVWF X4 MOVLW B'00000010' MOVWF X5 RETURN ; SETFNTKNNKO MOVF CHR,W XORLW 'コ' BTFSS STATUS,Z GOTO SETFNTKNNSA MOVLW B'01000010' MOVWF X1 MOVLW B'01000010' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'01111110' MOVWF X5 RETURN ; SETFNTKNNSA MOVF CHR,W XORLW 'サ' BTFSS STATUS,Z GOTO SETFNTKNNSI MOVLW B'00000010' MOVWF X1 MOVLW B'00001111' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'00111111' MOVWF X4 MOVLW B'00000010' MOVWF X5 RETURN ; SETFNTKNNSI MOVF CHR,W XORLW 'シ' BTFSS STATUS,Z GOTO SETFNTKNNSU MOVLW B'00001010' MOVWF X1 MOVLW B'00010100' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTKNNSU MOVF CHR,W XORLW 'ス' BTFSS STATUS,Z GOTO SETFNTKNNSE MOVLW B'01000010' MOVWF X1 MOVLW B'00100010' MOVWF X2 MOVLW B'00011010' MOVWF X3 MOVLW B'00100110' MOVWF X4 MOVLW B'01000010' MOVWF X5 RETURN ; SETFNTKNNSE MOVF CHR,W XORLW 'セ' BTFSS STATUS,Z GOTO SETFNTKNNSO MOVLW B'00000100' MOVWF X1 MOVLW B'01111111' MOVWF X2 MOVLW B'01000100' MOVWF X3 MOVLW B'01000100' MOVWF X4 MOVLW B'01011100' MOVWF X5 RETURN ; SETFNTKNNSO MOVF CHR,W XORLW 'ソ' BTFSS STATUS,Z GOTO SETFNTKNNTA MOVLW B'00000010' MOVWF X1 MOVLW B'00000100' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'00100000' MOVWF X4 MOVLW B'00011110' MOVWF X5 RETURN ; SETFNTKNNTA MOVF CHR,W XORLW 'タ' BTFSS STATUS,Z GOTO SETFNTKNNTH MOVLW B'00001000' MOVWF X1 MOVLW B'00000110' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'00100001' MOVWF X4 MOVLW B'00011111' MOVWF X5 RETURN ; SETFNTKNNTH MOVF CHR,W XORLW 'チ' BTFSS STATUS,Z GOTO SETFNTKNNTU MOVLW B'00001000' MOVWF X1 MOVLW B'01001010' MOVWF X2 MOVLW B'00111111' MOVWF X3 MOVLW B'00001001' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTKNNTU MOVF CHR,W XORLW 'ツ' BTFSS STATUS,Z GOTO SETFNTKNNTE MOVLW B'00000100' MOVWF X1 MOVLW B'00001000' MOVWF X2 MOVLW B'00000100' MOVWF X3 MOVLW B'01001000' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTKNNTE MOVF CHR,W XORLW 'テ' BTFSS STATUS,Z GOTO SETFNTKNNTO MOVLW B'00000100' MOVWF X1 MOVLW B'01000101' MOVWF X2 MOVLW B'00111101' MOVWF X3 MOVLW B'00000101' MOVWF X4 MOVLW B'00000100' MOVWF X5 RETURN ; SETFNTKNNTO MOVF CHR,W XORLW 'ト' BTFSS STATUS,Z GOTO SETFNTKNNNA MOVLW B'00000000' MOVWF X1 MOVLW B'01111111' MOVWF X2 MOVLW B'00001000' MOVWF X3 MOVLW B'00010000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNNA MOVF CHR,W XORLW 'ナ' BTFSS STATUS,Z GOTO SETFNTKNNNI MOVLW B'00000100' MOVWF X1 MOVLW B'00000100' MOVWF X2 MOVLW B'01000100' MOVWF X3 MOVLW B'00111111' MOVWF X4 MOVLW B'00000100' MOVWF X5 RETURN ; SETFNTKNNNI MOVF CHR,W XORLW 'ニ' BTFSS STATUS,Z GOTO SETFNTKNNNU MOVLW B'01000000' MOVWF X1 MOVLW B'01000010' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTKNNNU MOVF CHR,W XORLW 'ヌ' BTFSS STATUS,Z GOTO SETFNTKNNNE MOVLW B'01000010' MOVWF X1 MOVLW B'00101010' MOVWF X2 MOVLW B'00010010' MOVWF X3 MOVLW B'00101010' MOVWF X4 MOVLW B'01000110' MOVWF X5 RETURN ; SETFNTKNNNE MOVF CHR,W XORLW 'ネ' BTFSS STATUS,Z GOTO SETFNTKNNNO MOVLW B'00100010' MOVWF X1 MOVLW B'00010010' MOVWF X2 MOVLW B'01111011' MOVWF X3 MOVLW B'00010110' MOVWF X4 MOVLW B'00100010' MOVWF X5 RETURN ; SETFNTKNNNO MOVF CHR,W XORLW 'ノ' BTFSS STATUS,Z GOTO SETFNTKNNHA MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'00111111' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNHA MOVF CHR,W XORLW 'ハ' BTFSS STATUS,Z GOTO SETFNTKNNHI MOVLW B'01100000' MOVWF X1 MOVLW B'00011110' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00011110' MOVWF X4 MOVLW B'01100000' MOVWF X5 RETURN ; SETFNTKNNHI MOVF CHR,W XORLW 'ヒ' BTFSS STATUS,Z GOTO SETFNTKNNHU MOVLW B'00111110' MOVWF X1 MOVLW B'01001000' MOVWF X2 MOVLW B'01001000' MOVWF X3 MOVLW B'01001000' MOVWF X4 MOVLW B'01001000' MOVWF X5 RETURN ; SETFNTKNNHU MOVF CHR,W XORLW 'フ' BTFSS STATUS,Z GOTO SETFNTKNNHE MOVLW B'00000010' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTKNNHE MOVF CHR,W XORLW 'ヘ' BTFSS STATUS,Z GOTO SETFNTKNNHO MOVLW B'00001000' MOVWF X1 MOVLW B'00000100' MOVWF X2 MOVLW B'00000100' MOVWF X3 MOVLW B'00001000' MOVWF X4 MOVLW B'00010000' MOVWF X5 RETURN ; SETFNTKNNHO MOVF CHR,W XORLW 'ホ' BTFSS STATUS,Z GOTO SETFNTKNNMA MOVLW B'00110010' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00000010' MOVWF X4 MOVLW B'00110010' MOVWF X5 RETURN ; SETFNTKNNMA MOVF CHR,W XORLW 'マ' BTFSS STATUS,Z GOTO SETFNTKNNMI MOVLW B'00000010' MOVWF X1 MOVLW B'00001010' MOVWF X2 MOVLW B'00010010' MOVWF X3 MOVLW B'00101010' MOVWF X4 MOVLW B'01000110' MOVWF X5 RETURN ; SETFNTKNNMI MOVF CHR,W XORLW 'ミ' BTFSS STATUS,Z GOTO SETFNTKNNMU MOVLW B'00000000' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'01001001' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNMU MOVF CHR,W XORLW 'ム' BTFSS STATUS,Z GOTO SETFNTKNNME MOVLW B'01110000' MOVWF X1 MOVLW B'01001111' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'00110000' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTKNNME MOVF CHR,W XORLW 'メ' BTFSS STATUS,Z GOTO SETFNTKNNMO MOVLW B'01000000' MOVWF X1 MOVLW B'00101000' MOVWF X2 MOVLW B'00011111' MOVWF X3 MOVLW B'00100000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNMO MOVF CHR,W XORLW 'モ' BTFSS STATUS,Z GOTO SETFNTKNNYA MOVLW B'00001010' MOVWF X1 MOVLW B'01111110' MOVWF X2 MOVLW B'01001010' MOVWF X3 MOVLW B'01001010' MOVWF X4 MOVLW B'01001010' MOVWF X5 RETURN ; SETFNTKNNYA MOVF CHR,W XORLW 'ヤ' BTFSS STATUS,Z GOTO SETFNTKNNYU MOVLW B'00000100' MOVWF X1 MOVLW B'01111111' MOVWF X2 MOVLW B'00000100' MOVWF X3 MOVLW B'00010100' MOVWF X4 MOVLW B'00001100' MOVWF X5 RETURN ; SETFNTKNNYU MOVF CHR,W XORLW 'ユ' BTFSS STATUS,Z GOTO SETFNTKNNYO MOVLW B'01000000' MOVWF X1 MOVLW B'01000100' MOVWF X2 MOVLW B'01000100' MOVWF X3 MOVLW B'01111100' MOVWF X4 MOVLW B'01000000' MOVWF X5 RETURN ; SETFNTKNNYO MOVF CHR,W XORLW 'ヨ' BTFSS STATUS,Z GOTO SETFNTKNNRA MOVLW B'00000000' MOVWF X1 MOVLW B'01010100' MOVWF X2 MOVLW B'01010100' MOVWF X3 MOVLW B'01111100' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNNRA MOVF CHR,W XORLW 'ラ' BTFSS STATUS,Z GOTO SETFNTKNNRI MOVLW B'00000100' MOVWF X1 MOVLW B'00000101' MOVWF X2 MOVLW B'01000101' MOVWF X3 MOVLW B'01000101' MOVWF X4 MOVLW B'00111100' MOVWF X5 RETURN ; SETFNTKNNRI MOVF CHR,W XORLW 'リ' BTFSS STATUS,Z GOTO SETFNTKNNRU MOVLW B'00000000' MOVWF X1 MOVLW B'00001111' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00111111' MOVWF X5 RETURN ; SETFNTKNNRU MOVF CHR,W XORLW 'ル' BTFSS STATUS,Z GOTO SETFNTKNNRE MOVLW B'01111111' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00100000' MOVWF X5 RETURN ; SETFNTKNNRE MOVF CHR,W XORLW 'レ' BTFSS STATUS,Z GOTO SETFNTKNNRO MOVLW B'00000000' MOVWF X1 MOVLW B'01111111' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'01000000' MOVWF X4 MOVLW B'00100000' MOVWF X5 RETURN ; SETFNTKNNRO MOVF CHR,W XORLW 'ロ' BTFSS STATUS,Z GOTO SETFNTKNNWA MOVLW B'00000000' MOVWF X1 MOVLW B'01111110' MOVWF X2 MOVLW B'01000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'01111110' MOVWF X5 RETURN ; SETFNTKNNWA MOVF CHR,W XORLW 'ワ' BTFSS STATUS,Z GOTO SETFNTKNNN MOVLW B'00000000' MOVWF X1 MOVLW B'00001110' MOVWF X2 MOVLW B'00000010' MOVWF X3 MOVLW B'01000010' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTKNNN MOVF CHR,W XORLW 'ン' BTFSS STATUS,Z GOTO SETFNTKNTN MOVLW B'00000010' MOVWF X1 MOVLW B'00000100' MOVWF X2 MOVLW B'01000000' MOVWF X3 MOVLW B'00110000' MOVWF X4 MOVLW B'00001110' MOVWF X5 RETURN ; SETFNTKNTN MOVF CHR,W XORLW '゙' BTFSS STATUS,Z GOTO SETFNTKNKN MOVLW B'00000111' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00000111' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTKNKN MOVF CHR,W XORLW '゚' BTFSS STATUS,Z GOTO SETFNTSPP MOVLW B'00000111' MOVWF X1 MOVLW B'00000101' MOVWF X2 MOVLW B'00000111' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; ; **************** ; ELSE ; **************** ; SETFNTSPP MOVF CHR,W XORLW ' ' BTFSS STATUS,Z GOTO SETFNTSU MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTSU MOVF CHR,W XORLW 'u' BTFSS STATUS,Z GOTO SETFNTSD MOVLW B'00000100' MOVWF X1 MOVLW B'00000010' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00000010' MOVWF X4 MOVLW B'00000100' MOVWF X5 RETURN ; SETFNTSD MOVF CHR,W XORLW 'd' BTFSS STATUS,Z GOTO SETFNTSR MOVLW B'00010000' MOVWF X1 MOVLW B'00100000' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00100000' MOVWF X4 MOVLW B'00010000' MOVWF X5 RETURN ; SETFNTSR MOVF CHR,W XORLW 'r' BTFSS STATUS,Z GOTO SETFNTSL MOVLW B'00001000' MOVWF X1 MOVLW B'01001001' MOVWF X2 MOVLW B'00101010' MOVWF X3 MOVLW B'00011100' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTSL MOVF CHR,W XORLW 'l' BTFSS STATUS,Z GOTO SETFNTSA MOVLW B'00001000' MOVWF X1 MOVLW B'00011100' MOVWF X2 MOVLW B'00101010' MOVWF X3 MOVLW B'01001001' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTSA MOVF CHR,W XORLW 'a' BTFSS STATUS,Z GOTO SETFNTPPP MOVLW B'01111111' MOVWF X1 MOVLW B'01111111' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'01111111' MOVWF X4 MOVLW B'01111111' MOVWF X5 RETURN ; SETFNTPPP MOVF CHR,W XORLW '+' BTFSS STATUS,Z GOTO SETFNTPPN MOVLW B'00001000' MOVWF X1 MOVLW B'00001000' MOVWF X2 MOVLW B'01111111' MOVWF X3 MOVLW B'00001000' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTPPN MOVF CHR,W XORLW '-' BTFSS STATUS,Z GOTO SETFNTPPE MOVLW B'00001000' MOVWF X1 MOVLW B'00001000' MOVWF X2 MOVLW B'00001000' MOVWF X3 MOVLW B'00001000' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTPPE MOVF CHR,W XORLW '=' BTFSS STATUS,Z GOTO SETFNTEK1R MOVLW B'00010100' MOVWF X1 MOVLW B'00010100' MOVWF X2 MOVLW B'00010100' MOVWF X3 MOVLW B'00010100' MOVWF X4 MOVLW B'00010100' MOVWF X5 RETURN ; SETFNTEK1R MOVF CHR,W XORLW ')' BTFSS STATUS,Z GOTO SETFNTPK1L MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00111110' MOVWF X5 RETURN ; SETFNTPK1L MOVF CHR,W XORLW '(' BTFSS STATUS,Z GOTO SETFNTEK2R MOVLW B'00111110' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTEK2R MOVF CHR,W XORLW ']' BTFSS STATUS,Z GOTO SETFNTPK2L MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'01111111' MOVWF X5 RETURN ; SETFNTPK2L MOVF CHR,W XORLW '[' BTFSS STATUS,Z GOTO SETFNTEK3R MOVLW B'01111111' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTEK3R MOVF CHR,W XORLW '>' BTFSS STATUS,Z GOTO SETFNTPK3L MOVLW B'00000000' MOVWF X1 MOVLW B'01000001' MOVWF X2 MOVLW B'00100010' MOVWF X3 MOVLW B'00010100' MOVWF X4 MOVLW B'00001000' MOVWF X5 RETURN ; SETFNTPK3L MOVF CHR,W XORLW '[' BTFSS STATUS,Z GOTO SETFNTPPMU MOVLW B'00001000' MOVWF X1 MOVLW B'00010100' MOVWF X2 MOVLW B'00100010' MOVWF X3 MOVLW B'01000001' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPPMU MOVF CHR,W XORLW '*' BTFSS STATUS,Z GOTO SETFNTPPWA MOVLW B'00100010' MOVWF X1 MOVLW B'00010100' MOVWF X2 MOVLW B'00001000' MOVWF X3 MOVLW B'00010100' MOVWF X4 MOVLW B'00100010' MOVWF X5 RETURN ; SETFNTPPWA MOVF CHR,W XORLW '/' BTFSS STATUS,Z GOTO SETFNTPWBU MOVLW B'10000000' MOVWF X1 MOVLW B'01100000' MOVWF X2 MOVLW B'00011000' MOVWF X3 MOVLW B'00000110' MOVWF X4 MOVLW B'00000001' MOVWF X5 RETURN ; SETFNTPWBU MOVF CHR,W XORLW '"' BTFSS STATUS,Z GOTO SETFNTPBIK MOVLW B'00000000' MOVWF X1 MOVLW B'00000111' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00000111' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPBIK MOVF CHR,W XORLW '!' BTFSS STATUS,Z GOTO SETFNTPBCL MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'11011111' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPBCL MOVF CHR,W XORLW 'c' BTFSS STATUS,Z GOTO SETFNTPKANM MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00000000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 MOVLW B'00000000' MOVWF X6 ; MOVLW H'00' MOVWF DSPCOD ; CALL SETFNT RETURN ; SETFNTPKANM MOVF CHR,W XORLW ',' BTFSS STATUS,Z GOTO SETFNTPTEN MOVLW B'00000000' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'00110000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPTEN MOVF CHR,W XORLW '.' BTFSS STATUS,Z GOTO SETFNTPKOR MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'01100000' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPKOR MOVF CHR,W XORLW ':' BTFSS STATUS,Z GOTO SETFNTPSKOR MOVLW B'00000000' MOVWF X1 MOVLW B'00000000' MOVWF X2 MOVLW B'00110110' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPSKOR MOVF CHR,W XORLW ';' BTFSS STATUS,Z GOTO SETFNTPMAD1 MOVLW B'00000000' MOVWF X1 MOVLW B'01000000' MOVWF X2 MOVLW B'00110110' MOVWF X3 MOVLW B'00000000' MOVWF X4 MOVLW B'00000000' MOVWF X5 RETURN ; SETFNTPMAD1 MOVF CHR,W XORLW H'FD' BTFSS STATUS,Z GOTO SETFNTPMAD2 ; MOVLW B'01010101' MOVWF X1 MOVLW B'10101010' MOVWF X2 MOVLW B'01010101' MOVWF X3 MOVLW B'10101010' MOVWF X4 MOVLW B'01010101' MOVWF X5 MOVLW B'10101010' MOVWF X6 ; MOVLW H'FD' MOVWF DSPCOD ; CALL SETFNT RETURN ; SETFNTPMAD2 MOVF CHR,W XORLW H'FE' BTFSS STATUS,Z GOTO SETFNTPMAD3 ; MOVLW B'10101010' MOVWF X1 MOVLW B'01010101' MOVWF X2 MOVLW B'10101010' MOVWF X3 MOVLW B'01010101' MOVWF X4 MOVLW B'10101010' MOVWF X5 MOVLW B'01010101' MOVWF X6 ; MOVLW H'FE' MOVWF DSPCOD ; CALL SETFNT RETURN ; SETFNTPMAD3 MOVF CHR,W XORLW H'FC' BTFSS STATUS,Z GOTO SETFNTEE ; MOVLW B'11111111' MOVWF X1 MOVLW B'10000001' MOVWF X2 MOVLW B'10000001' MOVWF X3 MOVLW B'10000001' MOVWF X4 MOVLW B'10000001' MOVWF X5 MOVLW B'11111111' MOVWF X6 ; MOVLW H'FE' MOVWF DSPCOD ; CALL SETFNT RETURN ; SETFNTEE MOVLW B'00000110' MOVWF X1 MOVLW B'00001001' MOVWF X2 MOVLW B'01110001' MOVWF X3 MOVLW B'00000001' MOVWF X4 MOVLW B'00000010' MOVWF X5 RETURN END