• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: 關於外部按鍵控制的問題
#4
初級會員
初級會員


查看用戶資訊
ORG 0X00
GOTO MAIN
GOTO MAIN
GOTO MAIN
GOTO MAIN
....
....
MAIN:
BCF STATUS,RP1
BSF STATUS
,RPO     切換到 第1頁記憶體
MOVLW H
'FF'
MOVWF TRISB
MOVLW H
'00'
MOVWF TRISC
MOVLW 
B'xxxxxxxx'   TIMER0 預除值
BCF STATUS
,RP0     切換到 第0頁記憶體
.....
.....
START:
CLRWDT
BTFSS TMR0
,7   ; <<< 可改成用中斷 以10mSec 100mSec 為單位 依程式使用方式做選擇
GOTO START
BCF TMR0
,7
CALL KEY_SCAN
CALL TIMER
CALL KEY_ACTION
GOTO START
;**************************
KEY1 KEY2 分別為按鍵讀取值
KEYH 為按鍵動作值 2次按鍵值讀取直接為1時設為1
KEY_CP 防止案件重複動作   2次按鍵值讀取直接為0時歸為0
KEY_SCAN
:
MOVF KEY1,W
MOVWF KEY2
COMF PORTB
,W
MOVWF KEY1
ANDWF KEY2
,W
MOVWF KEYH    
2次按鍵值讀取直接為1時設為1
MOVF KEY1
,W
IORWF KEY2
,W
ANDWF KEY_CP 
2次按鍵值讀取直接為0時歸為0
RETLW 0
;****************************
程式中計時延遲用
T_CP=H'20'
T1CNT=H'21'
TUMER:
........
T1_DELAY
BTFSS T_CP
,0
GOTO T2_DELAY
DECFSZ T1CNT
GOTO T2_DELAY
BCF T_CP
,0
延遲時間到座該做的事
......
T2_DELAY:
.......
......
........
....
RETLW 0
;*******************************
KEY_ACTION:
KEY_1: ;按鍵1
BTFSS KEYH
,0
GOTO KEY_2
BTFSC KEY_CP
,0
GOTO KEY_2       允許一次 多鍵動作
;GOTO KEY_END  一次只能單一按鍵動作
BSF KEY_CP
,0
;按鍵1動作
........
.........
KEY_2:
..........
.........



KEY_END:
RETLW 0
;*************************************

發表於: 2007/2/9 11:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於外部按鍵控制的問題
#3
初級會員
初級會員


查看用戶資訊
程式的上邏輯是ok的, 不過有個小地方要注意, 程式一開始定義I/O PORT只要執行一次就可, 以免I/O PORT被強制恢復為初始化值, 而產生I/O PORT動作不正確。
以下對你的程式稍作修改, 修改之處會有註解, 如下:

org 0x00
nop
goto main

main:
banksel TRISB
movlw 0xff
movwf TRISB
banksel PORTB
clrf PORTB
banksel TRISC
clrf TRISC
banksel PORTC
clrf PORTC
movlw b'00000110'
movwf PORTC
goto start
start:
btfsc PORTB, 1
call delay_4ms
btfsc PORTB, 1
goto start ; 在start內一直偵測, 即可判斷到RB1的狀態.
goto red

red:
call delay_5ms
movlw b'00000001'
movwf PORTC
call delay_5ms
goto red

delay_5ms:
省略
return
delay_4ms:
省略
return
end

發表於: 2007/2/9 9:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於外部按鍵控制的問題
#2
資深會員
資深會員


查看用戶資訊
從start:開始看
當你PORTB,1 = 0時
他會執行到red:
然後就掛在這個死迴圈裡面出不去
red這副程式加個判斷式讓他跳開回到start:吧

除錯時看到判斷式就要預想所有的可能及其流程
這樣才能發現到錯誤
寫程式時最好不要有死迴圈
儘量用呼叫的不要用跳躍

發表於: 2007/2/9 8:40
木亟缶夬金戔
彳艮缶夬金戔
走召缶夬金戔
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關於外部按鍵控制的問題
#1
新會員
新會員


查看用戶資訊
最近寫一個很簡單的動作,就是只要按下PORTB的RB1就會改變輸出狀態..程式如下:

org 0x00
nop
goto main

main:
banksel TRISB
movlw 0xff
movwf TRISB
banksel PORTB
clrf PORTB
banksel TRISC
clrf TRISC
banksel PORTC
clrf PORTC
movlw b'00000110'
movwf PORTC
goto start
start:
btfsc PORTB, 1
call delay_4ms
btfsc PORTB, 1
goto main
goto red

red:
call delay_5ms
movlw b'00000001'
movwf PORTC
call delay_5ms
goto red

delay_5ms:
省略
return
delay_4ms:
省略
return
end
現在問題是我按按鍵根本沒作用,只會看到LED全暗,又馬上亮起恢復一開始狀態,請版上厲害的大大幫我...小弟不才..初次寫PIC..這問題都解決不了..拜託了

發表於: 2007/2/8 21:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------