請問大大:
我所使用的硬體為877實習版,我寫了一段測試程式,目前的功能為~將PIC上電後,每40MS傳一筆資料(8 BIT)至RS232,
但是我只要插入一段判斷腳位程式(KB_1 &KB_2處),我的程式就會失去傳資料的功能,我把那一段判斷程式拿掉,又恢復正常,很顯然應該是那一段判斷程式的問題,但卻不知為何會這樣,請高手大大們提供建議~~謝謝!
PS:我主要是要判斷KB_DA跟KB_CK(KB_1處,共6行)這兩支腳都為H再去做SW以後的動作,但是只要加入KB_1 這6行,
程式就不往下跑(此兩支腳測波器量過 為H)?
list p=16f877, r=dec
#include p16f877.inc
RTC EQU 001H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
one EQU 0x21
TEMPK EQU 0X22
COUNT EQU 0X23
COUNTER EQU 0X24
OPT_R EQU 81H
Q1 EQU 0X25
Q2 EQU 0X26
Q3 EQU 0X27
Q4 EQU 0X28
Q5 EQU 0X29
VAL_US EQU 0X31
VAL_MS EQU 0X32
COUNT_MS EQU 0X30
ST EQU 0X33
;===================================
PSW EQU 003H ;STATUS
CF EQU 0
AF EQU 1
ZF EQU 2
PDF EQU 3
TOF EQU 4
PR0 EQU 5
PR1 EQU 6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RA EQU 005H ;A PORT
KB_DA EQU 0
KB_CK EQU 1
PP EQU 2
LL EQU 3
SS EQU 4
;**************************************************
;* RTCC TABLE *
;**************************************************
RF0 EQU 0 ;0.5us * 256 * 1 = 128 us
RF1 EQU 1 ;0.5us * 256 * 2 = 256 us
RF2 EQU 2 ;0.5us * 256 * 4 = 512 us
RF3 EQU 3 ;0.5us * 256 * 8 = 1024 us = 1 ms
RF4 EQU 4 ;0.5us * 256 * 16 = 2048 us = 2 ms
RF5 EQU 5 ;0.5us * 256 * 32 = 4096 us = 4 ms
RF6 EQU 6 ;0.5us * 256 * 64 = 8192 us = 8 ms
RF7 EQU 7 ;0.5us * 256 * 128 = 16384 us = 16Ms
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0
NOP
CLRW
CLRF PCLATH
CLRF TEMPK
CLRF PSW ;\\\\\\\\\\
;-----------------------------------------------------------
BANKSEL OPT_R
MOVLW 07H
MOVWF OPT_R
;============================
MOVLW 03H ;0000 0011 ;設為IN
TRIS RA
;============================
KB_1
BTFSC RA,KB_DA ;
GOTO KB_2 ;
GOTO KB_1
KB_2
BTFSC RA,KB_CK ;
GOTO SW
GOTO KB_1
;==============================
SW
banksel SPBRG
bcf TRISC,6
bsf TRISC,7
movlw D'12'
movwf SPBRG
clrf TXSTA
bcf TXSTA,BRGH
bcf TXSTA,SYNC
bcf TXSTA,TX9
bsf TXSTA,TXEN
bSf PIE1,TXIE
banksel PIR1
bCf PIR1,TXIF
bsf RCSTA,SPEN
;==============================
QQ
MOVLW 55H
MOVWF TXREG
GG
btfss PIR1,TXIF
goto GG
bcf PIR1,TXIF
;----------------------------------------------------------
MOVLW 03H
MOVWF COUNTER
BT_2
CLRF RTC
BT_1
BTFSS RTC,RF7
GOTO BT_1
DECFSZ COUNTER
GOTO BT_2
;-------------------------------------------------------------
GOTO QQ
END