标题: 51单片机 电子琴仿真及程序 [打印本页]

作者: wen1993    时间: 2016-9-12 13:48
标题: 51单片机 电子琴仿真及程序
单片机设计程序资料 电子琴
  1. /**********************************************
  2. *实例名称:电子琴
  3. *实例原理:本实例共有七个按键,当按不同的按键时
  4. 会发出七种不同的声音
  5. *作者:kxm
  6. *时间:09.06.13
  7. **********************************************/
  8. #include "Include.h"
  9. #include "key.h"
  10. #include "sound.h"
  11. #define  SOUND_OUT  P2_0
  12. #define  YES  1
  13. #define  NO   0
  14. uchar Th0Temp;
  15. uchar Tl0Temp;
  16. void timer0_init()
  17. {
  18.   TMOD|=0x01;  //timer0,MODEL1,timer
  19.   TH0=0;
  20.   TL0=0;
  21.   ET0=1;       //定时器0中断使能
  22.   TR0=0;       //定时器0默认不启动
  23. }
  24. /******************************************
  25. *定时器0溢出中断入口
  26. ******************************************/
  27. void T0_overflow(void) interrupt 1
  28. {
  29.   TH0=Th0Temp;
  30.   TL0=Tl0Temp;
  31.   SOUND_OUT=!SOUND_OUT;
  32. }
  33. void main()
  34. {
  35.   uchar keyValueRead;
  36.   timer0_init();
  37.   key_init();
  38.   sound_init();
  39.   sei();
  40.   keyValueRead=get_key_value();
  41.   if(keyValueRead!=KEY_NULL)
  42.   {
  43.     if(TR0==NO)
  44.         {
  45.            switch(keyValueRead)
  46.            { case 0x01:
  47.               {
  48.                     TH0=yin[0][1];
  49.                         TL0=yin[0][0];
  50.                         Th0Temp=yin[0][1];
  51.                         Tl0Temp=yin[0][0];
  52.                     break;
  53.                   }
  54.              case 0x02:
  55.                   {
  56.                     TH0=yin[1][1];
  57.                         TL0=yin[1][0];
  58.                         Th0Temp=yin[1][1];
  59.                         Tl0Temp=yin[1][0];
  60.                     break;
  61.                   }
  62.                  case 0x04:
  63.                   {
  64.                           TH0=yin[2][1];
  65.                         TL0=yin[2][0];
  66.                         Th0Temp=yin[2][1];
  67.                         Tl0Temp=yin[2][0];
  68.                     break;
  69.                   }
  70.                  case 0x08:
  71.                   {
  72.                           TH0=yin[3][1];
  73.                         TL0=yin[3][0];
  74.                         Th0Temp=yin[3][1];
  75.                         Tl0Temp=yin[3][0];
  76.                     break;
  77.                   }
  78.                  case 0x10:
  79.                   {
  80.                           TH0=yin[4][1];
  81.                         TL0=yin[4][0];
  82.                         Th0Temp=yin[4][1];
  83.                         Tl0Temp=yin[4][0];
  84.                     break;
  85.                   }
  86.                  case 0x20:
  87.                   {
  88.                     TH0=yin[5][1];
  89.                         TL0=yin[5][0];
  90.                         Th0Temp=yin[5][1];
  91.                         Tl0Temp=yin[5][0];
  92.                     break;
  93.                   }
  94.                  case 0x40:
  95.                   {
  96.                     TH0=yin[6][1];
  97.                         TL0=yin[6][0];
  98.                         Th0Temp=yin[6][1];
  99.                         Tl0Temp=yin[6][0];
  100.                     break;
  101.                   }
  102.              default:
  103.                    break;
  104.            }
  105.           TR0=YES;
  106.         }
  107.   }
  108.   else
  109.   {
  110.     TR0=NO;
  111.         TH0=0x00;
  112.         TL0=0x00;
  113.         Th0Temp=0x00;
  114.         Tl0Temp=0x00;
  115.   }

  116. }
复制代码
仿真工程文件及完整代码下载:
电子琴.rar (17.9 KB, 下载次数: 43)

作者: wlf41333    时间: 2016-9-12 18:26
好东西好东西
作者: 15047213674    时间: 2016-9-12 22:06
有没有做电子琴的材料?
作者: 15047213674    时间: 2016-9-12 22:07
喇叭用什么




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1