📄 cpa.c
字号:
#include "msp430xw42x.h"
long k=0,l=0,m=59,h=0,i=0,j=0;
char digit[]={
//位0-7
0x7D, //"0"
0x60,//"1"
0x3E,//"2"
0x7A,//"3"
0x63,//"4"
0x5B,//"5"
0x5F,//"6"
0x70,//"7"
0x7F,//"8"
0x7B,//"9"
0x80,//"."或者最后一位数字后"k"
//LCDMEM[8]
0X01, //15 8-"M" MGJm3/
0X02, //16 8-"G" MGJm3/
0X04, //17 8-"M" kmwh
0X08, //18 8-"W" kmwh
0X10, //11 8-"J" MGJm3/
0X20, //12 8-"m3" MGJm3/
0X40, //13 8-"/" MGJm3/
0X80, //14 8-"h" kmwh
//LCDMEM[9]
0X01, //∏∏
0X02, //S℃
0X04, //R℃
0X08, //Δt
0X10, //!
0X20, //s
0X40, //⊙
0X80, //〓
};
void Init_Timer_A(void) //*设置TIMEA定时器,用来产生1秒基准中断
{
TACTL = TASSEL0 + TACLR; // ACLK, clear TAR
CCTL0 = CCIE; // CCR0 中断使能
CCR0=32768; //*定时1秒
TACTL|=MC0; //*增增计数模式
}
//************************************************************************************8
void main()
{
Init_Timer_A();
WDTCTL=WDTPW+WDTHOLD;
LCDCTL=LCDON+LCD4MUX+LCDP1;
P5SEL=0xfc;
FLL_CTL0=XCAP18PF;
BTCTL=BTFRFQ1;
_EINT();
LCDMEM[0]=0x7d;
LCDMEM[1]=0x7d;
LCDMEM[2]=0x02;
LCDMEM[3]=0x7d;
LCDMEM[4]=0x7d;
LCDMEM[5]=0x02;
LCDMEM[6]=0x7d;
LCDMEM[7]=0x7d;
}
#pragma vector=TIMERA0_VECTOR//*TIMEA中断,每1秒运行一下程序一遍
__interrupt void TimerA0()
{
j++;
if(j==60)
{
LCDMEM[6]=0x7d;
LCDMEM[7]=0x7d;
}else
{
i=j%10;
LCDMEM[7]=digit[i];
i=j/10;
LCDMEM[6]=digit[i%10];
}
if (j==60)
{
j=0;
m++;
LCDMEM[4]=digit[m%10];
k=m/10;
LCDMEM[3]=digit[k%6];
}
if((m==60)&(j==0))
{
m=0;
h++;
LCDMEM[1]=digit[h%10];
l=h/10;
LCDMEM[0]=digit[l%6];
}
if ((P1IN&0x20)== 0)
{
for (i=0;i<9; ++i)
{
j=0;
}
}
if((j%2)==1)
{
LCDMEM[8]=0xff;
LCDMEM[9]=0x00;
}
else
{
LCDMEM[8]=0x00;
LCDMEM[9]=0xff;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -