⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 SMC162S实现时钟
💻 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 + -