📄 40ed1dcf6c41001b18b1e5c96de21705
字号:
#include <io.h>
#include "system.h"
int buf[17]={0};
void write(int data)
{
while(!(IORD(SPI_0_BASE,2)&0x40));
IOWR(SPI_0_BASE,1,data);
}
void toled(int one,int two,int thr)
{
IOWR(SPI_0_BASE,1,0x800+(one&0x0f));
IOWR(SPI_0_BASE,1,0x900+((one&0xf0)>>4));
IOWR(SPI_0_BASE,1,0x0a00+(two&0x0f)+thr);
IOWR(SPI_0_BASE,1,0x0b00+((two&0xf0)>>4));
}
int main(void)
{
IOWR(SPI_0_BASE,1,0x201);
write(0x413);
write(0x5c0);
int year1=0x06,year2=0x20,mon=0x12,day=0x30,hou=0x23,min=0x59,sec=0x35,hse=0,flg=14,flg1=14,flg2=30,kv,i=3,j;
int led[16]={0xfc0,0xfe0,0xfd0,0xff0,0xfc4,0xfe4,0xfd4,0xff4,0xfc2,0xfe2,0xfd2,0xff2,0xfc6,0xfe6,0xfd6,0xff6};
IOWR(TIMER_0_BASE,1,6);
while(1)
{
if(IORD(TIMER_0_BASE,0)&1)
{
if(++hse==2)
{ hse=0;++sec; }
if((sec&0xf)==0xa)
sec+=6;
if(sec>=0x60)
{ sec=0;++min; }
if((min&0xf)==0xa)
min+=6;
if(min>=0x60)
{ min=0;++hou; }
if((hou&0xf)==0xa)
hou+=6;
if(hou>=0x24)
{ hou=0;++day; }
if((day&0xf)==0xa)
day+=6;
if(day>=0x31)
{ day=1;++mon; }
if((mon&0xf)==0xa)
mon+=6;
if(mon>=0x13)
{ mon=1;++year1; }
if((year1&0xf)==0xa)
year1+=6;
if(year1>=0x0a0)
{ year1=0;++year2; }
if((year2&0xf)==0xa)
year2+=6;
if(year2>=0x0a0)
{ year2=0; }
IOWR(TIMER_BASE,0,0); // 清除时间到标志
}
IOWR(SPI_0_BASE,1,0x000);
kv=IORD(SPI_0_BASE,0);
if(!IORD(SPI_0_BASE,0))
{
IOWR(SPI_0_BASE,1,0x700);
IOWR(SPI_0_BASE,1,0x000);
kv=IORD(SPI_0_BASE,0);
}
while(!IORD(SPI_0_BASE,2)&0x40);
for(j=0;j<16;j++)
{
if(!(kv-led[j]))
{flg=j;j=17;}//break;}
}
if(flg>=0 && flg<=9)
{flg1=9;}
else
{flg1=flg;}
if(flg1>=12 && flg1<=15)
flg2=flg;
switch(flg1)
{
case 12:
{
if(i==3)
{
IOWR(SPI_0_BASE,1,(0x800+(year1&0x0f)));
IOWR(SPI_0_BASE,1,(0x900+((year1&0x0f0)>>4)));
IOWR(SPI_0_BASE,1,(0x0a00+(year2&0x0f)));
IOWR(SPI_0_BASE,1,(0x0b00+((year2&0x0f0)>>4)));
}
break;
}
case 13:
{
if(i==3)
toled(day,mon,0x80);
break;
}
case 14:
{
if(i==3)
toled(min,hou,(hse<<7));
break;
}
case 15:
{
if(i==3)
toled(sec,min,0x80);
break;
}
case 10:
{
if(i>3)
{
i--;
write(0x800+buf[i-1]);
write(0x900+buf[i-2]);
write(0x0a00+buf[i-3]);
write(0x0b00+buf[i-4]);
flg=14;
}
flg=flg2;
break;
}
case 11:
{
if(i==17)
{
year1=(buf[5]<<4)+buf[6];
year2=buf[4]+(buf[3]<<4);
mon=buf[8]+(buf[7]<<4);
day=buf[10]+(buf[9]<<4);
hou=buf[12]+(buf[11]<<4);
min=buf[14]+(buf[13]<<4);
sec=buf[16]+(buf[15]<<4);
i=3;flg=14;
}flg=flg2; break;
}
case 9:
{
if((!(kv-led[flg]))&&(i<=16))
{
buf[i]=flg;
write(0x000);
i++;
write(0x800+buf[i-1]);
write(0x900+buf[i-2]);
write(0x0a00+buf[i-3]);
write(0x0b00+buf[i-4]);
} break;
}}}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -