找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5475|回復(fù): 0
收起左側(cè)

單片機(jī)8鍵電子琴C程序

[復(fù)制鏈接]
ID:140343 發(fā)表于 2016-9-25 17:05 | 顯示全部樓層 |閱讀模式
8鍵電子琴.zip (11.86 KB, 下載次數(shù): 23)

  1. /*********************************************************************************************
  2. 程序名:    8鍵電子琴C程序
  3. 編寫人:    杜洋 
  4. 編寫時(shí)間:  5月18日
  5. 硬件支持:  STC系列單片機(jī) 12MHz
  6. 接口說明:    
  7. 修改日志:  
  8.   NO.1-                                                               
  9. /*********************************************************************************************
  10. 說明:

  11. /*********************************************************************************************/

  12. #include <AT89X51.H>

  13. sbit SPEAKER  = P3^7;
  14. #define KEY  P1
  15. unsigned char MUSIC;
  16. unsigned char STH0;
  17. unsigned char STL0;
  18. unsigned int code tab[]={
  19. 64021,64103,64260,64400,//低音3開始
  20. 64524,64580,64684,64777,
  21. 64820,64898,64968,65030,
  22. 65058,65110,65157,65178
  23. };

  24. void main(void){
  25.         TMOD=0x01;
  26.         ET0=1;
  27.         EA=1;
  28.         KEY = 0xff;
  29.         while(1){        
  30.                 if(KEY != 0xff){
  31.                 switch (~KEY){//顯示的列位置               
  32.                                 case 0x01://                       
  33.                                         MUSIC = 7;       
  34.                                         break;//               
  35.                                 case 0x02://                       
  36.                                         MUSIC = 6;       
  37.                                         break;//               
  38.                                 case 0x04://                       
  39.                                         MUSIC = 5;       
  40.                                         break;//               
  41.                                 case 0x08://                       
  42.                                         MUSIC = 4;       
  43.                                         break;//               
  44.                                 case 0x10://                       
  45.                                         MUSIC = 3;       
  46.                                         break;//               
  47.                                 case 0x20://                       
  48.                                         MUSIC = 2;       
  49.                                         break;//               
  50.                                 case 0x40://                       
  51.                                         MUSIC = 1;       
  52.                                         break;//               
  53.                                 case 0x80://                       
  54.                                         MUSIC = 0;       
  55.                                         break;//               
  56.                 }       

  57.                     STH0=tab[MUSIC]/256;
  58.                     STL0=tab[MUSIC]%256;
  59.                     TR0=1;
  60.                 }else{
  61.                     SPEAKER = 1;
  62.                         TR0=0;
  63.                 }
  64.     }
  65. }
  66. void t0(void) interrupt 1 using 0{
  67.   TH0=STH0;
  68.   TL0=STL0;
  69.   SPEAKER=~SPEAKER;
  70. }
  71. /*************************************************************
  72. * 杜洋工作室 DoYoung Studio
  73. * 與電子愛好者同行
  74. /*************************************************************/
復(fù)制代碼


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表