📄 msp430f247buhuozijia.c
字号:
#include "msp430x24x.h"
#define Latch_addr_H P5OUT|=0x10
#define Latch_addr_L P5OUT&=0xef
#define Latch_data_H P5OUT|=0x20
#define Latch_data_L P5OUT&=0xdf
#define uchar unsigned char
unsigned int frequent=0;
unsigned int p[4];
const uchar tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfe};
void LED_Disp(uchar pos,uchar value);
void delay(unsigned int i);
void xianshi(void);
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
unsigned int i;
for(i=0;i<2000;i++);
/* BCSCTL1|=XTS;
do{
IFG1&=~OFIFG;
for(i=0xff;i>0;i--);
}
while(IFG1&OFIFG);
BCSCTL2|=SELM_3;*/
P1DIR=0x80;
P1SEL=0x02;
// P1IES|=BIT1;
// P1IFG=0x00;
P5DIR |= 0x30; // Set P5.0 to output direction
P4DIR |= 0xff;
/* CCR0=32768;
CCTL0=CCIE;
TACTL=TASSEL_1+MC_1;*/
CCTL0=CM_2+SCS+CCIS_0+CAP+CCIE;
TACTL=TASSEL_2+MC_2;
_EINT();
while(1)
{ xianshi();
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0(void)
{ frequent++;
P1OUT^=BIT7;
}
/* #pragma vector=PORT1_VECTOR
__interrupt void port1(void)
{
a++;
}
*/
void delay(unsigned int i)
{
while(i--);
}
void LED_Disp(uchar pos,uchar value) //数码管显示
{
P5OUT=0x00;
P4OUT=0x10<<(pos-1);//数码管位选
Latch_addr_H;//片选U1
Latch_addr_L;//反选
if( value<=9)
{
P4OUT=tab[value];
Latch_data_H;//片选U2
Latch_data_L;//反选
}
}
void xianshi(void)
{
p[0]=frequent/1000;
p[1]=frequent%1000/100;
p[2]=frequent%100/10;
p[3]=frequent%10;
LED_Disp(1,p[3]);
delay(800);
LED_Disp(2,p[2]);
delay(800);
LED_Disp(3,p[1]);
delay(800);
LED_Disp(4,p[0]);
delay(800);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -