寄存器详述.docx
《寄存器详述.docx》由会员分享,可在线阅读,更多相关《寄存器详述.docx(37页珍藏版)》请在冰豆网上搜索。
寄存器详述
/***********************************中断******************************/
/*中断使能1*/
#defineIE1_0x0000
sfrbIE1=IE1_;
#defineWDTIE0x01/*看门狗中断使能*/
#defineOFIE0x02/*外部晶振故障中断使能*/
#defineNMIIE0x10/*非屏蔽中断使能*/
#defineACCVIE0x20/*可屏蔽中断使能/flash写中断错误*/
#defineURXIE00x40/*串口0接收中断使能*/
#defineUTXIE00x80/*串口0发送中断使能*/
中断使能IE1
UTXIE0
URXIE0
ACCVIE
NMIIE
OFIE
WDTIE
/*中断标志1*/
#defineIFG1_0x0002
sfrbIFG1=IFG1_;
#defineWDTIFG0x01/*看门狗中断标志*/
#defineOFIFG0x02/*外部晶振故障中断标志*/
#defineNMIIFG0x10/*非屏蔽中断标志*/
#defineURXIFG00x40/*串口0接收中断标志*/
#defineUTXIFG00x80/*串口0发送中断标志*/
中断标志IFG1
UTXIFG0
URXIFG0
NMIIFG
OFIFG
WDTIFG
/*中断模式使能1*/
#defineME1_0x0004
sfrbME1=ME1_;
#defineURXE00x40/*串口0接收中断模式使能*/
#defineUSPIE00x40/*同步中断模式使能*/
#defineUTXE00x80/*串口0发送中断模式使能*/
中断模式使能ME1
UTXE0
URXE0
USPIE0
/*中断使能2*/
#defineIE2_0x0001
sfrbIE2=IE2_;
#defineURXIE10x10/*串口1接收中断使能*/
#defineUTXIE10x20/*串口1发送中断使能*/
中断使能IE2
UTXIE1
URXIE1
/*中断标志2*/
#defineIFG2_0x0003
sfrbIFG2=IFG2_;
#defineURXIFG10x10/*串口1接收中断标志*/
#defineUTXIFG10x20/*串口1发送中断标志*/
中断标志IFG2
UTXIFG1
URXIFG1
/*中断模式使能2*/
#defineME2_0x0005
sfrbME2=ME2_;
#defineURXE10x10/*串口1接收中断模式使能*/
#defineUSPIE10x10/*同步中断模式使能*/
#defineUTXE10x20/*串口1发送中断模式使能*/
中断模式使能ME2
UTXE1
URXE1
USPIE1
/**********************************看门狗******************************/
#defineWDTCTL_0x0120P145
sfrwWDTCTL=WDTCTL_;
#defineWDTIS00x0001/*选择WDTCNT的四个输出端之一*/
#defineWDTIS10x0002/*选择WDTCNT的四个输出端之一*/
#defineWDTSSEL0x0004/*选择WDTCNT的时钟源*/
#defineWDTCNTCL0x0008/*清除WDTCNT端:
为1时从0开始计数*/
#defineWDTTMSEL0x0010/*选择模式0:
看门狗模式;1:
定时器模式*/
#defineWDTNMI0x0020/*选择NMI/RST引脚功能0:
为RST;1:
为NMI*/
#defineWDTNMIES0x0040/*WDTNMI=1时.选择触发延0:
为上升延1:
为下降延*/
#defineWDTHOLD0x0080/*停止看门狗定时器工作0:
启动;1:
停止*/
看门狗控制寄存器WDTCTL
口令
WDTHOLD
WDTNMIES
WDTNMI
WDTTMSEL
WDTCNTCL
WDTSSEL
WDTIS1
WDTIS0
注:
口令(15-8):
读取为69H,写为5AH。
#defineWDTPW0x5A00/*写密码:
高八位*/
/*SMCLK=1MHz定时器模式*/
#defineWDT_MDLY_32WDTPW+WDTTMSEL+WDTCNTCL
/*TSMCLK*2POWER15=32ms复位状态*/
#defineWDT_MDLY_8WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0
/*TSMCLK*2POWER13=8.192ms*/
#defineWDT_MDLY_0_5WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1
/*TSMCLK*2POWER9=0.512ms*/
#defineWDT_MDLY_0_064WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0
/*TSMCLK*2POWER6=0.512ms*/
/*ACLK=32.768KHz定时器模式*/
#defineWDT_ADLY_1000WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL
/*TACLK*2POWER15=1000ms*/
#defineWDT_ADLY_250WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0
/*TACLK*2POWER13=250ms*/
#defineWDT_ADLY_16WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1
/*TACLK*2POWER9=16ms*/
#defineWDT_ADLY_1_9WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0
/*TACLK*2POWER6=1.9ms*/
/*SMCLK=1MHz看门狗模式*/
#defineWDT_MRST_32WDTPW+WDTCNTCL
/*TSMCLK*2POWER15=32ms复位状态*/
#defineWDT_MRST_8WDTPW+WDTCNTCL+WDTIS0
/*TSMCLK*2POWER13=8.192ms*/
#defineWDT_MRST_0_5WDTPW+WDTCNTCL+WDTIS1
/*TSMCLK*2POWER9=0.512ms*/
#defineWDT_MRST_0_064WDTPW+WDTCNTCL+WDTIS1+WDTIS0
/*TSMCLK*2POWER6=0.512ms*/
/*ACLK=32.768KHz看门狗模式*/
#defineWDT_ARST_1000WDTPW+WDTCNTCL+WDTSSEL
/*TACLK*2POWER15=1000ms*/
#defineWDT_ARST_250WDTPW+WDTCNTCL+WDTSSEL+WDTIS0
/*TACLK*2POWER13=250ms*/
#defineWDT_ARST_16WDTPW+WDTCNTCL+WDTSSEL+WDTIS1
/*TACLK*2POWER9=16ms*/
#defineWDT_ARST_1_9WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0
/*TACLK*2POWER6=1.9ms*/
/******************************基本定时器***************************/
#defineBTCTL_(0x0040)/*控制寄存器*/
MSP430F4XX系列(P148)
#defineBTIP0(0x01)
#defineBTIP1(0x02)
#defineBTIP2(0x04)/*BTIP2-0:
定时中断频率*/
#defineBTFRFQ0(0x08)
#defineBTFRFQ1(0x10)/*输出fLCD信号*/
#defineBTDIV(0x20)/*fCLK2=ACLK:
256*/
#defineBTHOLD(0x40)/*0:
启动;1:
停止*/
#defineBTSSEL(0x80)/*fBT=fMCLK(mainclock)*/
基本计时器控制寄存器
BTSSEL
BTHOLD
BTDIV
BTFRFQ1
BTFRFQ0
BTIP2
BTIP1
BTIP0
#defineBTCNT1_(0x0046)/*BasicTimerCount1*/
#defineBTCNT2_(0x0047)/*BasicTimerCount2*/
/*FrequencyoftheBTCNT2codedwithBit5and7inBTCTL*/
#defineBT_fCLK2_ACLK(0x00)
#defineBT_fCLK2_ACLK_DIV256(BTDIV)/*256分频*/
#defineBT_fCLK2_MCLK(BTSSEL)
#defineBT_fCLK2_ACLK_DIV256(BTSSEL+BTDIV)/*很少使用吧*/
/*InterruptintervaltimefINTcodedwithBits0-2inBTCTL*/
#defineBT_fCLK2_DIV2(0x00)/*fINT=fCLK2:
2(default)*/
#defineBT_fCLK2_DIV4(BTIP0)/*fINT=fCLK2:
4*/
#defineBT_fCLK2_DIV8(BTIP1)/*fINT=fCLK2:
8*/
#defineBT_fCLK2_DIV16(BTIP1+BTIP0)/*fINT=fCLK2:
16*/
#defineBT_fCLK2_DIV32(BTIP2)/*fINT=fCLK2:
32*/
#defineBT_fCLK2_DIV64(BTIP2+BTIP0)/*fINT=fCLK2:
64*/
#defineBT_fCLK2_DIV128(BTIP2+BTIP1)/*fINT=fCLK2:
128*/
#defineBT_fCLK2_DIV256(BTIP2+BTIP1+BTIP0)/*fINT=fCLK2:
256*/
/*FrequencyofLCDcodedwithBits3-4*/
#defineBT_fLCD_DIV32(0x00)/*fLCD=fACLK:
32(default)*/
#defineBT_fLCD_DIV64(BTFRFQ0)/*fLCD=fACLK:
64*/
#defineBT_fLCD_DIV128(BTFRFQ1)/*fLCD=fACLK:
128*/
#defineBT_fLCD_DIV256(BTFRFQ1+BTFRFQ0)/*fLCD=fACLK:
256*/
/*LCDfrequencyvalueswithfBT=fACLK*/
#defineBT_fLCD_1K(0x00)/*fACLK:
32(default)*/
#defineBT_fLCD_512(BTFRFQ0)/*fACLK:
64*/
#defineBT_fLCD_256(BTFRFQ1)/*fACLK:
128*/
#defineBT_fLCD_128(BTFRFQ1+BTFRFQ0)/*fACLK:
256*/
/*LCDfrequencyvalueswithfBT=fMCLK*/
#defineBT_fLCD_31K(BTSSEL)/*fMCLK:
32还是fMCLK?
*/
#defineBT_fLCD_15_5K(BTSSEL+BTFRFQ0)/*fMCLK:
64*/
#defineBT_fLCD_7_8K(BTSSEL+BTFRFQ1+BTFRFQ0)/*fMCLK:
256*/
/*withassumedvluesoffACLK=32KHz,fMCLK=1MHz*/
/*fBT=fACLKisthoughtforlongerintervaltimes*/
#defineBT_ADLY_0_064(0x00)/*0.064msinterval(default)*/
#defineBT_ADLY_0_125(BTIP0)/*0.125ms"*/
#defineBT_ADLY_0_25(BTIP1)/*0.25ms"*/
#defineBT_ADLY_0_5(BTIP1+BTIP0)/*0.5ms"*/
#defineBT_ADLY_1(BTIP2)/*1ms"*/
#defineBT_ADLY_2(BTIP2+BTIP0)/*2ms"*/
#defineBT_ADLY_4(BTIP2+BTIP1)/*4ms"*/
#defineBT_ADLY_8(BTIP2+BTIP1+BTIP0)/*8ms"*/
#defineBT_ADLY_16(BTDIV)/*16ms"*/
#defineBT_ADLY_32(BTDIV+BTIP0)/*32ms"*/
#defineBT_ADLY_64(BTDIV+BTIP1)/*64ms"*/
#defineBT_ADLY_125(BTDIV+BTIP1+BTIP0)/*125ms"*/
#defineBT_ADLY_250(BTDIV+BTIP2)/*250ms"*/
#defineBT_ADLY_500(BTDIV+BTIP2+BTIP0)/*500ms"*/
#defineBT_ADLY_1000(BTDIV+BTIP2+BTIP1)/*1000ms"*/
#defineBT_ADLY_2000(BTDIV+BTIP2+BTIP1+BTIP0)/*2000ms"*/
/*fCLK2=fMCLK(1MHz)isthoughtforshortintervaltimes*/
/*thetimingforshortintervalsismoreprecisethanACLK*/
/*BesurethattheSCFQCTL-Registerissetto01FhsothatfMCLK=1MHz*/
/*Toolowintervaltimeresultsininterruptstoofrequentfortheprocessortohandle!
*/
#defineBT_MDLY_0_002(BTSSEL)/*0.002msinterval***intervaltimes*/
#defineBT_MDLY_0_004(BTSSEL+BTIP0)/*0.004ms***tooshortfor*/
#defineBT_MDLY_0_008(BTSSEL+BTIP1)/*0.008ms***interrupt*/
#defineBT_MDLY_0_016(BTSSEL+BTIP1+BTIP0)/*0.016ms***handling*/
#defineBT_MDLY_0_032(BTSSEL+BTIP2)/*0.032ms"*/
#defineBT_MDLY_0_064(BTSSEL+BTIP2+BTIP0)/*0.064ms"*/
#defineBT_MDLY_0_125(BTSSEL+BTIP2+BTIP1)/*0.125ms"*/
#defineBT_MDLY_0_25(BTSSEL+BTIP2+BTIP1+BTIP0)/*0.25ms"*/
/*Reset/HoldcodedwithBits6-7inBT
(1)CTL*/
/*thisisforBT*/
//#defineBTRESET_CNT1(BTRESET)/*BTCNT1isresetwhileBTRESETisset*/
//#defineBTRESET_CNT1_2(BTRESET+BTDIV)/*BTCNT1.AND.BTCNT2areresetwhile~isset*/
/*thisisforBT1*/
#defineBTHOLD_CNT1(BTHOLD)/*BTCNT1isheldwhileBTHOLDisset*/
#defineBTHOLD_CNT1_2(BTHOLD+BTDIV)/*BT1CNT1.AND.BT1CNT2areheldwhile~isset*/
/*INTERRUPTCONTROLBITS*/
/*#defineBTIE0x80*/
/*#defineBTIFG0x80*/
/*******************************定时器A3*****************************/
#defineTAIV_(0x012E)/*TimerAInterruptVectorWord*/
READ_ONLYDEFW(TAIV,TAIV_)
#defineTACTL_(0x0160)/*TimerAControl*/
DEFW(TACTL,TACTL_)
#defineTACCTL0_(0x0162)/*TimerACapture/CompareControl0*/
DEFW(TACCTL0,TACCTL0_)
#defineTACCTL1_(0x0164)/*TimerACapture/CompareControl1*/
DEFW(TACCTL1,TACCTL1_)
#defineTACCTL2_(0x0166)/*TimerACapture/CompareControl2*/
DEFW(TACCTL2,TACCTL2_)
#defineTAR_(0x0170)/*TimerA*/
DEFW(TAR,TAR_)
#defineTACCR0_(0x0172)/*TimerACapture/Compare0*/
DEFW(TACCR0,TACCR0_)
#defineTACCR1_(0x0174)/*TimerACapture/Compare1*/
DEFW(TACCR1,TACCR1_)
#defineTACCR2_(0x0176)/*TimerACapture/Compare2*/
DEFW(TACCR2,TACCR2_)
/*Alternateregisternames*/
#defineCCTL0TACCTL0/*TimerACapture/CompareControl0*/
#defineCCTL1TACCTL1/*TimerACapture/CompareControl1*/
#defineCCTL2TACCTL2/*TimerACapture/CompareControl2*/
#defineCCR0TACCR0/*TimerACapture/Compare0*/
#defineCCR1TACCR1/*TimerACapture/Compare1*/
#defineCCR2TACCR2/*TimerACapture/Compare2*/
#defineCCTL0_TACCTL0_/*TimerACapture/CompareControl0*/
#defineCCTL1_TACCTL1_/*TimerACapture/CompareControl1*/
#defineCCTL2_TACCTL2_/*TimerACapture/CompareControl2*/
#defineCCR0_TACCR0_/*TimerACapture/Compare0*/
#defineCCR1_TACCR1_/*TimerACapture/Compare1*/
#defineCCR2_TACCR2_/*TimerACapture/Compare2*/
/*TACTL:
定时器A控制寄存器↓*/
#defineTASSEL1(0x0200)/*TimerAclocksourceselect0*/
#defineTASSEL0(0x0100)/*TimerAclocksourceselect1*/
#defineID1(0x0080)/*TimerAclockinputdivider1*/
#defineID0(0x0040)/*TimerAclockinputdivider0*/
#defineMC1(0x0020)/*TimerAmodecontrol1*/
#defineMC0(0x0010)/*TimerAmodecontrol0*/
#defineTACLR(0x0004)/*TimerAcounterclear*/
#defineTAIE(0x00