找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4981|回复: 0
打印 上一主题 下一主题
收起左侧

单片机8键电子琴C程序

[复制链接]
跳转到指定楼层
楼主
ID:140343 发表于 2016-9-25 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8键电子琴.zip (11.86 KB, 下载次数: 23)

  1. /*********************************************************************************************
  2. 程序名:    8键电子琴C程序
  3. 编写人:    杜洋 
  4. 编写时间:  5月18日
  5. 硬件支持:  STC系列单片机 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. /*************************************************************/
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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