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


Browsing this Thread:   1 Anonymous Users






請各位高手幫忙一下
#1
新會員
新會員


查看用戶資訊
我接一個放大電路讓電壓放大.用pic量測鋰電池電壓.把電
壓傳回vb上面秀出來.下面程式應該如何修改呢?可以幫幫
我嘛.
PROCESSOR P16F877
INCLUDE <P16F877.INC>
;連續取96點的資料在回傳至電腦
;中段時間&取樣時間點=10US
;PIC採20MHZ計時中斷0-->當作取樣時間
;在一次回傳96byte回電腦

#DEFINE SIMVAL .10 ;取樣點
#DEFINE AD_INT_START H'A0'
;數值儲存位址 <0A0H~EFH>
#DEFINE TX_DATA_REG H'A0'
;傳送資料起始傳送位址 <ADDRESS 0A0H>
#DEFINE USART_BOUND_RATE D'21' ;設定非
同步鮑率<57600BPS>

AD_CC EQU 20H
;A/D轉換完成值所暫存的位址
TX_DD EQU 22H
;判斷傳96筆資料給VB所暫存的位址
RC_DATA_2 EQU 26H
;
PORTD_OUT EQU 27H


ORG 0000H
NOP
GOTO MAIN_ST

;------------------------------------------------中斷程式
ORG 0004H
NOP
BANKSEL ADCON0
AD_TRN
BSF ADCON0,GO
;開始轉換
BTFSC ADCON0,GO
;判斷是否轉換完成
GOTO $-1
MOVF ADRESH,W ;A/D
Result Register
MOVWF AD_CC
CALL SAVEINT
;呼叫續存96筆資料副程式
EE_END
BCF PIR1,TMR2IF
;RESET TIMER2
BANKSEL PIE1
RETFIE

;------------------------------------------------程式啟始
MAIN_ST
CALL SET232
;設定RS232參數,啟動GIE、PEIE
BANKSEL PR2
;設定週期PR2-->>BNAK1
MOVLW SIMVAL
;剛好為1/60/128=130Us取樣時間
MOVWF PR2
BANKSEL TRISD

MOVLW H'00'
;設定PORTD為輸出模式
MOVWF TRISD
BANKSEL T2CON
MOVLW B'00000101' ;1:4預
除、1:1後除
MOVWF T2CON
;設定TIMER2
MAIN
MOVLW D'80'
MOVWF TX_DD
MOVLW H'00'
MOVWF RC_DATA_0
MOVWF RC_DATA_1
MOVWF RC_DATA_2
MAIN1
CALL RC_IN
;呼叫資料接收副程式

MOVF RC_DATA_2,W
;比對是否已按了顯示控制波型(I'73')
SUBLW D'73'
BTFSS STATUS,Z
GOTO $+3
CALL AD1
;啟用AD轉換器CH1
GOTO MAIN3
MOVF RC_DATA_2,W
;比對是否已按了顯示輸入波型(J'74')
SUBLW D'74'
BTFSS STATUS,Z
GOTO $+3
CALL AD0
;啟用AD轉換器CH0
GOTO MAIN3
MOVF RC_DATA_2,W
;比對是否已按了顯示輸出波型(K'75')
SUBLW D'75'
BTFSS STATUS,Z
GOTO MAIN2
CALL AD3
;啟用AD轉換器CH3
GOTO MAIN3

MAIN2
MOVF RC_DATA_1,W
SUBLW D'55'
CALL DUTY_CYCLE
MOVWF PORTD_OUT
MOVF RC_DATA_0,W
SUBLW D'69'
CALL FREQUENCY
IORWF PORTD_OUT,W
MOVWF PORTD
GOTO MAIN1

MAIN3
MOVLW AD_INT_START
;數值儲存起始位址
MOVWF FSR

BANKSEL PIE1
BSF PIE1,TMR2IE
;啟動計時中斷2
BTFSC PIE1,TMR2IE
;判斷是否已續存128筆資料
GOTO $-1
MOVLW TX_DATA_REG
;數值儲存起始位址
MOVWF FSR
CALL TX_OUT
;呼叫資料傳送副程式
DECFSZ TX_DD
;判斷是否續傳96筆資料回VB
GOTO $-2
GOTO MAIN

--------------------------------------------------------------------------------
想哭 位置:61.219.150.130 時間:2004/09/28-03:59:21
回應主題:RE:徵高手,如何書寫pic程式.來量測鋰電池電壓 第 6 篇回應

;------------------------------------------------設定RS232參數,啟
動GIE、PEIE副程式
SET232
BANKSEL SPBRG ;BANK1
MOVLW USART_BOUND_RATE ;設定非
同步鮑率<57600BPS>
MOVWF SPBRG
;
MOVLW B'00100100' ;載入常
數24H到TXSTA
MOVWF TXSTA
BANKSEL RCSTA
;BANK0
MOVLW B'10010000'
MOVWF RCSTA
BANKSEL PIE1
;BANK1
MOVLW B'11000000' ;致能全
域及通訊埠接收中斷
MOVWF INTCON

RETURN

;------------------------------------------------判斷及續存128筆資
料副程式
SAVEINT
MOVF AD_CC,W
MOVWF INDF
INCF FSR,F
;將FSR位址指向下一個位址
MOVF FSR,W

SUBLW H'F0'
BTFSS STATUS,Z ;判斷是
否已續存96筆資料
GOTO ASDOUT
BANKSEL PIE1
BCF PIE1,TMR2IE
;停止計時中斷2
ASDOUT
CLRF STATUS
RETURN

;------------------------------------------------AD0轉換副程式
AD0
;使用CH0通道
BANKSEL ADCON1
; ADCON1 is in bank1 ; 3 ch(AN0)/0 refs
MOVLW B'00000100' ; select
left(0) justified (d7)
MOVWF ADCON1
BANKSEL ADCON0
MOVLW B'10000001' ; select
Fosc/8(01), AN0(000)
MOVWF ADCON0
; a/d done(2), x(0), a/d ON(1)
BSF STATUS,RP0
BSF TRISA,0
BCF STATUS,RP0
RETURN

;------------------------------------------------AD1轉換副程式
AD1
;使用CH1通道
BANKSEL ADCON1
; ADCON1 is in bank1 ; 3 ch(AN0)/0 refs
MOVLW B'00000100' ; select
left(0) justified (d7)
MOVWF ADCON1
BANKSEL ADCON0
MOVLW B'10001001' ; select
Fosc/8(01), AN0(000)
MOVWF ADCON0
; a/d done(2), x(0), a/d ON(1)
BSF STATUS,RP0
BSF TRISA,1
BCF STATUS,RP0
RETURN


--------------------------------------------------------------------------------
想哭 位置:61.219.150.130 時間:2004/09/28-03:59:41
回應主題:RE:徵高手,如何書寫pic程式.來量測鋰電池電壓 第 7 篇回應

;------------------------------------------------AD3轉換副程式
AD3
;使用CH0通道
BANKSEL ADCON1
; ADCON1 is in bank1 ; 3 ch(AN0)/0 refs
MOVLW B'00000100' ; select
left(0) justified (d7)
MOVWF ADCON1
BANKSEL ADCON0
MOVLW B'10011001' ; select
Fosc/8(01), AN0(000)
MOVWF ADCON0
; a/d done(2), x(0), a/d ON(1)
BSF STATUS,RP0
BSF TRISA,3
BCF STATUS,RP0
RETURN

;------------------------------------------------接收VB資料副程式
RC_IN

CLRF STATUS

BTFSS PIR1,RCIF ;判斷
PIR1,RCIF是否有接收到一筆資料
GOTO $-1

MOVF RCREG,W

MOVWF RC_DATA_0
;把接收到的資料儲存至RC_DATA_0
CLRF STATUS
;
BTFSS PIR1,RCIF ;判斷
PIR1,RCIF是否有接收到一筆資料
GOTO $-1

MOVF RCREG,W

MOVWF RC_DATA_1
;把接收到的資料儲存至RC_DATA_1
CLRF STATUS
BTFSS PIR1,RCIF ;判斷
PIR1,RCIF是否有接收到一筆資料
GOTO $-1

MOVF RCREG,W

MOVWF RC_DATA_2
;把接收到的資料儲存至RC_DATA_1
CLRF STATUS
RETURN

;------------------------------------------------資料傳送回VB副程

TX_OUT
MOVF INDF,W
BANKSEL TXREG
MOVWF TXREG
;USART Transmit Data Register
BTFSS PIR1,TXIF ;延遲時
間到STOP-BIT傳送完畢
GOTO $-1
BCF PIR1,TXIF
BSF STATUS,RP0
BTFSS TXSTA,TRMT
;延遲時間到TXSR移出所有資料
GOTO $-1
BCF TXSTA,TRMT
INCF FSR,F
CLRF STATUS
RETURN
END


發表於: 2004/10/13 1:22
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... ]

教育訓練中心

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