📄 my_clock.c
字号:
#include "..\MPC82.H"
char flag4=0;
char *msg;
unsigned char X;
unsigned char hour=23, min=55, sec=50;
unsigned char ahour=0, amin=0, asec=0;
void init_uart(void);
void print(unsigned char abc);
void uart_msg(char *msg);
void print_clock(void);
main()
{
EA=1; //enable interrupt
EX3=1; //INT3 as interrupt
init_uart();
//print out menu
msg="\r\n**********************\n\0";
uart_msg(msg);
msg="\r\n Press 1 => Clock !\n\0";
uart_msg(msg);
msg="\r\n Press 2 => Alarm Setup\n\0";
uart_msg(msg);
msg="\r\n**********************\n\r\0";
uart_msg(msg);
//wait for user input
while(1)
{
while (RI==0){}
RI=0;
X=SBUF;
if (X==0x31)
{
while(1)
{
print(hour/10+0x30);
print(hour%10+0x30);
print(':');
print(min/10+0x30);
print(min%10+0x30);
print(':');
print(sec/10+0x30);
print(sec%10+0x30);
print('\n');
print('\r');
Delay_ms(1000);
sec++;
if (sec<60) continue;
else {sec=0; min++;}
if (min<60) continue;
else {min=0; hour++;}
if (hour<24) continue;
else {sec=0; min=0; hour=0;}
}
}
else if (X==0x32)
{
msg="\n\rYou are enter Alarm Setup\n\r";
uart_msg(msg);
msg="\n\rPress 1 => hour, Press 2 => min, Press3 => sec\n\r";
uart_msg(msg);
while(1)
{
while(RI==0){}
RI=0;
X=SBUF;
while (X==0x31)
{ flag4=0;
ahour++;
do
{
while(KEY1==1);
}
while(KEY1==1);
do
{
while(KEY1==0);
}
while(KEY1==0);
print_clock();
if (flag4==1) break;
}
while(X==0x32)
{ flag4=0;
amin++;
do
{
while(KEY2==1);
}
while(KEY2==1);
do
{
while(KEY2==0);
}
while(KEY2==0);
print_clock();
if (flag4==1) break;
}
while(X==0x33)
{ flag4=0;
asec++;
do
{
while(KEY3==1);
}
while(KEY3==1);
do
{
while(KEY3==0);
}
while(KEY3==0);
print_clock();
if (flag4==1) break;
}
} //end of while(1)
} //end of 0x32
else
{
msg="\n\rend\n\r";
uart_msg(msg);
break;
}
}// end of while
}
void init_uart(void)
{
SCON=0x50;
PCON=0x00; //SMOD=0;
AUXR2=0x00;//T1X12=0;
TMOD=0x20;//setup timer1
TH1=250;//SMOD=0;T1X12=0;Baudrate=9600
TCON=0x40;//TR1=1, make timer 1 start
}
void print(unsigned char abc)
{
SBUF=abc;
while(TI==0);
TI=0;
}
void uart_msg(char *msg)
{
char *p;
SBUF=0x00;
for(p=msg; *p!='\0'; )
{
SBUF=*p++;
while(TI==0);
TI=0;
}
}
void EX3_int(void) interrupt 0 using 1
{
//use key4 to interrupt
flag4=1;
}
void print_clock()
{
print(ahour/10+0x30);
print(ahour%10+0x30);
print(':');
print(amin/10+0x30);
print(amin%10+0x30);
print(':');
print(asec/10+0x30);
print(asec%10+0x30);
print('\n');
print('\r');
Delay_ms(1000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -