故障した温水便座を使えるようにする
PIC10F322を使用して、故障した温水便座を使えるようにする取り組み
私の家ではSANYOの ki・re・i (型番PT-R200)という温水便座を2台使用しているのですが、
2台とも今まで2回故障しています。
最初の故障 (購入後約2年、2台とも)
症状:温水が出なくなる(水が出る)。便座のヒーターは正常に作動
ネットの情報を含めて色々調べてみたところ、この症状は温水タンクのフロートスイッチの故障で、フロートスイッチを分解し、中のリードスイッチを交換して修理できました。

リードスイッチは熱収縮チューブとエポキシ接着剤で防水処理を施しました。
フロートスイッチの構造については以下のページを参照
ttp://www.nohken.com/japan/product/level_switch/liquid_point/ol.html
2回目の故障 (購入後約2年半、2台とも)
症状:温水が出なくなり(水が出る)、便座のヒーターも作動しなくなる。
温水便座を分解して、ヒーター・出力トランジスタを調べてみましたが
正常に作動しています。結果マイコンの入出力の問題と思われます。
温水便座に塔載されているのはカスタムコンピューターなので、これ以上の解析はあきらめ、PIC10F322に制御させようと考えました。(これで一冬越せました。)
<考えかた>
壱.温水ヒータ、便座ヒータ、サーモスタットは正常に作動するのでこれらをそのまま使用する。
弐.PICからの出力をトランジスタでドライブしてリレーを作動させる基本回路を使用する。
参.モニタ用に緑/赤のLEDを使用し、ヒータ通電の状況がモニタ出来るようにする。
四.通電制御はインターバル制御とし、実験により通電時間を定める。
伍.便座内の水漏れを考慮し、回路は温水便座から離して設置する。(ヒーターと繋がる信号線を温水便座から引き出す。)
<温水便座側回路図>

<通電制御部回路図>
トランジスタの回路は手持ちのトランジスタアレイTD62083を使用。

<プログラムソース>
温水ヒータ:60分毎に1分間通電
便座ヒータ:5分毎に1分間通電
LIST P=PIC10F322
#INCLUDE <P10F322.inc>
__CONFIG _FOSC_INTOSC & _BOREN_OFF & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _LVP_OFF & _LPBOR_OFF & _BORV_HI & _WRT_OFF
; #DEFINE W_TBL ;ブートローダー本体を一緒にコンパイルする
;注意)W_TBLを定義するとTinybldで正しく書き込めません。
;PICKITなどを用いてブートローダー本体を書き込むときに定義する。
;
#DEFINE TX 2 ;RS-232C データ出力用ビット、このテンプレートでは変更できません。
#DEFINE RX 3 ;RS-232C データ入力用ビット、このテンプレートでは変更できません。
#DEFINE Direct ;RS-232C直結方式、コメントアウトで反転方式
;
#DEFINE OUTP 0 ;リレー出力
#DEFINE LED 1 ;LED出力
;
;
; ********************************************************************
; Define General Purpose Registers (64 bytes maximum ; 40h-7fh)
; Bank 0 Only
; ********************************************************************
;
;変数
REG0 EQU 0x40 ;WAITルーチンで使用
REG1 EQU 0x41 ;WAITルーチンで使用
DL EQU 0x42 ;周期
DM EQU 0x43 ;周期
DH EQU 0x44 ;周期
WORK EQU 0x45 ;ワークレジスタ
; ********************************************************************
;ブートローダー中の予約変数、サブルーチン領域
; ********************************************************************
bwait equ 0x01E8 ;100usのウエイト(CALL文込み)
bwait2 equ 0x01E9 ; 50usのウエイト(CALL文込み)
rs1tx equ 0x01D9 ;1文字送信サブルーチン
rs1rx equ 0x01C3 ;1文字受信サブルーチン
rs1rxc equ 0x01D5 ;1文字受信サブルーチン(データ到着を待たない )
r1rx11 equ 0x01C5 ;1文字受信サブルーチン(スタートビット検出済み)
rd equ 0x01EE ;フラッシュプログラムメモリー読み出し
wr_e equ 0x01F3 ;フラッシュプログラムメモリーブロック消去(16ワード)
wr_w equ 0x01F5 ;フラッシュプログラムメモリー書き込み
cn equ NCO1ACCU ;ワークレジスタ
rs equ NCO1ACCH ;データ受信フラグ(LSB=0:受信 LSB=1:未受信)
rxd equ NCO1ACCL ;送受信データ wレジスタと同じ値が入る
; ********************************************************************
PUTC equ rs1tx ;1文字送信サブルーチン
GETC equ rs1rx ;1文字受信サブルーチン
;
;/////////////////////////////////////////////////////////////////
;
; プログラムコード
;
;/////////////////////////////////////////////////////////////////
;
ORG 0x0000
movlw 0x01 ;TeraTermで書き込むため
movwf PCLATH ;この4行は変更不可
goto TINYBLD ;
goto INIT ;ブートローダーの出口処理
; 以下にユーザープログラムを記述する。(0x0004~0x017B)
;
;/////////////////////////////////////////////////////////////////
;
INIT ;初期化
; CLRF PORTA ;
; CLRF LATA ;
; CLRF ANSELA ;全てデジタルポートに設定(ブートローダーで設定済み)
BCF TRISA,OUTP ;OUTP0を出力に設定
BCF PORTA,OUTP ;リレーOFF
BCF TRISA,TX ;TXを出力に設定
BCF PORTA,TX ;リレーOFF
BCF TRISA,LED ;LEDを出力に設定
BSF PORTA,LED ;LEDを消灯
OSC ;クロック31kHz
MOVLW B'00000000'
MOVWF OSCCON ;
SETTM ;時間設定
MOVLW 0x07 ;1min
MOVWF DH ;60*31000/4=465000=0x071868
MOVLW 0x18 ;
MOVWF DM ;
MOVLW 0x68 ;
MOVWF DL ;
OCH ;
MOVLW 0x10 ;遅延補正 16サイクル
SUBWF DL,F ;DH・DM・DL=DH・DM・DL-16
BTFSC STATUS,C ;
GOTO $+5 ;
DECF DM,F ;
DECF DH,F ;
INCFSZ DM,W ;
INCF DH,F ;
COMF DH,F ;DH=[0x00_0xFF] -> [0xFF_0x00]
COMF DM,F ;DM=[0x00_0xFF] -> [0xFF_0x00]
COMF DL,W ;DL=[0x00_0xFF]
MOVWF WORK ;WORK=/DL=[0xFF_0x00]
BSF STATUS,C ;Carry=1
RRF WORK,F ;WORK=0x80+WORK/2=[0x80_0xFF]
OLPH ;
BCF PORTA,LED ;LEDを点灯
BSF PORTA,TX ;便座ヒーターON
BSF PORTA,OUTP ;温水ヒーターON
CALL WAIT ;1分
BCF PORTA,OUTP ;温水ヒーターOFF
BCF PORTA,TX ;便座ヒーターOFF
BSF PORTA,LED ;LEDを消灯
CALL WAIT ;4分
CALL WAIT ;
CALL WAIT ;
CALL WAIT ;
CALL INTVL ; 5+5=10分
CALL INTVL ;10+5=15分
CALL INTVL ;15+5=20分
CALL INTVL ;20+5=25分
CALL INTVL ;25+5=30分
CALL INTVL ;30+5=35分
CALL INTVL ;35+5=40分
CALL INTVL ;40+5=45分
CALL INTVL ;45+5=50分
CALL INTVL ;50+5=55分
CALL INTVL ;55+5=60分
GOTO OLPH
; ********************************************************************
; サブルーチン
; ********************************************************************
;
W001 ;255サイクルまでのwait
BCF PCLATH,0 ;PCLATH=0
MOVWF PCL ;PCL=[0x0080_0x00FF]
W256 ;256サイクルのwait
ADDLW 0x01 ;
BTFSC STATUS,Z ;
GOTO $+6 ;
MOVWF REG0 ;
CALL $+4 ;
INCFSZ REG0,F ;
GOTO $-2 ;
NOP ;
NOP ;
GOTO W246 ;
W65536 ;65536サイクルのwait
ADDLW 0x01 ;
BTFSC STATUS,Z ;
GOTO $+6 ;
NOP ;
MOVWF REG1 ;
CALL $+3 ;
INCFSZ REG1,F ;
GOTO $-2 ;
MOVLW 0x01 ;
CALL W256 ;
NOP ;
GOTO W244 ;
WAIT ;
MOVF WORK,W ;255サイクルまでのwait
CALL W001 ;
INCFSZ DM,W ;256サイクルのwait
CALL W256 ;
INCFSZ DH,W ;65536サイクルのwait
CALL W65536 ;
BTFSS DL,0 ;DLは奇数か?
RETURN ;偶数
RETURN ;奇数
INTVL
BCF PORTA,LED ;LEDを点灯
BSF PORTA,TX ;便座ヒーターON
CALL WAIT ;1分
BCF PORTA,TX ;便座ヒーターOFF
BSF PORTA,LED ;LEDを消灯
CALL WAIT ;4分
CALL WAIT ;
CALL WAIT ;
CALL WAIT ;
RETURN
; ********************************************************************
; テーブル
; ********************************************************************
ORG 0x0080
WTBL GOTO $+1 ;W254
GOTO $+1 ;W252
GOTO $+1 ;W250
GOTO $+1 ;W248
W246 GOTO $+1 ;W246
W244 GOTO $+1 ;W244
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
RETURN ;
;
;///////////////////////////////////////////////////////////////////////////////
;
; ブートローダー本体
; [クロック8MHz(内部)、ボーレート9600、8ビット、1ストップビット、ノーパリティ]
;
; 以下のブートローダーのデータは TX=PORTA,2 RX=PORTA,3 とした場合のものです。
; TXおよびRXのポート割り付けを変更した場合にはブートローダーをコンパイルしなおす
; 必要があります。
;
; 詳細は以下のページをごらんください。
; PIC10F322用Tinybld http://www3.hp-ez.com/hp/bequest333/page8
; 続PIC10F322用Tinybld http://www3.hp-ez.com/hp/bequest333/page10
;
;///////////////////////////////////////////////////////////////////////////////
;
ORG 0x0180
TINYBLD
#ifdef W_TBL
#ifdef Direct
DW 0x0188,0x1106,0x21B1,0x3CC1,0x1D03,0x29C0,0x3039,0x21D9
DW 0x304B,0x21D9,0x0191,0x21B1,0x00A1,0x21B1,0x00A0,0x21B1
DW 0x0098,0x0095,0x3040,0x0084,0x21B1,0x0080,0x0A84,0x0B95
DW 0x2994,0x21B1,0x1D03,0x29AE,0x3040,0x0084,0x0800,0x0A84
DW 0x00A2,0x0800,0x0A84,0x00A3,0x0820,0x390F,0x1903,0x21F3
DW 0x21F5,0x0AA0,0x0398,0x0B98,0x299E,0x2988,0x304E,0x21D9
DW 0x298A,0x3005,0x00A9,0x01A8,0x01A7,0x1D85,0x29BA,0x21C5
DW 0x0791,0x0008,0x0BA7,0x29B5,0x0BA8,0x29B4,0x0BA9,0x29B3
DW 0x018A,0x01A7,0x2803,0x1D85,0x29C3,0x21E9,0x3008,0x00A9
DW 0x21E8,0x1985,0x1003,0x1D85,0x1403,0x0CA7,0x0BA9,0x29C8
DW 0x21E9,0x1985,0x29D1,0x0827,0x0008,0x1428,0x1D85,0x0008
DW 0x29C5,0x00A7,0x1505,0x21E8,0x3008,0x00A9,0x0CA7,0x1803
DW 0x1105,0x1C03,0x1505,0x21E8,0x0BA9,0x29DE,0x21ED,0x1105
DW 0x21E9,0x301F,0x00A8,0x0BA8,0x29EB,0x29D4,0x3001,0x00A4
DW 0x0000,0x0000,0x0008,0x3014,0x29F6,0x3004,0x00A4,0x3055
DW 0x00A5,0x30AA,0x00A5,0x14A4,0x0000,0x0000,0x01A4,0x0008
#else
DW 0x0188,0x1106,0x21B1,0x3CC1,0x1D03,0x29C0,0x3039,0x21D9
DW 0x304B,0x21D9,0x0191,0x21B1,0x00A1,0x21B1,0x00A0,0x21B1
DW 0x0098,0x0095,0x3040,0x0084,0x21B1,0x0080,0x0A84,0x0B95
DW 0x2994,0x21B1,0x1D03,0x29AE,0x3040,0x0084,0x0800,0x0A84
DW 0x00A2,0x0800,0x0A84,0x00A3,0x0820,0x390F,0x1903,0x21F3
DW 0x21F5,0x0AA0,0x0398,0x0B98,0x299E,0x2988,0x304E,0x21D9
DW 0x298A,0x3005,0x00A9,0x01A8,0x01A7,0x1985,0x29BA,0x21C5
DW 0x0791,0x0008,0x0BA7,0x29B5,0x0BA8,0x29B4,0x0BA9,0x29B3
DW 0x018A,0x01A7,0x2803,0x1985,0x29C3,0x21E9,0x3008,0x00A9
DW 0x21E8,0x1D85,0x1003,0x1985,0x1403,0x0CA7,0x0BA9,0x29C8
DW 0x21E9,0x1D85,0x29D1,0x0827,0x0008,0x1428,0x1985,0x0008
DW 0x29C5,0x00A7,0x1105,0x21E8,0x3008,0x00A9,0x0CA7,0x1C03
DW 0x1105,0x1803,0x1505,0x21E8,0x0BA9,0x29DE,0x21ED,0x1505
DW 0x21E9,0x301F,0x00A8,0x0BA8,0x29EB,0x29D4,0x3001,0x00A4
DW 0x0000,0x0000,0x0008,0x3014,0x29F6,0x3004,0x00A4,0x3055
DW 0x00A5,0x30AA,0x00A5,0x14A4,0x0000,0x0000,0x01A4,0x0008
#endif
#endif
;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;
END
<HEXコード>
:020000040000FA
:1000000001308A0080290428061005100611051108
:1000100086108514003090000730C4001830C300EB
:100020006830C2001030C20203181A28C303C40388
:10003000430FC40AC409C3094209C5000314C50C0F
:100040008510051505144F200510051185144F2046
:100050004F204F204F2058205820582058205820FB
:1000600058205820582058205820582020280A105E
:100070008200013E03194128C0004120C00F3D28E5
:10008000000000008428013E03194B280000C10035
:100090004B20C10F48280130392000008528450831
:1000A0003720430F3920440F4320421C080008002A
:1000B000851005154F20051185144F204F204F2026
:0400C0004F200800C5
:10010000812882288328842885288628872888288B
:1001100089288A288B288C288D288E288F2890283B
:1001200091289228932894289528962897289828EB
:1001300099289A289B289C289D289E289F28A0289B
:10014000A128A228A328A428A528A628A728A8284B
:10015000A928AA28AB28AC28AD28AE28AF28B028FB
:10016000B128B228B328B428B528B628B728B828AB
:10017000B928BA28BB28BC28BD28BE28BF28C0285B
:10018000C128C228C328C428C528C628C728C8280B
:10019000C928CA28CB28CC28CD28CE28CF28D028BB
:1001A000D128D228D328D428D528D628D728D8286B
:1001B000D928DA28DB28DC28DD28DE28DF28E0281B
:1001C000E128E228E328E428E528E628E728E828CB
:1001D000E928EA28EB28EC28ED28EE28EF28F0287B
:1001E000F128F228F328F428F528F628F728F8282B
:1001F000F928FA28FB28FC28FD28FE28FF280800FB
:02400E008038F8
:00000001FF
私の家ではSANYOの ki・re・i (型番PT-R200)という温水便座を2台使用しているのですが、
2台とも今まで2回故障しています。
最初の故障 (購入後約2年、2台とも)
症状:温水が出なくなる(水が出る)。便座のヒーターは正常に作動
ネットの情報を含めて色々調べてみたところ、この症状は温水タンクのフロートスイッチの故障で、フロートスイッチを分解し、中のリードスイッチを交換して修理できました。

リードスイッチは熱収縮チューブとエポキシ接着剤で防水処理を施しました。
フロートスイッチの構造については以下のページを参照
ttp://www.nohken.com/japan/product/level_switch/liquid_point/ol.html
2回目の故障 (購入後約2年半、2台とも)
症状:温水が出なくなり(水が出る)、便座のヒーターも作動しなくなる。
温水便座を分解して、ヒーター・出力トランジスタを調べてみましたが
正常に作動しています。結果マイコンの入出力の問題と思われます。
温水便座に塔載されているのはカスタムコンピューターなので、これ以上の解析はあきらめ、PIC10F322に制御させようと考えました。(これで一冬越せました。)
<考えかた>
壱.温水ヒータ、便座ヒータ、サーモスタットは正常に作動するのでこれらをそのまま使用する。
弐.PICからの出力をトランジスタでドライブしてリレーを作動させる基本回路を使用する。
参.モニタ用に緑/赤のLEDを使用し、ヒータ通電の状況がモニタ出来るようにする。
四.通電制御はインターバル制御とし、実験により通電時間を定める。
伍.便座内の水漏れを考慮し、回路は温水便座から離して設置する。(ヒーターと繋がる信号線を温水便座から引き出す。)
<温水便座側回路図>

<通電制御部回路図>
トランジスタの回路は手持ちのトランジスタアレイTD62083を使用。

<プログラムソース>
温水ヒータ:60分毎に1分間通電
便座ヒータ:5分毎に1分間通電
LIST P=PIC10F322
#INCLUDE <P10F322.inc>
__CONFIG _FOSC_INTOSC & _BOREN_OFF & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _LVP_OFF & _LPBOR_OFF & _BORV_HI & _WRT_OFF
; #DEFINE W_TBL ;ブートローダー本体を一緒にコンパイルする
;注意)W_TBLを定義するとTinybldで正しく書き込めません。
;PICKITなどを用いてブートローダー本体を書き込むときに定義する。
;
#DEFINE TX 2 ;RS-232C データ出力用ビット、このテンプレートでは変更できません。
#DEFINE RX 3 ;RS-232C データ入力用ビット、このテンプレートでは変更できません。
#DEFINE Direct ;RS-232C直結方式、コメントアウトで反転方式
;
#DEFINE OUTP 0 ;リレー出力
#DEFINE LED 1 ;LED出力
;
;
; ********************************************************************
; Define General Purpose Registers (64 bytes maximum ; 40h-7fh)
; Bank 0 Only
; ********************************************************************
;
;変数
REG0 EQU 0x40 ;WAITルーチンで使用
REG1 EQU 0x41 ;WAITルーチンで使用
DL EQU 0x42 ;周期
DM EQU 0x43 ;周期
DH EQU 0x44 ;周期
WORK EQU 0x45 ;ワークレジスタ
; ********************************************************************
;ブートローダー中の予約変数、サブルーチン領域
; ********************************************************************
bwait equ 0x01E8 ;100usのウエイト(CALL文込み)
bwait2 equ 0x01E9 ; 50usのウエイト(CALL文込み)
rs1tx equ 0x01D9 ;1文字送信サブルーチン
rs1rx equ 0x01C3 ;1文字受信サブルーチン
rs1rxc equ 0x01D5 ;1文字受信サブルーチン(データ到着を待たない )
r1rx11 equ 0x01C5 ;1文字受信サブルーチン(スタートビット検出済み)
rd equ 0x01EE ;フラッシュプログラムメモリー読み出し
wr_e equ 0x01F3 ;フラッシュプログラムメモリーブロック消去(16ワード)
wr_w equ 0x01F5 ;フラッシュプログラムメモリー書き込み
cn equ NCO1ACCU ;ワークレジスタ
rs equ NCO1ACCH ;データ受信フラグ(LSB=0:受信 LSB=1:未受信)
rxd equ NCO1ACCL ;送受信データ wレジスタと同じ値が入る
; ********************************************************************
PUTC equ rs1tx ;1文字送信サブルーチン
GETC equ rs1rx ;1文字受信サブルーチン
;
;/////////////////////////////////////////////////////////////////
;
; プログラムコード
;
;/////////////////////////////////////////////////////////////////
;
ORG 0x0000
movlw 0x01 ;TeraTermで書き込むため
movwf PCLATH ;この4行は変更不可
goto TINYBLD ;
goto INIT ;ブートローダーの出口処理
; 以下にユーザープログラムを記述する。(0x0004~0x017B)
;
;/////////////////////////////////////////////////////////////////
;
INIT ;初期化
; CLRF PORTA ;
; CLRF LATA ;
; CLRF ANSELA ;全てデジタルポートに設定(ブートローダーで設定済み)
BCF TRISA,OUTP ;OUTP0を出力に設定
BCF PORTA,OUTP ;リレーOFF
BCF TRISA,TX ;TXを出力に設定
BCF PORTA,TX ;リレーOFF
BCF TRISA,LED ;LEDを出力に設定
BSF PORTA,LED ;LEDを消灯
OSC ;クロック31kHz
MOVLW B'00000000'
MOVWF OSCCON ;
SETTM ;時間設定
MOVLW 0x07 ;1min
MOVWF DH ;60*31000/4=465000=0x071868
MOVLW 0x18 ;
MOVWF DM ;
MOVLW 0x68 ;
MOVWF DL ;
OCH ;
MOVLW 0x10 ;遅延補正 16サイクル
SUBWF DL,F ;DH・DM・DL=DH・DM・DL-16
BTFSC STATUS,C ;
GOTO $+5 ;
DECF DM,F ;
DECF DH,F ;
INCFSZ DM,W ;
INCF DH,F ;
COMF DH,F ;DH=[0x00_0xFF] -> [0xFF_0x00]
COMF DM,F ;DM=[0x00_0xFF] -> [0xFF_0x00]
COMF DL,W ;DL=[0x00_0xFF]
MOVWF WORK ;WORK=/DL=[0xFF_0x00]
BSF STATUS,C ;Carry=1
RRF WORK,F ;WORK=0x80+WORK/2=[0x80_0xFF]
OLPH ;
BCF PORTA,LED ;LEDを点灯
BSF PORTA,TX ;便座ヒーターON
BSF PORTA,OUTP ;温水ヒーターON
CALL WAIT ;1分
BCF PORTA,OUTP ;温水ヒーターOFF
BCF PORTA,TX ;便座ヒーターOFF
BSF PORTA,LED ;LEDを消灯
CALL WAIT ;4分
CALL WAIT ;
CALL WAIT ;
CALL WAIT ;
CALL INTVL ; 5+5=10分
CALL INTVL ;10+5=15分
CALL INTVL ;15+5=20分
CALL INTVL ;20+5=25分
CALL INTVL ;25+5=30分
CALL INTVL ;30+5=35分
CALL INTVL ;35+5=40分
CALL INTVL ;40+5=45分
CALL INTVL ;45+5=50分
CALL INTVL ;50+5=55分
CALL INTVL ;55+5=60分
GOTO OLPH
; ********************************************************************
; サブルーチン
; ********************************************************************
;
W001 ;255サイクルまでのwait
BCF PCLATH,0 ;PCLATH=0
MOVWF PCL ;PCL=[0x0080_0x00FF]
W256 ;256サイクルのwait
ADDLW 0x01 ;
BTFSC STATUS,Z ;
GOTO $+6 ;
MOVWF REG0 ;
CALL $+4 ;
INCFSZ REG0,F ;
GOTO $-2 ;
NOP ;
NOP ;
GOTO W246 ;
W65536 ;65536サイクルのwait
ADDLW 0x01 ;
BTFSC STATUS,Z ;
GOTO $+6 ;
NOP ;
MOVWF REG1 ;
CALL $+3 ;
INCFSZ REG1,F ;
GOTO $-2 ;
MOVLW 0x01 ;
CALL W256 ;
NOP ;
GOTO W244 ;
WAIT ;
MOVF WORK,W ;255サイクルまでのwait
CALL W001 ;
INCFSZ DM,W ;256サイクルのwait
CALL W256 ;
INCFSZ DH,W ;65536サイクルのwait
CALL W65536 ;
BTFSS DL,0 ;DLは奇数か?
RETURN ;偶数
RETURN ;奇数
INTVL
BCF PORTA,LED ;LEDを点灯
BSF PORTA,TX ;便座ヒーターON
CALL WAIT ;1分
BCF PORTA,TX ;便座ヒーターOFF
BSF PORTA,LED ;LEDを消灯
CALL WAIT ;4分
CALL WAIT ;
CALL WAIT ;
CALL WAIT ;
RETURN
; ********************************************************************
; テーブル
; ********************************************************************
ORG 0x0080
WTBL GOTO $+1 ;W254
GOTO $+1 ;W252
GOTO $+1 ;W250
GOTO $+1 ;W248
W246 GOTO $+1 ;W246
W244 GOTO $+1 ;W244
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
GOTO $+1 ;
RETURN ;
;
;///////////////////////////////////////////////////////////////////////////////
;
; ブートローダー本体
; [クロック8MHz(内部)、ボーレート9600、8ビット、1ストップビット、ノーパリティ]
;
; 以下のブートローダーのデータは TX=PORTA,2 RX=PORTA,3 とした場合のものです。
; TXおよびRXのポート割り付けを変更した場合にはブートローダーをコンパイルしなおす
; 必要があります。
;
; 詳細は以下のページをごらんください。
; PIC10F322用Tinybld http://www3.hp-ez.com/hp/bequest333/page8
; 続PIC10F322用Tinybld http://www3.hp-ez.com/hp/bequest333/page10
;
;///////////////////////////////////////////////////////////////////////////////
;
ORG 0x0180
TINYBLD
#ifdef W_TBL
#ifdef Direct
DW 0x0188,0x1106,0x21B1,0x3CC1,0x1D03,0x29C0,0x3039,0x21D9
DW 0x304B,0x21D9,0x0191,0x21B1,0x00A1,0x21B1,0x00A0,0x21B1
DW 0x0098,0x0095,0x3040,0x0084,0x21B1,0x0080,0x0A84,0x0B95
DW 0x2994,0x21B1,0x1D03,0x29AE,0x3040,0x0084,0x0800,0x0A84
DW 0x00A2,0x0800,0x0A84,0x00A3,0x0820,0x390F,0x1903,0x21F3
DW 0x21F5,0x0AA0,0x0398,0x0B98,0x299E,0x2988,0x304E,0x21D9
DW 0x298A,0x3005,0x00A9,0x01A8,0x01A7,0x1D85,0x29BA,0x21C5
DW 0x0791,0x0008,0x0BA7,0x29B5,0x0BA8,0x29B4,0x0BA9,0x29B3
DW 0x018A,0x01A7,0x2803,0x1D85,0x29C3,0x21E9,0x3008,0x00A9
DW 0x21E8,0x1985,0x1003,0x1D85,0x1403,0x0CA7,0x0BA9,0x29C8
DW 0x21E9,0x1985,0x29D1,0x0827,0x0008,0x1428,0x1D85,0x0008
DW 0x29C5,0x00A7,0x1505,0x21E8,0x3008,0x00A9,0x0CA7,0x1803
DW 0x1105,0x1C03,0x1505,0x21E8,0x0BA9,0x29DE,0x21ED,0x1105
DW 0x21E9,0x301F,0x00A8,0x0BA8,0x29EB,0x29D4,0x3001,0x00A4
DW 0x0000,0x0000,0x0008,0x3014,0x29F6,0x3004,0x00A4,0x3055
DW 0x00A5,0x30AA,0x00A5,0x14A4,0x0000,0x0000,0x01A4,0x0008
#else
DW 0x0188,0x1106,0x21B1,0x3CC1,0x1D03,0x29C0,0x3039,0x21D9
DW 0x304B,0x21D9,0x0191,0x21B1,0x00A1,0x21B1,0x00A0,0x21B1
DW 0x0098,0x0095,0x3040,0x0084,0x21B1,0x0080,0x0A84,0x0B95
DW 0x2994,0x21B1,0x1D03,0x29AE,0x3040,0x0084,0x0800,0x0A84
DW 0x00A2,0x0800,0x0A84,0x00A3,0x0820,0x390F,0x1903,0x21F3
DW 0x21F5,0x0AA0,0x0398,0x0B98,0x299E,0x2988,0x304E,0x21D9
DW 0x298A,0x3005,0x00A9,0x01A8,0x01A7,0x1985,0x29BA,0x21C5
DW 0x0791,0x0008,0x0BA7,0x29B5,0x0BA8,0x29B4,0x0BA9,0x29B3
DW 0x018A,0x01A7,0x2803,0x1985,0x29C3,0x21E9,0x3008,0x00A9
DW 0x21E8,0x1D85,0x1003,0x1985,0x1403,0x0CA7,0x0BA9,0x29C8
DW 0x21E9,0x1D85,0x29D1,0x0827,0x0008,0x1428,0x1985,0x0008
DW 0x29C5,0x00A7,0x1105,0x21E8,0x3008,0x00A9,0x0CA7,0x1C03
DW 0x1105,0x1803,0x1505,0x21E8,0x0BA9,0x29DE,0x21ED,0x1505
DW 0x21E9,0x301F,0x00A8,0x0BA8,0x29EB,0x29D4,0x3001,0x00A4
DW 0x0000,0x0000,0x0008,0x3014,0x29F6,0x3004,0x00A4,0x3055
DW 0x00A5,0x30AA,0x00A5,0x14A4,0x0000,0x0000,0x01A4,0x0008
#endif
#endif
;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;
END
<HEXコード>
:020000040000FA
:1000000001308A0080290428061005100611051108
:1000100086108514003090000730C4001830C300EB
:100020006830C2001030C20203181A28C303C40388
:10003000430FC40AC409C3094209C5000314C50C0F
:100040008510051505144F200510051185144F2046
:100050004F204F204F2058205820582058205820FB
:1000600058205820582058205820582020280A105E
:100070008200013E03194128C0004120C00F3D28E5
:10008000000000008428013E03194B280000C10035
:100090004B20C10F48280130392000008528450831
:1000A0003720430F3920440F4320421C080008002A
:1000B000851005154F20051185144F204F204F2026
:0400C0004F200800C5
:10010000812882288328842885288628872888288B
:1001100089288A288B288C288D288E288F2890283B
:1001200091289228932894289528962897289828EB
:1001300099289A289B289C289D289E289F28A0289B
:10014000A128A228A328A428A528A628A728A8284B
:10015000A928AA28AB28AC28AD28AE28AF28B028FB
:10016000B128B228B328B428B528B628B728B828AB
:10017000B928BA28BB28BC28BD28BE28BF28C0285B
:10018000C128C228C328C428C528C628C728C8280B
:10019000C928CA28CB28CC28CD28CE28CF28D028BB
:1001A000D128D228D328D428D528D628D728D8286B
:1001B000D928DA28DB28DC28DD28DE28DF28E0281B
:1001C000E128E228E328E428E528E628E728E828CB
:1001D000E928EA28EB28EC28ED28EE28EF28F0287B
:1001E000F128F228F328F428F528F628F728F8282B
:1001F000F928FA28FB28FC28FD28FE28FF280800FB
:02400E008038F8
:00000001FF
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT