?? 3_5_3.s43
字號:
;
;注意此文件的個別子程序在后面
;同時結構請讀者補充
;
#include "msp430x14X.h"
Ref equ 001h ; P2.0 連接參考電阻
Sensor equ 002h ; P2.1 連接傳感器
Mainloop mov #Sensor,R14
call #Measure ;測量傳感器的放電時間
mov R14,R11
mov #Ref,R14
call #Measure ;測量參考電阻的放電時間
push R14
;
Calculate mov #10000,R12 ;根據兩個放電時間以及已知的參考電阻值計算被測傳感器的電阻值
call #MPYU ;已知參考電阻值為10k,乘以 傳感器的放電時間,再除以參考電阻的放電時間
pop R11
mov R14,R12 ;
mov R15,R13 ;
call #DIVIDE ; R14 = Sensor*10000/Ref
mov r14,r15
Measure; 輸入參數: R14 = Sensor or Ref P2.x 位
; 輸出參數: R14 = Sensor or Ref 放電時間
Charge ; Capacitor is charged via Ref ;這段程序為充電
bis.b #CAON,&CACTL1
bis.b #Ref,&P2OUT
bis.b #Ref,&P2DIR
mov &TAR,&CCR1
add #5000,&CCR1
mov #CCIE,&CCTL1
bis #LPM0,SR
bic.b #Ref,&P2DIR
bic.b #Ref,&P2OUT
Discharge; Measure Discharge Time
mov #CM1+CCIS0+CAP+CCIE,&CCTL1 ; 放電
push &TAR ; 測量放電時間
bis.b R14,&P2DIR
bis #LPM0,SR
mov &CCR1,R14
sub @SP+,R14
bic.b #Sensor+Ref,&P2DIR
clr &CCTL1
bic.b #CAON,&CACTL1
ret ;
TAX_ISR ; 定時器A的中斷服務程序
add &TAIV,PC
reti ; CCR0
jmp CCR1_ISR ; CCR1
reti ; CCR2
reti ; CCR3
reti ; CCR4
TA_over reti ; Timer_A 溢出
;
CCR1_ISR bic #LPM0,0(SP) ; 退出 LPM0 模式,繼續工作
reti ;
WDT_ISR;
bic #LPM3,0(SP) ; 退出LPM3
reti
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -