📄 main.c
字号:
unsigned int *p0=(unsigned int *)(0x7000);
unsigned int *p0d=(unsigned int *)(0x7002);
unsigned int *p0a=(unsigned int *)(0x7003);
unsigned int *tbu=(unsigned int *)(0x700E);
unsigned int *oscu=(unsigned int *)(0x7013);
unsigned int *dau=(unsigned int *)(0x702a);
unsigned int *da0=(unsigned int *)(0x7017);
unsigned int *da1=(unsigned int *)(0x7016);
unsigned int *wdogc=(unsigned int *)(0x7012);
unsigned int *intu=(unsigned int *)(0x7010);
unsigned int *intc=(unsigned int *)(0x7011);
unsigned int *sec=(unsigned int *)(0x0700);
unsigned int *min=(unsigned int *)(0x0701);
unsigned int *hour=(unsigned int *)(0x0702);
unsigned int key_num,key_mode,key_have,key_plus,fast,min_flash,hour_flash;
unsigned int bufx,bufy;
const unsigned int Timex[404]={
0x8000,0x8000,0x8180,0x8180,0x8180,0x8180,0x8180,0x8180,0x8180,0x8180,0x8300,0x8600,0x8600,0x8600,0x8600,0x8780,0x8780,0x8780,0x8900,0x8900,0x8900,0x8A80,0x8A80,0x8A80,0x8C00,0x8C00,0x8C00,
0x8000,0x8000,0x8000,0x8000,0x835A,0x86B3,0x8A0B,0x8CC1,0x8D61,0x90B5,0x9406,0x9753,0x995D,0x9A9D,0x9DE1,0xA121,0xA45A,0xA5B3,0xA78E,0xAABA,0xADDF,0xB0FC,0xB19F,0xB410,0xB71B,0xBA1C,0xBD13,
0xC000,0xBE80,0xBD00,0xBB80,0xC2E1,0xC5B6,0xC880,0xC7B6,0xCB3C,0xCDEC,0xD08D,0xD321,0xD1A2,0xD5A6,0xD81C,0xDA82,0xDCD9,0xDAAA,0xDF1F,0xE155,0xE379,0xE58C,0xE2B3,0xE78D,0xE97D,0xEB59,0xED23,
0xEED9,0xEC41,0xE9A8,0xE70E,0xF07D,0xF20C,0xF387,0xEF74,0xF4EF,0xF641,0xF77F,0xF8A8,0xF407,0xF9BC,0xFABA,0xFBA3,0xFC76,0xF756,0xFD33,0xFDDB,0xFE6C,0xFEE7,0xF955,0xFF4C,0xFF9A,0xFFD3,0xFFF4,
0xE800,0xE800,0xEA00,0xEA00,0xEC00,0xEC00,0xEC00,0xEE00,0xEE00,0xEE00,0xF000,0xF000,0xF000,0xF000,0xF000,
0xFFFF,0xFD00,0xFA00,0xF700,0xFFF4,0xFFD3,0xFF9A,0xF955,0xFF4C,0xFEE7,0xFE6C,0xFDDB,0xF756,0xFD33,0xFC76,0xFBA3,0xFABA,0xF407,0xF9BC,0xF8A8,0xF77F,0xF641,0xEF74,0xF4EF,0xF387,0xF20C,0xF07D,
0xEED9,0xEC41,0xE9A8,0xE70E,0xED23,0xEB59,0xE97D,0xE2B3,0xE78D,0xE58C,0xE379,0xE155,0xDAAA,0xDF1F,0xDCD9,0xDA82,0xD81C,0xD1A2,0xD5A6,0xD321,0xD08D,0xCDEC,0xC7B6,0xCB3C,0xC880,0xC5B6,0xC2E1,
0xC000,0xBE80,0xBD00,0xBB80,0xBD13,0xBA1C,0xB71B,0xB19F,0xB410,0xB0FC,0xADDF,0xAABA,0xA5B3,0xA78E,0xA45A,0xA121,0x9DE1,0x995D,0x9A9D,0x9753,0x9406,0x90B5,0x8CC1,0x8D61,0x8A0B,0x86B3,0x835A,
0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8200,0x8200,0x8200,0x8400,0x8400,0x8400,0x8600,0x8600,0x8600,0x8800,0x8800,0x8800,0x8800,
0x8000,0x8000,0x8000,0x8000,0x7CA6,0x794D,0x75F5,0x733F,0x729F,0x6F4B,0x6BFA,0x68AD,0x66A3,0x6563,0x621F,0x5EDF,0x5BA6,0x5A4D,0x5872,0x5546,0x5221,0x4F04,0x4E61,0x4BF0,0x48E5,0x45E4,0x42ED,
0x4000,0x4180,0x4300,0x4480,0x3D1F,0x3A4A,0x3780,0x384A,0x34C4,0x3214,0x2F73,0x2CDF,0x2E5E,0x2A5A,0x27E4,0x257E,0x2327,0x2556,0x20E1,0x1EAB,0x1C87,0x1A74,0x1D4D,0x1873,0x1683,0x14A7,0x12DD,
0x1127,0x13BF,0x1658,0x18F2,0x0F83,0x0DF4,0x0C79,0x108C,0x0B11,0x09BF,0x0881,0x0758,0x0BF9,0x0644,0x0546,0x045D,0x038A,0x08AA,0x02CD,0x0225,0x0194,0x0119,0x06AB,0x00B4,0x0066,0x002D,0x000C,
0x1000,0x1000,0x1000,0x1000,0x1200,0x1200,0x1200,0x1400,0x1400,0x1400,0x1600,0x1600,0x1600,0x1800,0x1800,0x1800,0x1800,0x1800,0x1800,
0x0001,0x0300,0x0600,0x0900,0x000C,0x002D,0x0066,0x06AB,0x00B4,0x0119,0x0194,0x0225,0x08AA,0x02CD,0x038A,0x045D,0x0546,0x0BF9,0x0644,0x0758,0x0881,0x09BF,0x108C,0x0B11,0x0C79,0x0DF4,0x0F83,
0x1127,0x13BF,0x1658,0x18F2,0x12DD,0x14A7,0x1683,0x1D4D,0x1873,0x1A74,0x1C87,0x1EAB,0x2556,0x20E1,0x2327,0x257E,0x27E4,0x2E5E,0x2A5A,0x2CDF,0x2F73,0x3214,0x384A,0x34C4,0x3780,0x3A4A,0x3D1F,
0x4000,0x4180,0x4300,0x4480,0x42ED,0x45E4,0x48E5,0x4E61,0x4BF0,0x4F04,0x5221,0x5546,0x5A4D,0x5872,0x5BA6,0x5EDF,0x621F,0x66A3,0x6563,0x68AD,0x6BFA,0x6F4B,0x733F,0x729F,0x75F5,0x794D,0x7CA6
};
const unsigned int Timey[404]={
0xE200,0xEE00,0xE200,0xE400,0xE600,0xE800,0xEA00,0xEC00,0xEE00,0xF000,0xE200,0xE200,0xE400,0xEC00,0xEE00,0xE200,0xE600,0xF000,0xE200,0xE800,0xF000,0xE200,0xEA00,0xF000,0xE200,0xEC00,0xEE00,
0xFFFF,0xFD00,0xFA00,0xF700,0xFFF4,0xFFD3,0xFF9A,0xF955,0xFF4C,0xFEE7,0xFE6C,0xFDDB,0xF756,0xFD33,0xFC76,0xFBA3,0xFABA,0xF407,0xF9BC,0xF8A8,0xF77F,0xF641,0xEF74,0xF4EF,0xF387,0xF20C,0xF07D,
0xEED9,0xEC41,0xE9A8,0xE70E,0xED23,0xEB59,0xE97D,0xE2B3,0xE78D,0xE58C,0xE379,0xE155,0xDAAA,0xDF1F,0xDCD9,0xDA82,0xD81C,0xD1A2,0xD5A6,0xD321,0xD08D,0xCDEC,0xC7B6,0xCB3C,0xC880,0xC5B6,0xC2E1,
0xC000,0xBE80,0xBD00,0xBB80,0xBD13,0xBA1C,0xB71B,0xB19F,0xB410,0xB0FC,0xADDF,0xAABA,0xA5B3,0xA78E,0xA45A,0xA121,0x9DE1,0x995D,0x9A9D,0x9753,0x9406,0x90B5,0x8CC1,0x8D61,0x8A0B,0x86B3,0x835A,
0x7E00,0x8800,0x7C00,0x8A00,0x7C00,0x8400,0x8A00,0x7C00,0x8400,0x8A00,0x7E00,0x8000,0x8200,0x8600,0x8800,
0x8000,0x8000,0x8000,0x8000,0x7CA6,0x794D,0x75F5,0x733F,0x729F,0x6F4B,0x6BFA,0x68AD,0x66A3,0x6563,0x621F,0x5EDF,0x5BA6,0x5A4D,0x5872,0x5546,0x5221,0x4F04,0x4E61,0x4BF0,0x48E5,0x45E4,0x42ED,
0x4000,0x4180,0x4300,0x4480,0x3D1F,0x3A4A,0x3780,0x384A,0x34C4,0x3214,0x2F73,0x2CDF,0x2E5E,0x2A5A,0x27E4,0x257E,0x2327,0x2556,0x20E1,0x1EAB,0x1C87,0x1A74,0x1D4D,0x1873,0x1683,0x14A7,0x12DD,
0x1127,0x13BF,0x1658,0x18F2,0x0F83,0x0DF4,0x0C79,0x108C,0x0B11,0x09BF,0x0881,0x0758,0x0BF9,0x0644,0x0546,0x045D,0x038A,0x08AA,0x02CD,0x0225,0x0194,0x0119,0x06AB,0x00B4,0x0066,0x002D,0x000C,
0x1200,0x1400,0x1600,0x1800,0x1A00,0x1C00,0x1000,0x1800,0x1E00,0x1000,0x1800,0x1E00,0x1000,0x1800,0x1E00,0x1200,0x1400,0x1600,0x1800,
0x0001,0x0300,0x0600,0x0900,0x000C,0x002D,0x0066,0x06AB,0x00B4,0x0119,0x0194,0x0225,0x08AA,0x02CD,0x038A,0x045D,0x0546,0x0BF9,0x0644,0x0758,0x0881,0x09BF,0x108C,0x0B11,0x0C79,0x0DF4,0x0F83,
0x1127,0x13BF,0x1658,0x18F2,0x12DD,0x14A7,0x1683,0x1D4D,0x1873,0x1A74,0x1C87,0x1EAB,0x2556,0x20E1,0x2327,0x257E,0x27E4,0x2E5E,0x2A5A,0x2CDF,0x2F73,0x3214,0x384A,0x34C4,0x3780,0x3A4A,0x3D1F,
0x4000,0x4180,0x4300,0x4480,0x42ED,0x45E4,0x48E5,0x4E61,0x4BF0,0x4F04,0x5221,0x5546,0x5A4D,0x5872,0x5BA6,0x5EDF,0x621F,0x66A3,0x6563,0x68AD,0x6BFA,0x6F4B,0x733F,0x729F,0x75F5,0x794D,0x7CA6,
0x7D00,0x8300,0x8500,0x8700,0x7B00,0x8100,0x8900,0x7B00,0x8100,0x8900,0x7B00,0x8100,0x8900,0x7D00,0x7F00,0x8100,0x8300,0x8500,0x8700,
0x8000,0x8000,0x8000,0x8000,0x835A,0x86B3,0x8A0B,0x8CC1,0x8D61,0x90B5,0x9406,0x9753,0x995D,0x9A9D,0x9DE1,0xA121,0xA45A,0xA5B3,0xA78E,0xAABA,0xADDF,0xB0FC,0xB19F,0xB410,0xB71B,0xBA1C,0xBD13,
0xC000,0xBE80,0xBD00,0xBB80,0xC2E1,0xC5B6,0xC880,0xC7B6,0xCB3C,0xCDEC,0xD08D,0xD321,0xD1A2,0xD5A6,0xD81C,0xDA82,0xDCD9,0xDAAA,0xDF1F,0xE155,0xE379,0xE58C,0xE2B3,0xE78D,0xE97D,0xEB59,0xED23,
0xEED9,0xEC41,0xE9A8,0xE70E,0xF07D,0xF20C,0xF387,0xEF74,0xF4EF,0xF641,0xF77F,0xF8A8,0xF407,0xF9BC,0xFABA,0xFBA3,0xFC76,0xF756,0xFD33,0xFDDB,0xFE6C,0xFEE7,0xF955,0xFF4C,0xFF9A,0xFFD3,0xFFF4
};
const unsigned int Timex2[240]={
0x0000,0x0007,0x000D,0x0014,0x001B,0x0021,0x0028,0x002F,0x0035,0x003C,0x0042,0x0049,0x004F,0x0055,0x005C,0x0062,0x0068,0x006E,0x0074,0x007A,0x0080,0x0086,0x008B,0x0091,0x0096,0x009C,0x00A1,0x00A6,0x00AB,0x00B0,
0x00B5,0x00BA,0x00BE,0x00C3,0x00C7,0x00CB,0x00CF,0x00D3,0x00D7,0x00DA,0x00DE,0x00E1,0x00E4,0x00E7,0x00EA,0x00ED,0x00EF,0x00F1,0x00F3,0x00F5,0x00F7,0x00F9,0x00FA,0x00FC,0x00FD,0x00FE,0x00FF,0x00FF,0x00FF,0x00FF,
0x00FF,0x00FF,0x00FF,0x00FF,0x00FF,0x00FE,0x00FD,0x00FC,0x00FA,0x00F9,0x00F7,0x00F5,0x00F3,0x00F1,0x00EF,0x00ED,0x00EA,0x00E7,0x00E4,0x00E1,0x00DE,0x00DA,0x00D7,0x00D3,0x00CF,0x00CB,0x00C7,0x00C3,0x00BE,0x00BA,
0x00B5,0x00B0,0x00AB,0x00A6,0x00A1,0x009C,0x0096,0x0091,0x008B,0x0086,0x0080,0x007A,0x0074,0x006E,0x0068,0x0062,0x005C,0x0055,0x004F,0x0049,0x0042,0x003C,0x0035,0x002F,0x0028,0x0021,0x001B,0x0014,0x000D,0x0007,
0x0000,0xFFFA,0xFFF4,0xFFED,0xFFE6,0xFFE0,0xFFD9,0xFFD2,0xFFCC,0xFFC5,0xFFBF,0xFFB8,0xFFB2,0xFFAC,0xFFA5,0xFF9F,0xFF99,0xFF93,0xFF8D,0xFF87,0xFF81,0xFF7B,0xFF76,0xFF70,0xFF6B,0xFF65,0xFF60,0xFF5B,0xFF56,0xFF51,
0xFF4C,0xFF47,0xFF43,0xFF3E,0xFF3A,0xFF36,0xFF32,0xFF2E,0xFF2A,0xFF27,0xFF23,0xFF20,0xFF1D,0xFF1A,0xFF17,0xFF14,0xFF12,0xFF10,0xFF0E,0xFF0C,0xFF0A,0xFF08,0xFF07,0xFF05,0xFF04,0xFF03,0xFF02,0xFF02,0xFF01,0xFF01,
0xFF01,0xFF01,0xFF01,0xFF02,0xFF02,0xFF03,0xFF04,0xFF05,0xFF07,0xFF08,0xFF0A,0xFF0C,0xFF0E,0xFF10,0xFF12,0xFF14,0xFF17,0xFF1A,0xFF1D,0xFF20,0xFF23,0xFF27,0xFF2A,0xFF2E,0xFF32,0xFF36,0xFF3A,0xFF3E,0xFF43,0xFF47,
0xFF4C,0xFF51,0xFF56,0xFF5B,0xFF60,0xFF65,0xFF6B,0xFF70,0xFF76,0xFF7B,0xFF81,0xFF87,0xFF8D,0xFF93,0xFF99,0xFF9F,0xFFA5,0xFFAC,0xFFB2,0xFFB8,0xFFBF,0xFFC5,0xFFCC,0xFFD2,0xFFD9,0xFFE0,0xFFE6,0xFFED,0xFFF4,0xFFFA
};
const unsigned int Timey2[240]={
0x00FF,0x00FF,0x00FF,0x00FF,0x00FF,0x00FE,0x00FD,0x00FC,0x00FA,0x00F9,0x00F7,0x00F5,0x00F3,0x00F1,0x00EF,0x00ED,0x00EA,0x00E7,0x00E4,0x00E1,0x00DE,0x00DA,0x00D7,0x00D3,0x00CF,0x00CB,0x00C7,0x00C3,0x00BE,0x00BA,
0x00B5,0x00B0,0x00AB,0x00A6,0x00A1,0x009C,0x0096,0x0091,0x008B,0x0086,0x0080,0x007A,0x0074,0x006E,0x0068,0x0062,0x005C,0x0055,0x004F,0x0049,0x0042,0x003C,0x0035,0x002F,0x0028,0x0021,0x001B,0x0014,0x000D,0x0007,
0x0000,0xFFFA,0xFFF4,0xFFED,0xFFE6,0xFFE0,0xFFD9,0xFFD2,0xFFCC,0xFFC5,0xFFBF,0xFFB8,0xFFB2,0xFFAC,0xFFA5,0xFF9F,0xFF99,0xFF93,0xFF8D,0xFF87,0xFF81,0xFF7B,0xFF76,0xFF70,0xFF6B,0xFF65,0xFF60,0xFF5B,0xFF56,0xFF51,
0xFF4C,0xFF47,0xFF43,0xFF3E,0xFF3A,0xFF36,0xFF32,0xFF2E,0xFF2A,0xFF27,0xFF23,0xFF20,0xFF1D,0xFF1A,0xFF17,0xFF14,0xFF12,0xFF10,0xFF0E,0xFF0C,0xFF0A,0xFF08,0xFF07,0xFF05,0xFF04,0xFF03,0xFF02,0xFF02,0xFF01,0xFF01,
0xFF01,0xFF01,0xFF01,0xFF02,0xFF02,0xFF03,0xFF04,0xFF05,0xFF07,0xFF08,0xFF0A,0xFF0C,0xFF0E,0xFF10,0xFF12,0xFF14,0xFF17,0xFF1A,0xFF1D,0xFF20,0xFF23,0xFF27,0xFF2A,0xFF2E,0xFF32,0xFF36,0xFF3A,0xFF3E,0xFF43,0xFF47,
0xFF4C,0xFF51,0xFF56,0xFF5B,0xFF60,0xFF65,0xFF6B,0xFF70,0xFF76,0xFF7B,0xFF81,0xFF87,0xFF8D,0xFF93,0xFF99,0xFF9F,0xFFA5,0xFFAC,0xFFB2,0xFFB8,0xFFBF,0xFFC5,0xFFCC,0xFFD2,0xFFD9,0xFFE0,0xFFE6,0xFFED,0xFFF4,0xFFFA,
0x0000,0x0007,0x000D,0x0014,0x001B,0x0021,0x0028,0x002F,0x0035,0x003C,0x0042,0x0049,0x004F,0x0055,0x005C,0x0062,0x0068,0x006E,0x0074,0x007A,0x0080,0x0086,0x008B,0x0091,0x0096,0x009C,0x00A1,0x00A6,0x00AB,0x00B0,
0x00B5,0x00BA,0x00BE,0x00C3,0x00C7,0x00CB,0x00CF,0x00D3,0x00D7,0x00DA,0x00DE,0x00E1,0x00E4,0x00E7,0x00EA,0x00ED,0x00EF,0x00F1,0x00F3,0x00F5,0x00F7,0x00F9,0x00FA,0x00FC,0x00FD,0x00FE,0x00FF,0x00FF,0x00FF,0x00FF
};
void IRQ6(void) __attribute__ ((ISR));
void IRQ6(void)
{
if(key_mode==0)
{
min_flash=0;
hour_flash=0;
}
if(key_mode==1)
{
hour_flash=0;
min_flash++;
if(min_flash>=12)
{
min_flash=0;
}
}
else if(key_mode==2)
{
min_flash=0;
hour_flash++;
if(hour_flash>=12)
{
hour_flash=0;
}
}
if(*p0==0)
{
key_plus=0;
key_num=0;
key_have=0;
}
if(*p0==1)
{
if(key_have==0)
{
if(key_num<3)
key_num++;
else
{
key_num=0;
key_have=1;
key_mode++;
if(key_mode==3)
key_mode=0;
}
}
}
if(*p0==2)
{
if(key_num<3)
key_num++;
else
{
key_num=0;
if(key_mode==1)
{
key_have=1;
if(*min<238)
*min+=2;
else
*min=0;
}
if(key_mode==2)
{
key_have=1;
if(*hour<238)
*hour+=2;
else
*hour=0;
}
}
}
if(*p0==4)
{
if(key_num<3)
key_num++;
else
{
key_num=0;
if(key_mode==1)
{
key_have=1;
if(*min>1)
*min-=2;
else
*min=238;
}
if(key_mode==2)
{
key_have=1;
if(*hour>1)
*hour-=2;
else
*hour=238;
}
}
}
*intc=2;
}
void Init_MCU()
{
*p0d=0;
*p0d=0;
*p0=0;
__asm("INT OFF");
*oscu=0x80;
*tbu=0x62;
*intu=0x000A;
__asm("INT IRQ");
}
void Circle()
{
unsigned int i;
for(i=0;i<404;i++)
{
*da0=Timex[i];
*da1=Timey[i];
}
}
void Point()
{
unsigned int i;
for(i=0;i<110;i+=2)
{
*da0=Timex2[*sec]*i+32768;
*da1=Timey2[*sec]*i+32768;
}
for(i=107;i>2;i-=2)
{
*da0=Timex2[*sec]*i+32768;
*da1=Timey2[*sec]*i+32768;
}
if(min_flash<10)
{
for(i=0;i<86;i+=4)
{
*da0=Timex2[*min]*i+32768;
*da1=Timey2[*min]*i+32768;
}
for(i=86;i>4;i-=4)
{
*da0=Timex2[*min]*i+32768;
*da1=Timey2[*min]*i+32768;
}
}
if(hour_flash<10)
{
for(i=0;i<66;i+=4)
{
*da0=Timex2[*hour]*i+32768;
*da1=Timey2[*hour]*i+32768;
}
for(i=66;i>4;i-=4)
{
*da0=Timex2[*hour]*i+32768;
*da1=Timey2[*hour]*i+32768;
}
}
}
int main()
{
unsigned int i;
*sec=0;
*min=0;
*hour=0;
key_num=0;
fast=0;
key_mode=0;
key_have=0;
Init_MCU();
while(1)
{
*wdogc=1;
Circle();
Point();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -