程式指點...
|
||||
---|---|---|---|---|
中級會員
|
大家好 我照著書上範例測試 可以work 但是我不明白
addwf PCL,f 是要幹麻ㄉ 請指點 謝謝 list p=16F873a #include <p16f873a.inc> ; Include file locate at defult directory w_temp equ 0x20 STATUS_temp equ 0x21 scaler equ 0x22 blankcnt equ 0x23 maxcount equ 0x32 ;******************************************** ;********************************************* org 0x00 nop goto Main org 0x04 goto IntServ IntServ movwf w_temp swapf STATUS_temp,w movwf STATUS_temp btfsc PIR1,TMR1IF call Timer1 swapf STATUS_temp,w movwf STATUS swapf w_temp,f swapf w_temp,w retfie Timer1 banksel PIR1 bcf PIR1,TMR1IF decf scaler,f clrf TMR1L movlw 0xf8 movwf TMR1H movlw 0x2f movwf TMR1L return ;----------------------main---------------------------------------------------------- Main call initial loop call Blink call looptime goto loop ;------------------------------------------------------------------------------------- initial banksel maxcount movlw maxcount movwf blankcnt movlw b'11111111' movwf PORTB movlw 0x04 movwf scaler banksel TRISB clrf TRISB banksel T1CON clrf T1CON clrf TMR1H clrf TMR1L clrf INTCON bsf INTCON,PEIE banksel PIE1 clrf PIE1 bsf PIE1,TMR1IE banksel PIR1 clrf PIR1 banksel TMR1L clrf TMR1L movlw 0xf8 movwf TMR1H movlw 0x2f movwf TMR1L bsf T1CON,TMR1ON banksel INTCON bsf INTCON,GIE return ;----------------Blink-------------------------------------------------------------------------- Blink decfsz blankcnt,f goto blinkend movlw maxcount movwf blankcnt call blinktable xorwf PORTB,f blinkend return ;----------------table-------------------------------------------------------------------------- blinktable movf PORTB,w andlw b'00000111' addwf PCL,f retlw b'00000001' retlw b'00000011' retlw b'00000110' retlw b'00000010' retlw b'00000101' retlw b'00000100' retlw b'00000111' retlw b'00000110' ;---------------------looptime----------------------------------------------------------------- looptime btfss scaler,7 goto looptime movlw 5 addwf scaler,f return ;------------------------ end
發表於: 2005/7/4 22:46
|
|||
|
簡單的閃爍控制
|
||||
---|---|---|---|---|
中級會員
|
大家好 我是初學者
我常試寫LED閃爍控制 每格100ms就閃爍一次 但是我的結果出來並不會進行此一動作 一值停留在亮的狀態 我使用的PIC 為 16F873A Demoboard PICDEM 2 PLUS 燒錄器ICD 2 以下是我的程式 請各位幫我看看 謝謝 list p=16F873a #include <p16f873a.inc> ; Include file locate at defult directory ; ;#define Shift_vaule b'00000001' VAL_500us equ .5 ; 0.5ms delay value VAL_10ms equ .3 ; 10mS delay value VAL_100ms equ .1 ; 100mS delay value count_us equ 0x20 ; Defined temp reg. for 1ms delay count_10ms equ 0x21 ; Defined delay reg. count_100ms equ 0x22 ;count_200ms equ 0x22 ;count equ 0x23 ;shift_value equ 0x20 ;******************************************** ;********************************************* org 0x00 nop initial: banksel ADCON1 ;定義ADCCON1,將PORTA第四個bit設為數位模式 movlw b'11001110' movwf ADCON1 banksel CMCON ;定義CMCON將比較器功能關閉 movlw b'00000111' movwf CMCON banksel TRISB ;定義TRISB設定PORTB為輸出模式 clrf TRISB banksel PORTB clrf PORTB ;*********************************************** Main ;*********************************************** start: call delay_100ms movlw b'00000001' movwf PORTB call delay_100ms clrf PORTB goto start ;-----------------------延遲100ms------------------------------------------- delay_100ms: movlw VAL_100ms movwf count_100ms loop_100ms: call delay_10ms decfsz count_100ms,F goto loop_100ms return ;-----------------------延遲10ms------------------------------------------- delay_10ms: movlw VAL_10ms movwf count_10ms loop_10ms: call delay_0.5ms decfsz count_10ms,F goto loop_10ms return ;-----------------------延遲0.5ms---------------------------------------- delay_0.5ms: movlw VAL_500us movwf count_us dec_loop nop nop nop nop nop decfsz count_us,F goto dec_loop return end
發表於: 2005/6/28 17:07
|
|||
|
LCD的 bug
|
||||
---|---|---|---|---|
中級會員
|
大家好 我使用的PIC為16F873A Demoboard為
PICDEM 2 PLUS 燒錄器為ICD2 對於LCO顯示方面有問題一直解決不了 請問問題出在哪 謝謝 我的error如下: Error - section 'D_LCD_DATA' can not fit the absolute section. Section 'D_LCD_DATA' start=0x00000020, length=0x00000004 Errors : 1 程式如下:
list p=16F873A
發表於: 2005/6/2 22:07
|
|||
|
有關蜂鳴器..
|
||||
---|---|---|---|---|
中級會員
|
大家好
我想測試demoboard上的蜂鳴器 不知有無範例程式 我使用的PIC 為16F873A 燒錄器是 ICD2 Demoboard是 PICDEM 2 PLUS 我在PIC initial裡要如何設定呢?? 謝謝
發表於: 2005/5/25 11:16
|
|||
|
Re: 請問一下...LCD的問題
|
||||
---|---|---|---|---|
中級會員
|
發表於: 2005/4/14 15:30
|
|||
|
請問一下...LCD的問題
|
||||
---|---|---|---|---|
中級會員
|
請問一下 我使用 ICD2 的燒錄器
Demoboard是PICDEM 2 PLUS 我使用光碟片裡的驅動LCD程式 有很多錯誤 請問一下 程式要如何解決或使用 謝謝
發表於: 2005/4/13 18:27
|
|||
|
請教跑馬燈的程式...
|
||||
---|---|---|---|---|
中級會員
|
大家好 我的程式出一點問題 出來的結果應該要是每200ms的跑馬燈,但是結果出來只跑了一次,並沒循環。我使用16F873A,DEMO BOARD是PICDEM 2 PLUS,使用ICD 2
以下是我的程式,謝謝: start: banksel TRISB ; Set PORTD for output port movlw b'00000000' movwf TRISB banksel PORTB movlw b'00011000' movwf STATUS ; LED_Start bcf STATUS,C movlw b'00000001' movwf PORTB LED_Next call delay_200ms rlf PORTB btfss STATUS,C goto LED_Next goto LED_Start ; ;--------- 200 md delay routine -------- ; delay_200ms: movlw VAL_200MS movwf count_200ms loop_20ms call delay_10ms decfsz count_200ms,F goto loop_20ms return ; ;-------- 10 ms delay routine ---------- ; delay_10ms: movlw VAL_10MS movwf count_10ms loop_ms call delay_500us decfsz count_10ms,F goto loop_ms return ; ;-------- 0.5 ms delay routine ----------- ; delay_500us: movlw VAL_500US movwf count_us dec_loop nop nop nop nop nop decfsz count_us,F goto dec_loop return ; end
發表於: 2005/3/8 16:40
|
|||
|
新手上路...請問一下
|
||||
---|---|---|---|---|
中級會員
|
大家好 我目前對ICD 2 還不是很熟悉
請問一下 我看說使用手冊上說明 EC OSC option has been selected using jumper J7 是要如何接呢? 謝謝各位
發表於: 2005/2/22 14:42
|
|||
|
新手上路...請問一下如何解決
|
||||
---|---|---|---|---|
中級會員
|
請問一下 我要connect ICD 2時
卻出現 ICDWarn0020: Invalid target device id (expected=0x21, read=0x7) 我有將通用序列匯流排關閉在開啟,也有下載operating system ,還是無法解決。 請問還有蛇ㄇ辦法呢? 請大家幫忙謝謝
發表於: 2005/1/27 16:54
|
|||
|