PICは16F84A表¥示データインタフェースの問題

D

desmop

Guest
こんにちは、

これは
、 このフォーラムに私の最初の投稿ので、
私 とクマです。アセンブリコードを書くために私
は 研究に取り組んで
いる / ç microturbineタコメーター。私は非常に
新しいです ので、私は本当に助けを使うことができます。私は
、 7.30 VのMPLAbのIDEとの言語complingは
、 PICは16F84Aマイクロコントローラチップを使用し
ている とMplasmを使用してデータを組み立てる。私は"たったの5桁の液晶ディスプレイに加えて
、 タグを表¥示することができます問題
を 私の8 × 2の詳細データを表¥示できないのRPM " 。最初の3つのデータだけを埋め
、 最後の2桁だけゼロ印刷されています。私 はプログラムを書かれている方法は
、 100の
RPMの中 に表¥示されています。また
、 ディスプレイの2行目のブレードのslectable数です。私は
99900 以上のRPMを表¥示しますが
、私 はそれを行うには
、 正しい方法を割り出すことができるできるようにします。私の円を維持している人の経験があるからいくつかの助けが必要です。私の評価と提案にはASMファイルを添付
しました 。事前に感謝します!

 
やあ、

興味深いプロジェクトが、私は添付ファイルを参照することはできません: /引用:

最初の3つのデータだけを埋め、最後の2桁だけゼロ印刷されています。
 
コードPICは16F84A表¥示データインタフェース問題.....の投稿

リストP = 16F84A 、研究= 16進; 16F84A実行
4 MHzで
; " P16F84A.inc "
など;液晶回転のR / Cモデルタービン機関
;デズモンド、 P
;
; 16F84Aピンアウト
;
;ピン1 : RA2ピン10 : RB4
;ピン2 : RA3ピン11 : RB5
;ピン3 : RA4/T0CKIピン12 : RB6
;ピン4 : MCLRピン13 : RB7
;ピン5 : VSSの 5
Vの ピン14
電圧 :
VDD 5
Vの;ピン6 : RB0/INTピン15 : OSC2/CLKOUT
;ピン7 : RB1 Ñ /ピン16 : OSC1/CLKIN
;ピン8 : RB2ピン17 : RA0
;ピン9 : RB3ピン18 : RA1
;
; KJ66のバージョン3.25 :
2006年5月11日 更新
;
;-------システム---------------------
__CONFIG H'3FF1 '
定義のRAM ;------- ------------
TMR0 EQU 1 ;タイマ0
パソ¥コンEQU 2 ;プログラムカウンタ
状況EQU 3
FSR EQU 4 ;間接アドレスのバッファ
ポートEQU 5
ポートEQU 6
EEDATA EQU 8 ; EEPROMデータ
EEADR EQU 9 ; EEPROMの住所
PCLATH EQU H'A '
INTCON EQU H'B ' ;制御割り込み
OPTIONF EQU 1 ;は0x81
TRISA EQU 5 ; 0X85
TRISB EQU 6 ; 0X86
EECON1 EQU 8 ; 0X88のEEPROMはCONTROL1
EECON2 EQU 9 ; 0X89のEEPROMはCONTROL2

;-------定義ビット-------------
;
ç EQU 0
水EQU 0 ; D値
の INCF ......
金EQU 1 ; D値
オフEQU 0 ;フラグビット0 、
RP0 EQU 5 ;ステータスビット5 & 6 =レジスタバンクセレクト
RP1 EQU 6
入力EQU 7 ; RB7の入力ポート
TOIF EQU 2 ; INTCON TMR0 INTはOVERLOWフラグ
TOIE EQU 5 ; INTCON TOIFのENABLE
GIE EQU 7 ; INTCONグローバルINTをイネーブル

ユーザー;------- -------------------------------------
レジスタ;------- ------
;
TCNT0 EQU H'C ' ; = ( 0.6SEC / INTは* * PRESCALクロック)
INTR0 EQU H'D ' ;後INTは、保存水バリュー
INTR1 EQU H'E ' ;後INTは、保存状況
DD1 EQU H'F ' ;データ入力
用 のRPM
DD2 EQU H'10 '
DD3 EQU H'11 '
TEMP1 EQU H'12 ' ;
TEMP2 EQU H'13 '
TEMP3 EQU H'14 '
SLOW_C EQU H'15 ' ; 100-200 - 1のすべてのINT_DST
INT_C EQU H'16 ' ; INT_DSTすべての
0から255 -1
FLAG_REG EQU H'17 '
MODE_SEL EQU H'18 '
PWM_C EQU H'19 '
PUSH_C EQU H'1A '
RAND_HI EQU H'1B '
RAND_LO EQU H'1C '
TCNT EQU H'1D '

;-------ビット----------------
F_ON EQU 0
F_UP EQU 1
F_TDST EQU 2
F_REC EQU 3
TACHO_SEL EQU 4
;
変数;------- -----------
;
TMR EQU D' 181 ' ; ( PRESCALE 64 * 1uS ) * 75 = 4800問い合わせ
TCNT_2 EQU D' 125 ' ; 4.8mS * 125 = 600mS 、
ある コードを修正一部の反抗挑戦
TCNT_3 EQU D' 84 ' ;この2 * PRESCALE 1:64 、 0.6秒
に 期間
TCNT_4 EQU D' 62 '
TCNT_5 EQU D' 50 '
BDELAY EQU D' 40 '
TMR1 EQU D' 178 ' ; ( PRESCALE 256 * 7

<img src=¥"http://www.edaboard.com/images/smiles/icon_cool.gif¥" alt=¥"涼しい¥" border=¥"0¥" />

= 19968私たち

RLIMIT EQU D' 200 ' ;サーボ制限
LLIMIT EQU D' 100 '

液晶スーティン;------- -------------------------
レジスタ;------- ---------
;
住所EQU H'41 '
CHAR1 EQU H'42 '
TEMP1_LCD EQU H'43 '
TEMP2_LCD EQU H'44 '
TEMP3_LCD EQU H'45 '
TEMP4_LCD EQU H'46 '
TABLE_INDEX EQU H'47 ' ;
;
メインプログラム;========== =========
;
ORGは0
PAGESELスタート
後藤スタート
;----------------------------------------
;
ORGは4 ;開始割り込み

INTB MOVWF INTR0 ;
W 保存
MOVF状況
は 、水;状況セーブ
MOVWF INTR1
BCF状況、 RP0 ;もちろんのSELECT BANK0
するCHECK_TDST
BTFSC FLAG_REG 、 F_TDST ;した場合に設定後藤夏時間モード
後藤INT_DST

;----------------------------------
タコメータ;-----割り込み-----------

INT_TACHO
MOVLW TMR ; TIMER0復元
MOVWF TMR0 ;
DECFSZ TCNT0
は 、
F ;ゼロのIFスキップ
後藤意図
リロードMOVF TCNT 、水;リロードTCNT0
MOVWF TCNT0
;------------------------------------------------- -
DISP_RPM
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW B'00110000 '
IORWF DD1 、 1
IORWF DD2 、 1
IORWF DD3 、 1
MOVFW DD1
呼出しPRINT_CHAR
MOVFW DD2
呼出しPRINT_CHAR
MOVFW DD3
呼出しPRINT_CHAR
MOVLW '0 '
呼出しPRINT_CHAR
MOVLW '0 '
呼出しPRINT_CHAR
MOVLW ' r '
を呼出しPRINT_CHAR
MOVLW ' p '
を呼出しPRINT_CHAR
MOVLW ' M '
の呼出しPRINT_CHAR
RESET_COUNT
CLRF DD1 ;データ表¥示
CLRF DD2
CLRF DD3リーフ;------モード選択--------
BTFSSポート、 1 ;のSELECT ?
BSF FLAG_REG 、 TACHO_SEL
MOVLW TMR ; TIMER0復元
MOVWF TMR0 ;
後藤意図

int
の 速度;------エンド---------

;---------------------------------
INT_DST
MOVLW TMR1 ; 256 * 78 = 19968私たち
MOVWF TMR0
MOVF PWM_C 、水
MOVWF TEMP1
;-------------------------------------
BIN2BCD MOVWF DD3 ; 1
CLRF DD2 ; 10
CLRF DD1 ; 100

H1 MOVLW 0X64 ; 100
SUBWF DD3
は 、
F ; 100から数値を引く
BTFSC状況は
C ;マイナスの結果
ですか ?
後藤のH2 ;なし?後藤のH2
後藤のH3 ;はYES
ですか ?後藤のH3 ( 100 ) DDD3
の水素INCF DD1
は 、
F ;インクリメントDD1登録
後藤H1 ; &もうひとつのテストのためのループバック
のH3 MOVLW 0X64 ; 100
ADDWF DD3
は 、
F ;番号に100をもう一度追加

t1がMOVLW 0x0Aが発生; 10
SUBWF DD3
は 、
F ; 10から数値を引く
BTFSC状況は
C ;マイナスの結果
ですか ?
後藤T2をありません
か ?後藤T2を
後藤T3 ;はYES
ですか ?後藤T3 ( 10 )
の DDD3
T2をINCF DD2
は 、
F ;インクリメントDD2登録
後藤t1が; &もうひとつのテストのためのループバック
T3 MOVLW 0x0Aが発生; 10
ADDWF DD3
は 、
F ;数に10をもう一度追加
;------------------------------------------------- -
MOVLW H'40 '
呼出しDDRAM_ADDRESS
MOVLW B'00110000 '
IORWF DD1 、 1
IORWF DD2 、 1
IORWF DD3 、 1
MOVLW ' '
呼出しPRINT_CHAR
MOVFW DD1
呼出しPRINT_CHAR
MOVFW DD2
呼出しPRINT_CHAR
MOVFW DD3
呼出しPRINT_CHAR
MOVLW '0 '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' u '
を呼出しPRINT_CHAR
MOVLW ' s 'の
呼出しPRINT_CHAR
BTFSC FLAG_REG 、 F_REC
後藤意図
BSFポート、 3
INT_DST1 ; 10米ループ
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ TEMP1
は 、
F後藤INT_DST1 ;ループ
の 終了
BCFポート、 3
DECF INT_C
は 、
F ;増加INT_COUNTER

;-------------------------------------
意図
MOVF INTR1 、水;状況復元
MOVWF状況
MOVF INTR0 、水、
水 復元
BCF INTCON 、 TOIF ; INTはT0のリセットフラグ
RETFIE
;
;
;-------------------------------------------------
;============================================
;液晶スーティン

;================================================= =============
PRINT_DATA
BSFポート、 2 ;のRS = 1 、データ
MOVWFアドレス
BSFアドレス、 2
MOVF住所、 0
MOVWFポート
BSFポート、 3
NOP
BCFポート、 3
呼出しLOOP_S ; 100問い合わせ
戻り

PRINT_CONT
MOVWFポート
BSFポート、 3
BCFポート、 3
呼出しLOOP_S ; 100問い合わせ
戻り

CLEAR_DISPLAY
MOVLW B'00000000 ' ; 0
呼出しPRINT_CONT
MOVLW B'00010000 ' ; 1クリア
呼出しPRINT_CONT
MOVLW 1
呼出しLOOP_L ; 10msの
戻り

DDRAM_ADDRESS
MOVWFアドレス
BSF住所、 7
MOVF住所、 0
ANDLW B'11110000 ' ;
呼出しPRINT_CONT
SWAPF住所、水;スワップ折半金
ANDLW B'11110000 ' ;
呼出しPRINT_CONT
戻り

PRINT_CHAR
MOVWF CHAR1
ANDLW B'11110000 ' ;
呼出しPRINT_DATA
SWAPF CHAR1 、水;スワップ折半金
ANDLW B'11110000 ' ;低4ビットを送信
呼出しPRINT_DATA
戻り

LOOP_S ; 100uSループ
MOVLW D' 33 '
MOVWF TEMP4_LCD
LOOP_S1
DECFSZ TEMP4_LCD 、 1 ;
後藤LOOP_S1
戻り

LOOP_L ; 10ミリ秒ループ
MOVWF TEMP1_LCD
LOOP_L1
MOVLW D' 10 ' ; 10ミリ秒
MOVWF TEMP2_LCD
LOOP_L2
MOVLW D' 249 ' ; ( 249 * 4 ) 5 = 1001
MOVWF TEMP3_LCD
LOOP_L3
NOP
DECFSZ TEMP3_LCD 、 1
後藤LOOP_L3
DECFSZ TEMP2_LCD 、 1
後藤LOOP_L2
DECFSZ TEMP1_LCD 、 1
後藤LOOP_L1
戻り

DISP_MESSAGE
MOVWF TABLE_INDEX ;水- >インデックス
は 、メッセージの開始
呼出しMESSAGE1
ANDLW 0FFH
SKPNZ ; TABLEを返却0 、メッセージセクション
の範囲のIF戻り
呼出しPRINT_CHAR ; DOSPLAY
INCF TABLE_INDEX 、 0
後藤DISP_MESSAGE
;================================================= ===
MODE_ADDRESS

ADDWF PCの
は 、
F

RETLW 0 RETLW 0
RETLW D' 9 '
RETLW D' 18 '
RETLW D' 27 '

MESSAGE1

ADDWF PCの
は 、
FRETLW '
t '
をRETLW 'は'
RETLW ' c '
にRETLW ' h '
をRETLW ' o '
はRETLW ' '
RETLW ' '
RETLW ' '
RETLW 0
RETLW ' ' ; 9
RETLW ' e '
をRETLW ' r '
をRETLW '五'
RETLW ' o '
はRETLW ' '
RETLW '
t '
をRETLW ' X '
をRETLW 0
RETLW ' ' ; 18
RETLW ' p '
をRETLW ' e '
をRETLW ' e '
をRETLW 'エ'
RETLW ' '
RETLW '
t '
をRETLW ' X '
をRETLW 0
RETLW '研究' ; 27
RETLW ' e '
をRETLW ' c '
にRETLW ' e '
をRETLW '私'
RETLW '五'
RETLW ' e '
をRETLW ' r '
をRETLW 0

NOP ; 36;=======================================
;----------を開始-----------
;----------------------------------------
;

スタート
BSF状況、 RP0 ; 3,5イネーブルBANK1
セットMOVLW B'00000001 '
MOVWF TRISB ;セットバリチェロ1-7出力、 0入力
MOVLW B'00000111 '
MOVWF TRISA ;セットRA0 - RA2 INTPUT 、 RA3 、 RA4出力
BCF状況、 RP0 ; BANK0のENABLE
BCFポート、 3 ;出力のPWM
BSFポート、 4 ;出力 5
V電源 オフ
CLRFポート
BCF INTCON 、 GIE
CLRF FLAG_REG
MOVLW D' 150 '
MOVWF PWM_C

INIT_LCD
MOVLW 5 ;遅延50mS電源
呼出しLOOP_L
SET_4BIT_MOD ;液晶の
4 ビットモデルセット
MOVLW B'00110000 ' ; 3
呼出しPRINT_CONT
MOVLW 1
呼出しLOOP_L ; 10msの
MOVLW B'00110000 ' ; 3
呼出しPRINT_CONT
MOVLW B'00110000 ' ; 3
呼出しPRINT_CONT
MOVLW B'00100000 ' ; 2 、 4BITモード
呼出しPRINT_CONT
MOVLW B'00100000 ' ; 2
呼出しPRINT_CONT
MOVLW B'10000000 ' ; 8 4BITS 、 2行、
フォント 0
呼出しPRINT_CONT

INIT_DISPLAY
MOVLW B'00000000 ' ;または
呼出しPRINT_CONT
MOVLW B'11000000 ' ; ç画面上でカーソ¥ルをなし、なしの点滅
呼出しPRINT_CONT
呼出しCLEAR_DISPLAY ;クリア表¥示MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' K '
で呼出しPRINT_CHAR
MOVLW ' J '
である ;ディスプレイ最初のセクションメッセージ
呼出しPRINT_CHAR
MOVLW ' - '
呼出しPRINT_CHAR
MOVLW '6 '
呼出しPRINT_CHAR
MOVLW '6 '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHARMOVLW H'40 '
呼出しDDRAM_ADDRESS
MOVLWの
D '
呼出しPRINT_CHAR
MOVLW ' s 'の
呼出しPRINT_CHAR
MOVLW '
t '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLWの
V '
呼出しPRINT_CHAR
MOVLW '3 '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW '2 '
呼出しPRINT_CHAR

MOVLW D' 150 '
呼出しLOOP_L ;遅延3.0秒

CLRF MODE_SEL
INCF MODE_SEL
は 、
F;------------------------------------------
MMODE_00
MOVLW H'40 '
呼出しDDRAM_ADDRESS
MOVFW MODE_SEL
呼出しMODE_ADDRESS ;モード名始める
呼出しDISP_MESSAGE ;表¥示モード名称
MOVLW D' 50 '
呼出しLOOP_L ; 1.0セカンド変更モード
BTFSSポート、 1
後藤MMODE_01 ; 押し、次のモード
BTFSSポート、 0
後藤MMODE_02 ;のSELECT押す

後藤MMODE_00
MMODE_01
INCF MODE_SEL
は 、
FMOVLW 5 ; MODE_SEL 1-4のみ
SUBWF MODE_SEL 、水
SKPZ
後藤MMODE_00
MOVLW 1
MOVWF MODE_SEL
後藤MMODE_00
MMODE_02

後藤;-------オンMODE_SEL ----------
MOVLW 1
SUBWF MODE_SEL 、水
SKPNZ
後藤メイン; 1速度
MOVLW 2
SUBWF MODE_SEL 、水
SKPNZ
後藤DST_MAIN ; 2夏時間
MOVLW 3
SUBWF MODE_SEL 、水
SKPNZ
後藤SCT_MAIN ; 3 SCT
MOVLW 4
SUBWF MODE_SEL 、水
SKPNZ
後藤RECT_MAIN ; 4修正
;------------------------------------

メイン
BSFポート、 4 ;出力 5
V電源 オフ
呼出しCLEAR_DISPLAY ;クリア表¥示
MOVLW 0
呼出しDDRAM_ADDRESS
MOVLW 1
呼出しMODE_ADDRESS ;モード名始める
呼出しDISP_MESSAGE ;表¥示モード名称

BSF状況、 RP0 ; 3,5イネーブルBANK1
セットMOVLW B'10000101 '
MOVWF OPTIONF ; INTERNAT時計、 TRM0 、 1:64
BCF状況、 RP0 ; BANK0のENABLE
CLRF DD1 ;データ表¥示
CLRF DD2
CLRF DD3
MOVLW 1デフォルト2葉
MOVWF MODE_SEL
後藤T_SEL
MAIN01
MOVLW TMR ; 75
MOVWF TMR0
MOVLW TCNT ;葉に依存
MOVWF TCNT0
BCF INTCON 、 TOIF
BSF INTCON 、 TOIE
BSF INTCON 、 GIE ; INTをイネーブル
;----------------------------------
MAIN1
BTFSC FLAG_REG 、 TACHO_SEL
後藤T_SEL
BTFSSポート、 2
後藤スタート
BTFSCポート、 0 ; = 0 、 SKIPを入力
後藤MAIN1
MAIN2
BTFSC FLAG_REG 、 TACHO_SEL
後藤T_SEL
BTFSSポート、 2
後藤スタート
BTFSSポート、 0 ; = 1 、 SKIPを入力
後藤MAIN2
MAIN3 INCF DD3
は 、
FMOVLW H'0A '
SUBWF DD3 、水
SKPZ ;ディジタル1 =は、必ずAJUST
後藤MAIN1
CLRF DD3
INCF DD2
は 、
FMOVLW H'0A '
SUBWF DD2 、水
SKPZ ;ディジタル1 =は、必ずAJUST
後藤MAIN1
CLRF DD2
INCF DD1
は 、
F ;ディジタル3れません> 9
ので 、チェック
後藤MAIN1

;------------------------------------
;------速度モード選択-----------
T_SEL
BCF FLAG_REG 、 TACHO_SEL
BCF INTCON 、 GIE
INCF MODE_SEL
は 、
FMOVLW 6 ; MODE_SEL 2-5のみ
SUBWF MODE_SEL 、水
SKPZ
後藤T_SEL1
MOVLW 2
MOVWF MODE_SEL
T_SEL1
MOVLW H'40 '
呼出しDDRAM_ADDRESS
MOVLW H'30 ' ; ASCIIに16進変換
ADDWF MODE_SEL 、水; ASCIIに16進変換
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW '
b '
に呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR

後藤;-------オンMODE_SEL ----------
MOVLW 2
SUBWF MODE_SEL 、水
SKPNZ
後藤TMODE_2 、 2葉
MOVLW 3
SUBWF MODE_SEL 、水
SKPNZ
後藤TMODE_3 ; 3
MOVLW 4
SUBWF MODE_SEL 、水
SKPNZ
後藤TMODE_4 ; 4
;------------------------------------
TMODE_5 ; 5
MOVLW TCNT_5
MOVWF TCNT
後藤T_SEL_5
TMODE_4
MOVLW TCNT_4
MOVWF TCNT
後藤T_SEL_5
TMODE_3
MOVLW TCNT_3
MOVWF TCNT
後藤T_SEL_5
TMODE_2
MOVLW TCNT_2
MOVWF TCNT
後藤T_SEL_5
T_SEL_5
MOVLW D' 50 ' ; 0.01秒* 50
呼出しLOOP_L
BTFSSポート、 1
後藤T_SEL ;変更モード
後藤MAIN01

タコメータ
の エンド;------ --------------
;================================================= ===
DST_MAIN
BCFポート、 4 ;出力 5
Vの 右折禁止
BSF FLAG_REG 、 F_TDST ;した場合に設定後藤夏時間モード
呼出しCLEAR_DISPLAY ;クリア表¥示
MOVLW 0
呼出しDDRAM_ADDRESS

;------- SETUP_INTERRUPT -------

BSF状況、 RP0 ; 3,5イネーブルBANK1
セットMOVLW B'10000111 '
MOVWF OPTIONF ; INTERNAT時計、 TRM0 、 1:256
BCF状況、 RP0 ; BANK0のENABLE
MOVLW TMR1 ; 256 * 78 = 19968私たち
MOVWF TMR0
BCF INTCON 、 TOIF
BSF INTCON 、 TOIE
BSF INTCON 、 GIE ; INTをイネーブルCLRF MODE_SEL
;-----------------------------------------------
MODE_0
INCF MODE_SEL
は 、
FMOVLW 7 ; MODE_SEL 1-5のみ
SUBWF MODE_SEL 、水
SKPZ
後藤MODE_01
MOVLW 1
MOVWF MODE_SEL

後藤;-------オンMODE_SEL ----------
MODE_01
MOVLW 1
SUBWF MODE_SEL 、水
SKPNZ
後藤MODE_1 ;マニュアル
MOVLW 2
SUBWF MODE_SEL 、水
SKPNZ
後藤MODE_3 ; FSAT
MOVLW 3
SUBWF MODE_SEL 、水
SKPNZ
後藤MODE_4 ;中
MOVLW 4
SUBWF MODE_SEL 、水
SKPNZ
後藤MODE_2 ;スロー
MOVLW 5
SUBWF MODE_SEL 、水
SKPNZ
後藤MODE_5 ;はRANDOM
後藤MODE_6 ;避難口
;-------------------------------------------------
MODE_1
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' M '
の呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' n '
を呼出しPRINT_CHAR
MOVLW ' u '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' l '
の呼出しPRINT_CHAR
MOVLW BDELAY
呼出しLOOP_L
MODE_10
MOVLW D' 150 '
MOVWF PWM_C
MODE_11
BTFSSポート、 0
後藤INC_B
BTFSSポート、 2
後藤DEC_B
BTFSSポート、 1
後藤CENT_B
CLRF PUSH_C
後藤MODE_11
INC_B MOVLW RLIMIT
SUBWF PWM_C 、水
SKPNZ
後藤MODE_11 ; = RLIMIT
し 、何も
INCF PWM_C
は 、
FMOVLW D' 5 ' ;
5 ステップでは、加速を続行する
SUBWF PUSH_C 、水
SKPNZ
後藤INC_B1 ;
MOVLW D' 20 ' ; 0.2第2回
呼出しLOOP_L ;呼出し0.1秒ループ
INCF PUSH_C
は 、
F後藤MODE_11
INC_B1 ;ファスト株式会社
MOVLW D' 6 '
呼出しLOOP_L ; 0.06第2回
後藤MODE_11
DEC_B
MOVLW LLIMIT
SUBWF PWM_C 、水
SKPNZ
後藤MODE_11 ; = LLIMIT
し 、何も
DECF PWM_C
は 、
FMOVLW D' 5 ' ;
5 ステップでは、加速を続行する
SUBWF PUSH_C 、水
SKPNZ
後藤DEC_B1 ;
MOVLW D' 20 ' ;
呼出しLOOP_L ;呼出し0.1秒ループ
INCF PUSH_C
は 、
F後藤MODE_11
DEC_B1 ;高速12月
MOVLW D' 6 '
呼出しLOOP_L ; 0.06第2回
後藤MODE_11
CENT_B
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0 ;変更モード
後藤MODE_10
;------------------------------------------------
MODE_2
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' s 'の
呼出しPRINT_CHAR
MOVLW ' l '
の呼出しPRINT_CHAR
MOVLW ' o '
は呼出しPRINT_CHAR
MOVLW ' w '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MODE_20 ; 10秒のスロー
MOVLW D' 150 '
MOVWF PWM_C
BSF FLAG_REG 、 F_UP
MODE_21
BTFSSポート、 0
後藤INC_B2
BTFSSポート、 2
後藤MODE_21
BTFSSポート、 1
後藤CENT_B2
後藤MODE_21
INC_B2
MOVLW 2 ; 2回
MOVWF PUSH_C
MOVLW 5
MOVWF INT_C
INC_B21
MOVF INT_C 、水; 5 * 100 *が20ms = 10秒
SKPZ
後藤INC_B21

MOVLW 5 ; 5 * 100 *が20ms = 10秒
MOVWF INT_C
BTFSS FLAG_REG 、 F_UP ;アップ/ダウン?
後藤INC_B23 ; COUNT_DOWN
INC_B22
MOVLW RLIMIT ;アップ
SUBWF PWM_C 、水
SKPNZ
後藤INC_B24 ; TURN_DOWN
INCF PWM_C
は 、
FBTFSSポート、 2 ;ストップ?
後藤MODE_21
後藤INC_B21
INC_B24 ; TURN_DOWN
BCF FLAG_REG 、 F_UP
INC_B23
MOVLW LLIMIT ;
SUBWF PWM_C 、水
SKPNZ
後藤INC_B25 ; TURN_UP
DECF PWM_C
は 、
FBTFSSポート、 2 ;ストップ?
後藤MODE_21
後藤INC_B21
INC_B25
BSF FLAG_REG 、 F_UP
DECF PUSH_C
は 、
FSKPNZ
後藤MODE_21
後藤INC_B22

CENT_B2
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0 ;変更モード
後藤MODE_20

;------------------------
MODE_3
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' F '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW '
t '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR ;高速0.5秒
MODE_30
MOVLW D' 150 '
MOVWF PWM_C
MODE_31
BTFSSポート、 0
後藤INC_B3
BTFSSポート、 2
後藤MODE_31
BTFSSポート、 1
後藤CENT_B3
後藤MODE_31
INC_B3
MOVLW 5
MOVWF PUSH_C
INC_B31
MOVLW RLIMIT
MOVWF PWM_C
BTFSSポート、 2
後藤MODE_3
MOVLW D' 45 ' ; 0.45SECOD 22割り込み
呼出しLOOP_L ;呼出し0.1秒ループ
MOVLW LLIMIT
MOVWF PWM_C
BTFSSポート、 2
後藤MODE_3
MOVLW D' 45 '
呼出しLOOP_L
DECFSZ PUSH_C
は 、
F後藤INC_B31
後藤MODE_3

CENT_B3
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0 ;変更モード
後藤MODE_30

;------------------------
MODE_4 ;中旬2秒
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' M '
の呼出しPRINT_CHAR
MOVLW '私'
呼出しPRINT_CHAR
MOVLW 'エ'
呼出しPRINT_CHAR
MOVLW 'エ'
呼出しPRINT_CHAR
MOVLW ' l '
の呼出しPRINT_CHAR
MOVLW ' e '
を呼出しPRINT_CHAR
MODE_40
MOVLW D' 150 '
MOVWF PWM_C
BSF FLAG_REG 、 F_UP
MODE_41
BTFSSポート、 0
後藤INC_B4
BTFSSポート、 2
後藤MODE_41
BTFSSポート、 1
後藤CENT_B4
後藤MODE_41
INC_B4
MOVLW 5 ; 5回
MOVWF PUSH_C
MOVLW 1
MOVWF INT_C
INC_B41
MOVF INT_C 、水; 1 * 100 *が20ms = 2秒
SKPZ
後藤INC_B41

MOVLW 1 ; 1 * 100 *が20ms = 2秒
MOVWF INT_C
BTFSS FLAG_REG 、 F_UP ;アップ/ダウン?
後藤INC_B43 ; COUNT_DOWN
INC_B42
MOVLW RLIMIT ;アップ
SUBWF PWM_C 、水
SKPNZ
後藤INC_B44 ; TURN_DOWN
INCF PWM_C
は 、
FBTFSSポート、 2 ;ストップ?
後藤MODE_41
後藤INC_B41
INC_B44 ; TURN_DOWN
BCF FLAG_REG 、 F_UP
INC_B43
MOVLW LLIMIT ;
SUBWF PWM_C 、水
SKPNZ
後藤INC_B45 ; TURN_UP
DECF PWM_C
は 、
FBTFSSポート、 2 ;ストップ?
後藤MODE_41
後藤INC_B41
INC_B45
BSF FLAG_REG 、 F_UP
DECF PUSH_C
は 、
FSKPNZ
後藤MODE_41
後藤INC_B42

CENT_B4
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0 ;変更モード
後藤MODE_40
;------------------------------------------------- --------

MODE_5 ;ランダム
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' r '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' n '
を呼出しPRINT_CHAR
MOVLW 'エ'
呼出しPRINT_CHAR
MOVLW ' o '
は呼出しPRINT_CHAR
MOVLW ' M '
の呼出しPRINT_CHAR
MODE_50
MOVLW D' 150 '
MOVWF PWM_C
MODE_51
DECFSZ RAND_LO
は 、
F ;はRANDOMシード発生器
後藤MODE_52
DECF RAND_LO
は 、
F ;もちろんゼロなし
するDECFSZ RAND_HI
は 、
F後藤MODE_52
DECF RAND_HI
は 、
F ;もちろんゼロなし
するMODE_52 BTFSSポート、 0
後藤INC_B5
BTFSSポート、 2
後藤MODE_51
BTFSSポート、 1
後藤CENT_B5
後藤MODE_51
INC_B5
MOVLW H'20 ' ; 20-30抜きとり検査
MOVWF PUSH_C
INC_B51
MOVLW D' 10 ' ; 10パルスのPERポジション
MOVWF INT_C
;---------------
RANDOM16
RLF RAND_HI 、水
XORWF RAND_HI 、水
RLF TEMP1
は 、
FSWAPF RAND_HI
は 、
FSWAPF RAND_LO 、水
RLF TEMP1
は 、
FXORWF RAND_HI 、水
SWAPF RAND_HI
は 、
FANDLWが0x01
RLF RAND_LO
は 、
FXORWF RAND_LO
は 、
FRLF RAND_HI
は 、
F;---------------------------------
MOVLW RLIMIT
SUBWF RAND_LO 、水
SKPNC ;金<水は
C = 0
後藤RANDOM16
MOVLW LLIMIT
SUBWF RAND_LO 、水
SKPC ;金>水は
C = 1
後藤RANDOM16
MOVF RAND_LO 、水
MOVWF PWM_C
INC_B52
MOVF INT_C 、水
SKPZ
後藤INC_B52
BTFSSポート、 2 ;ストップ?
後藤MODE_5
DECFSZ PUSH_C
は 、
F後藤INC_B51
後藤MODE_51
CENT_B5
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0 ;変更モード
後藤MODE_50

;---------------------------------
MODE_6 ;ランダム
MOVLW H'0 '
呼出しDDRAM_ADDRESS
MOVLW ' Q '
により呼出しPRINT_CHAR
MOVLW ' u '
を呼出しPRINT_CHAR
MOVLW '私'
呼出しPRINT_CHAR
MOVLW '
t '
を呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR
MOVLW ' '
呼出しPRINT_CHAR

MODE_61
BTFSSポート、 0
後藤スタート
BTFSCポート、 1
後藤MODE_61

MOVLW BDELAY
呼出しLOOP_L
BTFSSポート、 1
後藤MODE_0
後藤MODE_61
夏時間
の 終了;------ ---------------;----------------------------------
;-----速度コントローラテスター-
SCT_MAIN
BSFポート、 4 ;出力 5
V電源 オフ
BSF FLAG_REG 、 F_TDST ;した場合に設定後藤夏時間モード
呼出しCLEAR_DISPLAY ;クリア表¥示
MOVLW 0
呼出しDDRAM_ADDRESS
MOVFW MODE_SEL
呼出しMODE_ADDRESS ;モード名始める
呼出しDISP_MESSAGE ;表¥示モード名称
MOVLW BDELAY
呼出しLOOP_L
;-----------------------------------------------

BSF状況、 RP0 ; 3,5イネーブルBANK1
セットMOVLW B'10000111 '
MOVWF OPTIONF ; INTERNAT時計、 TRM0 、 1:256
BCF状況、 RP0 ; BANK0のENABLE
MOVLW TMR1 ; 256 * 78 = 19968私たち
MOVWF TMR0
BCF INTCON 、 TOIF
BSF INTCON 、 TOIE
BSF INTCON 、 GIE ; INTをイネーブル

;-------------------------------------------------
SCT_1
MOVLW D' 100 ' ;最低
MOVWF PWM_C
SCT_11
BTFSSポート、 0
後藤ISCT_B
BTFSSポート、 2
後藤DSCT_B
BTFSSポート、 1
後藤DCENT_B
CLRF PUSH_C
後藤SCT_11
ISCT_B MOVLW RLIMIT
SUBWF PWM_C 、水
SKPNZ
後藤SCT_11 ; = RLIMIT
し 、何も
INCF PWM_C
は 、
FMOVLW D' 5 ' ;
5 ステップでは、加速を続行する
SUBWF PUSH_C 、水
SKPNZ
後藤ISCT_B1 ;
MOVLW D' 20 ' ; 0.2第2回
呼出しLOOP_L ;呼出し0.1秒ループ
INCF PUSH_C
は 、
F後藤SCT_11
ISCT_B1 ;ファスト株式会社
MOVLW D' 6 '
呼出しLOOP_L ; 0.06第2回
後藤SCT_11
DSCT_B
MOVLW LLIMIT
SUBWF PWM_C 、水
SKPNZ
後藤SCT_11 ; = LLIMIT
し 、何も
DECF PWM_C
は 、
FMOVLW D' 5 ' ;
5 ステップでは、加速を続行する
SUBWF PUSH_C 、水
SKPNZ
後藤DSCT_B1 ;
MOVLW D' 20 ' ;
呼出しLOOP_L ;呼出し0.1秒ループ
INCF PUSH_C
は 、
F

GOTO SCT_11 DSCT_B1 ;高速12月
MOVLW D' 6 '
呼出しLOOP_L ; 0.06第2回
後藤SCT_11
DCENT_B
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤スタート;変更モード
後藤SCT_1 ;後藤から、 1000uS

SCT
の エンド;------ -----------------
;================================================= ======
RECT_MAIN
BSFポート、 4 ;出力 5
V電源 オフ
BSF FLAG_REG 、 F_TDST
BSF FLAG_REG 、 F_REC
呼出しCLEAR_DISPLAY ;クリア表¥示
MOVLW 0
呼出しDDRAM_ADDRESS
MOVFW MODE_SEL
呼出しMODE_ADDRESS ;モード名始める
呼出しDISP_MESSAGE ;表¥示モード名称

BSF状況、 RP0 ;
MOVLW B'10000000 '
MOVWF OPTIONF ; INTERNAT時計、 TRM0 、 1:2
MOVLW B'00001111 ' ;セットRAを、 3入力
MOVWF TRISA ;
BCF状況、 RP0 ;
CLRF PWM_C
BSF INTCON 、 TOIE
BSF INTCON 、 GIE ;イネーブルディスプレイXXXの先
INTはNOP
NOP
;--------------------------------
REC_0
BCF INTCON 、 TOIF
BCF INTCON 、 TOIE
BCF INTCON 、 GIE ;

測定スタート;------- -------------
REC_2
CLRF PWM_C
REC_3
BTFSSポート、 1
後藤REC_B
BTFSSポート、 3
後藤REC_3
REC_4
NOP ; 10米ループ
NOP
NOP
NOP
INCF PWM_C
は 、
FSKPNZ
後藤REC_ERROR ; PWM_C > 255
は 、エラー
BTFSCポート、 3
後藤REC_4
DECF PWM_C
は 、
F ;
1月20日 私ども正確に
後藤REC_5
REC_ERROR場合> 255ディスプレイ255
MOVLW H'FF '
MOVWF PWM_C
REC_5
BSF INTCON 、 TOIE
BSF INTCON 、 GIE ;イネーブルディスプレイXXXの先
INTは後藤REC_0
REC_B
MOVLW BDELAY ; 0.01秒* 40
呼出しLOOP_L
BTFSSポート、 1
後藤を起動します。 CHANGRモードにSCT MAUN
後藤RECT_MAIN;-------------------------------------------------

エンド

 

Welcome to EDABoard.com

Sponsor

Back
Top