前言
近期比较紧张,努力了一段时间,反而更害怕一些偶然因素导致不能达到自己预期的奖项,但毕竟纠结这种无用,还是记录一下自己的备赛过程,继续好好努力吧。这套题,以为很简单,一顿敲很快就做完。但上4t一测,被扣了20分。。。。难崩啊,主要有2个坑点,一个是对初始输入时间的理解,我刚开始是将切到输入界面的时间定为初始时间,但最正确的应该是输入第一个数的时间,且s5清零后这个时间要重新来记。第二个坑点就是,将时间写入e2prom的时候,要写入的是十进制的,我把没处理的bcd直接传进去了。题目没要求读出来,所以错了这个也是没现象的,只能当作经验下次碰到注意一下。
代码
main文件
#include <STC15F2K60S2.H>
#include "ds1302.h"
#include "iic.h"
#define control(x,y) P0=y;P2=x;P2=0
typedef unsigned char uchar ;
typedef unsigned int uint ;
code unsigned char Seg_Code[] =
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0xff, //Ãð
0xbf, //- 11
0xc6, //C12
0xa1, //d13
0x86, //E14
0x8e //F
};
uchar Seg_Bit[9]={10,10,10,10,10,10,10,10,10};
uchar interface;
uchar count_key;
uchar hour=0x23,sec=0x09,min=0x59;
uchar hour_save;
uchar min_save;
uchar count_time;
uint input;
uchar input_value;
uint input_save=65522;
bit flag_input;
uchar count_in