;********************************************* ;AIWAのリモコンのコマンドコードをLEDに表示する ;長い上にちょっと不安定ですが……汗; ;AT90S2313 4MHz ; ;Tabは半角8文字にすると見やすいです。 ; ;********************************************* ;▼▼▼ IEで開いた時の文字化け防止  あさ、眼をさますときの気持は、面白い。かくれんぼのとき、押入れの真っ暗い中に、じっと、しゃがんで隠れていて、突然、でこちゃんに、がらっと襖(ふすま)をあけられ、日の光がどっと来て、でこちゃんに、「見つけた!」と大声で言われて、まぶしさ、それから、へんな間の悪さ、それから、胸がどきどきして、着物のまえを合せたりして、ちょっと、てれくさく、押入れから出て来て、急にむかむか腹立たしく、あの感じ、いや、ちがう、あの感じでもない、なんだか、もっとやりきれない。箱をあけると、その中に、また小さい箱があって、その小さい箱をあけると、またその中に、もっと小さい箱があって、そいつをあけると、また、また、小さい箱があって、その小さい箱をあけると、また箱があって、そうして、七つも、八つも、あけていって、とうとうおしまいに、さいころくらいの小さい箱が出て来て、そいつをそっとあけてみて、何もない、からっぽ、あの感じ、少し近い。パチッと眼がさめるなんて、あれは嘘だ。濁って濁って、そのうちに、だんだん澱粉(でんぷん)が下に沈み、少しずつ上澄(うわずみ)が出来て、やっと疲れて眼がさめる。朝は、なんだか、しらじらしい。悲しいことが、たくさんたくさん胸に浮かんで、やりきれない。いやだ。いやだ。朝の私は一ばん醜(みにく)い。両方の脚が、くたくたに疲れて、そうして、もう、何もしたくない。熟睡していないせいかしら。朝は健康だなんて、あれは嘘。朝は灰色。いつもいつも同じ。一ばん虚無だ。朝の寝床の中で、私はいつも厭世的だ。いやになる。いろいろ醜い後悔ばっかり、いちどに、どっとかたまって胸をふさぎ、身悶(みもだ)えしちゃう。  朝は、意地悪(いじわる)。  「お父さん」と小さい声で呼んでみる。へんに気恥ずかしく、うれしく、起きて、さっさと蒲団(ふとん)をたたむ。蒲団を持ち上げるとき、よいしょ、と掛声して、はっと思った。私は、いままで、自分が、よいしょなんて、げびた言葉を言い出す女だとは、思ってなかった。よいしょ、なんて、お婆さんの掛声みたいで、いやらしい。どうして、こんな掛声を発したのだろう。私のからだの中に、どこかに、婆さんがひとつ居るようで、気持がわるい。これからは、気をつけよう。ひとの下品な歩き恰好(かっこう)を顰蹙(ひんしゅく)していながら、ふと、自分も、そんな歩きかたしているのに気がついた時みたいに、すごく、しょげちゃった。  朝は、いつでも自信がない。寝巻のままで鏡台のまえに坐る。眼鏡をかけないで、鏡を覗くと、顔が、少しぼやけて、しっとり見える。自分の顔の中で一ばん眼鏡が厭(いや)なのだけれど、他の人には、わからない眼鏡のよさも、ある。眼鏡をとって、遠くを見るのが好きだ。全体がかすんで、夢のように、覗き絵みたいに、すばらしい。汚ないものなんて、何も見えない。大きいものだけ、鮮明な、強い色、光だけが目にはいって来る。眼鏡をとって人を見るのも好き。相手の顔が、皆、優しく、きれいに、笑って見える。それに、眼鏡をはずしている時は、決して人と喧嘩(けんか)をしようなんて思わないし、悪口も言いたくない。ただ、黙って、ポカンとしているだけ。そうして、そんな時の私は、人にもおひとよしに見えるだろうと思えば、なおのこと、私は、ポカンと安心して、甘えたくなって、心も、たいへんやさしくなるのだ。 ;▲▲▲ IEで開いた時の文字化け防止 .INCLUDE "2313DEF.INC" .def A=r16 .def B=r17 .def dataA=r18 .def dataB=r19 .def process=r20 .def cnt=r21 .def stack=r22 rjmp RESET ;RESET rjmp int ;INT0 reti ;INT1 reti ;CAPT1 reti ;COMP1 reti ;OVF1 reti ;OVF0 reti ;UART RX reti ;UART UDRE reti ;UART TX reti ;ACON RESET: ;▼スタックポインタ ldi A,low(RAMEND) out SPL,A ;▼入出力設定 ldi A,0b11111111 out DDRB,A ;PBを設定 ldi A,0b1111000 out DDRD,A ;PDを設定 ldi A,0b00000000 out PORTB,A ;初期値0 ldi A,0b0000111 out PORTD,A ;▼外部割込み設定 ldi A,0b01000000 out GIMSK,A ;外部割込み許可 ldi A,0b ldi A,0b00000010 out MCUCR,A ;立下りで割り込み発生 sei ;割り込み許可 timeout: ;▼初期値 ldi process,0 ▼めいん MAIN: cpi process,0 breq mainmain inc cnt brcs timeout ;タイムアウト rcall wait300 rjmp MAIN ▼通常 mainmain: rjmp MAIN ;▼Wait 300us wait300: ldi A,150 ; p2: nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 dec A ;1 brne p2 ;2 ret int: in stack,SREG ▼プロセスに応じた所へジャンプ inc process cpi process,1 breq pr1 ;process=1 cpi process,2 breq pr2 ;process=2 cpi process,3 breq pr3 ;process=3 cpi process,12 brmi pr4 ;4<=process<=11 cpi process,18 brmi pr5 ;12<=process<=17 cpi process,26 brmi pr6 ;18<=process<=25 cpi process,32 brmi pr7 ;26<=process<=31 cpi process,40 brmi pr8 ;32<=process<=39 cpi process,48 brmi pr9 ;40<=process<=47 rjmp standby pr1: ldi A,0b00000011 out MCUCR,A ;立上がりで割り込み rjmp exit ;▼リーダ9000us pr2: cpi cnt,29 ; brmi standby ;8700us以下ならリセット cpi cnt,31 ; brpl standby ;9300us以上ならリセット ldi A,0b00000010 out MCUCR,A ;立下がりで割り込み rjmp exit ;▼リーダ4500us pr3: cpi cnt,14 ; brmi standby ;4200us以下ならリセット cpi cnt,16 ; brpl standby ;4800us以上ならリセット ldi A,0b00000011 out MCUCR,A ;立上がりで割り込み rjmp exit pr4:;▼機種コード8bit pr5:;▼機種コード6bit pr6:;▼機種コード反転8bit pr7:;▼機種コード反転6bit rcall wait900 ;900us待つ rjmp exit pr8:;▼コマンド8bit cpi cnt,6 ; brpl standby ;1800us以上ならリセット rcall wait900 ;900us待つ in A,PIND ;ピン読み bst A,2 lsR dataA bld dataA,7 rjmp exit pr9:;▼コマンド反転8bit cpi cnt,6 ; brpl standby ;1800us以上ならリセット rcall wait900 ;900us待つ in A,PIND ;ピン読み bst A,2 lsR dataB bld dataB,7 cpi process,47 breq express ;process=47 rjmp exit ;▼LEDに表示 express: ldi A,0xff sub A,dataA ;反転 cpse A,dataB ;比較 rjmp standby ;不一致なら待機状態にする out PORTB,dataA lsR dataA lsR dataA out PORTD,dataA sbi PORTD,2 sbi PORTD,6 rjmp standby ;▼待機状態にもどす standby: ldi A,0b00000010 out MCUCR,A ;立下りで割り込み発生 ldi process,0 ;プロセスリセット ldi cnt,0 ;カウンタリセット out SREG,stack reti ;▼割り込みから復帰 exit: ldi cnt,0 ;カウンタリセット ldi A,1 out SREG,stack reti ;▼wait 900us wait900: ldi A,225 ; p3: nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 nop ;1 dec A ;1 brne p3 ;2 ret