📄 main.c
字号:
#include "../SMC162/SMC162.h"
typedef struct data1
{
unsigned char dath;
unsigned char datl;
}DATA2;
unsigned char data mscond,second,minute,hour;
bit flag;
//DATA2 char tmp;
DATA2 data tmp;
unsigned char *clocksr=" 00-00-00 ";
void Init();
void Hex(unsigned char hex);
unsigned char Hexa(unsigned char hex);
void time();
void main()
{
Init();
time();
LcdInit();
PutStr(0,0,"CLOCK test");
PutStr(0,1,clocksr);
//while(1);
//TR2=1;
//EA=1;
TR1=1;
while(1)
{
if(flag==1)
{
second+=1;
if(second!=60)
{
goto display_second;
}
else
{
second=0;
minute++;
if(minute!=60)
{
goto display_minute;
}
else
{
minute=0;
hour++;
if(hour==24)
hour=0;
}
}
Hex(hour);
clocksr[3]= Hexa(tmp.dath);
clocksr[4]= Hexa(tmp.datl);
display_minute:
Hex(minute);
clocksr[6]= Hexa(tmp.dath);
clocksr[7]= Hexa(tmp.dath);
display_second:
Hex(second);
clocksr[9]= Hexa(tmp.dath);
clocksr[10]= Hexa(tmp.dath);
PutStr(0,1,clocksr);
flag=0;
}
}
}
void Init()
{
mscond=0;
second=0;
minute=0;
hour=0;
flag=0;
}
void Hex(unsigned char hex)
{
tmp.dath=hex/10;
tmp.datl=hex%10;
}
unsigned char Hexa(unsigned char hex)
{
if(hex>9)
return' ';
else
return hex;
//return(hex+' ');
}
void time()
{
TMOD=0X90;
//TH2=0X3C;
//TL2=0XB0;
TH1=0Xef;
TL1=0Xff;
//RCAP2H=0x3c;
//RCAP2L=0XB0;
//ET2=1;
EA=1;
ET1=1;
}
void TIMER1ISP() interrupt 3 using 2
{
TH1=0Xef;
TL1=0Xff;
TF1=0;
//TF2=0;
//mscond++;
if(mscond==100)
{
mscond=0;
flag=1;
}
else
mscond++;
if(mscond<1)
P1=0X00;
else
P1=0X01;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -