找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4568|回复: 2
收起左侧

单片机激光竖琴仿真+电路程序设计资料

[复制链接]
ID:452807 发表于 2018-12-23 19:02 | 显示全部楼层 |阅读模式
激光电子琴焊接步骤25.jpg
激光竖琴电路原理图如下:
电路原理图.jpg

名称数量
PCB板1
5V激光发射头(多发3个)10
22#导线20CM1
5516光敏电阻8
4CM黑色热缩管 20CM1
10K电阻10
1K电阻12
3MM LED 白发蓝12
DC005座1
USB转DC005线1
无源蜂鸣器1
8*8自锁开关1
自锁开关帽1
8550三极管1
6*6*20按键2
40P IC座1
STC89C52(烧写好程序)1
10UF电解电容1
12M晶振1
22P 瓷片电容3


外壳的清单:
M3*10螺丝12
M3螺母7
M3*15双通铜柱5
一片外壳或者2片2外壳 1


单片机源程序如下:
  1. //内容:7个激光束控制7个音符7个LED显示     
  2. #include<reg52.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar button,i,timeh,timel;
  6. sbit speaker=P3^4;
  7. sbit music=P3^3;
  8. sbit tone=P0^0;
  9. sbit LED_L  = P3^7;
  10. sbit LED_M  = P3^6;
  11. sbit LED_H  = P3^5;

  12. uchar code cuzhi[]={0xfc,0x44,0xfc,0xad,0xfd,0x0a,0xfd,0x34,0xfd,0x83,0xfd,0xc8,0xfe,0x06};//do re mi 。。。si
  13. void delay1ms(uint z)  //延时1ms
  14. {uint x,y;
  15.         for(x=z;x>0;x--)
  16.     for(y=120;y>0;y--);
  17. }

  18. void timer0()  interrupt 1            //定时器0溢出中断子程序用于产生各种音调
  19. {        
  20.     TH0=timeh;
  21.         TL0=timel;
  22.           speaker=~speaker;                       //产生方波
  23. }

  24. void  main()
  25. {
  26. EA=1;               //开总中断
  27. ET0=1;                   //开定时器0
  28. TMOD=0x01;         //定时器0工作在方式1
  29. while(1)
  30. {button=P2;
  31. switch (button)
  32. {case 0xfe:
  33. {TR0=1;
  34. timeh=cuzhi[0];                         //取中音do的计数初值高4位值
  35. timel=cuzhi[1];                       //取中音do的计数初值低4位值
  36. P1=0xfe;
  37. delay1ms(100);
  38. } break;

  39. case 0xfd:
  40. {TR0=1;
  41. timeh=cuzhi[2];                         //取中音re的计数初值高4位值
  42. timel=cuzhi[3];
  43. P1=0xfd;                      //取中音re的计数初值低4位值
  44. delay1ms(100);
  45. }break;

  46. case 0xfb:
  47. {TR0=1;
  48. timeh=cuzhi[4];                         //取中音mi的计数初值高4位值
  49. timel=cuzhi[5];
  50. P1=0xfb;                      //取中音mi的计数初值低4位值
  51. delay1ms(100);
  52. }break;

  53. case 0xf7:
  54. {TR0=1;
  55. timeh=cuzhi[6];                         //取中音fa的计数初值高4位值
  56. timel=cuzhi[7];
  57. P1=0xf7;                       //取中音fa的计数初值低4位值
  58. delay1ms(100);
  59. }break;

  60. case 0xef:
  61. {TR0=1;
  62. timeh=cuzhi[8];                         //取中音so的计数初值高4位值
  63. timel=cuzhi[9];
  64. P1=0xef;                       //取中音so的计数初值低4位值
  65. delay1ms(100);
  66. }break;

  67. case 0xdf:
  68. {TR0=1;
  69. timeh=cuzhi[10];                         //取中音la的计数初值高4位值
  70. timel=cuzhi[11];
  71.   P1=0xdf;                      //取中音la的计数初值低4位值
  72. delay1ms(100);
  73. }break;

  74. case 0xbf:
  75. {TR0=1;
  76. timeh=cuzhi[12];                         //取中音si的计数初值高4位值
  77. timel=cuzhi[13];
  78.   P1=0xbf;                      //取中音si的计数初值低4位值
  79. delay1ms(100);
  80. }break;
  81. }
  82. }
  83. }
复制代码

所有资料51hei提供下载:
竖琴编程.zip (104.42 KB, 下载次数: 75)

评分

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

查看全部评分

回复

使用道具 举报

ID:704585 发表于 2020-6-9 18:50 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:1086134 发表于 2023-6-28 19:31 | 显示全部楼层
程序烧进去后不出声,把二极管换成按键后仿真也是
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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