男うちごはん

エイ!っいと適当に作る料理の紹介
男うちごはん のつもりが状況変化!
食育になりそうな事項のup

さっそく修正キーボード送出データ 回路図その2のアセンブラ

2018年06月22日 18時15分01秒 | PIC16F88

さっそく修正です。説明は、該出もね

PIC16F88のカテゴリーの方へUP

PIC16F84Aによる、キーボードからの10文字分を記憶し、送出する方です。

これで、IC-7851単体(単体か?)でRTTY(PSK)通信が楽に出来ます

無駄なとこもあります。

実際に使用したら、少し改善が必要ってことで

必ず10文字になって(10文字以下の場合は、スペースを送出)、スペースが多くなってみっともない

送出キー Eキー を押す(PA3=0)ことで記憶をストップさせていたので、使い勝ってが悪い

そこで、Fキーを押して(PA2=0)記憶開始した場合に、スペースキーで記憶を中止するように修正

文字列にスペースがあると、そこで、送出も終了としました。

お約束:参考にすれば~! 結果の責任は、僕にないからね~!

以下です

;2018年6月21日使い勝ってを改善のために修正
;10文字以下の記憶で、文字数までとする
;PA2=”0”で読込開始で、読込中(5文字以降)に再度PA2=”0”で読込終了
;現在のPA2=”0”の複数押しで止まってしまうのを改善する
;*6月 のマークが今回の改善のとこ
;PS2バッファ めざせIC-7851接続
;あるPS2ケーブル 茶:5V 赤:DATA 黄:CLK 灰:0V
;PA0="1"電源表示LED 出力
;PA1="0"書出中LED    出力
;PA2="0"読込SW   入力
;PA3="0"書出SW   入力
;PA4="0"外部のPICが書出中 入力 PA4="0"の時、PA1="0"にして何もしない
;PB0  未使用
;PB1   /DATA      出力
;PB2   /CLK       出力
;PB3="0"読込中LED 出力
;PB4  DATA        入力
;PB5  CLK、キーボード側電源確認     入力
 
 
 list p=16F84
 INCLUDE "p16F84A.inc"
 

 
    __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
 
 ORG 00h
 ;******
T1 EQU 0Ch
T2 EQU T1+1
T3 EQU T2+1
T4 EQU T3+1 
T5 EQU T4+1
T6 EQU T5+1 

MMA EQU T6+1
MMB EQU MMA+1
MMC EQU MMB+1
MM0 EQU MMC+1
MM1 EQU MM0+1
MM2 EQU MM1+1
MM3 EQU MM2+1
MM4 EQU MM3+1
MM5 EQU MM4+1
MM6 EQU MM5+1
MM7 EQU MM6+1
MM8 EQU MM7+1 
MM9 EQU MM8+1 
;********************************
 BSF     STATUS, RP0
 MOVLW     B'00011100'
 MOVWF     TRISA
 MOVLW     B'11110000' 
 MOVWF     TRISB
 
 BCF     OPTION_REG,NOT_RBPU
 BCF     STATUS, RP0
;*****************************************
;タイマ調整、サブルーチン確認用
; CALL ALN
; GOTO MMTX
;     GOTO INT  ;スタートへ
; GOTO   CHKTIM100M ;T5=H'EB'で100mS
; GOTO CHKTIM99 ;1.56mS用
 
; CALL TX_HF0  ;F0送出
; GOTO $-1  ;F0送出
; GOTO   CHKTIMSET ;2.6uS/130mS
; GOTO   CHKTIM01  ;NOP 3個で1.5uS
; GOTO   CHKTIM40  ;T3=H'1D'で39uS


;CHKTIMSET
; BSF PORTB,1
; CALL   TIMSET
; BCF PORTB,1
; CALL   TIMSET
; GOTO   CHKTIMSET
;CHKTIM01
; BSF PORTB,3
; CALL   TIM01
; BCF PORTB,3
; CALL   TIM01
; GOTO   CHKTIM01
;CHKTIM40 
; BSF PORTB,3
; CALL   TIM40
; BCF PORTB,3
; CALL   TIM40
; GOTO   CHKTIM40
;CHKTIM100M
; BSF PORTB,3
; CALL   TIM100M
; BCF PORTB,3
; CALL   TIM100M
; GOTO   CHKTIM100M
;CHKTIM99
; BSF PORTB,3
; CALL   TIM99
; BCF PORTB,3
; CALL   TIM99
; GOTO   CHKTIM99
;***************************************** 
;***************************************** 
INT 
;初期セット
 MOVLW     B'0011110'
 MOVWF     PORTA
 MOVLW     B'00001000' 
 MOVWF     PORTB
 CALL     ALN
; GOTO     MMTX ;確認用
;*****************************
;PS/2電源確認と初期ASK待ち
;PA4=”1”待ちと1秒待ち
 BTFSS PORTB,5
 GOTO $-1
 MOVLW H'0F'     ;3秒くらいウエイト
 MOVWF T1
INTT1
 BCF PORTA,0     ;点滅中は、ウエイト
 CALL TIM100M
 BSF PORTA,0
 CALL TIM100M
 DECFSZ T1,1
 GOTO INTT1
 BSF PORTA,0
; GOTO $-1 ;確認用
;*********************************
START
 BTFSS PORTA,4
 GOTO EXTPIC
 BSF PORTA,1  ;書出LED消灯

START1
 BTFSS PORTA,2  ;0で読込
 GOTO MMREED
 BTFSS PORTA,3  ;0で書出し
 GOTO MMTX
 GOTO START
EXTPIC    ;外部のPICが書出中 入力 PA4="0"の時、PA1="0"にして何もしない
 BCF PORTA,1 
 GOTO START
;******************************************
;読込スタート
MMREED
 CALL TIM100M  ;*6月
; MOVLW D'01'  ;*6月
; MOVWF MMC  ;*6月
 BCF PORTB,3       ;読込LED点灯
 CALL MRR
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
;MM0
MM0SET
 CALL MRX
 MOVF MMA,W
 MOVWF MM0

;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1

 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 

;MM1
MM1SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM1
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
;MM2
MM2SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM2
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2 
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM3
MM3SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM3
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2 
 
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
 
 
;MM4
MM4SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM4
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2 
 
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
 
;MM5
MM5SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM5
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM6
MM6SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W 
 MOVWF MM6
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM7
MM7SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM7
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM8
MM8SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM8
;スペース"29"判定*6月
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO MMEND2
 
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM9
MM9SET
; INCF MMC,1     ;*6月
 CALL MRX
 MOVF MMA,W
 MOVWF MM9

;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;書出10桁終了
MMEND2       ;*6月
 
 CALL TIM100M0
 BSF PORTB,3     ;LED消灯
 GOTO START
MMEND
 CALL TIM100M0
 BSF PORTB,3     ;LED消灯
 GOTO MMTX

;**********************************
;PS2読み込み データ ⇒ MMAへ保存 0?6bitへコード、7bitへチェックサム
MRX
;スタート
 CLRF MMA
 BTFSC PORTB,5     ;CLK='1'確認
 GOTO $-1
; CALL TIM01
; BTFSC PORTB,4     ;DATA=スタートビット確認
; GOTO MRX
 BTFSS PORTB,5
 GOTO $-1
 CALL TIM01
;ビット0
 BTFSC PORTB,5
 GOTO $-1
 CALL TIM01
 BTFSC PORTB,4
 BSF MMA,0
 CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
 CALL TIM01
;ビット1 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,1
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット2 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,2
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット3 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,3
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット4 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,4
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット5 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,5
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット6 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,6
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット7  データは捨てる 
 BTFSC PORTB,5
 GOTO $-1
 CALL TIM01
; CALL TIM01
; CALL TIM01
; CALL TIM01
 BTFSS PORTB,5
 GOTO $-1
; CALL TIM01
;ビット8 チェックサム bit7へセットする 
 BTFSC PORTB,5
 GOTO $-1
; CALL TIM01
 BTFSC PORTB,4
 BSF MMA,7
; CALL TIM01
 CALL TIM100M
 CALL TIM100M
 RETURN
;***********************************
;メモリリセット
MRR
; CLRF MMA ;データ変換用;*6月
 MOVLW H'29' ;スペースコード 
 MOVWF MMA ;*6月
 MOVWF MM0 ;0?6bitへコード、7bitへチェックサム
 MOVWF MM1
 MOVWF MM2
 MOVWF MM3
 MOVWF MM4
 MOVWF MM5
 MOVWF MM6
 MOVWF MM7
 MOVWF MM8
 MOVWF MM9
 RETURN
;***********************************
;書出  スタートbit データ0?6bit 7bitは”0” チェックサム エンドビット
MMTX
 
;*********************************
;書出し確認用
; BTFSS PORTA,3
; GOTO $-1
; BTFSC PORTA,3
; GOTO $-1
;*********************************
 BTFSS PORTB,4
 GOTO $-1
 BCF PORTA,1  ;書出LED点灯
 CALL TIM100M0
;MM0
 MOVF MM0,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
;キーを離す
 CALL   TX_HF0
 MOVF MM0,W
 MOVWF MMA
 CALL   MMTX1

;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START
;********************************* 
;MM1
 MOVF MM1,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM1,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M 
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM2
 MOVF MM2,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM2,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM3
 MOVF MM3,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M 
;キーを離す
 CALL   TX_HF0
 MOVF MM3,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM4
 MOVF MM4,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM4,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM5
 MOVF MM5,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M 
;キーを離す
 CALL   TX_HF0
 MOVF MM5,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM6
 MOVF MM6,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM6,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM7
 MOVF MM7,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM7,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM8
 MOVF MM8,W
 MOVWF MMA
 MOVWF MMB
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM8,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;スペース"29"判定*6月
 MOVF MMB,W
 MOVF MMA
 SUBLW H'2A'
 MOVWF MMB
 DECFSZ MMB,1
 GOTO $+2
 GOTO START 
;MM9
 MOVF MM9,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M 
;キーを離す
 CALL   TX_HF0
 MOVF MM9,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
 
;スペースキーデータ送出
 MOVLW H'29'
 MOVWF MMA
 CALL   MMTX1
;キーを離す
 CALL   TX_HF0
 MOVLW H'29'
 MOVWF MMA
 CALL   MMTX1 
 BCF PORTB,1
 CALL TIM100M0
 BSF PORTA,1         ;書出LED消灯
; GOTO MMTX  ;デバッグ書き出し確認用
 GOTO START
 
    

;**********************************
;書出サブルーチン 逆動作だよ 0が1 PB1=/DATA  PB2=/CLK
MMTX1
;***************************************
;CLK=0を確認
 BTFSS PORTB,5
 GOTO $-1
;*************************************** 
;スタートビット ”0”
 BSF PORTB,1
 CALL TIM19
 BSF PORTB,2
 CALL TIM40
;0bit
 BCF PORTB,2
 BCF PORTB,1
 BTFSS MMA,0
 BSF PORTB,1
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit1
 BCF PORTB,1
 BTFSS MMA,1
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit2
 BCF PORTB,1
 BTFSS MMA,2
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit3
 BCF PORTB,1
 BTFSS MMA,3
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit4
 BCF PORTB,1
 BTFSS MMA,4
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit5
 BCF PORTB,1
 BTFSS MMA,5
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit6
 BCF PORTB,1
 BTFSS MMA,6
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit7  "0"
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit8 チェツクサム
 BCF PORTB,1
 BTFSS MMA,7
 BSF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit9 ストップビット ”1” 
 BCF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
 BCF PORTB,2
 CALL   TIM99
 CALL   TIM99
 CALL   TIM99
 RETURN
;************************************
;キーを離したときのF0の送出
TX_HF0 
;***************************************
;CLK=0を確認
 BTFSS PORTB,5
 GOTO $-1
;***************************************
;スタートビット ”0”
 BSF PORTB,1
 CALL TIM19
 BSF PORTB,2
 CALL TIM40
;0bit  =”0”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit1  =”0”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit2  =”0”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit3  =”0”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit4  =”1”
 BCF PORTB,1
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit5  =”1”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit6  =”1”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit7  =”1”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit8 チェツクサム  =”1”
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
;bit9 ストップビット ”1” 
 BCF PORTB,2
 CALL TIM40
 BSF PORTB,2
 CALL TIM40
 BCF PORTB,2 
 CALL TIM99
 RETURN
;***********************************

ALN
 CLRF MMA ;データ変換用
 MOVLW H'1C' ;A
 MOVWF MM0
 MOVLW H'32' ;B
 MOVWF MM1
 MOVLW H'A1' ;C
 MOVWF MM2;
 MOVLW H'23' ;D
 MOVWF MM3
 MOVLW H'A4' ;E
 MOVWF MM4
 MOVLW H'AB' ;F
 MOVWF MM5
 MOVLW H'34' ;G
 MOVWF MM6
 MOVLW H'B3' ;H
 MOVWF MM7
 MOVLW H'43' ;I
 MOVWF MM8
 MOVLW H'3B' ;J
 MOVWF MM9
 RETURN

;************************************* 
;クロック判定時のタイマ とりあえず
TIM01
 NOP
 NOP
 NOP
 RETURN
 
 

;******************** 
;書出確認用タイマ
TIMSET
 MOVLW H'69'
 MOVWF T6
LOOPSET
 BTFSS PORTA,3
 GOTO T6END
 DECFSZ T6,1
 GOTO LOOPSET1
 GOTO   TIMSETEND
LOOPSET1
 CALL TIM99
 GOTO LOOPSET
T6END
 MOVLW H'01'
 MOVWF T6
TIMSETEND
 RETURN
 
TIM99   ;1.56mS用
 MOVLW H'B'
 MOVWF T5
TIM991
 CALL TIM100M2
 DECFSZ T5,1
 GOTO TIM991
 RETURN
;*******************************
;タイマ100mS
TIM100M
 CALL TIM100M0
 CALL TIM100M0
 CALL TIM100M0
 RETURN
TIM100M0
 MOVLW H'EB'
 MOVWF T5
TIM100M1
 CALL TIM100M2
 DECFSZ T5,1
 GOTO TIM100M1
 RETURN
TIM100M2
 MOVLW H'EB'     ;1.56mS用
 MOVWF T4
TIM100M3
 DECFSZ T4,1
 GOTO TIM100M3
 RETURN
;********************************
;20μSタイマ 1/2周期
TIM40
 CALL TIM19
 CALL TIM19
 RETURN
 
;19μSタイマ 1/4周期
TIM19
 MOVLW H'1E'
 MOVWF T3
LOOPTIM19
 DECFSZ T3,1
 GOTO LOOPTIM19
 RETURN
;**********************************
END

 

 

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする