久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1170|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機搖搖棒設(shè)計源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:329184 發(fā)表于 2018-11-1 11:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
源文件見附件

單片機源程序如下:
  1. /*
  2. EEPROM分配
  3. 塊一到塊六為LED顯示數(shù)據(jù)區(qū)
  4. 塊七為音樂數(shù)據(jù)區(qū)
  5. 塊八為參數(shù)區(qū)-----0到5為保存每塊有多少個漢字
  6. IAP_ADDRESS8+6為下載了多少塊的參數(shù)  bank
  7. IAP_ADDRESS8+9為上電基數(shù)次和偶數(shù)次參數(shù)
  8. IAP_ADDRESS8+10為音樂下載標志。
  9. IAP_ADDRESS8+11為音樂速度參數(shù)。
  10. */


  11. #include<reg52.h>
  12. #include<intrins.h>
  13. #include<stdio.h>
  14. #define unchar unsigned char
  15. #define uint unsigned int
  16. //全局變量
  17. unsigned char *music_p[8];
  18. unsigned char *LED_p1[8];
  19. unsigned char *LED_p2[4];
  20. unsigned char *LED_p3[4];
  21. unsigned char *LED_p4[4];
  22. unsigned char *LED_p5[4];
  23. unsigned char *LED_p6[4];
  24. unsigned char *LED_p7[4];
  25. unsigned char *LED_p8[4];
  26. sfr IPH=0xB7;
  27. unchar xianshi_enable=0,midder_led_code=0;
  28. uint hh=0,tt=300;
  29. typedef unsigned char BYTE;
  30. typedef unsigned int WORD;

  31. void delay(unchar number);
  32. void LED_display(void);
  33. void display(unchar qian,unchar bai,unchar shi,unchar gei);
  34. void DelayMs(unsigned char ms);
  35. void send_uart(unsigned char ad);
  36. BYTE IapReadByte(WORD addr);
  37. unsigned char RECEIVR_buffer[150]={0};//512
  38. unsigned char Music_buffer[10]={0};
  39. unsigned char receive_number=0;
  40. //-----------------------------------------------------------------
  41. void UART_init();                //串口初始化函數(shù)
  42. void COM_send(char string);             //串口發(fā)送函數(shù)
  43. unsigned char flag=0,flag1=0;

  44. #define uchar unsigned char //定義一下方便使用
  45. #define uint  unsigned int
  46. void uart_send(uchar string);
  47. void delay_us(unsigned char t);

  48. uchar timer_led=0,begin_LED=0,change_code=0,music_num=0,can_add=1,circle_display=0;
  49. uchar LED_code=0;
  50. uchar timer_out=0,one_timer=0,one_timer1=0;             
  51. //code 的內(nèi)容只能讀,不能改        所以如果需要修改數(shù)組里面的內(nèi)容的話 就不能定義成code形式
  52. //T0 的值,及輸出頻率對照表
  53. #define uchar unsigned char
  54. #define uint  unsigned int
  55. #define SYSTEM_OSC                 11059200//12000000        //定義晶振頻率12000000HZ
  56. #define SOUND_SPACE         4/5                 //定義普通音符演奏的長度分率,//每4分音符間隔
  57. sbit    BeepIO    =           P3^7;                //定義輸出管腳
  58. unsigned int  code FreTab[12]  = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始頻率表
  59. unsigned char code SignTab[7]  = { 0,2,4,5,7,9,11 };                                                                   //1~7在頻率表中的位置
  60. unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };                                               
  61. unsigned char Sound_Temp_TH0,Sound_Temp_TL0;        //音符定時器初值暫存
  62. unsigned char Sound_Temp_TH1,Sound_Temp_TL1;        //音長定時器初值暫存
  63. unsigned char code Music_Code0[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
  64.                                   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,
  65.                                   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
  66.                                   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
  67.                                   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
  68.                                   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
  69.                                   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
  70.                                   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
  71.                                   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
  72.                                   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
  73.                                   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
  74.                                   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
  75.                                   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
  76.                                   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
  77.                                   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
  78.                                   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
  79.                                   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
  80.                                   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
  81.                                   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
  82.                                   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
  83.                                   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
  84.                                   0x00,0x00 };
  85. unsigned char code Music_Code1[]={ 0x21,0x01, 0x20,0x02, 0x20,0x67, 0x21,0x04, 0x1F,0x14,
  86.                                   0x17,0x02, 0x1F,0x02, 0x1A,0x03, 0x19,0x03, 0x17,0x02,
  87.                                   0x19,0x14, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1F,0x02,
  88.                                   0x1F,0x67, 0x1F,0x04, 0x1A,0x02, 0x1F,0x02, 0x17,0x01,
  89.                                   0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x19,0x02, 0x17,0x03,
  90.                                   0x16,0x03, 0x16,0x14, 0x21,0x01, 0x20,0x02, 0x20,0x67,
  91.                                   0x21,0x04, 0x1F,0x14, 0x17,0x02, 0x1F,0x02, 0x1A,0x03,
  92.                                   0x19,0x03, 0x17,0x02, 0x19,0x14, 0x19,0x03, 0x19,0x02,
  93.                                   0x1A,0x03, 0x1F,0x02, 0x1F,0x02, 0x1A,0x02, 0x19,0x03,
  94.                                   0x1A,0x03, 0x17,0x16, 0x17,0x03, 0x21,0x03, 0x21,0x02,
  95.                                   0x21,0x03, 0x21,0x02, 0x20,0x03, 0x1A,0x03, 0x1F,0x14,
  96.                                   0x1F,0x01, 0x1B,0x02, 0x1A,0x03, 0x1F,0x03, 0x17,0x00,
  97.                                   0x19,0x66, 0x19,0x03, 0x10,0x02, 0x17,0x03, 0x16,0x03,
  98.                                   0x16,0x00, 0x17,0x66, 0x19,0x03, 0x1A,0x02, 0x1A,0x67,
  99.                                   0x1A,0x04, 0x1A,0x02, 0x1F,0x03, 0x17,0x03, 0x17,0x01,
  100.                                   0x1F,0x66, 0x1F,0x03, 0x1A,0x02, 0x1F,0x02, 0x21,0x66,
  101.                                   0x20,0x03, 0x20,0x01, 0x21,0x01, 0x21,0x03, 0x20,0x02,
  102.                                   0x1F,0x03, 0x21,0x00, 0x20,0x02, 0x20,0x02, 0x1A,0x02,
  103.                                   0x21,0x03, 0x20,0x03, 0x20,0x00, 0x1F,0x02, 0x1F,0x03,
  104.                                   0x20,0x03, 0x21,0x02, 0x21,0x02, 0x20,0x02, 0x1F,0x03,
  105.                                   0x1B,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x17,0x03,
  106.                                   0x21,0x02, 0x19,0x03, 0x1A,0x03, 0x1F,0x14, 0x00,0x00 };//當兵的人
  107. unsigned char code Music_Code2[]={ 0x21,0x02, 0x17,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x02,
  108.                                   0x1A,0x03, 0x1F,0x02, 0x20,0x02, 0x21,0x03, 0x20,0x66,
  109.                                   0x20,0x02, 0x20,0x03, 0x1B,0x03, 0x1A,0x03, 0x1A,0x03,
  110.                                   0x17,0x03, 0x19,0x03, 0x1A,0x03, 0x20,0x04, 0x1B,0x03,
  111.                                   0x1A,0x03, 0x1A,0x03, 0x19,0x66, 0x1F,0x02, 0x1F,0x03,
  112.                                   0x1A,0x03, 0x1A,0x03, 0x20,0x03, 0x1B,0x03, 0x1A,0x03,
  113.                                   0x19,0x03, 0x1A,0x03, 0x20,0x03, 0x1B,0x03, 0x1B,0x03,
  114.                                   0x24,0x66, 0x00,0x00 };
  115. //揮著翅膀的女孩
  116. unsigned char code Music_Code3[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,
  117.                                   0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,
  118.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,
  119.                                   0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,
  120.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,
  121.                                   0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,
  122.                                   0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,
  123.                                   0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,
  124.                                   0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,
  125.                                   0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,
  126.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
  127.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
  128.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
  129.                                   0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,
  130.                                   0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,
  131.                                   0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
  132.                                   0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
  133.                                   0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
  134.                                   0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
  135.                                   0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,
  136.                                   0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,
  137.                                   0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,
  138.                                   0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,
  139.                                   0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,
  140.                                   0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,
  141.                                   0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,
  142.                                   0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,
  143.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
  144.                                   0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,
  145.                                   0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
  146.                                   0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,
  147.                                   0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,
  148.                                   0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
  149.                                   0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,
  150.                                   0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,
  151.                                   0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};
  152. //同一首歌
  153. unsigned char code Music_Code4[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,
  154.                                   0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02,
  155.                                   0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02,
  156.                                   0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,
  157.                                   0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,
  158.                                   0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,
  159.                                   0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02,
  160.                                   0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,
  161.                                   0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,
  162.                                   0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,
  163.                                   0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,
  164.                                   0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,
  165.                                   0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,
  166.                                   0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
  167.                                   0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,
  168.                                   0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,
  169.                                   0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,
  170.                                   0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,
  171.                                   0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,
  172.                                   0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,
  173.                                   0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,
  174.                                   0x00,0x00 };
  175. unsigned char code Music_Code5[]={ 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x15,0x02, 0x15,0x02,
  176.                                   0x16,0x02, 0x17,0x02, 0x15,0x02, 0x17,0x02, 0x18,0x02,
  177.                                   0x19,0x01, 0x17,0x02, 0x18,0x02, 0x19,0x01, 0x19,0x03,
  178.                                   0x1A,0x03, 0x19,0x03, 0x18,0x03, 0x17,0x02, 0x15,0x02,
  179.                                   0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x18,0x03, 0x17,0x02,
  180.                                   0x15,0x02, 0x15,0x02, 0x0F,0x02, 0x15,0x01, 0x15,0x02,
  181.                                   0x0F,0x02, 0x15,0x01, 0x00,0x00 }; //兩只老虎
  182. //兩只蝴蝶                                 
  183. unsigned char code Music_Code6[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  184.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  185.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  186.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03,
  187.                                   0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01,
  188.                                   0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  189.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01,
  190.                                   0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03,
  191.                                   0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  192.                                   0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03,
  193.                                   0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03,
  194.                                   0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01,
  195.                                   0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03,
  196.                                   0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00,
  197.                                   0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03,
  198.                                   0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03,
  199.                                   0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03,
  200.                                   0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03,
  201.                                   0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03,
  202.                                   0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E,
  203.                                   0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E,
  204.                                   0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03,
  205.                                   0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03,
  206.                                   0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03,
  207.                                   0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03,
  208.                                   0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02,
  209.                                   0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01,
  210.                                   0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03,
  211.                                   0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  212.                                   0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  213.                                   0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,
  214.                                   0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02,
  215.                                   0x10,0x03, 0x15,0x00, 0x00,0x00 };
  216. unsigned char code Music_Code7[]={ 0x16,0x03, 0x17,0x03, 0x15,0x02, 0x16,0x03, 0x17,0x03,
  217.                                   0x15,0x02, 0x16,0x03, 0x17,0x03, 0x19,0x02, 0x19,0x03,
  218.                                   0x1A,0x03, 0x15,0x02, 0x10,0x03, 0x15,0x03, 0x16,0x02,
  219.                                   0x16,0x03, 0x15,0x03, 0x10,0x02, 0x10,0x03, 0x15,0x03,
  220.                                   0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x0E, 0x16,0x04,
  221.                                   0x16,0x02, 0x17,0x03, 0x16,0x0E, 0x15,0x04, 0x15,0x02,
  222.                                   0x16,0x03, 0x17,0x03, 0x15,0x02, 0x16,0x03, 0x17,0x03,
  223.                                   0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x15,0x02, 0x10,0x03,
  224.                                   0x15,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x0E, 0x10,0x04,
  225.                                   0x10,0x02, 0x0F,0x04, 0x10,0x0E, 0x15,0x03, 0x15,0x0D,
  226.                                   0x15,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x19,0x03,
  227.                                   0x19,0x03, 0x1A,0x0E, 0x19,0x04, 0x19,0x02, 0x1A,0x03,
  228.                                   0x1B,0x03, 0x1F,0x03, 0x1A,0x03, 0x1A,0x03, 0x19,0x0E,
  229.                                   0x17,0x04, 0x17,0x02, 0x17,0x03, 0x16,0x0E, 0x15,0x04,
  230.                                   0x15,0x02, 0x15,0x02, 0x1A,0x03, 0x19,0x03, 0x19,0x02,
  231.                                   0x17,0x02, 0x16,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03,
  232.                                   0x10,0x03, 0x16,0x02, 0x16,0x02, 0x17,0x02, 0x19,0x02,
  233.                                   0x19,0x02, 0x19,0x02, 0x19,0x02, 0x1A,0x03, 0x19,0x03,
  234.                                   0x19,0x02, 0x1A,0x02, 0x1B,0x02, 0x1F,0x03, 0x1A,0x03,
  235.                                   0x1A,0x02, 0x1A,0x02, 0x19,0x03, 0x17,0x03, 0x17,0x02,
  236.                                   0x17,0x02, 0x16,0x0D, 0x15,0x03, 0x16,0x02, 0x15,0x03,
  237.                                   0x1A,0x0E, 0x19,0x04, 0x19,0x02, 0x17,0x03, 0x16,0x0E,
  238.                                   0x15,0x04, 0x16,0x02, 0x10,0x03, 0x1A,0x04, 0x15,0x0E,
  239.                                   0x15,0x03, 0x15,0x03, 0x15,0x02, 0x00,0x00 };//朋友

  240. sfr IAP_DATA=0xE2; // flash data register
  241. sfr IAP_ADDRH=0xE3; //flash address high
  242. sfr IAP_ADDRL=0xe4; //falsh address low
  243. sfr IAP_CMD=0Xe5; //FALSH COMMAND TRGGER
  244. sfr IAP_TRIG=0xE6; //flash command trigger
  245. sfr IAP_CONTR=0xE7; //flash control register

  246. //定義 ISP/IAP/EEPROM 命令
  247. #define CMD_IDIE 0 //stand-by
  248. #define CMD_READ 1 //BYTE - READ
  249. #define CMD_PROGRAM 2 // BYTE- PROGRAM
  250. #define CMD_ERASE 3 //SECTOR --ERASE

  251. //define ISP/IAP/EEPROM operation const for IAP_CONTR
  252. //#define ENABLE_IAP 0X80  //SYSCLK<40MHZ
  253. #define ENABLE_IAP 0X81 // SYSCLK<20MHZ
  254. //#define ENABLE_IAP 0x82 //SYSCLK<10MHZ
  255. //#define ENABLE_IAP 0X83 //SYSCLK<5MHZ

  256. //Start addtess for STC89C58 eeprom
  257. #define IAP_ADDRESS1 0x0000
  258. #define IAP_ADDRESS2 0x0200
  259. #define IAP_ADDRESS3 0x0400
  260. #define IAP_ADDRESS4 0x0600
  261. #define IAP_ADDRESS5 0x0800
  262. #define IAP_ADDRESS6 0x0A00
  263. #define IAP_ADDRESS7 0x0C00
  264. #define IAP_ADDRESS8 0x0E00




  265. #define Data  P1    //數(shù)據(jù)端口
  266. sbit H1 = P3^0;
  267. sbit H2 = P3^1;
  268. sbit H3 = P3^4;
  269. sbit H4 = P3^5;
  270. sbit key_change = P3^3;
  271. sbit bell = P3^7;
  272. sbit left_right=P3^2;
  273. sfr WAKE_CLKO = 0x8f;
  274. sfr CCON = 0xD8;
  275. sfr CMOD = 0xD9;
  276. sfr CL = 0xE9;
  277. sfr CH = 0xF9;
  278. sfr CCAP0L = 0xEA;
  279. sfr CCAP0H = 0xFA;
  280. sfr CCAPM0 = 0xDA;
  281. sfr CCAPM1 = 0xDB;
  282. sbit CR = 0xDE;
  283. sbit CF =CCON^7;
  284. sbit CCF0 =CCON^0;
  285. sbit EPCAI =IE^6;
  286. char begin_timer=1,begin_timer_LED=0,total=0,continue_display=0,music_flag=0,have_music=0;
  287. //display_LED用來記錄按鍵按了幾次,對應(yīng)顯示那個EEPROM里面的內(nèi)容,是不需要記錄到EEPROM里面的
  288. //bank用來記錄已經(jīng)下載了多少個EEPROM的塊。
  289. unsigned char LED_EEPROM_number=0,LED_EEPROM=0,display_LED=0;//LED_EEPROM_number為顯示塊有多少個漢字需要顯示,display_LED為顯示的漢字塊
  290. char UART_LED_EEPROM_number=0;
  291. unsigned int  total_timer,sleep=340;
  292. //unsigned int begin_display_timer=2;
  293. unsigned int PCA_COUNT=1;
  294. unsigned int CCAP_VALUE=50000;
  295. char bank=0,down=0;
  296. unsigned char code LED_0[]=
  297. {
  298. //一箭穿心圖片
  299. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x0E,0x80,0x01,0x00,0x1E,0xC0,0x01,0x00,0x3E,0xC0,0x01,0x00,0x7E,0xE0,0x01,0x00,0xFE,0xF0,0x01,0x00,0xFE,0xFF,0x01,0x00,0xFC,0xFF,0x01,0x00,0xF8,0xFF,0x01,0x00,0xE3,0x7F,0x00,0x00,0xC7,0x3F,0x02,0x00,0x8F,0x1F,0x03,0x00,0xBF,0x8F,0x03,0x00,0xFF,0xCF,0x03,0x00,0xFC,0xFF,0x03,0x00,0xF0,0xFF,0x00,0x00,0xC0,0x3F,0x00,0x00,0x80,0x3F,0x00,0x00,0x80,0x0F,0x00,0x00,0xBF,0x0F,0x00,0xC0,0xFF,0x0F,0x00,0xF0,0xFF,0x0F,0x00,0xF0,0xC1,0x1F,0x00,0x78,0x80,0x3F,0x00,
  300. 0x38,0x80,0x7F,0x00,0x1C,0x80,0xFF,0x01,0x1C,0x80,0xEF,0x01,0x1C,0x80,0xCF,0x03,0x38,0x80,0x8F,0x07,0x38,0x80,0x0F,0x0F,0xF8,0x80,0x0F,0x1E,0xF0,0x81,0x0F,0x1C,0xE0,0x87,0x0F,0x3C,0x80,0x87,0x0F,0x38,0xE0,0x87,0x0F,0x3C,0xF0,0x81,0x0F,0x1C,0xF0,0x80,0x0F,0x1E,0x38,0x80,0x0F,0x0F,0x38,0x80,0x8F,0x07,0x3C,0xBF,0xCF,0x03,0xDC,0xFF,0xEF,0x03,0xFC,0xFF,0xFF,0x01,0xF8,0xC1,0xFF,0x00,0x78,0xC0,0x3F,0x00,0xF8,0xC0,0x7F,0x00,0xF8,0xFF,0xFF,0x00,0xDC,0xFF,0xEF,0x01,0x1C,0xFF,0xCF,0x03,0x1C,0x80,0x8F,0x07,0x38,0x80,0x0F,0x0F,0x38,0x80,0x0F,0x0E,0x78,0x80,0x0F,0x1E,0xF0,0xF0,0x7F,0x1C,0xF0,0xF1,0x7F,0x38,0xE0,0xF7,0x7F,0x78,0x80,0xEF,0x7F,0x70,
  301. 0x80,0xEF,0x3F,0x70,0xE0,0xE7,0x3F,0x78,0xF0,0xE1,0x3F,0x38,0xF0,0xC0,0x1F,0x3C,0x78,0xC0,0x1F,0x1E,0x38,0xC0,0x1F,0x0E,0x38,0xC0,0x1F,0x0F,0x1C,0xC0,0x9F,0x07,0x1C,0xC0,0xDF,0x03,0x1C,0xC0,0xFF,0x01,0x38,0xC0,0xFF,0x00,0x38,0xC0,0x7F,0x00,0x78,0xC0,0x3F,0x00,0xF0,0xC1,0x1F,0x00,0xE0,0xFF,0x1F,0x00,0xC0,0xFF,0x0F,0x00,0x00,0xFF,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,
  302. 0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  303. };

  304. unsigned char code LED_1[]=
  305. {
  306. //天行健
  307. 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x60,0x10,0x40,0x00,0x60,0x10,0x40,0x00,0x30,0x10,0x40,0x00,0x38,0x10,0x40,0x00,0x1C,0x10,0x40,0x00,0x0E,0x10,0x40,0x00,0x07,0x10,0x40,0x80,0x07,0x10,0x40,0xE0,0x03,0x10,0x40,0xFC,0x01,0x10,0xC0,0x7F,0x00,0xF0,0xFF,0x3F,0x00,0xF0,0xFF,0x0F,0x00,0xF0,0xFF,0x01,0x00,0xF0,0xC0,0x03,0x00,0x10,0xC0,0x0F,0x00,0x10,0x40,0x3F,0x00,0x10,0x40,0xF8,0x00,0x10,0x40,0xE0,0x01,0x10,0x40,0xC0,0x03,0x18,0x40,0x80,0x07,0x1C,0x40,0x00,0x0F,0x1C,0x60,0x00,0x1E,0x18,0x30,0x00,0x3C,0x30,0x30,0x00,0x3C,0x20,0x30,0x00,0x38,0x00,0x60,0x00,0x38,0x00,0x40,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x04,0x18,0x00,0x00,0x06,0x0C,0x00,0x00,0x07,0x07,0x00,0x80,0x83,0x03,0x00,0xE0,0xC1,0x03,0x00,0xF0,0xF0,0xFF,0x7F,0x7C,0xF8,0xFF,0x7F,0x3E,0xFE,0xFF,0x7F,0x1C,0x9F,0x00,0x00,0x0C,0x0F,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x12,0x00,0x00,0x20,0x10,0x00,0x00,0x20,0x10,0x00,0x18,0x20,0x10,0x00,0x18,0x20,0x10,0x00,0x10,0x20,0x10,0x00,0x30,0x20,0x10,0x00,0x70,0x20,0x10,0x00,0x78,0x20,0xF0,0xFF,0x7F,0x20,0xF0,0xFF,0x3F,0x20,0xF0,0xFF,0x1F,0x20,0x10,0x00,0x00,0x30,0x10,0x00,0x00,0x18,0x10,0x00,0x00,0x18,0x18,0x00,0x00,0x38,0x18,0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0xE0,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xFF,0xFF,0x7F,0xC0,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0xFE,0x19,0x00,0x60,0x7E,0x40,0x0C,0x70,0x4C,0xE0,0x7C,0x38,0x48,0xF8,0xF0,0x1D,0x40,0xFF,0xC0,0x0F,0xE0,0x7F,0xF8,0x07,0xE0,0xC7,0xFF,0x0F,0xE0,0xE0,0x7F,0x1C,0x40,0xE4,0x47,0x18,0x40,0x44,0x44,0x18,0x40,0x44,0x44,0x38,0x40,0x44,0x44,0x30,0x40,0x44,0x44,0x30,0xFC,0xFF,0xFF,0x37,0xFC,0xFF,0xFF,0x37,0xFC,0xFF,0xFF,0x37,0x4C,0x44,0x44,0x32,0x40,0x44,0x44,0x30,0xE0,0x7F,0x46,0x30,0xE0,0x7F,0x63,0x30,0xE0,0x7F,0x37,0x30,0x40,0x03,0x76,0x30,0x00,0x07,0x60,0x10,0x00,0x06,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  308. };

  309. unsigned char code LED_2[]=
  310. {
  311. //君子自強不息
  312. 0x40,0x00,0x00,0x00,0x40,0x00,0x02,0x00,0x40,0x02,0x03,0x00,0x44,0xC2,0x01,0x00,0x44,0xE2,0x00,0x00,0x44,0x7A,0x00,0x00,0x44,0xFF,0x0F,0x00,0xFC,0xFF,0x07,0x00,0xFC,0x27,0x04,0x00,0x7C,0x22,0x04,0x00,0x44,0x22,0x04,0x00,0x44,0x22,0x04,0x00,0x44,0x22,0x04,0x00,0x44,0x22,0x04,0x00,0xFC,0x27,0x04,0x00,0xFE,0xF7,0x07,0x00,0xFE,0xF7,0x07,0x00,0x74,0x30,0x00,0x00,0x30,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x04,0x00,0x04,0x02,0x04,0x00,0x04,0x02,0x0C,0x00,0xC4,0xFF,0x0F,0x00,0xC4,0xFF,0x0F,0x00,0xC4,0xFF,0x07,0x00,0xE4,0x02,0x00,0x00,0x34,0x02,0x00,0x00,0x1C,0x02,0x00,0x00,0x1C,0x02,0x00,0x00,0x0E,0x02,0x00,0x00,0x0E,0x03,0x00,0x00,0x08,0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0x00,0xF0,0xFF,0x0F,0x00,0x20,0x22,0x04,0x00,0x30,0x22,0x04,0x00,0x3E,0x22,0x04,0x00,0x3E,0x22,0x04,0x00,0x26,0x22,0x04,0x00,0x24,0x22,0x04,0x00,0x20,0x22,0x04,0x00,0x20,0x22,0x04,0x00,0x20,0x22,0x04,0x00,0xF0,0xFF,0x0F,0x00,0xF0,0xFF,0x0F,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x00,0x00,0xC8,0x0F,0x04,0x00,0x88,0x0F,0x0C,0x00,0x88,0x08,0x0E,0x00,0x88,0xF8,0x0F,0x00,0xFC,0xF9,0x07,0x00,0xFC,0xF8,0x04,0x00,0x0C,0x6A,0x0C,0x00,0x7C,0x7E,0x0C,0x00,0x7C,0x7E,0x04,0x00,0x7C,0x22,0x04,0x00,0x44,0x22,0x04,0x00,0xC4,0xFF,0x07,0x00,0xC4,0xFF,0x07,0x00,0x44,0x22,0x06,0x00,0x7E,0xA2,0x02,0x00,0x7E,0xBE,0x03,0x00,0x44,0x3E,0x0F,0x00,0x00,0x02,0x0F,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0xC0,0x00,0x00,0x04,0x60,0x00,0x00,0x04,0x70,0x00,0x00,0x04,0x38,0x00,0x00,0x04,0x1C,0x00,0x00,0x04,0x0E,0x00,0x00,0x84,0x07,0x00,0x00,0xC4,0x03,0x00,0x00,0xFC,0xFF,0x0F,0x00,0xFC,0xFF,0x0F,0x00,0xFC,0xFF,0x07,0x00,0x0C,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x03,0x00,0x00,0x04,0x06,0x00,0x00,0x04,0x0E,0x00,0x00,0x06,0x3C,0x00,0x00,0x06,0x38,0x00,0x00,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0xC0,0x03,0x00,0xFC,0xDF,0x03,0x00,0xFC,0x1F,0x00,0x00,0xF8,0xFF,0x07,0x00,0x48,0xE9,0x07,0x00,0x4E,0x59,0x04,0x00,0x4E,0x39,0x04,0x00,0x4A,0xF9,0x04,0x00,0x4A,0xE9,0x04,0x00,0x48,0x49,0x04,0x00,0x48,0x09,0x04,0x00,0xFC,0x9F,0x07,0x00,0xFC,0x9F,0x07,0x00,0xFC,0x4F,0x04,0x00,0x00,0xC0,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  313. };

  314. unsigned char code LED_3[]=
  315. {
  316. //一生一世
  317. 0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xF0,0x01,0x00,0x00,0xF0,0x01,0x00,0x00,0xE0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,
  318. 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x07,0x10,0x00,0xC0,0x03,0x10,0x00,0xF0,0x01,0x10,0x00,0xFE,0x00,0x10,0xC0,0x3F,0x08,0x10,0xF0,0x0F,0x08,0x10,0xF0,0x07,0x08,0x10,0xF0,0x04,0x08,0x10,0x20,0x04,0x08,0x10,0x20,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0x08,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x0C,0x10,0x00,0x04,0x0E,0x10,0x00,0x06,0x0E,0x10,0x00,0x07,0x0E,0x10,0x00,0x07,0x0C,0x18,0x00,0x0E,0x00,0x1C,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
  319. 0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0xF0,0x01,0x00,0x00,0xF0,0x01,0x00,0x00,0xE0,0x01,0x00,0x00,0xC0,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,
  320. 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0x00,0x30,0x00,0x38,0x00,0x30,0x00,0x38,0x00,0x30,0x00,0x38,0x00,0x30,0x00,0x38,0xFC,0xFF,0xFF,0x39,0xFC,0xFF,0xFF,0x39,0xFC,0xFF,0xFF,0x39,0x00,0x30,0x60,0x38,0x00,0x30,0x60,0x38,0x00,0x30,0x60,0x38,0x00,0x30,0x60,0x38,0x00,0x30,0x60,0x38,0xFC,0xFF,0xFF,0x39,0xFC,0xFF,0xFF,0x39,0xFC,0xFF,0xFF,0x39,0xFC,0xFF,0xFF,0x39,0x00,0x30,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x3C,0x00,0x38,0x00,0x3C,0x00,0x38,0x00,0x38,0x00,0x30,0x00,0x30,0x00,0x20,0x00,0x00,0x00,0x00
  321. };
  322. unsigned char code LED_4[]=
  323. {
  324. //生日快樂
  325. 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x07,0x10,0x00,0xC0,0x03,0x10,0x00,0xF0,0x01,0x10,0x00,0xFE,0x00,0x10,0xC0,0x3F,0x08,0x10,0xF0,0x0F,0x08,0x10,0xF0,0x07,0x08,0x10,0xF0,0x04,0x08,0x10,0x20,0x04,0x08,0x10,0x20,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0x08,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x08,0x10,0x00,0x04,0x0C,0x10,0x00,0x04,0x0E,0x10,0x00,0x06,0x0E,0x10,0x00,0x07,0x0E,0x10,0x00,0x07,0x0C,0x18,0x00,0x0E,0x00,0x1C,0x00,0x0C,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
  326. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x3F,0xF8,0xFF,0xFF,0x3F,0xF8,0xFF,0xFF,0x3F,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0x70,0xC0,0x01,0x1C,0xF8,0xFF,0xFF,0x3F,0xF8,0xFF,0xFF,0x3F,0xF8,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  327. 0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0xF0,0x01,0x00,0x00,0xFC,0x00,0x00,0x00,0x7C,0x00,0x00,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0x00,0x1E,0x00,0x00,0x00,0x1C,0x00,0x60,0x00,0x3C,0x03,0x60,0x80,0x39,0x03,0x30,0x80,0x01,0x03,0x18,0x80,0x01,0x03,0x1E,0x80,0x01,0x83,0x0F,0x80,0x01,0xE3,0x07,0x80,0x01,0xFF,0x03,0xFC,0xFF,0xFF,0x00,0xFC,0xFF,0x3F,0x00,0xFC,0xFF,0x1F,0x00,0x80,0x01,0x7F,0x00,0x80,0x01,0xFB,0x01,0x80,0x01,0xE3,0x07,0x80,0x01,0x83,0x0F,0x80,0xFF,0x03,0x1E,0x80,0xFF,0x03,0x3C,0x80,0xFF,0x03,0x78,0x00,0x00,0x03,0x78,0x00,0x00,0x03,0x70,0x00,0x00,0x03,0x70,0x00,0x00,0x03,0x60,0x00,0x00,0x00,0x40,
  328. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0xF0,0x01,0x06,0xF0,0xFF,0x01,0x07,0xF0,0xFF,0xC1,0x03,0xE0,0xFF,0xE1,0x01,0x60,0xC0,0xF1,0x00,0x60,0xC0,0x7D,0x10,0x60,0xC0,0x3D,0x10,0x30,0xC0,0x19,0x10,0x30,0xC0,0x11,0x30,0x30,0xC0,0x01,0x70,0x30,0xC0,0x01,0x70,0x30,0xFF,0xFF,0x7F,0x30,0xFF,0xFF,0x3F,0x38,0xFF,0xFF,0x1F,0x38,0xC0,0x01,0x00,0x38,0xC0,0x09,0x00,0x38,0xC0,0x19,0x00,0x3C,0xC0,0x39,0x00,0x3C,0xC0,0x71,0x00,0x3C,0xC0,0xE1,0x01,0x3C,0xC0,0xC1,0x07,0x38,0xE0,0xC1,0x0F,0x00,0xE0,0x81,0x0F,0x00,0xC0,0x01,0x0F,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  329. };
  330. unsigned char code LED_5[]=//鳳凰傳奇
  331. {
  332. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x7E,0x00,0x00,0xE0,0x1F,0xF8,0xFF,0xFF,0x0F,0xF8,0xFF,0xFF,0x0B,0xF8,0xFF,0x7F,0x0C,0xF8,0x3F,0x00,0x06,0x18,0x06,0x00,0x06,0x18,0x46,0x00,0x03,0x18,0x46,0x80,0x01,0x18,0xC6,0xC0,0x01,0x18,0x86,0xF1,0x00,0x18,0x86,0x7B,0x00,0x18,0x06,0x3F,0x00,0x18,0x06,0x1F,0x00,0x18,0xC6,0x1F,0x00,0x18,0xF6,0x3F,0x00,0x18,0xFE,0x79,0x00,0x18,0x7E,0xF8,0x01,0x18,0x1E,0xF0,0x01,0x18,0x0C,0xE0,0x01,0xF8,0xFF,0x0F,0x00,0xF8,0xFF,0xFF,0x01,0xF8,0xFF,0xFF,0x0F,0xF8,0xFF,0xFF,0x1F,0x00,0x00,0x80,0x7F,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xFF,
  333. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x7E,0x00,0x00,0xF0,0x1F,0xFC,0xFF,0xFF,0x4F,0xFC,0xFF,0xFF,0x41,0xF8,0xFF,0x3F,0x40,0x18,0x00,0x20,0x40,0x18,0xFF,0x2F,0x44,0x18,0xFF,0x2F,0x44,0x18,0xFE,0x27,0x44,0x18,0xFE,0x27,0x44,0x18,0x22,0x22,0x44,0xD8,0x23,0x22,0x44,0xF8,0x23,0xE2,0x7F,0xF8,0x22,0xE2,0x7F,0x58,0x22,0xE2,0x7F,0x58,0x22,0x22,0x44,0x18,0xFE,0x27,0x46,0x18,0xFF,0x37,0x47,0x18,0xFF,0x3F,0x43,0x18,0xFE,0x3B,0x46,0x18,0x02,0x70,0x64,0xF8,0xFF,0x7F,0x70,0xFC,0xFF,0xFF,0x63,0xFC,0xFF,0xFF,0xDF,0x18,0x00,0xF8,0xBF,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xFE,
  334. 0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x0F,0x00,0x00,0xC0,0x03,0x00,0x00,0xF0,0x01,0x00,0x00,0xFC,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xE0,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFC,0x01,0x00,0x00,0x7C,0x04,0x01,0x00,0x18,0x86,0x01,0x00,0x08,0x86,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x86,0x01,0x00,0x00,0x86,0x21,0x04,0x00,0x86,0x7F,0x0C,0x00,0xF6,0x7F,0x08,0xC0,0xFF,0x3F,0x18,0xFC,0xFF,0x33,0x18,0xFC,0xBF,0x31,0x30,0xFC,0x87,0x31,0x78,0x0C,0x86,0x31,0x7C,0x08,0x86,0x31,0xEF,0x00,0x86,0xB1,0xE7,0x00,0x86,0xF1,0xC3,0x00,0x86,0xF1,0xC1,0x00,0x87,0xF1,0x00,0x00,0xC7,0x71,0x00,0x00,0xC7,0x71,0x00,0x00,0xC6,0x31,0x00,
  335. 0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0xC0,0x80,0x01,0x00,0xC0,0xC0,0x01,0x00,0xC0,0xC0,0x01,0x00,0xC0,0xC0,0xF9,0x3F,0xC0,0xE0,0xF9,0x3F,0xC0,0xA0,0xF9,0x3F,0xC0,0xB0,0xF1,0x1F,0xC0,0x98,0x31,0x0C,0xC0,0x98,0x31,0x0C,0xC0,0x9C,0x31,0x0C,0xC0,0x8F,0x31,0x0C,0xC0,0x87,0x31,0x0C,0xFE,0x83,0x31,0x0C,0xFE,0x83,0x31,0x0C,0xFC,0x83,0xF9,0x1F,0xDC,0x82,0xF9,0x1F,0xC8,0x86,0xF9,0x5F,0xC0,0x86,0x11,0x40,0xC0,0x8E,0x01,0x40,0xC0,0x8C,0x01,0xC0,0xC0,0x9C,0x01,0xC0,0xC0,0xBC,0xFF,0xFF,0xC0,0xB8,0xFF,0xFF,0xE0,0xB8,0xFF,0xFF,0xE0,0xB0,0xFF,0x7F,0xE0,0x80,0x01,0x00,0xC0,0xC0,0x01,0x00,0x80,0xE0,0x01,0x00,0x00,0xE0,0x01,0x00
  336. };
  337. unsigned char code LED_6[]=//情有獨鐘
  338. {
  339. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x3E,0x00,0x00,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0x00,0x07,0x00,0x00,0x00,0x6E,0x00,0x00,0x60,0x6E,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x66,0xFF,0x7F,0x60,0x66,0xFF,0x7F,0x60,0x66,0xFF,0x7F,0x60,0x66,0xFF,0x3F,0x60,0x66,0x33,0x03,0x60,0x66,0x33,0x03,0xFC,0x7F,0x33,0x03,0xFC,0x7F,0x33,0x03,0xFC,0x7F,0x33,0x13,0x60,0x66,0x33,0x33,0x60,0x66,0x33,0x33,0x60,0x66,0x33,0x73,0x60,0x66,0xFF,0x7F,0x60,0x66,0xFF,0x7F,0x60,0x66,0xFF,0x3F,0x60,0x76,0x00,0x00,0x60,0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
  340. 0x00,0x00,0x00,0x00,0xC0,0x00,0x30,0x00,0xC0,0x00,0x18,0x00,0xC0,0x00,0x1C,0x00,0xC0,0x00,0x0E,0x00,0xC0,0x00,0x07,0x00,0xC0,0x80,0x03,0x00,0xC0,0xC0,0x01,0x00,0xC0,0xE0,0x01,0x00,0xC0,0xF8,0xFF,0x7F,0xC0,0xFC,0xFF,0x7F,0xC0,0xFF,0xFF,0x3F,0xE0,0x3F,0xC6,0x00,0xFC,0x37,0xC6,0x00,0xFC,0x31,0xC6,0x00,0xFC,0x30,0xC6,0x00,0xD8,0x30,0xC6,0x00,0xC8,0x30,0xC6,0x10,0xC0,0x30,0xC6,0x10,0xC0,0x30,0xC6,0x10,0xC0,0x30,0xC6,0x30,0xC0,0x30,0xC6,0x70,0xC0,0xF8,0xFF,0x7F,0xC0,0xF8,0xFF,0x7F,0xC0,0xF8,0xFF,0x3F,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  341. 0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00,0x10,0x30,0xC0,0x00,0x10,0x30,0x70,0x00,0x30,0x18,0x38,0x10,0x60,0x0C,0x1C,0x10,0xE0,0x0E,0x1F,0x70,0xC0,0xC7,0x07,0x70,0xC0,0xFF,0x03,0x3C,0xE0,0xFF,0xFF,0x3F,0xF8,0xFC,0xFF,0x1F,0x78,0xE0,0xFF,0x07,0x38,0x00,0x00,0x18,0x18,0xFF,0x3F,0x38,0x00,0xFF,0x3F,0x38,0x00,0xFF,0x1F,0x18,0x00,0xFE,0x1F,0x18,0x00,0x06,0x0C,0x18,0x00,0x06,0x0C,0x18,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x1F,0xF8,0xFF,0xFF,0x1F,0x00,0x06,0x0C,0x18,0x00,0x06,0x4C,0x18,0x00,0xFE,0xDF,0x18,0x00,0xFF,0xDF,0x1F,0x00,0xFF,0x9F,0x1F,0x00,0xFE,0x0F,0x3F,0x00,0x04,0x00,0x3E,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,
  342. 0x00,0x00,0x00,0x00,0x00,0xC0,0x05,0x00,0x00,0xF0,0x04,0x00,0x00,0x7C,0x04,0x00,0x80,0x1F,0x04,0x00,0xF8,0x1F,0x04,0x08,0xFC,0xF3,0xFF,0x1F,0xFC,0xF0,0xFF,0x1F,0x98,0xF0,0xFF,0x1F,0x88,0x10,0x04,0x0E,0x80,0x18,0x04,0x07,0xC0,0x18,0x86,0x03,0xC0,0x30,0x86,0x01,0xC0,0x21,0xCE,0x00,0x00,0xFF,0x5F,0x00,0x00,0xFE,0x1F,0x00,0x00,0xFE,0x0F,0x00,0x00,0x06,0x0C,0x00,0x00,0x06,0x0C,0x00,0x00,0x06,0x0C,0x00,0xFC,0xFF,0xFF,0x7F,0xFC,0xFF,0xFF,0x7F,0xF8,0xFF,0xFF,0x3F,0x08,0x06,0x0C,0x00,0x00,0x06,0x0C,0x00,0x00,0x06,0x04,0x00,0x00,0xFE,0x0F,0x00,0x00,0xFE,0x0F,0x00,0x00,0xFE,0x0F,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  343. };
  344. unsigned char code LED_7[]=
  345. {
  346. //房子圖片
  347. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xF8,0x00,0x07,0x00,0xF8,0xF1,0x03,0x00,0xF8,0xFF,0x01,0x00,0xF8,0xFF,0x01,0x00,0xFC,0xFF,0x00,0xC0,0xFF,0x7F,0x00,0xFC,0xFF,0x3F,0x00,0xF8,0xFF,0x3F,0x00,0xC0,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x00,0x00,0xF8,0xFF,0x01,0x00,0xF8,0xFF,0x01,0x00,0xF8,0xF1,0x03,0x00,0xF8,0x00,0x07,0x00,0x78,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0xC0,0x00,0x00,
  348. 0x00,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x3F,0x80,0xFF,0xFF,0x3F,0x80,0xFF,0xFF,0x3F,0xC0,0xFF,0xFF,0x3F,0xC0,0xFF,0xFF,0x3F,0xC0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xF0,0xFF,0xFF,0x3F,0xF0,0xFF,0xFF,0x3F,0xF8,0xFF,0xFF,0x3F,0xF8,0xFF,0x01,0x20,0xFC,0xFF,0x01,0x20,0xFC,0xFF,0x01,0x20,0xFE,0xFF,0x01,0x20,0xFE,0xFF,0xFF,0x3F,0xFC,0xFF,0x01,0x20,0xFC,0xFF,0x01,0x20,0xF8,0xFF,0x01,0x20,0xF8,0xFF,0x01,0x20,
  349. 0xF0,0xFF,0xFF,0x3F,0xF0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xE0,0xFF,0xFF,0x3F,0xC0,0xFF,0xFF,0x3F,0xC0,0xFF,0xFF,0x3F,0x80,0xFF,0xFF,0x3F,0x80,0xFF,0xFF,0x3F,0x00,0xFF,0xFF,0x3F,0x00,0xFF,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x30,0x00,0x00,
  350. 0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xF0,0x00,0x08,0x00,0xF0,0x01,0x0F,0x00,0xF0,0xE3,0x07,0x00,0xF0,0xFF,0x03,0x00,0xF0,0xFF,0x03,0x00,0xF0,0xFF,0x01,0x00,0xFC,0xFF,0x00,0x80,0xFF,0xFF,0x00,0xF0,0xFF,0x7F,0x00,0xFC,0xFF,0x3F,0x00,0xF0,0xFF,0x7F,0x00,0x80,0xFF,0xFF,0x00,0x00,0xFC,0xFF,0x00,0x00,0xF8,0xFF,0x01,0x00,0xF0,0xFF,0x03,0x00,0xF0,0xFF,0x03,0x00,0xF0,0xE3,0x07,0x00,0xF0,0x01,0x0F,0x00,0xF0,0x00,0x08,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  351. };
  352. void delay_ms(unsigned int num)
  353. {
  354.   unsigned int k,l;
  355.   for(k=num;k>0;k--)
  356.            for(l=110;l>0;l--);
  357.                 //for(l=begin_display_timer*50;l>0;l--);
  358. }
  359. void delay_ms_readIAP(unsigned int num)
  360. {
  361.   unsigned int k,l;
  362.   for(k=num;k>0;k--)
  363.            for(l=60;l>0;l--);
  364.                 //for(l=begin_display_timer*50;l>0;l--);
  365. }
  366. void InitialSound(void)
  367. {
  368.         BeepIO = 1;
  369.         Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256-210;        // 計算TL1應(yīng)裝入的初值         (10ms的初裝值)
  370.         Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256-210;        // 計算TH1應(yīng)裝入的初值
  371.         TH1 = Sound_Temp_TH1;
  372.         TL1 = Sound_Temp_TL1;
  373.         TMOD   = 0x11;
  374.         ET0    = 1;
  375.         ET1           = 1;
  376.         TR0           = 0;
  377.         TR1    = 0;
  378.         IP=0X46;
  379.         IPH=0x4A;//T0  T1  EX1 EX0
  380.         EA     = 1;
  381. }

  382. void BeepTimer0(void) interrupt 1        using 1//音符發(fā)生中斷
  383. {
  384.         BeepIO = !BeepIO;
  385.         TH0    = Sound_Temp_TH0;
  386.         TL0    = Sound_Temp_TL0;
  387. }
  388. void BeepTimer1(void) interrupt 3        //音符發(fā)生中斷
  389. {
  390.   TR1=0;
  391.         ET1           =  0;
  392.         timer_out=1;
  393. }

  394. //**************************************************************************
  395. void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)
  396. {
  397.         unsigned int NewFreTab[12];                //新的頻率表
  398.         unsigned char i,j;
  399.         unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength,music_length=0;
  400.         unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;
  401.         for(i=0;i<12;i++)                                 // 根據(jù)調(diào)號及升降八度來生成新的頻率表
  402.         {
  403.                 j = i + Signature;
  404.                 if(j > 11)
  405.                 {
  406.                         j = j-12;
  407.                         NewFreTab[i] = FreTab[j]*2;
  408.                 }
  409.                 else
  410.                         NewFreTab[i] = FreTab[j];

  411.                 if(Octachord == 1)
  412.                         NewFreTab[i]>>=2;
  413.                 else if(Octachord == 3)
  414.                         NewFreTab[i]<<=2;
  415.         }                                                                               
  416.         SoundLength = 0;
  417.         while(Sound[SoundLength] != 0x00)        //計算歌曲長度
  418.         {
  419.                 SoundLength+=2;
  420.         }
  421.         Data=0xff;
  422.         Point = 0;
  423. if((LED_EEPROM==1)&&(have_music==1)/*1*/)
  424. {
  425.         Tone   = IapReadByte(IAP_ADDRESS7+(Point++));       
  426.         Length = IapReadByte(IAP_ADDRESS7+(Point++));                         // 讀出第一個音符和它時時值
  427. }
  428. else
  429. {
  430.         Tone   = Sound[Point];       
  431.         Length = Sound[Point+1];                         // 讀出第一個音符和它時時值
  432. }
  433.         LDiv0 = 12000/Speed;                                // 算出1分音符的長度(幾個10ms)        
  434.         LDiv4 = LDiv0/4;                                         // 算出4分音符的長度
  435.         LDiv4 = LDiv4-LDiv4*SOUND_SPACE;         // 普通音最長間隔標準
  436.         TR0          = 0;
  437.         TR1   = 1;
  438. if((LED_EEPROM==1)&&(have_music==1))
  439.         {
  440.                 while(IapReadByte(IAP_ADDRESS7+(Point))!=0x00)
  441.         {//
  442.                 SL=Tone%10;                                                                 //計算出音符
  443.                 SM=Tone/10%10;                                                                 //計算出高低音
  444.                 SH=Tone/100;                                                                 //計算出是否升半
  445.                 CurrentFre = NewFreTab[SignTab[SL-1]+SH];         //查出對應(yīng)音符的頻率        
  446.                 if(SL!=0)
  447.                 {
  448.                         if (SM==1) CurrentFre >>= 2;                 //低音
  449.                         if (SM==3) CurrentFre <<= 2;                 //高音
  450.                         Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計算計數(shù)器初值
  451.                         Sound_Temp_TH0 = Temp_T/256;
  452.                         Sound_Temp_TL0 = Temp_T%256;
  453.                         TH0 = Sound_Temp_TH0;  
  454.                         TL0 = Sound_Temp_TL0 + 12; //加12是對中斷延時的補償
  455.                 }
  456.                 SLen=LengthTab[Length%10];         //算出是幾分音符
  457.                 XG=Length/10%10;                         //算出音符類型(0普通1連音2頓音)
  458.                 FD=Length/100;
  459.                 LDiv=LDiv0/SLen;                         //算出連音音符演奏的長度(多少個10ms)
  460.                 if (FD==1)
  461.                         LDiv=LDiv+LDiv/2;
  462.                 if(XG!=1)       
  463.                         if(XG==0)                                 //算出普通音符的演奏長度
  464.                                 if (SLen<=4)       
  465.                                         LDiv1=LDiv-LDiv4;
  466.                                 else
  467.                                         LDiv1=LDiv*SOUND_SPACE;
  468.                         else
  469.                                 LDiv1=LDiv/2;                 //算出頓音的演奏長度
  470.                 else
  471.                         LDiv1=LDiv;
  472.                 if(SL==0) LDiv1=0;
  473.                         LDiv2=LDiv-LDiv1;                 //算出不發(fā)音的長度
  474.                   if (SL!=0)
  475.                 {
  476.                         TR0=1;
  477.                         for(i=LDiv1;i>0;i--)         //發(fā)規(guī)定長度的音
  478.                         {
  479.                           if(begin_LED)//已經(jīng)發(fā)生水銀中斷
  480.                                 {
  481.                                  timer_led=1;
  482.                                 }

  483.                           timer_out=0;                               
  484.                                 TH1 = Sound_Temp_TH1;
  485.                                 TL1 = Sound_Temp_TL1;
  486.                                 ET1           = 1;
  487.                                 TR1=1;
  488.                                 while(timer_out==0)
  489.                                 {
  490.                                         if(timer_led==1)//如果有顯示任務(wù)標志
  491.                                         {
  492.                                         timer_led=0;
  493.                                         CH=0;
  494.                                         CL=0;
  495.                                         //PCA_COUNT++;
  496.                                         total=1;//PCA中斷向下記數(shù)
  497.                                         CR=1;//開始PCA計時
  498.                                         xianshi_enable=1;//使能LED顯示
  499.                                         hh=0;
  500.                                         }
  501.                                         if((xianshi_enable))//&&(continue_display==0)
  502.                                         {
  503.                                         H4=0;
  504.                                         if(PCA_COUNT<2)//PAC中斷向下記數(shù)和向上計數(shù)一樣
  505.                                         {
  506. //                                        if(begin_display_timer<(CH*256+CL))//判斷延時是否完成
  507.                                          {
  508.                                          CH=0;
  509.                                          CL=0;
  510.                                          hh++;//延時次數(shù)自加                                         
  511.                                          if(hh>tt)//200次延時后顯示的漢字就會在顯示在中間位置
  512.                                          {
  513.                                          hh=0;
  514.                                          CR=0;//停止PCA計數(shù)
  515.                                          LED_display();//開始顯示圖片或者漢字                                                                                  
  516.                                          continue_display=1;                                                                          
  517.                                          xianshi_enable=0;//顯示完成,下次可以不進次if語句                                         
  518.                                          }
  519.                                          }
  520.           }
  521.                                         begin_LED=0;
  522.                                         }
  523.                                        
  524.           if(continue_display==1)
  525.                                         {
  526.                                          LED_display();
  527.                                         }
  528.                          }
  529.                 }
  530.                
  531.                 if(LDiv2!=0)
  532.                 {
  533.                         TR0=0; BeepIO=1;
  534.                         for(i=LDiv2;i>0;i--)         //音符間的間隔
  535.                         {
  536.         if(begin_LED)
  537.                                 {
  538.                                  timer_led=1;
  539.                                 }       

  540.                           timer_out=0;
  541.                           TR1=1;
  542.                                 ET1           = 1;
  543.                                 TH1 = Sound_Temp_TH1;
  544.                                 TL1 = Sound_Temp_TL1;
  545.                                 while(timer_out==0)
  546.                                 {
  547.                                         if(timer_led==1)
  548.                                         {
  549.                                         timer_led=0;
  550.                                         CH=0;
  551.                                         CL=0;
  552.                                         //PCA_COUNT++;
  553.                                         total=1;//PAC中斷向下記數(shù)
  554.                                         CR=1;
  555.                                         xianshi_enable=1;
  556.                                         hh=0;
  557.                                         }
  558.         if((xianshi_enable)&&(continue_display==0))
  559.                                         {
  560.                                         if(PCA_COUNT<2)//PAC中斷向下記數(shù)和向上計數(shù)一樣
  561.                                         {
  562. //                                        if(begin_display_timer<(CH*256+CL))//判斷延時是否完成
  563.                                          {
  564.                                          CH=0;
  565.                                          CL=0;
  566.                                          hh++;//延時次數(shù)自加
  567.                                          if(hh>tt)//200次延時后顯示的漢字就會在顯示在中間位置
  568.                                          {
  569.                                          hh=0;
  570.                                          CR=0;//停止PCA計數(shù)
  571.                                          LED_display();//開始顯示圖片或者漢字
  572.                                                                                   
  573.                                          continue_display=1;
  574.                                                                           
  575.                                          xianshi_enable=0;//顯示完成,下次可以不進次if語句
  576.                                          }
  577.                                          }
  578.           }
  579.                                         begin_LED=0;
  580.                                         }
  581.                                        
  582.           if(continue_display==1)
  583.                                         {
  584.                                          LED_display();
  585.                                         }
  586.                          }                       
  587.                                 }                               
  588.                         }
  589.                 }
  590.                         Tone   = IapReadByte(IAP_ADDRESS7+(Point++));       
  591.             Length = IapReadByte(IAP_ADDRESS7+(Point++));
  592.         }
  593.         }
  594.         else
  595.         {
  596.         while(Point < SoundLength)
  597.         {//
  598.                 SL=Tone%10;                                                                 //計算出音符
  599.                 SM=Tone/10%10;                                                                 //計算出高低音
  600.                 SH=Tone/100;                                                                 //計算出是否升半
  601.                 CurrentFre = NewFreTab[SignTab[SL-1]+SH];         //查出對應(yīng)音符的頻率        
  602.                 if(SL!=0)
  603.                 {
  604.                         if (SM==1) CurrentFre >>= 2;                 //低音
  605.                         if (SM==3) CurrentFre <<= 2;                 //高音
  606.                         Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//計算計數(shù)器初值
  607.                         Sound_Temp_TH0 = Temp_T/256;
  608.                         Sound_Temp_TL0 = Temp_T%256;
  609.                         TH0 = Sound_Temp_TH0;  
  610.                         TL0 = Sound_Temp_TL0 + 12; //加12是對中斷延時的補償
  611.                 }
  612.                 SLen=LengthTab[Length%10];         //算出是幾分音符
  613.                 XG=Length/10%10;                         //算出音符類型(0普通1連音2頓音)
  614.                 FD=Length/100;
  615.                 LDiv=LDiv0/SLen;                         //算出連音音符演奏的長度(多少個10ms)
  616.                 if (FD==1)
  617.                         LDiv=LDiv+LDiv/2;
  618.                 if(XG!=1)       
  619.                         if(XG==0)                                 //算出普通音符的演奏長度
  620.                                 if (SLen<=4)       
  621.                                         LDiv1=LDiv-LDiv4;
  622.                                 else
  623.                                         LDiv1=LDiv*SOUND_SPACE;
  624.                         else
  625.                                 LDiv1=LDiv/2;                 //算出頓音的演奏長度
  626.                 else
  627.                         LDiv1=LDiv;
  628.                 if(SL==0) LDiv1=0;
  629.                         LDiv2=LDiv-LDiv1;                 //算出不發(fā)音的長度
  630.                   if (SL!=0)
  631.                 {
  632.                         TR0=1;
  633.                         for(i=LDiv1;i>0;i--)         //發(fā)規(guī)定長度的音
  634.                         {
  635.                           if(begin_LED)//已經(jīng)發(fā)生水銀中斷
  636.                                 {
  637.                                  timer_led=1;
  638.                                 }

  639.                           timer_out=0;                               
  640.                                 TH1 = Sound_Temp_TH1;
  641.                                 TL1 = Sound_Temp_TL1;
  642.                                 ET1           = 1;
  643.                                 TR1=1;
  644.                                 while(timer_out==0)
  645.                                 {
  646.                                         if(timer_led==1)//如果有顯示任務(wù)標志
  647.                                         {
  648.                                         timer_led=0;
  649.                                         CH=0;
  650.                                         CL=0;
  651.                                         //PCA_COUNT++;
  652.                                         total=1;//PCA中斷向下記數(shù)
  653.                                         CR=1;//開始PCA計時
  654.                                         xianshi_enable=1;//使能LED顯示
  655.                                         hh=0;
  656.                                         }
  657.                                         if((xianshi_enable))//&&(continue_display==0)
  658.                                         {
  659.                                         H4=0;
  660.                                         if(PCA_COUNT<2)//PAC中斷向下記數(shù)和向上計數(shù)一樣
  661.                                         {
  662. //                                        if(begin_display_timer<(CH*256+CL))//判斷延時是否完成
  663.                                          {
  664.                                          CH=0;
  665.                                          CL=0;
  666.                                          hh++;//延時次數(shù)自加                                         
  667.                                          if(hh>tt)//200次延時后顯示的漢字就會在顯示在中間位置
  668.                                          {
  669.                                          hh=0;
  670.                                          CR=0;//停止PCA計數(shù)
  671.                                          LED_display();//開始顯示圖片或者漢字                                                                                  
  672.                                          continue_display=1;                                                                          
  673.                                          xianshi_enable=0;//顯示完成,下次可以不進次if語句                                         
  674.                                          }
  675.                                          }
  676.           }
  677.                                         begin_LED=0;
  678.                                         }
  679.                                        
  680.           if(continue_display==1)
  681.                                         {
  682.                                          LED_display();
  683.                                         }

  684.                                         if(change_code)
  685.                                         {
  686.                                         break;
  687.                                         }
  688.                          }
  689.                                          if(change_code)
  690.                                         {
  691.                                         break;
  692.                                         }
  693.                 }
  694.                
  695.                 if(LDiv2!=0)
  696.                 {
  697.                         TR0=0; BeepIO=1;
  698.                         for(i=LDiv2;i>0;i--)         //音符間的間隔
  699.                         {
  700.         if(begin_LED)
  701.                                 {
  702.                                  timer_led=1;
  703.                                 }       

  704.                           timer_out=0;
  705.                           TR1=1;
  706.                                 ET1           = 1;
  707.                                 TH1 = Sound_Temp_TH1;
  708.                                 TL1 = Sound_Temp_TL1;
  709.                                 while(timer_out==0)
  710.                                 {
  711.                                         if(timer_led==1)
  712.                                         {
  713.                                         timer_led=0;
  714.                                         CH=0;
  715.                                         CL=0;
  716.                                         //PCA_COUNT++;
  717.                                         total=1;//PAC中斷向下記數(shù)
  718.                                         CR=1;
  719.                                         xianshi_enable=1;
  720.                                         hh=0;
  721.                                         }
  722.         if((xianshi_enable)&&(continue_display==0))
  723.                                         {
  724.                                         if(PCA_COUNT<2)//PAC中斷向下記數(shù)和向上計數(shù)一樣
  725.                                         {
  726. //                                        if(begin_display_timer<(CH*256+CL))//判斷延時是否完成
  727.                                          {
  728.                                          CH=0;
  729.                                          CL=0;
  730.                                          hh++;//延時次數(shù)自加
  731.                                          if(hh>tt)//200次延時后顯示的漢字就會在顯示在中間位置
  732.                                          {
  733.                                          hh=0;
  734.                                          CR=0;//停止PCA計數(shù)
  735.                                          LED_display();//開始顯示圖片或者漢字
  736.                                                                                   
  737.                                          continue_display=1;
  738.                                                                           
  739.                                          xianshi_enable=0;//顯示完成,下次可以不進次if語句
  740.                                          }
  741.                                          }
  742.           }
  743.                                         begin_LED=0;
  744.                                         }
  745.                                        
  746.           if(continue_display==1)
  747.                                         {
  748.                                          LED_display();
  749.                                         }
  750.            
  751.                                         if(change_code)
  752.                                         {
  753.                                         break;
  754.                                         }
  755.                          }
  756.                                         if(change_code)
  757.                                         {
  758.                                         break;
  759.                                         }                               
  760.                                 }                               
  761.                         }
  762.                 }
  763.                 Point+=2;
  764.                 Tone=Sound[Point];
  765.                 Length=Sound[Point+1];
  766.                 if(change_code)
  767.                 {
  768.                 break;
  769.                 }
  770.         }
  771.         }
  772.         BeepIO = 1;
  773. }

  774. void DelayUs(unsigned char us)//delay us
  775. {
  776. unsigned char uscnt;
  777. uscnt=us>>1;
  778. while(--uscnt);
  779. }

  780. void DelayMs(unsigned char ms)//delay Ms
  781. {
  782. while(--ms)
  783.    {
  784.      DelayUs(250);
  785.      DelayUs(250);
  786.          DelayUs(250);
  787.          DelayUs(250);
  788.    }
  789. }

  790. void delay_us(unsigned char t)
  791. {
  792.   unsigned char t1;
  793.    unsigned char t2;
  794.    for(t1=0;t1<t;t1++)
  795.    {
  796.     for(t2=0;t2<80;t2++)
  797.        {
  798.         ;
  799.         }
  800.    }
  801. }

  802. void uart_send(uchar string)
  803. {               
  804.         SBUF = string;
  805.         while(TI==0);
  806.         delay_us(10);
  807.                                
  808. }



  809. //-------------------------------------------------------------
  810. //--------------------------------------------------------------------------------------------------
  811. // 函數(shù)名稱: UART_init()串口初始化函數(shù)
  812. // 函數(shù)功能: 在系統(tǒng)時鐘為11.059MHZ時,設(shè)定串口波特率為9600bit/s
  813. //  
  814. //            串口接收中斷允許,發(fā)送中斷禁止
  815. //--------------------------------------------------------------------------------------------------
  816. void UART_init()
  817. {         
  818. /*TR1=0;
  819.   TMOD=0x20;  //中斷1 方式2
  820.   REN=1;      //串口中斷使能
  821.   SM0=1;      //串口方式3(異步)
  822.   SM1=1;
  823.   TH1=0xFD;   //初值
  824.   TL1=0xFD;
  825.   EA=1;
  826.   ES=1;
  827.   TR1=1;      //使能中斷 */
  828. SCON=0x50;
  829. TMOD|=0x20;
  830. TH1=0xfd;
  831. TL1=0xfd;
  832. TR1=1;
  833. EA=1;
  834. ES=1;
  835. }
  836. void COM_send(char string)
  837. {  
  838.     SBUF=string;
  839.     while(!TI);
  840.     TI=0;
  841. }
  842. void send_uart(unsigned char ad)
  843. {
  844.   ES=0;
  845.   TI=0;
  846.   SBUF=ad;
  847.   while(!TI);
  848.   TI=0;
  849.   ES=1;
  850. }



  851. /*void LED_display(void)
  852. {

  853.         unsigned char h;
  854. unsigned int i,j;
  855. EX0=0;
  856. IT0=0;
  857. H1=1;H2=1;H3=1;H4=1;
  858.    j=0;
  859. for(h=0;h<96;h++)
  860. {
  861.   for(i=0;i<4;i++)
  862.   {
  863.    if(i==0)
  864.    {
  865.           H1=0;H2=1;H3=1;H4=1;
  866.          }
  867.    else if(i==1)
  868.    {
  869.           H1=1;H2=0;H3=1;H4=1;
  870.          }
  871.    else if(i==2)
  872.      {
  873.           H1=1;H2=1;H3=0;H4=1;
  874.          }
  875.    else if(i==3)
  876.      {
  877.           H1=1;H2=1;H3=1;H4=0;
  878.          }
  879.    Data=*(LED_p[LED_code]+(j));//temp1[j++];
  880.          j++;
  881.    if(j>127)
  882.       {
  883.            j=0;
  884.                  LED_code++;
  885.                  if(LED_code>2)
  886.                  {
  887.                  LED_code=0;
  888.                  }
  889.           }
  890.    delay_ms(1);
  891.    Data=0x00;         
  892.   }
  893. }
  894.   H1=1;H2=1;H3=1;H4=1;
  895.          EX0=1;
  896.    IT0=1;       
  897.          begin_timer_LED=1;//LED顯示完成,下次進水銀中斷就可以讀出需要延時的時間。
  898. }//LED連續(xù)顯示3個漢字,下面改成一次顯示一個漢字*/
  899. void LED_display(void)
  900. {

  901.         unsigned char h;
  902. unsigned int i,j;
  903. EX0=0;
  904. IT0=0;
  905. H1=1;H2=1;H3=1;H4=1;
  906.    j=0;
  907. for(h=0;h<32;h++)
  908. {
  909.   for(i=0;i<4;i++)
  910.   {
  911.    if(i==0)
  912.    {
  913.           H1=0;H2=1;H3=1;H4=1;
  914.          }
  915.    else if(i==1)
  916.    {
  917.           H1=1;H2=0;H3=1;H4=1;
  918.          }
  919.    else if(i==2)
  920.      {
  921.           H1=1;H2=1;H3=0;H4=1;
  922.          }
  923.    else if(i==3)
  924.      {
  925.           H1=1;H2=1;H3=1;H4=0;
  926.          }
  927.          
  928.          RECEIVR_buffer[j]=IapReadByte(512*display_LED+(midder_led_code)*128+j);
  929.          
  930.          if(LED_EEPROM)//使用EEPROM里面的數(shù)據(jù)
  931.          {
  932.          Data=RECEIVR_buffer[j];
  933.          }
  934.          else
  935.          {
  936.              
  937.              if(music_num==0)
  938.                                  {
  939.                                  Data=*(LED_p1[0]+(LED_code*128+j));
  940.                                  }
  941.                     else if(music_num==1)
  942.                                  {
  943.                                  Data=*(LED_p1[1]+(LED_code*128+j));
  944.                                  }
  945.                           else if(music_num==2)
  946.                                  {
  947.                                  Data=*(LED_p1[2]+(LED_code*128+j));
  948.                                  }
  949.                           else if(music_num==3)
  950.                                  {
  951.                                  Data=*(LED_p1[3]+(LED_code*128+j));
  952.                                  }
  953.                           else if(music_num==4)
  954.                                  {
  955.                                  Data=*(LED_p1[4]+(LED_code*128+j));
  956.                                  }
  957.                           else if(music_num==5)
  958.                                  {
  959.                                 Data=*(LED_p1[5]+(LED_code*128+j));
  960.                                  }
  961.                         else if(music_num==6)
  962.                                  {
  963.                                 Data=*(LED_p1[6]+(LED_code*128+j));
  964.                                  }
  965.                         else if(music_num==7)
  966.                                  {
  967.                                 Data=*(LED_p1[7]+(LED_code*128+j));
  968.                                  }
  969.                                  //下面屏蔽的部分是采用一個漢字一個數(shù)組的形式。上面的是四個漢字一個數(shù)組的顯示,這樣方便字幕提取
  970.             /* if(music_num==0)
  971.                                  {
  972.                                  Data=*(LED_p1[LED_code]+(j));//temp1[j++];
  973.                                  }
  974.                     else if(music_num==1)
  975.                                  {
  976.                                  Data=*(LED_p2[LED_code]+(j));//temp1[j++];
  977.                                  }
  978.                           else if(music_num==2)
  979.                                  {
  980.                                  Data=*(LED_p3[LED_code]+(j));//temp1[j++];
  981.                                  }
  982.                           else if(music_num==3)
  983.                                  {
  984.                                  Data=*(LED_p4[LED_code]+(j));//temp1[j++];
  985.                                  }
  986.                           else if(music_num==4)
  987.                                  {
  988.                                  Data=*(LED_p5[LED_code]+(j));//temp1[j++];
  989.                                  }
  990.                           else if(music_num==5)
  991.                                  {
  992.                                  Data=*(LED_p6[LED_code]+(j));//temp1[j++];
  993.                                  }
  994.                         else if(music_num==6)
  995.                                  {
  996.                                  Data=*(LED_p7[LED_code]+(j));//temp1[j++];
  997.                                  }
  998.                         else if(music_num==7)
  999.                                  {
  1000.                                  Data=*(LED_p8[LED_code]+(j));//temp1[j++];
  1001.                                  }*/
  1002.          }
  1003.          j++;
  1004.          if(LED_EEPROM)
  1005.          {
  1006.           if(j>=127)
  1007.     {
  1008.            j=0;
  1009.                  midder_led_code++;                                  
  1010.                  if(midder_led_code>=LED_EEPROM_number)//LED_EEPROM_number
  1011.                  {
  1012.                  midder_led_code=0;
  1013.                  continue_display=0;
  1014.                  begin_timer_LED=1;
  1015.                  }
  1016.           }                       
  1017.                 delay_ms_readIAP(2);
  1018.          }
  1019.          else
  1020.          {
  1021.    if(j>=127)
  1022.     {
  1023.            j=0;
  1024.                  LED_code++;
  1025.                  if(LED_code>3)//LED_code_number為需要顯示的漢字個數(shù)
  1026.                  {
  1027.                  LED_code=0;
  1028.                  continue_display=0;
  1029.                  begin_timer_LED=1;
  1030.                  }
  1031.           }
  1032.                 delay_ms(1);
  1033.                 }   
  1034.    Data=0x00;         
  1035.   }
  1036. }
  1037.   H1=1;H2=1;H3=1;H4=1;
  1038.          EX0=1;
  1039.    IT0=1;       
  1040. //LED顯示完成,下次進水銀中斷就可以讀出需要延時的時間。
  1041. }
  1042. void PCA_int() interrupt 6 using 1
  1043. {
  1044. CCF0 = 0;   // PCA 中斷清零
  1045. CH=0;
  1046. CL=0;
  1047. CCAP_VALUE += 65530; //這個地方一定要注意自加,不然會導(dǎo)致中斷進入不了。我也很奇怪為什么會這樣。
  1048. CCAP0L = CCAP_VALUE;
  1049. CCAP0H = CCAP_VALUE>>8;
  1050. if(total==0)
  1051. {
  1052. PCA_COUNT++;
  1053. if(PCA_COUNT>250)
  1054. {
  1055. PCA_COUNT=250;
  1056. }
  1057. }
  1058. if(total==1)
  1059. {
  1060. PCA_COUNT--;
  1061. if(PCA_COUNT<1)
  1062. {
  1063. PCA_COUNT=1;
  1064. }
  1065. }
  1066. /*
  1067. CCF0 = 0;   // PCA 中斷清零
  1068. CCAP_VALUE += 50000;  // 比較數(shù)加50000,不理溢出
  1069. CCAP0L = CCAP_VALUE;
  1070. CCAP0H = CCAP_VALUE>>8;
  1071. PCA_COUNT++;
  1072. */
  1073. }
  1074. void PCA_intial()
  1075. {
  1076. CCON = 0x00;
  1077. CL = 0; // 計數(shù)清零
  1078. CH = 0;
  1079. CMOD = 0x00;//0x01; // 選擇12分頻的系統(tǒng)時鐘,ECF = 0,CIDL = 0;  允許溢出中斷

  1080. CCAP0L = 65530;      // 先賦值高8位
  1081. CCAP0H = 65530;  // 再賦值低8位
  1082. CCON = 0x40; // CF = CCF1 = CCF0 = 0; CR = 1;開啟PCA計數(shù)器
  1083. CCAPM0 = 0x49;  //0x49; ECOM = 1,CAPP0 = CAPN0 = 0,MAT0 = 1,TOG = 0,PWM0 = 0,ECCF0 = 1; 開啟PCA中斷

  1084. CR=0;
  1085. EPCAI=1;
  1086. EA = 1;
  1087. }


  1088. void Delay(BYTE n)
  1089. {
  1090.         WORD x;
  1091.         while(n--)
  1092.         {
  1093.           x=0;
  1094.           while(++x);
  1095.         }
  1096. }/**/
  1097. void IapIdle()
  1098. {
  1099.         IAP_CONTR=0;   //CLOSE IAP FUNCTION
  1100.         IAP_CMD=0;   //CLEAR COMMAND TO STANDBY
  1101.         IAP_TRIG=0;  //CLEAR TRIGGER REGISTER
  1102.         IAP_ADDRH=0X80; //DATA PTR POINT TO NON-EEPROM AREA
  1103.         IAP_ADDRL=0;  //CLEAR IAP ADDRESS TO PREVENT MISUSE
  1104. }

  1105. BYTE IapReadByte(WORD addr)
  1106. {
  1107.         BYTE dat;
  1108.          IAP_CONTR=ENABLE_IAP;  //OPEN IAP FUNCTION ,AND SET WAIT TIME
  1109.          IAP_CMD=CMD_READ;  //SET ISP/IAP/EEPROM READ COMMAND
  1110.          IAP_ADDRL=addr; //SET ISP/IAP/EEPROM address low
  1111.          IAP_ADDRH=addr>>8;  //SET ISP//IAP//EEPROM address HIGH
  1112.          IAP_TRIG=0X46;   //SEND TRIGGER COMMAND1  OX46
  1113.          IAP_TRIG=0XB9;   //SEND TRIGGER  COMMAND2  0XB9
  1114.          _nop_();
  1115.          dat=IAP_DATA;   //read ISP/IAP/EEPROM data
  1116.          IapIdle();     // close ISP/IAP/EEPROM FUNCITON
  1117.          return dat;  //RETURN FLAH DATA
  1118. }

  1119. void IapProgramByte(WORD addr, BYTE dat)
  1120. {
  1121.    IAP_CONTR=ENABLE_IAP;  //OPEN IAP FUNTION AND SET WAIT TIME
  1122.    IAP_CMD=CMD_PROGRAM;          //SET ISP/IAP/EEPROM PROGRAM COMMAND
  1123.    IAP_ADDRL=addr;  //set ISP/IAP/EEPROM ADDRESS LOW
  1124.    IAP_ADDRH=addr>>8; //set ISP/IAP/EEPROM address high
  1125.    IAP_DATA=dat;  // WRITE ISP/IAP/EEPROM data
  1126.    IAP_TRIG=0X46;
  1127.    IAP_TRIG=0XB9;
  1128.    _nop_();
  1129.    IapIdle();
  1130. }
  1131. void IapEraseSector(WORD addr)
  1132. {
  1133.         IAP_CONTR=ENABLE_IAP;
  1134.         IAP_CMD=CMD_ERASE;
  1135.         IAP_ADDRL=addr;
  1136.         IAP_ADDRH=addr>>8;
  1137.         IAP_TRIG=0X46;
  1138.         IAP_TRIG=0XB9;
  1139.         _nop_();
  1140.         IapIdle();
  1141. }

  1142. main()
  1143. {

  1144. unsigned char h,hz_num[15]={0};
  1145. unsigned int i,zd;

  1146. music_p[0]=Music_Code0;
  1147. music_p[1]=Music_Code1;
  1148. music_p[2]=Music_Code2;
  1149. music_p[3]=Music_Code3;
  1150. music_p[4]=Music_Code4;
  1151. music_p[5]=Music_Code5;
  1152. music_p[6]=Music_Code6;
  1153. music_p[7]=Music_Code7;


  1154. LED_p1[0]=LED_1;
  1155. LED_p1[1]=LED_2;
  1156. LED_p1[2]=LED_3;
  1157. LED_p1[3]=LED_4;
  1158. LED_p1[4]=LED_0;
  1159. LED_p1[5]=LED_5;
  1160. LED_p1[6]=LED_6;
  1161. LED_p1[7]=LED_7;

  1162. //下面屏蔽部分是采用的一個漢字一個數(shù)組的形式進行的顯示,可以節(jié)省內(nèi)存
  1163. /*LED_p1[0]=LED_wo;//我愛你;
  1164. LED_p1[1]=LED_tp1;
  1165. LED_p1[2]=LED_ni;
  1166. LED_p1[3]=LED_tanhao;

  1167. LED_p2[0]=LED_bao;//寶貝寶貝;
  1168. LED_p2[1]=LED_be;
  1169. LED_p2[2]=LED_bao;
  1170. LED_p2[3]=LED_be;

  1171. LED_p3[0]=LED_di;//帝業(yè)電子;
  1172. LED_p3[1]=LED_ye;
  1173. LED_p3[2]=LED_dian;
  1174. LED_p3[3]=LED_zi;

  1175. LED_p4[0]=LED_3D;//3D搖搖棒;
  1176. LED_p4[1]=LED_yao;
  1177. LED_p4[2]=LED_yao;
  1178. LED_p4[3]=LED_bang;

  1179. LED_p5[0]=LED_yi;//一生一世;
  1180. LED_p5[1]=LED_sheng;
  1181. LED_p5[2]=LED_yi;
  1182. LED_p5[3]=LED_shi;

  1183. LED_p6[0]=LED_sheng;//生日快樂;
  1184. LED_p6[1]=LED_ru;
  1185. LED_p6[2]=LED_kuai;
  1186. LED_p6[3]=LED_lei;

  1187. LED_p7[0]=LED_feng;//鳳凰傳奇;
  1188. LED_p7[1]=LED_huang;
  1189. LED_p7[2]=LED_chuan;
  1190. LED_p7[3]=LED_qi;

  1191. LED_p8[0]=LED_qing;//情有獨鐘;
  1192. LED_p8[1]=LED_you;
  1193. LED_p8[2]=LED_du;
  1194. LED_p8[3]=LED_zhong;*/


  1195. left_right=1;
  1196. H1=1;H2=1;H3=1;H4=1;


  1197. UART_init();

  1198. /*bank=IapReadByte(IAP_ADDRESS8+6);
  1199. COM_send(bank+0x30);
  1200. IapEraseSector(0x0000);
  1201. IapProgramByte(0,'W');
  1202. IapProgramByte(1,'B');
  1203. IapProgramByte(2,'Q');
  1204. IapProgramByte(3,'D');
  1205. while(1)
  1206. {
  1207. COM_send(IapReadByte(0));
  1208. COM_send(IapReadByte(1));
  1209. COM_send(IapReadByte(2));
  1210. COM_send(IapReadByte(3));
  1211. delay_ms(4000);
  1212. } */
  1213.        
  1214. /*        while(1)
  1215.         {
  1216.         if(LED_EEPROM==1)
  1217.         break;
  1218.         }
  1219.   */
  1220. key_change=1;
  1221. if(key_change==0)//如果上電的時候按鍵是按下去的,那么進去下載模式。否則進入顯示模式
  1222. {
  1223. bank=IapReadByte(IAP_ADDRESS8+6);
  1224. if(bank==0xFF)
  1225. {
  1226. bank=0;
  1227. IapProgramByte(IAP_ADDRESS8+6,0);
  1228. }
  1229. H3=0;
  1230. delay_ms(4000);
  1231. H3=1;
  1232. while(1)
  1233. {
  1234. delay_ms(4000);
  1235. delay_ms(4000);
  1236. /* if(flag==1)
  1237. {
  1238. flag=0;
  1239. for(i=0;i<512;i++)
  1240. {
  1241. IapProgramByte(i,0x55);
  1242. }
  1243. for(i=0;i<512;i++)
  1244. {
  1245. //COM_send(IapReadByte(i));
  1246. COM_send(IapReadByte(i));
  1247. }
  1248. flag1++;
  1249. }*/
  1250. }
  1251. }


  1252. while(key_change==1);
  1253. delay_ms(4000);



  1254. if(IapReadByte(IAP_ADDRESS8+9)!=0)//實現(xiàn)顯示上的切換,基數(shù)次上電顯示的是EEPROM保存的漢字,偶數(shù)次上電顯示的程序自帶的內(nèi)容
  1255. {
  1256.   LED_EEPROM=1;
  1257.         hz_num[9]=0;
  1258.         COM_send('E');COM_send('E');COM_send('P');COM_send('R');COM_send('O');COM_send('M');
  1259.         COM_send(0x0d);
  1260.         COM_send(0x0a);
  1261. }
  1262. else
  1263. {
  1264.   LED_EEPROM=0;
  1265.         hz_num[9]=1;
  1266.         COM_send('Z');COM_send('I');COM_send('D');COM_send('A');COM_send('I');COM_send('I');
  1267.         COM_send(0x0d);
  1268.         COM_send(0x0a);
  1269. }
  1270. for(i=0;i<9;i++)
  1271.         {
  1272.          hz_num[i]=IapReadByte(IAP_ADDRESS8+i);
  1273.         }
  1274. hz_num[10]=IapReadByte(IAP_ADDRESS8+10);         //音樂下載標志
  1275. sleep=IapReadByte(IAP_ADDRESS8+11);         //音樂下載標志
  1276. hz_num[11]=sleep;
  1277. if(hz_num[10]==0x55)
  1278. {
  1279. have_music=1;
  1280. // COM_send('h');COM_send('a');COM_send('v');COM_send('e');COM_send(0x0d);COM_send(0x0a);
  1281. /* for(i=0;i<100;i++)
  1282. {
  1283. COM_send(IapReadByte(IAP_ADDRESS7+i));
  1284. }*/
  1285. }
  1286. if((sleep==0)||(sleep==0xff))
  1287. {
  1288. sleep=340;
  1289. }
  1290. else
  1291. {
  1292. //COM_send(sleep/10+0x30);COM_send(sleep%10+0x30);COM_send(0x0d);COM_send(0x0a);
  1293. sleep=sleep*10;
  1294. }
  1295.         IapEraseSector(IAP_ADDRESS8);
  1296.         for(i=0;i<12;i++)
  1297.         {
  1298.          IapProgramByte(IAP_ADDRESS8+i,hz_num[i]);
  1299.         }
  1300.        
  1301. if(LED_EEPROM==1)
  1302. {
  1303. /*for(zd=0;zd<128;zd++)
  1304. {
  1305. RECEIVR_buffer[zd]=IapReadByte(zd);//獲取第一個漢字的代碼
  1306. COM_send(RECEIVR_buffer[zd]);
  1307.   delay_ms(100);       
  1308. }*/
  1309. bank=IapReadByte(IAP_ADDRESS8+6);//得到已經(jīng)有幾個bank里面保存了數(shù)據(jù)
  1310. LED_EEPROM_number=IapReadByte(IAP_ADDRESS8);//得到第一個bank里面保存了幾個漢字
  1311.          tt=300-LED_EEPROM_number*20;
  1312. /*  COM_send('b');COM_send('a');COM_send('n');COM_send('k');COM_send('=');COM_send(bank+0x30);
  1313.         COM_send(0x0d);
  1314.         COM_send(0x0a);
  1315.         COM_send('L');COM_send('E');COM_send('D');COM_send('_');COM_send('E');COM_send('E');
  1316.         COM_send('P');COM_send('R');COM_send('O');COM_send('M');COM_send('_');COM_send('n');
  1317.         COM_send('u');COM_send('m');COM_send('b');COM_send('e');COM_send('r');COM_send('=');
  1318.         COM_send(LED_EEPROM_number+0x30);
  1319.         COM_send(0x0d);
  1320.         COM_send(0x0a);*/
  1321. }
  1322. EX0=1;
  1323. IT0=1;
  1324. EX1=1;
  1325. IT1=1;
  1326. EA=1;
  1327.   InitialSound();
  1328.         TR0           = 1;
  1329.         TR1    = 1;
  1330.        
  1331.   P1 = 0x55;
  1332.         H1=1;
  1333.         PCA_intial();
  1334.         /*CR=1;
  1335.         while(1)
  1336.   {
  1337.    if(PCA_COUNT==40)
  1338.    {
  1339.      PCA_COUNT = 0;
  1340.      H1=!H1;
  1341.    }
  1342.   }        */
  1343.         LED_display();
  1344.         while(1)
  1345.         {       
  1346.         Play(music_p[music_num],5,2,sleep);
  1347.         can_add=1;
  1348.         if(change_code)
  1349.         {
  1350.         change_code=0;
  1351.         }
  1352.         }
  1353. }

  1354. //--------------------------------------------------------------
  1355. //--------------------------------------------------------------------------------------------------
  1356. // 函數(shù)名稱: com_interrup()串口接收中斷處理函數(shù)
  1357. // 函數(shù)功能: 接收包括起始位'S'在內(nèi)的十位數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)
  1358. //--------------------------------------------------------------------------------------------------
  1359. void ISR_Hy(void) interrupt 0 using 1
  1360. {
  1361.          EX0=0;
  1362.    IT0=0;
  1363.          begin_LED=1;         
  1364.          if(begin_timer==1)
  1365.          {
  1366.          total=0;//PAC向上計數(shù)
  1367.          begin_timer=0;
  1368.          CH=0;
  1369.    CL=0;         
  1370.          CR=1;
  1371.          }
  1372.          if(begin_timer_LED==1)
  1373.          {
  1374.          CR=0;
  1375.          total=0;//PCA向下計時
  1376.          begin_timer_LED=0;
  1377.          begin_timer=1;//允許下次進水銀中斷后開始計時
  1378.          total_timer=CH*256;//得到時間值
  1379.          total_timer=total_timer+CL;
  1380. //         begin_display_timer=total_timer;//得到時間值
  1381.          }         
  1382.          EX0=1;
  1383.    IT0=1;
  1384. }
  1385. void ISR_key(void) interrupt 2
  1386. {
  1387. delay_ms(30);
  1388. if(key_change==0)
  1389.   {
  1390.          EX1=0;
  1391.    IT1=0;       
  1392.          change_code=1;
  1393.          if((LED_EEPROM==1)&&(have_music==1))
  1394.          {
  1395.          display_LED++;//顯示內(nèi)容更新
  1396.          LED_EEPROM_number=IapReadByte(IAP_ADDRESS8+display_LED);//顯示內(nèi)容包含幾個漢字         
  1397.          }
  1398.          else if(can_add)
  1399.          {
  1400.          music_num++;//播放的音樂內(nèi)容更新
  1401.          display_LED++;//顯示內(nèi)容更新
  1402.          LED_EEPROM_number=IapReadByte(IAP_ADDRESS8+display_LED);//顯示內(nèi)容包含幾個漢字         
  1403.          can_add=0;
  1404.          }
  1405.          if(music_num>7)
  1406.          {
  1407.          music_num=0;
  1408.          }
  1409.          if(display_LED>=bank)
  1410.          {
  1411.            display_LED=0;
  1412.                  LED_EEPROM_number=IapReadByte(IAP_ADDRESS8);
  1413.          }
  1414.          if(LED_EEPROM)
  1415.          {
  1416.          tt=300-LED_EEPROM_number*20;
  1417.          }
  1418.    else
  1419.          {
  1420.     tt=300;
  1421.          }
  1422.    while(key_change==0);
  1423.    delay_ms(30);         
  1424.          EX1=1;
  1425.    IT1=1;
  1426.          }
  1427.          
  1428. }
  1429. void com_interrupt(void) interrupt 4 //using 3
  1430. {
  1431. unsigned int i;
  1432. unsigned char hz_number[6]={0};
  1433. WORD add;
  1434.    if(RI)                                 //處理接收中斷
  1435.    {
  1436.       RI=0;
  1437.       RECEIVR_buffer[receive_number]=SBUF;             //接收串口數(shù)據(jù)
  1438. //     COM_send(RECEIVR_buffer[receive_number]);                        
  1439.                         if ((RECEIVR_buffer[receive_number] ==0x0A)&&(RECEIVR_buffer[receive_number-1] ==0x0D))
  1440.                                 {
  1441.                                          if((RECEIVR_buffer[receive_number-2]=='N')&&(RECEIVR_buffer[receive_number-3]=='W')&&(RECEIVR_buffer[receive_number-4]=='O')
  1442.                                          &&(RECEIVR_buffer[receive_number-5]=='D'))
  1443.                                          {
  1444.                                                  down=1;
  1445.                                                  IapEraseSector(512*bank);
  1446.                                                  receive_number=0;                                                 
  1447.                                            UART_LED_EEPROM_number=0;
  1448.                                                  //COM_send(UART_LED_EEPROM_number+0x30);
  1449.                                                                         // COM_send(0x0D);
  1450.                                                                         // COM_send(0x0A);
  1451.                                                  COM_send('A');
  1452.                                          }
  1453.                                          else if((RECEIVR_buffer[receive_number-2]=='P')&&(RECEIVR_buffer[receive_number-3]=='O')&&(RECEIVR_buffer[receive_number-4]=='T')
  1454.                                          &&(RECEIVR_buffer[receive_number-5]=='S'))
  1455.                                          {
  1456.                                          if(music_flag==1)
  1457.                                          {
  1458.                                           UART_LED_EEPROM_number=0;
  1459.                                           music_flag==0;
  1460.                                                 have_music=1;//                                                                                                                                       
  1461.                                                 for(i=0;i<12;i++)
  1462.                                         {
  1463.            hz_number[i]=IapReadByte(IAP_ADDRESS8+i);
  1464.                                         }       
  1465.           hz_number[10]=0x55;                                        
  1466.                                         IapEraseSector(IAP_ADDRESS8);                                                                       
  1467.                                         for(i=0;i<12;i++)
  1468.                                         {
  1469.                                         IapProgramByte(IAP_ADDRESS8+i,hz_number[i]);
  1470.                                         }                                       
  1471.                                          }
  1472.                                          else
  1473.                                          {
  1474.                                                  down=0;
  1475.                                                  receive_number=0;
  1476.                                                  COM_send('O');COM_send('K');       
  1477.                                                             
  1478.                                         for(i=0;i<bank;i++)
  1479.                                         {
  1480.            hz_number[i]=IapReadByte(IAP_ADDRESS8+i);
  1481.                                         }
  1482.                                         hz_number[bank]=UART_LED_EEPROM_number;
  1483.           hz_number[bank+1]=IapReadByte(IAP_ADDRESS8+10);//讀出音樂是否下載標志       
  1484.                                         hz_number[11]=IapReadByte(IAP_ADDRESS8+11);
  1485.                                         IapEraseSector(IAP_ADDRESS8);                                       
  1486.                                         bank++;       
  1487.           if(bank>6)
  1488.                                                  {
  1489.                                                         bank=0;
  1490.                                                  }                                               
  1491.                                         for(i=0;i<bank;i++)
  1492.                                         {
  1493.                                         IapProgramByte(IAP_ADDRESS8+i,hz_number[i]);
  1494.                                         }                                       
  1495.                                         IapProgramByte(IAP_ADDRESS8+6,bank);                                                                
  1496.           IapProgramByte(IAP_ADDRESS8+10,hz_number[bank+1]);//寫入音樂是否下載標志       
  1497.                                         IapProgramByte(IAP_ADDRESS8+11,hz_number[11]);
  1498.                                         UART_LED_EEPROM_number=0;       
  1499.                                          
  1500. //                                                 LED_EEPROM=1;
  1501. //                                                 LED_EEPROM_number=IapReadByte(IAP_ADDRESS8+i);
  1502.                                          }
  1503.                                          }
  1504.                                          else if((RECEIVR_buffer[receive_number-2]=='D')&&(RECEIVR_buffer[receive_number-3]=='A')&&(RECEIVR_buffer[receive_number-4]=='E')
  1505.                                          &&(RECEIVR_buffer[receive_number-5]=='R'))
  1506.                                          {
  1507.                                                  receive_number=0;
  1508.                                                  //bank=IapReadByte(IAP_ADDRESS8+6);
  1509.                                                  COM_send(bank+0x30);
  1510.                                                  flag++;
  1511.                                          }
  1512.                                          else if((RECEIVR_buffer[receive_number-2]=='R')&&(RECEIVR_buffer[receive_number-3]=='A')&&(RECEIVR_buffer[receive_number-4]=='E')
  1513.                                          &&(RECEIVR_buffer[receive_number-5]=='L')&&(RECEIVR_buffer[receive_number-6]=='C'))
  1514.                                          {
  1515.                                                  receive_number=0;
  1516.                                                  IapEraseSector(IAP_ADDRESS1);       
  1517.                                                  IapEraseSector(IAP_ADDRESS2);       
  1518.                                                  IapEraseSector(IAP_ADDRESS3);       
  1519.                                                  IapEraseSector(IAP_ADDRESS4);       
  1520.                                                  IapEraseSector(IAP_ADDRESS5);                                                         
  1521.                                                  IapEraseSector(IAP_ADDRESS6);       
  1522.                                                  IapEraseSector(IAP_ADDRESS7);       
  1523.                                                  IapEraseSector(IAP_ADDRESS8);
  1524.             // bank=0;       
  1525.                                                  have_music=0;
  1526.              IapProgramByte(IAP_ADDRESS8+6,0);                                               
  1527.                                                  bank=IapReadByte(IAP_ADDRESS8+6);
  1528.                                                  COM_send('C');COM_send('L');COM_send('E');COM_send('A');COM_send('R');
  1529.                                                  COM_send('+');COM_send('O');COM_send('K');
  1530.                                          }
  1531.                                          else if((RECEIVR_buffer[receive_number-2]=='S')&&(RECEIVR_buffer[receive_number-3]=='U')&&(RECEIVR_buffer[receive_number-4]=='M')
  1532.                                          &&(RECEIVR_buffer[receive_number-5]=='L')&&(RECEIVR_buffer[receive_number-6]=='C'))
  1533.                                          {
  1534.                                                  receive_number=0;                                                        
  1535.                                                  IapEraseSector(IAP_ADDRESS7);       
  1536.             // bank=0;       
  1537.                                                  for(i=0;i<12;i++)
  1538.                                                                 {
  1539.                                                                  hz_number[i]=IapReadByte(IAP_ADDRESS8+i);
  1540.                                                                 }       
  1541.                                                                 hz_number[10]=0;                                       
  1542.                                                                 IapEraseSector(IAP_ADDRESS8);                                                                       
  1543.                                                                 for(i=0;i<12;i++)
  1544.                                                                 {
  1545.                                                                 IapProgramByte(IAP_ADDRESS8+i,hz_number[i]);
  1546.                                                                 }
  1547.                                                  COM_send('C');COM_send('L');COM_send('E');COM_send('A');COM_send('R');
  1548.                                                  COM_send('+');COM_send('O');COM_send('K');
  1549.                                          }
  1550.                                          else if((RECEIVR_buffer[0]=='S')&&(RECEIVR_buffer[1]=='L')&&(RECEIVR_buffer[2]=='E')&&(RECEIVR_buffer[3]=='E')
  1551.                                          &&(RECEIVR_buffer[4]=='P'))
  1552.                                          {
  1553.                                           if(RECEIVR_buffer[7]==0x0d)
  1554.                                                  {
  1555.                                                  sleep=((RECEIVR_buffer[5]-0x30)*10+(RECEIVR_buffer[6]-0x30))*10;       
  1556.                                                  }
  1557.                                                 else
  1558.                                                  {
  1559.                                                  sleep=(RECEIVR_buffer[5]-0x30)*10;       
  1560.                                                  }
  1561.                                                  for(i=0;i<12;i++)
  1562.                                                                 {
  1563.                                                                  hz_number[i]=IapReadByte(IAP_ADDRESS8+i);
  1564.                                                                 }       
  1565.                                                                 hz_number[11]=sleep/10;                                       
  1566.                                                                 IapEraseSector(IAP_ADDRESS8);                                                                       
  1567.                                                                 for(i=0;i<12;i++)
  1568.                                                                 {
  1569.                                                                 IapProgramByte(IAP_ADDRESS8+i,hz_number[i]);
  1570.                                                                 }
  1571.                                                                 receive_number=0;       
  1572.                                                  COM_send('S');COM_send('L');COM_send('E');COM_send('E');COM_send('P');
  1573.                                          }
  1574.                                          else if((RECEIVR_buffer[receive_number-2]=='C')&&(RECEIVR_buffer[receive_number-3]=='I')&&(RECEIVR_buffer[receive_number-4]=='S')&&(RECEIVR_buffer[receive_number-5]=='U')
  1575.                                          &&(RECEIVR_buffer[receive_number-6]=='M'))
  1576.                                          {
  1577.                                                  music_flag=1;
  1578.                                                  IapEraseSector(IAP_ADDRESS7);
  1579.                                                  receive_number=0;                                                 
  1580.                                                  COM_send('A');
  1581.                                          }
  1582.                                          else if(down==1)
  1583.                                          {
  1584.            add=512*bank;       


  1585.                                         /* for(i=0;i<receive_number;i++)
  1586.                                          {         
  1587.                                                 COM_send(RECEIVR_buffer[i]);
  1588.            }*/

  1589.                                          for(i=0;i<receive_number;i++)
  1590.                                          {
  1591.             if(RECEIVR_buffer[i]==0x0d)       
  1592.                                                 {
  1593.                                                 //delay_ms(2000);
  1594.                                                 COM_send('A');
  1595.                                                 break;
  1596.                                                 }
  1597.                                                 else
  1598.                                                                          //COM_send(UART_LED_EEPROM_number+0x30);
  1599.                                                                          //COM_send(0x0D);
  1600.                                                                         // COM_send(0x0A);                       
  1601.             IapProgramByte((add+(UART_LED_EEPROM_number*128)+i),RECEIVR_buffer[i]);
  1602.           //  COM_send(IapReadByte((add+UART_LED_EEPROM_number*128+i)));                                               
  1603.                                          }
  1604.                                          
  1605.                                         /* for(i=0;i<receive_number;i++)
  1606.                                                            {
  1607.                                                                 //         COM_send(IapReadByte(add+UART_LED_EEPROM_number*128+i));   //發(fā)送數(shù)據(jù)
  1608.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)/1000+0x30);
  1609.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%1000/100+0x30);
  1610.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%100/10+0x30);
  1611.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%10+0x30);
  1612.                                                                          COM_send(0x0D);
  1613.                                                                          COM_send(0x0A);
  1614.                                                                          delay_ms(10);                                                                 
  1615.                  }
  1616.                                                                  COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');
  1617.                                                                  COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');
  1618.                                                                          COM_send(0x0D);
  1619.                                                                          COM_send(0x0A);*/
  1620.             UART_LED_EEPROM_number++;                                                                 
  1621.                                                 receive_number=0;
  1622.                                    }       
  1623.                                          else if(music_flag==1)
  1624.                                          {                                         
  1625.                                          for(i=0;i<receive_number;i++)
  1626.                                          {
  1627.             if(RECEIVR_buffer[i]==0x0d)       
  1628.                                                 {
  1629.                                                 COM_send('A');
  1630.                                                 break;
  1631.                                                 }
  1632.                                                 else
  1633.                                                                          //COM_send(UART_LED_EEPROM_number+0x30);
  1634.                                                                          //COM_send(0x0D);
  1635.                                                                         // COM_send(0x0A);
  1636.             IapProgramByte((IAP_ADDRESS7+(UART_LED_EEPROM_number*128)+i),RECEIVR_buffer[i]);                                                          
  1637.                                          }                                 
  1638.                                         /* for(i=0;i<receive_number;i++)
  1639.                                                            {
  1640.                                                                 //         COM_send(IapReadByte(add+UART_LED_EEPROM_number*128+i));   //發(fā)送數(shù)據(jù)
  1641.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)/1000+0x30);
  1642.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%1000/100+0x30);
  1643.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%100/10+0x30);
  1644.                                                                          COM_send((add+UART_LED_EEPROM_number*128+i)%10+0x30);
  1645.                                                                          COM_send(0x0D);
  1646.                                                                          COM_send(0x0A);COM_send('H');COM_send('H');COM_send('H');COM_send('H');
  1647.                                                                  COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');COM_send('H');
  1648.                                                                          COM_send(0x0D);
  1649.                                                                          COM_send(0x0A);*/       
  1650.             UART_LED_EEPROM_number++;                                       
  1651.                                                                          delay_ms(10);                                                                 
  1652.                  }
  1653.                                                                  COM_send('H');COM_send('H');                                 
  1654.                                                 receive_number=0;
  1655.                                    }                                         
  1656.                                  }
  1657.                         else
  1658.                                 receive_number++;
  1659.    
  1660. }                                                             
復(fù)制代碼

所有資料51hei提供下載:
yaoyaobang.zip (13.28 KB, 下載次數(shù): 5)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-11-1 13:48 | 只看該作者
樓主能補全原理圖或說明一下電路連接嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产综合久久久久久鬼色 | 精品久久国产老人久久综合 | 免费性视频 | 精品一区二区不卡 | 精品久久久久久国产 | 在线免费观看视频你懂的 | 亚洲在线成人 | 男女羞羞视频在线观看 | 男女网站在线观看 | 欧美不卡一区二区 | 成人在线一区二区三区 | 久久国产精品视频 | 国产在线精品一区二区三区 | 99re在线视频 | 日韩欧美日韩在线 | 精品国产精品 | 久久久久成人精品免费播放动漫 | 久久精品久久精品 | 欧美综合视频在线 | 欧美一级在线观看 | 欧美日韩中文字幕 | 黄色欧美视频 | 成人av电影天堂 | 免费的日批视频 | 天天操妹子 | 国产精品一区二区不卡 | 精品美女| 日本三级线观看 视频 | 三级黄色片在线播放 | 欧美在线一二三 | 一区二区精品 | 日韩有码一区 | 蜜桃臀av一区二区三区 | 日本午夜精品一区二区三区 | 成人精品鲁一区一区二区 | 久久亚洲欧美日韩精品专区 | 欧美一二三区 | 国产做爰| 久久久www成人免费精品 | 在线观看一区 | 国产一区二区不卡 |