#include "msp430g2553.h"
#define CPU_F ((double)1000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
int time = 23;
char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴
void xianshi(int x)
{
P1OUT=table[x%10];
P2OUT|=BIT3;
delay_ms(5);
P2OUT&=~BIT3;
P1OUT=table[x%100/10];
P2OUT|=BIT2;
delay_ms(5);
P2OUT&=~BIT2;
P1OUT=table[x%1000/100];
P2OUT|=BIT1;
delay_ms(5);
P2OUT&=~BIT1;
P1OUT=table[x/1000];
P2OUT|=BIT0;
delay_ms(5);
P2OUT&=~BIT0;
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0xff;
P2DIR = 0xff;
P2OUT = 0x00;
P2DIR &=~ (BIT4 + BIT5);
P2REN |= BIT4 + BIT5;
P2OUT|=BIT4 + BIT5;//上拉
P2IE|=BIT4 + BIT5;
P2IES|=BIT4 + BIT5;
P2IFG&=~ (BIT4 + BIT5);
_EINT();
while(1)
{
xianshi(time);
}
}
#pragma vector=PORT2_VECTOR
__interrupt void port_2(void)
{
delay_ms(10);
if((P2IN&BIT4)==0)
time+=1;
if((P2IN&BIT5)==0)
time-=1;
P2IFG&=~0x30;
}
#define CPU_F ((double)1000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
int time = 23;
char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴
void xianshi(int x)
{
P1OUT=table[x%10];
P2OUT|=BIT3;
delay_ms(5);
P2OUT&=~BIT3;
P1OUT=table[x%100/10];
P2OUT|=BIT2;
delay_ms(5);
P2OUT&=~BIT2;
P1OUT=table[x%1000/100];
P2OUT|=BIT1;
delay_ms(5);
P2OUT&=~BIT1;
P1OUT=table[x/1000];
P2OUT|=BIT0;
delay_ms(5);
P2OUT&=~BIT0;
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0xff;
P2DIR = 0xff;
P2OUT = 0x00;
P2DIR &=~ (BIT4 + BIT5);
P2REN |= BIT4 + BIT5;
P2OUT|=BIT4 + BIT5;//上拉
P2IE|=BIT4 + BIT5;
P2IES|=BIT4 + BIT5;
P2IFG&=~ (BIT4 + BIT5);
_EINT();
while(1)
{
xianshi(time);
}
}
#pragma vector=PORT2_VECTOR
__interrupt void port_2(void)
{
delay_ms(10);
if((P2IN&BIT4)==0)
time+=1;
if((P2IN&BIT5)==0)
time-=1;
P2IFG&=~0x30;
}