找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3550|回复: 1
收起左侧

单片机按键选拨电子音乐 仿真 程序 都有哦

[复制链接]
ID:114304 发表于 2016-4-15 22:27 | 显示全部楼层 |阅读模式
51单片机仿真 程序 都有哦
0.png

程序:
  1. /*C**************************************************************************
  2. * NAME: Main.c
  3. *----------------------------------------------------------------------------
  4. * Copyright (c) 2013 HIT(WH)
  5. *----------------------------------------------------------------------------
  6. * CREATED_SNY:    JinTao
  7. * CREATION_DATE:  2013/05/19
  8. * AUTHOR:         $JinTao$
  9. * REVISI0N:       $Revision: 1.0 $
  10. * DATE:           $ 2017/05/19 23:30:00 $
  11. * MODIFIED DATE :  

  12. *----------------------------------------------------------------------------
  13. * PURPOSE:
  14. *
  15. *****************************************************************************/
  16. #include <reg51.h>
  17. #include <intrins.h>
  18. #include <stdio.h>
  19. #include "Main.h"
  20. #include "Parameter.h"
  21. #include "Define.h"

  22. void main()
  23. {
  24.         unsigned char i=0;

  25.         System_Init();

  26.         while(1)
  27.         {
  28.                 while( K1 == 1 );
  29.                 while( K1 == 0 );
  30.                 TR0 = 1;
  31.                 gTone_Index = 0;
  32.                 while( ( Music[ gSong_Index ][ gTone_Index ] != -1) && ( K1 == 1 ) && ( TR0 == 1 ) )
  33.                 {
  34.                         Delay(300);
  35.                         gTone_Index++;
  36.                 }
  37.                 TR0 = 0;
  38.                 while( K1 == 0 );
  39.         }
  40. }

  41. /*F**************************************************************************
  42. * NAME: System_Init
  43. *----------------------------------------------------------------------------
  44. * AUTHOR:         $JinTao$
  45. * MODIFIED DATE : $ 2013/04/24 23:30:00 $
  46. *----------------------------------------------------------------------------
  47. * PURPOSE:
  48. *   
  49. *----------------------------------------------------------------------------
  50. * PARAMS:
  51. *   
  52. *
  53. * return:
  54. *----------------------------------------------------------------------------
  55. * EXAMPLE:
  56. *----------------------------------------------------------------------------
  57. * NOTE:
  58. *   
  59. *----------------------------------------------------------------------------
  60. * REQUIREMENTS:
  61. *****************************************************************************/
  62. void System_Init(void)
  63. {
  64.         P2 = 0xC0;
  65.         TMOD = 0x00;
  66.         EA = 1;
  67.         ET0 = 1;
  68.         EX0 = 1;
  69.         IT0 = 1;
  70.         IP = 0x02;
  71. }

  72. /*F**************************************************************************
  73. * NAME: INT0_isr
  74. *----------------------------------------------------------------------------
  75. * AUTHOR:         $JinTao$
  76. * MODIFIED DATE : $ 2013/04/14 20:00:00 $
  77. *----------------------------------------------------------------------------
  78. * PURPOSE:
  79. *   
  80. *----------------------------------------------------------------------------
  81. * PARAMS:
  82. *   
  83. *
  84. * return:
  85. *----------------------------------------------------------------------------
  86. * EXAMPLE:
  87. *----------------------------------------------------------------------------
  88. * NOTE:
  89. *   
  90. *----------------------------------------------------------------------------
  91. * REQUIREMENTS:
  92. *****************************************************************************/
  93. void INT0_isr( void ) interrupt 0
  94. {
  95.         TR0 = 0;
  96.         gSong_Index = (gSong_Index+1) % SONG_NUMBER;
  97.         gTone_Index = 0;
  98.         P2 = DSY[ gSong_Index ];
  99. }

  100. /*F**************************************************************************
  101. * NAME: T0_isr
  102. *----------------------------------------------------------------------------
  103. * AUTHOR:         $JinTao$
  104. * MODIFIED DATE : $ 2013/04/14 20:00:00 $
  105. *----------------------------------------------------------------------------
  106. * PURPOSE:
  107. *   
  108. *----------------------------------------------------------------------------
  109. * PARAMS:
  110. *   
  111. *
  112. * return:
  113. *----------------------------------------------------------------------------
  114. * EXAMPLE:
  115. *----------------------------------------------------------------------------
  116. * NOTE:
  117. *   
  118. *----------------------------------------------------------------------------
  119. * REQUIREMENTS:
  120. *****************************************************************************/
  121. void T0_isr( void ) interrupt 1
  122. {
  123.         TL0 = Low_List[ Music[ gSong_Index ][ gTone_Index ] ];
  124.         TH0 = High_List[ Music[ gSong_Index ][ gTone_Index ] ];
  125.         SPK = ~SPK;
  126. }

  127. /*F**************************************************************************
  128. * NAME: Delay
  129. *----------------------------------------------------------------------------
  130. * AUTHOR:         $JinTao$
  131. * MODIFIED DATE : $ 2013/04/14 20:00:00 $
  132. *----------------------------------------------------------------------------
  133. * PURPOSE:
  134. *   
  135. *----------------------------------------------------------------------------
  136. * PARAMS:
  137. *   
  138. *
  139. * return:
  140. *----------------------------------------------------------------------------
  141. * EXAMPLE:
  142. *----------------------------------------------------------------------------
  143. * NOTE:
  144. *   
  145. *----------------------------------------------------------------------------
  146. * REQUIREMENTS:
  147. *****************************************************************************/
  148. void Delay(unsigned int i)
  149. {
  150.         unsigned int j,k;

  151.         for(k=0;k<i;k++)
  152.         {
  153.                   for(j=0;j<120;j++)
  154.                   {
  155.                         _nop_();
  156.                 }
  157.         }
  158. }

复制代码


3_按键选播电子音乐.zip

62.26 KB, 下载次数: 21, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:114666 发表于 2016-4-17 07:39 来自手机 | 显示全部楼层
楼主你好,请问你有基于单片机的Morse电码自动译码电路的仿真和程序吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表