; ------------------------------------------------------------------- ; dec をLCDに表示 ; 呼び出しアドレスにより、適当な桁から表示できま。 ; flag,0 を立てておくと、固定小数点(10倍)だとして表示します。 ; ------------------------------------------------------------------- print_dec5 movf dec+0,W call write_lcd_data print_dec4 movf dec+1,W call write_lcd_data print_dec3 movf dec+2,W call write_lcd_data print_dec2 movf dec+3,W call write_lcd_data ; 小数点表示 btfss flag,0 goto print_dec1 movlw '.' call write_lcd_data print_dec1 movf dec+4,W call write_lcd_data return ; ------------------------------------------------------------------- ; 液晶ライト ; IN W キャラクタ or コマンド ; 破壊 lcd_data_temp ; ------------------------------------------------------------------- write_lcd_data movwf lcd_data_temp swapf lcd_data_temp,W ; まず上位データを call write_lcd_raw ; 出力 movf lcd_data_temp,W ; 次に下位データを call write_lcd_raw ; 出力 movf lcd_data_temp,W ; 連続表示に備えて。 return ; ------------------------------------------------------------------- ; 液晶ライト(生) ; IN W キャラクタ or コマンド ; 破壊 W ; ------------------------------------------------------------------- write_lcd_raw ;bsf LED_COM ; LED コモン 消灯 (「ますく」で代用) andlw B'00001111' ; ますく iorlw B'00010000' ; ますく movwf PORTA ; RAポートへ出力 nop ; ちょこっとwait bsf E ; Eピンを'H' nop ; ちょこっとLOVE bcf E ; Eピンを'L' nop ; ぷっち以下略 movf ra_save,W ; RA の出力を元に戻す movwf PORTA movlw D'40' ; wait movwf calc_cn bcf LED_COM ; LED コモン 点灯 call wait_us return