⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 很好的MSP430F149C语言例子程序
💻 C
字号:


#include <msp430x14x.h>
unsigned char dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0xFF,0xBF};     /*0123456789灭-*/
unsigned char timedata[8]={0x00,0x00,0x0B,0x00,0x00,0x0B,0x00,0x00};    /*初始显示 00-00-00*/
unsigned char dis[11]={0x00,0x00,0x0B,0x00,0x00,0x0B,0x00,0x00,0x0A,0x00}; /*     */
unsigned char con=0x00;
unsigned int  *pt;

void Init_CLK(void)
{
 unsigned int i;
 WDTCTL=WDTPW+WDTHOLD;
 BCSCTL1&=~XT2OFF;
 BCSCTL2=SELM_2+DIVM_0+SELS+DIVS_0;	
 while((IFG1&OFIFG)!=0)						/* 等待晶振有效 */
  {
   IFG1&=~OFIFG;
   for(i=0;i<1024;i++);
  }
 P2SEL=0x00;
 P2DIR=0x00;
 P2IE=0x08;                            	 	
 P2IES=0x08;                                        /* 允许P2中断 */
 P5SEL=0x7A;
 P5DIR&=0x03;
 P5DIR|=0x84;
 P5OUT|=0x84;
 P6SEL=0xFF;
 UCTL1=CHAR+SYNC+MM;						/* 允许USART,SPI模式 */
 UTCTL1=SSEL1+STC;						/* SMCLK */
 UBR01=0x02;							/* 4MHz波特率 */
 UBR11=0x00;
 UMCTL1=0x00;
 ME2|=USPIE1;
 TACTL=TASSEL0+TACLR;
 UCTL1=CHAR+SYNC+MM ;
 UTCTL1=SSEL1+STC   ;
 UBR01=0x02         ;
 UBR11=0x00         ;
 UMCTL1=0x00        ;
 CCTL0=CCIE;
 CCR0=32768;
}

 void delay(unsigned long nvalue)
{
unsigned long count;
int i;
unsigned long j;
count=2667;
for(i=nvalue;i>0;i--)
  {for(j=count;j>0;j--);
  }
  return;
}

void scan(void)
{

 char k;
 for(k=0;k<8;k++)
   {
    TXBUF1=dis_7[dis[k]];
    while((BIT0&UTCTL1)!=1);
   }
}

void clearmen(void)
{
 int i;
 for(i=0;i<=8;i++)
 {
  dis[i]=timedata[i];
 }
}


void main(void)
{
 Init_CLK( );
 clearmen( );
 scan( );
 TACTL|=MC0;
  _EINT();
  for(;;)
   {
     _BIS_SR(CPUOFF);
     _NOP();
   }
  }
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)

{
 timedata[0]++;
 if(timedata[0]>=10)
  {
   timedata[0]=0;timedata[1]++;
   if(timedata[1]>=6)
    {
     timedata[1]=0;
     timedata[3]++;
     if(timedata[3]>=10)
      {
       timedata[3]=0;timedata[4]++;
       if(timedata[4]>=6)
        {
         timedata[4]=0;
         timedata[6]++;
         if(timedata[6]>=10)
          {
           timedata[6]=0;timedata[7]++;
          }
         if(timedata[7]==2)
            {
           if(timedata[6]==4)
            {
             timedata[6]=0;timedata[7]=0;
             }
           }
        }
       }
      }
 }
  dis[0]=timedata[0];dis[1]=timedata[1];dis[2]=timedata[2];dis[3]=timedata[3];
  dis[4]=timedata[4];dis[5]=timedata[5];dis[6]=timedata[6];dis[7]=timedata[7];
  scan( );
}

#pragma vector=PORT2_VECTOR
__interrupt void PORT2 (void)

{

  _DINT();
  TACTL&=~BIT4;
  pt=dis;

  while(con<=7)
 {

   if(!(P2IN&BIT0))
  {
   delay(100);
   while(!(P2IN&BIT0));
/*     if(dis[con]==10)
      {dis[9]=dis[con];dis[con]=dis[8];dis[8]=dis[9];}
*/
     pt++;
     if(pt>=8)
       con=0;
   }

  if((con!=2)&(con!=5))
  {
   if(!(P2IN&BIT1))
   {
    delay(100);
    while(!(P2IN&BIT1));
    timedata[con]++;
    if(timedata[con]>=10)
    {timedata[con]=0;}
    dis[con]=timedata[con];
    dis[8]=0x0A;
    }
   }

if((con!=2)&(con!=5))
  {
   if(!(P2IN&BIT2))
    {
      delay(100);
      while(!(P2IN&BIT2));
      if(timedata[con]==0)
      {timedata[con]=0x09;}
     else{timedata[con]--;}
     dis[con]=timedata[con];dis[8]=0x0A;
     }
   }
   scan( );
   delay(10);
  }

 P2IFG&=~BIT3;
 TACTL|=MC0;
 _EINT();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -