📄 asm.s43
字号:
#include "msp430x22x4.h"
;OA0工作在模式4(non_inverting)
;p2.0输入(零点几个伏特)
;p2.1输出(最大输出AVCC)
;将输入电压的地接到芯片的AVss
;用万用表来观察在各个放大系数时输出端电压
; MSP430F2274
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P2.0|<--OA0I0
; | AVss|<--GND
; | p2.1|-->OA0O
NAME main
PUBLIC main
;-----------------------------------------------------------------------------
; MSP430F22x中断向量表
;-----------------------------------------------------------------------------
ORG 0FFFEh
DC16 main
;------------------------------------------------------------------------------
RSEG CODE ;程序开始
;------------------------------------------------------------------------------
main MOV.W #0600H,SP ;设置堆栈指针
stopWDT MOV.W #WDTPW+WDTHOLD,&WDTCTL ;关看门狗
MOV.B &CALBC1_1MHZ,&BCSCTL1 ;设定DCO为1MHZ
MOV.B &CALDCO_1MHZ,&DCOCTL
BIS.B #BIT0+BIT1,&P2SEL ;P2.0,2.1第二功能选择
BIS.B #BIT1,&P2OUT ;p2.1,OA0输出端
;设置OA0,最大输出电压为AVCC
MOV.B #OAP_0+OAPM_3+OAADC1,&OA0CTL0 ;OAP选择OA0I0输入,反馈速度为fast,输出为A1,A3或者A5
MOV.B #OAFBR_0+OAFC_4,&OA0CTL1 ;R2/R1=0R/16R,模式4(同向比例放大器,放大系数=1+R2/R1)
MOV.B #OAFBR_1+OAFC_4,&OA0CTL1 ;R2/R1=4R/12R
MOV.B #OAFBR_2+OAFC_4,&OA0CTL1 ;R2/R1=8R/8R
MOV.B #OAFBR_3+OAFC_4,&OA0CTL1 ;R2/R1=10R/6R
MOV.B #OAFBR_4+OAFC_4,&OA0CTL1 ;R2/R1=12R/4R
MOV.B #OAFBR_5+OAFC_4,&OA0CTL1 ;R2/R1=13R/3R
MOV.B #OAFBR_6+OAFC_4,&OA0CTL1 ;R2/R1=14R/2R
MOV.B #OAFBR_7+OAFC_4,&OA0CTL1 ;R2/R1=15R/1R
NOP
BIS.B #LPM3,SR
NOP
END main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -