N巴年前做的一个魔术,本人独创,全球仅有- -| 回首页 | 2006年索引 | - -在示波器上显示时钟(汇编部分),本人独创,全球仅有

示波器上显示时钟(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();
 }
}

【作者: mubo814】【访问统计:】【2006年03月29日 星期三 23:07】【 加入博采】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4765637

博客手拉手

回复

- 评论人:小猪   2006-10-17 18:10:51   

强诶,学的很好,可我就编不了

- 评论人:814   2006-07-17 17:22:19   

小样的不行了吧不是版本多是两个文件一个汇编写的中断程序时钟的走时另一个是写的其他部分显示什么的哼哼

- 评论人:大大大大   2006-07-10 20:51:52   

写那么多版本干吗很有空啊

- 评论人:大大大大   2006-07-10 20:51:48   

写那么多版本干吗很有空啊

- 评论人:icer1   2006-05-07 20:14:14   

有创意!!!赞下先

验证码:   
评论内容: