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

論壇索引


Board index » All Posts




按鍵掃描的問題
新會員
新會員


下面這段是我寫的4*4的按鍵掃描程式,可是按鍵ㄅ靈敏,請各位高
手指教一下哪裡出問題了
ScanKey:
bcf STATUS,RP0

movlw 20h ;Scan channel-4(7~F)
movwf PORTA
movlw 08h
movwf KeyPort ;紀錄 Channel
bsf STATUS,C
goto Check_Key
ScanLoop:
clrf PORTA

movf PORTE,w
xorlw 04h
btfsc STATUS,Z ;檢查掃描是否結束,Z=1表示結束
goto ScanOver

rlf PORTE ;Scan channel-1~3
(4~E)
movf PORTE,w
movwf KeyPort ;紀錄 Channel
Check_Key:
call Delay2ms
movf PORTA,w ;檢查有無按鍵
andlw 0fh ;
btfsc STATUS,Z ;
goto ScanLoop ;Z=1表示無按鍵,繼續掃描

call D05S

movf PORTA,w
movwf KeyTmp
Wait_Key:
movf PORTA,w ;檢查按鍵
andlw 0fh ;Z=1,按鍵放開,取按鍵值
btfsc STATUS,Z ;Z=0,按鍵按住,繼續等待
goto GetKey
goto Wait_Key
GetKey:
movlw 04h
movwf KeyIP
btfsc KeyPort,0 ;KeyPort=1,4~D
goto Get_Num1

movlw 08h
movwf KeyIP
btfsc KeyPort,1 ;KeyPort=2,1~C
goto Get_Num1

movlw 0ch
movwf KeyIP
btfsc KeyPort,2 ;KeyPort=3,A~E
goto Get_Num1

movlw 00h
movwf KeyIP
btfsc KeyPort,3 ;KeyPort=4,7~F
goto Get_Num1
goto ScanOver
;===================================
再請一問一下 做按鍵掃描時 是要先
令i/o為high 然後送low訊號去偵測按鍵ㄇ 若是相反過來會
造成哪些影響呢

發表於: 2004/8/23 10:08
頂部


Re: 關於 A/D 轉換的問題
高級會員
高級會員


關於這個問題有幾個方向供你參考 ,
一 , 使用ICE去模擬或許 , 可能 , 多多少少會有些誤差 , 這是不可避免的 , 每家都這樣 .
二 , 真正的去追蹤你的電源變化 , 是否很穩定的維持在你所設定的5V , 有時我們的電路在動作的時侯有些元件會突然吃電 , 造成電源的不穩定 ,
三 , 試著將每次AD轉換之前的DELAY加長一點 , 看看有沒有好一點 ,

發表於: 2004/8/23 9:11
頂部


訪客
Re: 關於 A/D 轉換的問題
訪客-訪客
是沒錯…我是用ice2000模擬的pic16f73

頂部


Re: 關於 A/D 轉換的問題
版主
版主


這個問題沒碰過,確定 Vref+ 是接到內部的 Vcc,且Vcc=5V ?
IC 編號是哪一個 ? 我來試試看。

發表於: 2004/8/22 11:34
頂部


Re: 中斷時間不對---幫幫忙
版主
版主


1. 你似乎忘了在中斷裡將Timer0的直重新載入。
2. Status, W, PCLATH 的 push and pop 不需用這麼多指令吧! 參考一下Microchip所提供的範例吧。
3. 善用MPASM所提供的虛指令,PAGESEL , BALNKSEL 來進行 CODE PAGE 與 RAM BANK 的切換
範例 1 :
BANKSEL TRISA ; 選擇 TRISA 所在的 BANK1
MOVLW b'11110000'
MOVWF TRISA
BANKSEL PORTA; 切回 BANK0 (PORTA in Bank0)
MOVWF PORTA

範例 2 :
執行 goto 與 call 指令前一般需將要前往的PAGE載入到PCLATH裡,一般的語法為:
MOLLW (high) Lable
MOVWF PCLATH
GOTO Lable 或 CALL Table
此寫法可以改寫成
PAGESEL Lable
GOTO/CALL Lable

用PAGESEL與 BANKSEL的語法有很大的好處,尤其是插入程式或變數時MPASM會自動切換RAM BANK。
尤其是用re-Locatable語法時,MPLINK會自動安排BANK位址,修改程式時比較方便。

4. 至於中斷時間準不準的問題,你可以用軟體模擬中的STEPWATCH幫你計算中斷時間。
先啟動MPLAB-SIM,在Debugger-->setting裡設定你的工作頻率,打開STEPWATCH視窗,中斷點設在0x0004地進入點
你就可以知道程式會不會中斷且中斷時間為何?

發表於: 2004/8/22 11:27
頂部


Re: MCLR 當成輸出用!?
高級會員
高級會員


pic有些型號的MCLR腳可以當I/O使用
使用方法是在configuration的MCLRE位元燒錄為0

發表於: 2004/8/22 11:17
頂部


訪客
Re: 中斷時間不對---幫幫忙
訪客-訪客
不好意思我不太懂你的算法我只知道
4MHZ~一個指令周期執行的時間是1US
而若你預除器設128,而值是設7D則就是數131次
這樣子算出來的時間是1US X 128 X 131 =16768US.....這樣不會到一秒喔
你可設TMR0為6…而預除器設100 而外部再給可個40的值去乘
這樣子就會到1, 重點…你在中斷時要重設TMR0為6,不過若要更精準一點要扣掉你中斷載入重數的時間……。
我覺得你用TMR2會較好,因為TMR2有個PR2可設,到了就自動重數。

頂部


Re: 不知是用pic 或是 dspic
版主
版主


工作電壓與工作頻率之間是成正比的關係,如果是選 LF 的元件有的可以RUN到 2.0V @4MHz,看你是要哪一顆PIC。
Data Sheet 都可以查得到,3.3V 不是問題。

發表於: 2004/8/21 16:24
頂部


Re: 我的port A為什麼沒辦法輸出啊 !!
資深會員
資深會員


cmcon沒設定

發表於: 2004/8/21 10:01
頂部


我的port A為什麼沒辦法輸出啊 !!
新會員
新會員


各位前輩請教一下,我要燒錄到pic16c622,用MPLAB IDE V6.61 編譯完後再做組譯並沒有錯誤訊息,但是用 SIM模擬所有的位止寫入都沒有問題但是到了要寫入輸出那一行就是沒有反應,能幫幫我看看拿裡錯了一直搞不定!!以下是我的程式:

LIST P=16C622
include "P16C622.inc"
; "PORT A OUT 好站就是好站!!"
STATUS equ 3H ;STATUS 檔
PORT_A equ 5 ;接口A檔
TRIS_A equ 5 ;接口A流向控制檔
F equ 1
c equ 0
COUNT equ 20h
W equ 0
ORG 0 ;程式在通電後執行(起址 0000)

GOTO START

DELAY ;以下為一廷遲工作程式,目的是把
MOVLW 02H ;發光二極管亮一段人眼看到時間 ******
MOVWF 21H ;存入用戶隨用暫存檔

DLY1 MOVLW 05H ;存 ffh 入wf工作檔 INSIND ********
MOVWF 22H ;存入用戶隨用暫存檔 f0E
DLY2 DECFSZ 22H,1 ;檔0E = 檔0E - 1,如零略下句
GOTO DLY2 ;跳去 DLY2 (到零這句不執行)
DECFSZ 21H,1 ;檔0f = 檔0f - 1,如零略下句
GOTO DLY1 ;跳去 DLY1 (到零這句不執行)
GOTO SHOW ;跳去循環執行LOOP


START CLRF PORT_A
BSF STATUS,5 ;置第1檔頁
MOVLW B'00000000' ;將WF存入0000000b
MOVWF TRIS_A ;定接口A全部作輸出線
BCF STATUS,5 ;置回第0頁
MOVLW B'00000001'
MOVWF COUNT

LOOP MOVF COUNT,W ;循環程式開始,提暫存檔至wf
MOVWF PORT_A ;把提出資料存入接口A(顯示)
GOTO DELAY
SHOW RLF COUNT,F ;左轉count檔
GOTO LOOP

END

發表於: 2004/8/21 9:36
頂部



« 1 ... 7444 7445 7446 (7447) 7448 7449 7450 ... 7523 »



:::

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... ]

教育訓練中心

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