?? main.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 + -