📄 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 + -