找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
跳转到指定楼层
楼主
简易8键电子琴的原理图:


pcb文件在压缩包里面:

单片机源程序如下:
  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黑下载附件…………
复制代码

所有资料51hei提供下载:
简易8按键电子琴.zip (713.05 KB, 下载次数: 176)


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

使用道具 举报

沙发
ID:231347 发表于 2017-9-6 17:25 | 只看该作者
楼主有pcb文件吗,压缩包里的用不了
回复

使用道具 举报

板凳
ID:84492 发表于 2017-9-7 21:29 | 只看该作者
好东西,谢谢分享           
回复

使用道具 举报

地板
ID:236550 发表于 2017-9-29 12:43 | 只看该作者
学习学习
回复

使用道具 举报

5#
ID:262896 发表于 2017-12-18 00:17 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
ID:263148 发表于 2017-12-18 15:33 | 只看该作者
谢谢楼主
回复

使用道具 举报

7#
ID:359592 发表于 2018-6-27 20:10 | 只看该作者
嘻嘻诶
回复

使用道具 举报

8#
ID:366752 发表于 2018-7-8 13:45 来自手机 | 只看该作者
好好看看
回复

使用道具 举报

9#
ID:416511 发表于 2018-10-29 22:54 | 只看该作者
请问这个下载后怎么文件是损坏的?
回复

使用道具 举报

10#
ID:433965 发表于 2018-11-27 09:51 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

11#
ID:641781 发表于 2019-11-14 11:07 | 只看该作者
谢谢楼主
回复

使用道具 举报

12#
ID:660378 发表于 2020-2-16 22:06 | 只看该作者

谢谢楼主
回复

使用道具 举报

13#
ID:691079 发表于 2020-3-16 11:07 来自手机 | 只看该作者
谢谢楼主
回复

使用道具 举报

14#
ID:110278 发表于 2020-3-20 11:06 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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