找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12887|回复: 14
收起左侧

单片机简易8键电子琴程序 附原理图与PCB文件

  [复制链接]
ID:210567 发表于 2017-6-12 19:40 | 显示全部楼层 |阅读模式
简易8键电子琴的原理图:
0.png

pcb文件在压缩包里面:
0.png
单片机源程序如下:
  1. /*******************************************************************
  2. ********************************************************************
  3. *********            51简易电子琴程序              *****************
  4. ********************************************************************
  5. *********           ****************/

  6. #include<reg52.h>
  7. #define uint unsigned int
  8. #define uchar unsigned char

  9. sbit fmq=P0^0;//定义P0.0口为蜂鸣器信号输出
  10. uint z;
  11. uint code tone[8]={0xfc44,0xfcac,0xfd09,0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22};//对应每个单调的计数初值
  12. uchar code keymode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//按键值,对应io:0,1,2,3,4,5,6,7

  13. /************************************
  14. *********按键扫描函数***************/

  15. void anjian()//用整个P2口作为音调的输入按键(独立按键方式)
  16. {
  17.        
  18.         P2=0xff;//读数据先置1
  19.         if(P2==keymode[0]) //1
  20.         {
  21.                 z=tone[0];
  22.                 P1=keymode[0];
  23.         }
  24. /**/
  25.         if(P2==keymode[1]) //2
  26.         {
  27.                 z=tone[1];
  28.                 P1=keymode[1];
  29.         }
  30. /**/
  31.         if(P2==keymode[2]) //3
  32.         {
  33.                 z=tone[2];
  34.                 P1=keymode[2];
  35.         }
  36. /**/
  37.         if(P2==keymode[3]) //4
  38.         {
  39.                 z=tone[3];
  40.                 P1=keymode[3];
  41.         }
  42. /**/
  43.         if(P2==keymode[4]) //5
  44.         {
  45.                 z=tone[4];
  46.                 P1=keymode[4];
  47.         }
  48. /**/
  49.         if(P2==keymode[5]) //6
  50.         {
  51.                 z=tone[5];
  52.                 P1=keymode[5];
  53.         }
  54. /***/
  55.         if(P2==keymode[6]) //7
  56.         {
  57.                 z=tone[6];
  58.                 P1=keymode[6];
  59.         }
  60. /* */
  61.         if(P2==keymode[7]) //1.
  62.         {
  63.                 z=tone[7];
  64.                 P1=keymode[7];
  65.         }


  66. }
  67. /************************************/
  68. void zdkg()
  69. {
  70.         if(P2==0xff)
  71.         {
  72.                 P1=0xff;
  73.                 TR1=0;//如果没有按键按下,就关闭定时器中断
  74.                 fmq=1;//同时也关闭蜂鸣器
  75.         }
  76.         else          //否则就进入中断
  77.         {
  78.                 TR1=1;
  79.         }
  80. }
  81. /*************************************************
  82. ****************主函数****************************
  83. *************************************************/
  84. void main()
  85. {
  86.         EA=1;//开总中断
  87.         ET1=1;//定时器T1中断允许
  88.         TMOD=0x10;//使用定时器T1的模式1
  89.         TH1=(65536-500)/256;//定时器T1的高8位重新赋初值
  90.         TL1=(65536-500)%256;//定时器T1的低8位重新赋初值
  91.         P1=0xff;//先关所有LED灯

  92.         while(1)
  93.         {
  94.        
  95. ……………………

  96. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.png
所有资料51hei提供下载:
简易8按键电子琴.zip (713.05 KB, 下载次数: 176)
回复

使用道具 举报

ID:231347 发表于 2017-9-6 17:25 | 显示全部楼层
楼主有pcb文件吗,压缩包里的用不了
回复

使用道具 举报

ID:84492 发表于 2017-9-7 21:29 | 显示全部楼层
好东西,谢谢分享           
回复

使用道具 举报

ID:236550 发表于 2017-9-29 12:43 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:262896 发表于 2017-12-18 00:17 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:263148 发表于 2017-12-18 15:33 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:359592 发表于 2018-6-27 20:10 | 显示全部楼层
嘻嘻诶
回复

使用道具 举报

ID:366752 发表于 2018-7-8 13:45 来自手机 | 显示全部楼层
好好看看
回复

使用道具 举报

ID:416511 发表于 2018-10-29 22:54 | 显示全部楼层
请问这个下载后怎么文件是损坏的?
回复

使用道具 举报

ID:433965 发表于 2018-11-27 09:51 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

ID:641781 发表于 2019-11-14 11:07 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:660378 发表于 2020-2-16 22:06 | 显示全部楼层

谢谢楼主
回复

使用道具 举报

ID:691079 发表于 2020-3-16 11:07 来自手机 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:110278 发表于 2020-3-20 11:06 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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