• 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: 請教.一直解決不了的問題.
#5
新會員
新會員


查看用戶資訊
哈哈.你一說我也注意到了.
謝謝你啦.
過一陣子我也要去上一下教育訓練.
希望到時候懂的會多一點.
再次感謝你啦.^^.真開心.

發表於: 2006/11/2 13:31
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教.一直解決不了的問題.
#4
高級會員
高級會員


查看用戶資訊

MOVWF TRISD
;
BANKSEL TRISD //??? BANKSEL PORTD?
; MOVLW 0
;
BSF INTCON,T0IE
BSF INTCON,GIE

BANK 沒切回來??

發表於: 2006/11/2 12:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教.一直解決不了的問題.
#3
新會員
新會員


查看用戶資訊
哇~你真的是個大好人.好快的時間就幫我解決問題了.
真是聽君一昔話.勝拼二星期試誤.
我把watchdog關掉後果然會亮十次了.
晚點我再把相關的資料看清楚.謝謝你啦.
另外.能不能夠再請教另一個問題.
就是有關於Timer0的問題.
我根據書上寫的範例.想要拿來練習.無奈我怎麼試它都不動.
我是想利用Timer0來精確計時.並依序點亮LED.
========以下是程式碼==========
;
;    LCD PRECISION TIMER (00.00~99.99 SEC) (Timer0)
;
    LIST 
P=16F877AR=DEC
    
#INCLUDE P16F877A.INC
    
CBLOCK 0X20
    ENDC
;
;    
define RAM
;
    
CBLOCK
     R0_PRC100mS
     W_BAK
STATUS_BAK        back up RAM for w register
    ENDC
;
;    
define data
;
DATMR0    EQU 256-125             125*16uS=2mS(for 16 MHz)
;
;
;.......................................................................
;
    
ORG 0
    NOP
    
GOTO MAIN        reset vector
;
    
ORG 4            
    
MOVWF W_BAK        save w register
    SWAPF STATUS
,W        save STATUS register
    MOVWF STATUS_BAK

    MOVLW DATMR0        

    
ADDWF TMR0,F        restore TMR0

    DECF R0_PRC100mS
,F

    BCF INTCON
,T0IF        clear interrupt flag
    SWAPF STATUS_BAK
,W
    MOVWF STATUS
    SWAPF W_BAK
,F
    SWAPF W_BAK
,W        restore w register without affecting status
    RETFIE            
; return + (bsf INTCON,GIE)
;
;................................
;
MAIN:
;
    
BANKSEL OPTION_REG    OPTION_REG is in bank1
    MOVLW 
B'00000101'    RBPU(0),INTEDG(0),T0CS(0=INT),T0SE(0)
                ; 
PSA(0=PRESC to timer)
                ; 
PS2~0(101=1/64)
    
MOVWF OPTION_REG
    BANKSEL TMR0
    MOVLW DATMR0        
64*125=2000uS for 16 MHz crystal
    MOVWF TMR0        
reset buffer of timer0
    MOVLW 50        
50*2mS=100mS
    MOVWF R0_PRC100mS    
reset 50*2mS counter
;
    
BANKSEL    TRISD    
    MOVLW    0
    MOVWF    TRISD
;
    
BANKSEL TRISD
;    MOVLW    0
;
    
BSF INTCON,T0IE        actuate timer0 interrupt
    BSF INTCON
,GIE        actuate global interrupt
;
;
MAIN1:
    
CLRF    PORTD    
    CALL PRC_100mS        
precission 100 mS timer
;
    
BSF  PORTD,0
    CALL PRC_100mS
;
    
BSF  PORTD,1
    CALL PRC_100mS
;
    
BSF  PORTD,2
    CALL PRC_100mS
;
    
BSF  PORTD,3
    CALL PRC_100mS    
;
    GOTO 
MAIN1
;
;
;.............................................................................
;
;    
precission 100mS timer
;
PRC_100mS:
    
TSTF R0_PRC100mS
    SKPZ
    
GOTO PRC_100mS
;
    
MOVLW 50
    MOVWF R0_PRC100mS        
restore 50*2 mS counter
;
    RETURN
;
;
;---------------------------------------------------------------;
;
    
END

========以上是程式碼==========
因為有上次的經驗.所以我有把watchdog給disable掉.
不過還是一樣沒有任何反應.
希望有人可以教教小弟我.
PS.這個地方真好.希望哪天我也可以成為教人的那位.^^.


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


Re: 請教.一直解決不了的問題.
#2
高級會員
高級會員


查看用戶資訊
Watchdog -> Enabled
但是沒看到有clrwdt的指令?
會不會是watchdog重置cup造成的

發表於: 2006/11/2 10:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教.一直解決不了的問題.
#1
新會員
新會員


查看用戶資訊
前一陣子才開始學PIC.
晶片是16f877a.
我是想做出一個燈亮一次.另一個燈亮十次的效果.
可是我怎麼用另一個燈都只亮二次.
有沒人可以幫我一下.看看我的東西到底哪裡有問題.
拜託一下了.我被困擾好久了.=.=
========以下是程式碼==========
LIST P=16F877A, R=DEC;
INCLUDE <P16F877A.INC>

CBLOCK H'20'
ENDC
;
CBLOCK
STEPNUM
ENDC
;
ORG 0
NOP

BANKSEL TRISD
MOVLW B'11100000'
MOVWF TRISD
BANKSEL PORTD

; BCF USRFLAG,DRCT

MOVLW 10
MOVWF STEPNUM

AGAIN:
MOVLW B'11100000'
MOVWF PORTD

BSF PORTD,0
CALL D100mS

BCF PORTD,0
CALL D100mS

MOVLW 10
MOVWF STEPNUM

AGAIN1:
BSF PORTD,1
CALL D100mS

BCF PORTD,1
CALL D100mS

DECFSZ STEPNUM,F
GOTO AGAIN1

GOTO AGAIN
;

CBLOCK
R0_D100mS
R1_D100mS, R2_D100mS
ENDC
;
D100mS:
MOVLW 10
MOVWF R0_D100mS
D100mS1:
MOVLW 100
MOVWF R1_D100mS
D100mS2:
MOVLW 100
MOVWF R2_D100mS
D100mS3:
NOP
DECFSZ R2_D100mS,F
GOTO D100mS3
DECFSZ R1_D100mS,F
GOTO D100mS2
DECFSZ R0_D100mS,F
GOTO D100mS1
RETURN
;
;
END
========以上是程式碼==========
Device,Config的設定.
Watchdog -> Enabled
Brown-Out Reset Enable -> Enabled
Low Voltage Programming -> Enabled
其餘都是off mode.

請大家幫個忙.教一下小弟吧.謝謝.

發表於: 2006/11/2 10:33
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... ]

教育訓練中心

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