📄 asm.s43
字号:
#include "msp430x22x4.h"
;定时器A比较模式实验,主程序初始化后,关闭CPU
;用CCR0作为比较器
;时钟源选SMCLK
;以50000个SMCLK计数脉冲作为周期
;每次计到来翻转P1.0
; MSP430F2274
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P1.0|-->LED
NAME main
PUBLIC main
;-----------------------------------------------------------------------------
; MSP430F22x中断向量表
;-----------------------------------------------------------------------------
ORG 0FFFEh
DC16 main
ORG 0FFF2h ; 定时器CCR0中断向量
DC16 ta0_isr
;------------------------------------------------------------------------------
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
MOV.W #TASSEL1+TACLR,&TACTL ;定时器A时钟源为SMCLK
MOV.W #CCIE,&CCTL0 ;CCR0中断使能
MOV.W #50000,&CCR0 ;计数值
BIS.B #BIT0,&P1DIR ;P1.0输出方向
BIS.W #MC1,&TACTL ;启动定时器A为连续计数模式
EINT ;开总中断
mainloop
BIS.W #CPUOFF,SR ;关CPU
NOP ;用于调试
;------------------------------------------------------------------------------
ta0_isr;
;------------------------------------------------------------------------------
XOR.B #BIT0,&P1OUT ;翻转P1.0
ADD.W #50000,&CCR0 ;重设比较值
RETI ;中断返回
END main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -