📄 ad转换.c.txt
字号:
#include <msp430x13x.h>
void init_system(void);
void init_series(void);
void init_adc(void);
unsigned char rxd_buff,ok;
unsigned int ADvalue;
unsigned int bb;
void main(void)
{
unsigned char relay_buffp1,aa;
WDTCTL = WDTPW + WDTHOLD;
init_system();
init_series();
init_adc();
ADC12CTL0|=ADC12SC;
_EINT(); //允许中断
//_DINT(); //禁止中断
for(;;);
for(;;)
{
TXBUF0=0x11;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x22;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x33;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x44;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x55;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x66;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x77;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x88;
while ((UTCTL0&0x01) == 0);
TXBUF0=0x99;
while ((UTCTL0&0x01) == 0);
TXBUF0=0xaa;
while ((UTCTL0&0x01) == 0);
for(bb=0;bb<30000;bb++);
}
TXBUF0=0x11;
while ((UTCTL0&0x01) == 0);
P1DIR = 0xff;
P2DIR = 0xff;
P1OUT = 0x00;
P2OUT = 0x00;
for(;;)
{
P1OUT = 0x00;
P2OUT = 0x00;
for(bb=0;bb<60000;bb++);
P1OUT = 0xff;
P2OUT = 0xff;
for(bb=0;bb<60000;bb++);
P1OUT = 0x00;
P2OUT = 0x00;
for(bb=0;bb<60000;bb++);
relay_buffp1=1;
for(aa=0;aa<8;aa++)
{
P1OUT = relay_buffp1;
relay_buffp1=relay_buffp1<<1;
for(bb=0;bb<60000;bb++);
}
P1OUT = 0x00;
P2OUT = 1;
for(bb=0;bb<60000;bb++);
P2OUT = 2;
for(bb=0;bb<60000;bb++);
P2OUT = 8;
for(bb=0;bb<60000;bb++);
P2OUT = 4;
for(bb=0;bb<60000;bb++);
}
}
void init_series(void)
{
UCTL0 = CHAR; // 设串口控制寄存器,设为8位字符格式
UTCTL0 = SSEL0; // 设串口控制寄存器所使用的时钟,选择UCLK = ACLK
UBR00 = 0x03; // 波特率设置32k/2400 - 13.65
UBR10 = 0x00;
UMCTL0 = 0x4a; // 波特率调整器设置
ME1 |= UTXE0 + URXE0; // 模块允许寄存器设置,使能USART0 TXD/RXD
IE1 |= URXIE0; // 中断允许寄存器设置,接收中断允许
P3SEL |= 0x30; // 将P3.4,5使用外围模块 = USART0 TXD/RXD
P3DIR |= 0x10; // 将P3.4设为输出(发),P3.5默认为输入(收)= 0
IE1|=URXIE0;
}
void init_adc(void)
{
ADC12CTL0&=~ENC;
ADC12CTL0=ADC12ON;
ADC12CTL0|=REFON;
ADC12CTL0|=REF2_5V;
ADC12CTL1=CONSEQ_0+SHP;
ADC12MCTL0=SREF_1;
ADC12IE=BIT0;
ADC12CTL0|=ENC;
}
void init_system(void)
{
BCSCTL1 &= ~(XT2OFF + XTS); // ACLK = 32.768K
BCSCTL2 |= SELM1; // MCLK = XT2
BCSCTL2 |= SELS; // SMCLK = XT2
}
#pragma vector = ADC_VECTOR
__interrupt void adc(void)
{
switch(ADC12IV)
{
case 0x02: break;
case 0x04: break;
case 0x06:
ADvalue=ADC12MEM0;
ADC12CTL0|=ADC12SC;
break;
default: break;
}
}
#pragma vector = UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
TXBUF0=RXBUF0;
while ((UTCTL0&0x01) == 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -