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


Browsing this Thread:   1 Anonymous Users






Re: ADC轉換2
#3
新會員
新會員


查看用戶資訊
謝謝 大大先進們:
小弟會慢慢改進的,另外想問的,這程式有錯誤嗎??
不知怎麼地,一直跑不出對的結果...@@

發表於: 2009/6/21 17:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: ADC轉換2
#2
資深會員
資深會員


查看用戶資訊
同一個問題有必要開那麼多個版面嗎

這樣誰會知道你問題的歷程

除了你自己

發表於: 2009/6/21 14:56
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


ADC轉換2
#1
新會員
新會員


查看用戶資訊
;大大們:
;小弟原本想說在調VR(10k)會經AN3輸入丟給ADRESH一個值,但因為怕它會取太快而我轉太慢會造成在第二次取值時還是第一個值
;,所以在取值時故意讓它DELAY久一點並且一第二個值為準,就可以是最後轉到的為想要丟進的
;取好後
;在丟入TURNY在GP2為不切時,則在每一次中斷切換GP5
;等到GP2動作後在重新取AD,再改換中段時間就應該可成大小時間切換GP5
;不過這程式好像還是不能動作勒............頭痛@@

list p=12f675

include <P12f675.INC>

__CONFIG _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT _BODEN_OFF


ADStatus      EQU     0x20

W_temp         EQU     0x21

STATUS_Temp     EQU     0x22

scaler         EQU     0x27

Delay1        EQU     0x23

Delay2         EQU     0x24

Delay3         EQU     0x25

ADStatus1    EQU    0x26

Countms     EQU     0x30

ADCloop     EQU     0x31

ADloop_scaler     EQU     0x32

change     EQU     0x33

T1HCAP_1     EQU     0x34

T1LCAP_1     EQU     0x35

T1HCAP_2     EQU     0x36

T1LCAP_2     EQU     0x37

;***********Resect Vector***************
org 0x00

nop

goto    MainLine

;************ interrupt **************
org 0x04

goto intService


intService:

movwf        W_temp

swapf        STATUS,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 ***************
Timer1:

bcf         PIR1,TMR1IF

decf         scaler,f

clrf         TMR1L

movlw         T1HCAP_2

movwf         TMR1H

movlw         T1LCAP_2

movwf         TMR1L

return


;********** Main Program ***************
MainLine:

call         Initial

MainLoop:

bcf         STATUS,RP0

bsf         T1CON,TMR1ON

call         ADconverter

call         turn

goto         MainLoop

;********* TURN ******************
turn:

movlw .2

movwf scaler

turn_off:

bcf STATUS,RP0

bcf GPIO,GP5

btfss scaler,0

goto turn_off

turn_on:

bsf GPIO,GP5

btfsc scaler,0

goto turn_on

btfsc GPIO,GP2

goto turn
; ; goto turn_on
call         ADloop_time

call         ADloop_time

call         ADloop_time

return

;*********Initial Subroutine************
Initial:

bsf         STATUS,RP0 ;Bank

; clrf TRISIO ;Init GPIO
movlw         B'00010100'

movwf         TRISIO

bcf         STATUS,RP0

movlw         07h

movwf         CMCON


; bcf STATUS,RP0
bsf         GPIO,GP2

clrf         T1CON

clrf         TMR1H

clrf         TMR1L

clrf        INTCON

bsf        INTCON,PEIE

bsf         STATUS,RP0

clrf        PIE1

bsf        PIE1,TMR1IE

bcf         STATUS,RP0

clrf         PIR1

clrf         TMR1L

movlw         0x15

movwf         TMR1H

movlw         0x9F

movwf         TMR1L

bcf         T1CON,TMR1ON

bsf         INTCON,GIE

bsf         STATUS,RP0

; clrf ADRESL
movlw         B'00011000'

movwf         ANSEL

bcf         STATUS,RP0

; clrf ADCON0
movlw         B'00001101'

movwf         ADCON0

; clrf ADRESH
return

;************A/D converter**************
ADconverter:

movlw         .2

movwf         ADCloop

ADconverter1:

call         ADloop_time

call         ADloop_time

call         ADloop_time

call         ADloop_time

call         ADloop_time

call         ADloop_time

bcf         STATUS,RP0

bsf         ADCON0,GO

call         ADloop_time

call         ADloop_time

Wait1:

btfsc         ADCON0,GO

goto         Wait1

movlw         ADRESH

movwf         Countms

; movlw (.65536 - Countms)/.256 [/code]
movlw         HIGH(.65536 Countms)

decfsz         ADCloop,F

btfss         ADCloop,0

btfsc         ADCloop,0

goto         savetemp

movwf         T1HCAP_2

xorwf         T1HCAP_1,F

btfss         STATUS,Z

goto         ADconverter

call         Wait2

return

savetemp:

movwf         T1HCAP_1

goto         ADconverter1

Wait2:

movlw         LOW (.65536 Countms)

movwf         T1LCAP_2

return

;------------------------------------------------------------------------------
; ADloop_time
;------------------------------------------------------------------------------
Delay1ms:

movlw         .198

movwf         Delay1

Delay1ms_01:

decfsz     Delay1F

goto         Delay1ms_01

return

ADloop_time:

movlw         .100

movwf         ADloop_scaler

ADloop_time1:

call         Delay1ms

decfsz         ADloop_scaler,F

goto         ADloop_time1

return

end

發表於: 2009/6/21 14:47
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... ]

教育訓練中心

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