男うちごはん

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

ロジックアナライザーのクリップ

2018年06月08日 18時19分22秒 | PIC16F84A

5月26日にUPしたロジックアナラーザー

そこに記載した追記

追記:奥さん大変です。プローブって言うんですかクリップって言うんですか、測定の為に回路に引っ掛けるクリップが6個しか同梱されていません。販売店(ネットだけどね)の画には、20個くらいあります。一応付属数が少ないよってメールしたけどさて!!!!!!!!

メールしておいたら、なしのつぶて でしたが、本日突然、茶色い封筒が来て

物だけ入っていました。

ありがとう! 謝!

少し残念なのは、もう少し早ければってことですよね 買ってしまってた まあ予備ってことで

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

ロジックアナライザー

2018年05月26日 17時35分55秒 | PIC16F84A

こんなもんポチットな!

USBタイプのロジックアナライザー 約7千円程度です

LA1010ってやつ

プローブの数が少な目です。 とりあえず8ビット分で十分!

付属のCDを

奥さん大変です ファイル名がすごすぎです。実行ファイルは1個なので、クリック! 

WIN10でも大丈夫ってかすかに記載してありましたので、迷わずクリック!

ディスクトップにこんなん出来ました。ストレスフリーでインストールできました。楽ちん。

注)インストール中に言語選択がありました。迷わず”英語”の方で 笑

インストールの確認もせず。本体にUSB刺して、これをクリックすると

無事動作しました おめでとう!

トリガが解らず! 説明書ないし!  あちこちクリックしたあげく

チャンネルの右側の×のとこをクリックすると 立ち上がり、上レベル、立下り、下レベルのトリガ選択マークが出た

もうこれで使えるってなもんです 笑

指定するチャンネルのトリガ方法を設定して、Startをクリックすれば、あとはトリガに信号がひっかかるのを待つだけ ああ簡単てな!

簡単に使い方(たぶんです) 

上の1Mが、取得するデータの数、ここが多いほど取得時間が長くなる:容量等にかんがみてまあ適当に変更します。

同12.5Mhzが取得するデータの間隔、ここが多いとデータが細かくなるので,高い周波数の信号を取れる:信号幅や容量等にかんがみてまあ適当に変更します。

同Startがデータ取得のスイッチ 流しているだけの信号ならここをクリックするだけで取り込めます。チャンネルにトリガ設定してクリックすれば、トリガに引っかかればデータを取り込みます。

他の設定もあるけど、とりあえずここを押さえておけばOK、取り込みのチャンネル数を少なくすれば表示長さが多くなるはずだし、色々と出来る

チャンネル表示の画面の方でマウスをスクロールすると上下にスクロール、データ表示の波形画面の方でマウスをスクロールすると時間軸が変わります。便利!

下の画は、チャンネル0で立ち上がりのトリガにしてみて

PS/2キーボードからのデータ

素人が使うには十分でしょう 20MHzOSCのPICと遊ぶんならコスパも良いし、ソフトをネットに見つけに行かなくても良いし楽ちんです

会社では、開発器、ロジックアナライザーの取りあいしたもんな~ 涙目

************************

色々安すぎ、コピーし放題って事情もあるでしょうが、日本のメーカはどうした! 開発しても売れない! 日本の技術力も落ちた!

どんなもんだろうね

追記:奥さん大変です。プローブって言うんですかクリップって言うんですか、測定の為に回路に引っ掛けるクリップが6個しか同梱されていません。販売店(ネットだけどね)の画には、20個くらいあります。一応付属数が少ないよってメールしたけどさて!!!!!!!!

 

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

キーボード送出データの一時記憶 メモ

2018年05月11日 08時00分26秒 | PIC16F84A

一連の キーボード送出データの一時記憶 UPでメモ

キーボードからの英数コードは、H’7F’ 以下 H”01’以上の範囲にあります。そこで8ビット目にチェックサムの値を記憶させておき、送出のときに8ビット目をチェックサムに展開して、さらに8ビット目は”0”にしています。

例 英数2のキーコードは、H’1E’で’0001 1110” なので”1”が4個あるのでチェツクサムは”1”が必要、そこで記憶ビットとして8ビット目を使い”1001 1110”としてH’9E’

そこでデータ

 英数  キーコード   チェックサムを考慮した値    
 1     16        16    
 2     1E        9E    
 3     26        26    
 4     25        25    
 5     2E        AE    
 6     36        B6    
 7     3D        3D    
 8     3E        3E    
 9     46        46    
 0     45        45    
 a     1C        1C    
 b     32        32    
 c     21        A1    
 d     23        23    
 e     24        A4    
 f     2B        AB    
 g     34        34    
 h     33        B3    
 i     43        43    
 j     3B        3B    
 k     42         C2    
 l     4B        CB    
 m     3A         BA    
 n     31         31    
 o      44           44    
 p     4D           CD    
 q      15          15    
 r      2D           AD    
 s       1B          9B    
 t      2C           2C    
 u       3C           BC    
 v       2A           2A    
 w      1D           9D    
 x        22          A2    
 y       35           B5    
 z       1A            1A    
 -       4E           CE    
 space   29         29    
 enter   5A          DA    
 F12 7    07          07

たぶん間違いないと思います。

テンキー(フルキーボードの右側のテンキーも同じか)のキーコードは、上記のコードとは違います。すべてのキーには、違うキーコードですね!

 


 

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

キーボード送出データの一時記憶 アセンブラ

2018年05月11日 07時27分51秒 | PIC16F84A

該出だと思うのですが IC-7851にキーに文字(文書)を記憶(設定)出来るPOSなどで使うキーボードを使用して、定型文送出でRTTY(PSK)通信をしているのですが、これはこれで、PCを接続せずに出来、便利しています。しかし、相手のコールサインを毎回キー入力しないとダメ! そこがめんどくさい

そこで、キーボードからのキー入力の英数10文字分くらい横取りで記憶させて(相手のコールサインを想定)をワンプッシュで、送出できないかなと

そこで候補にしたのが、PS/2キーボードです。 プロトコルも簡単そうだしってとこで(まあ、難しかったけど USBキーボードより簡単そう)

色々と先輩諸氏のネットを検索しながらの、案中模索状態で挑戦です。

一応の完成を見ましたので アセンブラです。

今後、配線し、ケースインしていきます(いつになるやら)

アセンブラ

;LBA.ASM
;PS2バッファ めざせIC-7851接続
;あるPS2ケーブル 茶:5V 赤:DATA 黄:CLK 灰:0V
;PA0="1"電源表示LED 出力
;PA1="0"書出中LED    出力
;PA2="0"読込SW   入力
;PA3="0"書出SW   入力
;PA4  未使用
;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
MM0 EQU MMB+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'00001100'
 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,2
 GOTO $-1
 BTFSS PORTA,3
 GOTO START
START1
 BTFSS PORTA,2  ;0で読込
 GOTO MMREED
 BTFSS PORTA,3  ;0で書出し
 GOTO MMTX
 GOTO START1
;******************************************
;読込スタート
MMREED
 
 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

;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM0SET     ;再読込
 MOVF MMA,W
 MOVWF MM0     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1

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

;MM1
MM1SET
 CALL MRX
 MOVF MMA,W
;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM1SET     ;再読込
 MOVF MMA,W
 MOVWF MM1     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
;MM2
MM2SET
 CALL MRX
 MOVF MMA,W
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM2SET     ;再読込
 MOVF MMA,W
 MOVWF MM2     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM3
MM3SET
 CALL MRX
 MOVF MMA,W
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM3SET     ;再読込
 MOVF MMA,W
 MOVWF MM3     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
 
 
;MM4
MM4SET
 CALL MRX
 MOVF MMA,W
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM4SET     ;再読込
 MOVF MMA,W
 MOVWF MM4     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
 
;MM5
MM5SET
 CALL MRX
 MOVF MMA,W
;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM5SET     ;再読込
 MOVF MMA,W
 MOVWF MM5     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM6
MM6SET
 CALL MRX
 MOVF MMA,W 
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM6SET     ;再読込
 MOVF MMA,W
 MOVWF MM6     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM7
MM7SET
 CALL MRX
 MOVF MMA,W
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM7SET     ;再読込
 MOVF MMA,W
 MOVWF MM7     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM8
MM8SET
 CALL MRX
 MOVF MMA,W
 ;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM8SET     ;再読込
 MOVF MMA,W
 MOVWF MM8     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;MM9
MM9SET
 CALL MRX
 MOVF MMA,W
;0判定
 ANDLW H'0F'
 MOVWF MMB
 INCF MMB,1
 DECFSZ MMB,1
 GOTO $+3
 CALL TIM100M0
 GOTO MM9SET     ;再読込
 MOVF MMA,W
 MOVWF MM9     ;記憶
;書出確認とタイマ
 CALL TIM99
 BTFSS PORTB,5
 GOTO $-1
 
 BTFSS PORTA,3
 GOTO MMEND     ;書出しへ
 BTFSC PORTB,4
 GOTO $-3
 
;書出10桁終了
 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 ;データ変換用
 MOVLW H'29' ;スペースコード 
 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
 CALL   MMTX1
;キーを離す
 CALL   TX_HF0
 MOVF MM0,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
; GOTO START     ;デバック用
;********************************* 
;MM1
 MOVF MM1,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM1,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M 
;MM2
 MOVF MM2,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM2,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM3
 MOVF MM3,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M 
;キーを離す
 CALL   TX_HF0
 MOVF MM3,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM4
 MOVF MM4,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM4,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM5
 MOVF MM5,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M 
;キーを離す
 CALL   TX_HF0
 MOVF MM5,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM6
 MOVF MM6,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM6,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM7
 MOVF MM7,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM7,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;MM8
 MOVF MM8,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;キーを離す
 CALL   TX_HF0
 MOVF MM8,W
 MOVWF MMA
 CALL   MMTX1
; CALL   TIM100M
;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

 

お約束:採用される場合は、自己責任でお願いします。こんなとこシフト命令にしろよってとこもあります。8ビットにキーデータを収めるために7ビット目をチェックサムビットとしています。そのあたりが解析の味噌です。機器に合わせてのデータ構築なので、機器によっては無理ってのもあるかもです

このソフトを使用したための事故事件、宇宙人と交信できちゃった すべて当方に責任はありませんから
 

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

キーボード送出データの一時記憶 回路図

2018年05月11日 07時20分19秒 | PIC16F84A

該出だと思うのですが IC-7851にキーに文字(文書)を記憶(設定)出来るPOSなどで使うキーボードを使用して、定型文送出でRTTY(PSK)通信をしているのですが、これはこれで、PCを接続せずに出来、便利しています。しかし、相手のコールサインを毎回キー入力しないとダメ! そこがめんどくさい

そこで、キーボードからのキー入力の英数10文字分くらい横取りで記憶させて(相手のコールサインを想定)をワンプッシュで、送出できないかなと

そこで候補にしたのが、PS/2キーボードです。 プロトコルも簡単そうだしってとこで(まあ、難しかったけど USBキーボードより簡単そう)

色々と先輩諸氏のネットを検索しながらの、案中模索状態で挑戦です。

一応の完成を見ましたので、回路図です。

今後、配線し、ケースインしていきます(いつになるやら)

回路図

多分、コピーして、画像ソフトにペーストすると見やすくなると思います。

回路図ソフトは 水魚堂さんの回路図エディタを今までも使用しています。感謝! 謝!

http://www.suigyodo.com/online/です

お約束:たまたま動作しているだけかもです。採用された場合の誤動作等すべて当方に責任はありませんから。自己責任で採用してください

5Vの電源をPS/2側から取ることも可能でしょう

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

キーボード送出データの一時記憶 IC-7851と接続

2018年05月10日 07時24分33秒 | PIC16F84A

該出だと思うのですが IC-7851にキーに文字(文書)を記憶(設定)出来るPOSなどで使うキーボードを使用して、定型文送出でRTTY(PSK)通信をしているのですが、これはこれで、PCを接続せずに出来、便利しています。しかし、相手のコールサインを毎回キー入力しないとダメ! そこがめんどくさい

そこで、キーボードからのキー入力の英数10文字分くらい横取りで記憶させて(相手のコールサインを想定)をワンプッシュで、送出できないかなと

そこで候補にしたのが、PS/2キーボードです。 プロトコルも簡単そうだしってとこで(まあ、難しかったけど USBキーボードより簡単そう)

色々と先輩諸氏のネットを検索しながらの、案中模索状態で挑戦です。

念願のIC-7851に接続してみました

地味ですが、IC-7851 RTTY画面 ABCDEFGHIJ を記憶させ、送出させたものです。

現在は、文字送出後にENTERキーのコードを入れてますが、使ってみると、スペースを入れた方が良い(もしくは、スペースが入っているのでOK)

構成は、該出の以下の感じで、PCの代わりにIC-7851です。IC-7851のUSBはUSB仕様のプロトコルと推定します(なんのこっちゃ)

PC接続でも問題なかった、あるおまじないをした構成

その1:USB←→PS/2変換器 それも、変換器だけ刺してもPC側で ぴっ と音がするので、何か回路がはいっているぽいやつ(回路がはいってないやつぽいのでは試していません)

その2:電源投入時には、PS/2キーボードの起動プロトコルにまかせっきりにしているので、電源投入時には、DATA線を双方向にしておき(ダイオードとトランジスタ)、その後、キーボード側からのDATAだけにする(ダイオードだけにする) アナログスイッチICの方が良いかも

現在ブレッドボードでは、クリップでダイオードを短絡している(以下の回路は検証してません)

ちなみに、常に双方向にしておくとダメです。途中でリピート状態になり止まりません。

構想は、記憶したデータを送出するとき前後プラス50mSくらいトランジスタをOFFしてやりゃいいかなと

POSキーボードとの接続も、直接接続の方法も誤動作するとIC-7851の電源再投入じゃないと復帰しません。交信中に誤動作したらフェードアウト 苦笑!!!!!

懐かし、紫(キーボード)と緑(マウス)をUSBに変換してくれるやつ。 この変換器だけPCに接続しても ぴっ て音がするので回路が入っているぽいです

あいかわらずのブレッドボード  白いクリップの先にダイオード IN60(相当)が 電源投入前にクリップで短絡して、おもむろにクリップを外して対処中 笑

まあ、こうなると次なる発想です。 とりあえずは、この構成で作成予定ですが!

次なる発想

POSキーボードに記憶している1キーに長文 例 おはようございます(ローマ字だけだけど) とかを 16キーと構成したPICに記憶させておき、(16の定型文もありゃ充分)

今の回路と同じケースに放り込めば、でっかいPOSキーボードが不要になりすっきりする(高かったけど)

こんな感じ ⇒⇒⇒ この方法だとPICだとメモリ容量が小さくて無理ってことを発見

 

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

キーボード送出データの一時記憶 ソフト完成(たぶん)

2018年05月06日 08時05分33秒 | PIC16F84A

該出だと思うのですが IC-7851にキーに文字(文書)を記憶(設定)出来るPOSなどで使うキーボードを使用して、定型文送出でRTTY(PSK)通信をしているのですが、これはこれで、PCを接続せずに出来、便利しています。しかし、相手のコールサインを毎回キー入力しないとダメ! そこがめんどくさい

そこで、キーボードからのキー入力の英数10文字分くらい横取りで記憶させて(相手のコールサインを想定)をワンプッシュで、送出できないかなと

そこで候補にしたのが、PS/2キーボードです。 プロトコルも簡単そうだしってとこで(まあ、難しかったけど USBキーボードより簡単そう)

色々と先輩諸氏のネットを検索しながらの、案中模索状態で挑戦です。

キーボード送出データの一時記憶 中間報告 の 第2回目 ソフト完成編(たぶん)です。

前回、データを送出することができました。、キーボードからのデータを記憶させ、さらに送出するところまで。つまりソフト的には完成(たぶん)

構成のイメージは、こんな感じです

偶然か?この構成だとPS/2キーボードからのデータ送出プロトコルがとても簡単になります。

ずーーーとソフト考えていたりしたので、予定を間違えたり、4日に柏餅買ってきたり 笑

地味な画ですが、動作結果

上の 1234567890はキーボードから下の3行はソフトから送出

ASDFGHJKLQも同様です

文字を送出後にEnterキーのコードも送出して改行するようにしました。

10文字未満で送出する。これが意外と難しく、結局タイマーで逃げた! だから1文字入力間隔は100ms以上空けないと入力がダメになる。(ほぼ問題なし) リピート入力もだめだろう(試してないが)

キーを押した時と離したときにデータが出るので、それを判別するのが大変、結局タイマで逃げた。キーを押してる時間を200ms弱程度としている。これは押す人間側への制約だけど

5文字分の記憶で、送出にした例(1~10文字どこでもOK確認したよ) 10文字未満の場合は残り文字はスペースを送出

QWERTとキーボードから 下の2行はソフトから

回路図とソフトのUPは後日、作成はもっと後日になる予定 部品が足りない、ネットで買うか、秋葉原まで遊びに行くか

その前に、畑仕事のめどがたたないと、おまけに、来週は会議が。。。。。。資料を作らねば!!!!!

謝辞:先輩諸氏のプロトコル解析、解説のネット、大いに参考にさせていただきました。ありがとうございます。

 

 

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

キーボード送出データの一時記憶 中間報告

2018年05月02日 07時53分23秒 | PIC16F84A

該出だと思うのですが IC-7851にキーに文字(文書)を記憶(設定)出来るPOSなどで使うキーボードを使用して、定型文送出でRTTY(PSK)通信をしているのですが、これはこれで、PCを接続せずに出来、便利しています。しかし、相手のコールサインを毎回キー入力しないとダメ! そこがめんどくさい

そこで、キーボードからのキー入力の英数10文字分くらい横取りで記憶させて(相手のコールサインを想定)をワンプッシュで、送出できないかなと

そこで候補にしたのが、PS/2キーボードです。 プロトコルも簡単そうだしってとこで(まあ、難しかったけど USBキーボードより簡単そう)

色々と先輩諸氏のネットを検索しながらの、案中模索状態で挑戦中です。

キーボード送出データの一時記憶 中間報告 の 第1回目です。

あらかじめ記憶させてある10文字のデータを送出することが出来るようになりました。次は、キーボードからの入力を記憶させることにとっかかります。

ABCDEFGHIJ の10文字をあらかじめ記憶させておき、送出させてます。

左が、POSなんかで使ってるキーボード、その横にPS/2のソケットがあり、そこへ接続(紫のコネクタを接続)

PCのメーラに送出してます。まあなんて地味な結果でしょうか。しかし、僕的には偉大な一歩であります。

*PCがデータを読めたので、IC-7851も読めるだろうと解釈してます。(確認は後日)

波形です 黄色がクロック、青がデータです。キーを押したとき、離したときのデータ送出を再現してます。

150mSくらいかかってます。通信としてはとても遅いです。(だからなんとかなるということも)

デバック中の基板

電源投入時のPS/2キーボードとの接続確認のやり取りは、PS/2キーボードがやれば良いと、あっさりと、電源投入時のプロトコルは無いのですが、奥さん大変です!PS/2のキーボードが接続されていなくても使えてます?どうして????

まあいいか! 苦笑

文書だけですが、簡単に構想も含め説明

PS/2キーボードとこのセットは、CLK、DATA、電源を並列に接続

電源投入時のやり取りは、キーボードにやってもらう。(だってそのやり取りがわかんないんだもの、そして、そこまでソフト作るのめんどくさいし)

読み込みスイッチを押してから、キーを押すと、英数10文字まで記憶、記憶しながら機器へも送出

記憶したデータは、書出しスイッチを押すと、英数10文字まで機器へ送出

例えば6文字しか記憶してない場合は、後4文字はスペースを送出

基本、英数だけで、1文字0~7bitの全8ビット構成で記憶させる。7bit目は、チェックサムデータを記憶させておく

これがあるから、英数限定にしてる。このデータをスタートビット、データ、チェックサム、エンドビットに展開して送出する。

ざっくりだと、データのコードは、Ox”01”以上Ox”7F”以下データを取り扱うことが出来る Ox”×0”(下位4ビットが0)は記憶しないようにしている。

 

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

ダブルPIC波形発生器

2018年04月03日 07時01分08秒 | PIC16F84A

該出のPICで波形発生器

2個のPICを切り替えるようにして

波形の種類を沢山(4種を2系統で8種類まで可)だせるようにしました。あんまり意味ないけどね

周波数も8bit分変更できるようにしました。AポートのPA4の”1”/”0”でPA3~PA0の4bit分を下3~0bit 上7~4bitに割り付けるようにしてタイマ関数を設定できるようにした。(アセンブラを記載しないけど)

ケースIN  不用品となってしまった穴あきケースを無理くり転用 穴あいていたっていいじゃないか!

基板は、樹脂で包んで無理くり収納です。5V電源は、あっさりとUSB電源から取ることにしました

画は、下側が本体の上ってことで

該出のハートの波形の他に、2トーン波形、三角波、正弦波、疑似乱数による正弦波波形の周期を変える波形、疑似乱数による波高変換の波形

疑似乱数による正弦波波形の周期を変える波形  結構不思議な感じです。

疑似乱数による波高変換の波形です ますます不思議な感じです

ハート波形から再熱したPICで波形問題は、とりあえずここまでとします

注)PICの切替は、リセット中は、PICのI/O端子は、入力側になってんじゃねぇ?ってことでやっつけてます。違う仕様のPICあるかもです(たぶんないです)。リセットのとこの配線間違いや、断線などで両方のPICが出力でぶつかるなんてこともあるので、覚悟してくださいね。発振子も一方のPICでまかなってます。そちらのPICが動作してないと2個目のPICも動作しませんから

追記:アセンブラ示しませんが、参考までに、動作の概略

電源5Vを引加します

リセットを切り替えるスイッチで、PICを切り替えます。

Aポートの0,1bit目を設定すると波形を切り替えることが出来ます。

リセットスイッチを押します(電源再投入でもOK)

設定した波形が送出されます。

Aポートの0~3ビットで周波数を変えることが出来ます。Aポートの4ビット目を切り替えると、Aポートの0~3ビットを上位桁、下位桁に書き込みます。これで、広い幅に周波数を変えることが可能です。確かFFだか00に設定すると あれ? ってな事になるはず。まあ、波形観測しながら切り替えれば問題なし!

 

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

ハートの波形 その3

2018年03月28日 07時02分51秒 | PIC16F84A

該出のハートの波形 エクセルで検討したとこまでしてが、雨模様でもあり、炬燵ラボも片づけないと春が来ないので(苦笑)とりあえずやってみました。

他の波形も出てきます。

三角波

FFT (FFT⇒ファイナルファンタジーじゃないよ)

正弦波

FFT 39dbほどのSN比?があります 優秀!  (FFT⇒ファイナルファンタジーじゃないよ)

ツートーン波形 

FFT たしか32dbほどのSN比?があります 優秀!  (FFT⇒ファイナルファンタジーじゃないよ)

再度 ハートの波形

もともとは、デジタルオシロの宣伝デモでこんな波形を表示しているのを見て、やってみようってのがきっかけです。

時間軸が、64分割ぶんなので(工夫すれば倍くらいになるかな)表現力は悪いですが、中抜きにならない模様なら、作成可能っちゃ可能です。子供の画くらいの表現しかできないでしょうが、魚、丸、ひし形、三角とか、でしょうか

ちなみに、外側だけでハートとか見えるのは、包絡線を判断して見ていることになります

やれば出来る簡易任意波形発生器ってか!

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