问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机AT89C51电子琴设计的原理图和c程序???

发布网友 发布时间:2022-04-29 13:58

我来回答

4个回答

热心网友 时间:2023-10-09 12:39

#include <AT89X51.H>

unsigned char temp;

unsigned char key;

unsigned char i,j;

unsigned char STH0;

unsigned char STL0;

unsigned int code tab[]={64021,64103,64260,64400,

64524,64580,64684,64777,

64820,64898,64968,65030,

65058,65110,65157,65178};

void main(void)

{

TMOD=0x01;

ET0=1;

EA=1;

while(1)

{

P3=0xff;                     //将P3口取出

P3_4=0;                       //使P3_4为低电平,这样可以判断第一竖排有没有键按下

temp=P3;

temp=temp & 0x0f;             

if (temp!=0x0f)            //有键按下

{

for(i=50;i>0;i--)

for(j=200;j>0;j--);           //延时

temp=P3;                   

temp=temp & 0x0f;

if (temp!=0x0f)               //再判断是否有键按下

{

temp=P3;

temp=temp & 0x0f;

switch(temp)                //判断是哪个键按下

{

case 0x0e:

key=0;

break;

case 0x0d:

key=1;

break;

case 0x0b:

key=2;

break;

case 0x07:

key=3;

break;

}

temp=P3;

P1_0=~P1_0;

P0=table[key];

STH0=tab[key]/256;      //找出键对应的频率的时间,作为定时器中断初始值

STL0=tab[key]%256;

TR0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

}

TR0=0;

}

}

P3=0xff;

P3_5=0;                     //跟上面差不多,现在是判断第二排的按键

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

for(i=50;i>0;i--)

for(j=200;j>0;j--);

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

key=4;

break;

case 0x0d:

key=5;

break;

case 0x0b:

key=6;

break;

case 0x07:

key=7;

break;

}

temp=P3;

P1_0=~P1_0;

P0=table[key];

STH0=tab[key]/256;

STL0=tab[key]%256;

TR0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

}

TR0=0;

}

}

P3=0xff;

P3_6=0;

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

for(i=50;i>0;i--)

for(j=200;j>0;j--);

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

key=8;

break;

case 0x0d:

key=9;

break;

case 0x0b:

key=10;

break;

case 0x07:

key=11;

break;

}

temp=P3;

P1_0=~P1_0;

P0=table[key];

STH0=tab[key]/256;

STL0=tab[key]%256;

TR0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

}

TR0=0;

}

}

P3=0xff;

P3_7=0;

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

for(i=50;i>0;i--)

for(j=200;j>0;j--);

temp=P3;

temp=temp & 0x0f;

if (temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

switch(temp)

{

case 0x0e:

key=12;

break;

case 0x0d:

key=13;

break;

case 0x0b:

key=14;

break;

case 0x07:

key=15;

break;

}

temp=P3;

P1_0=~P1_0;

P0=table[key];

STH0=tab[key]/256;

STL0=tab[key]%256;

TR0=1;

temp=temp & 0x0f;

while(temp!=0x0f)

{

temp=P3;

temp=temp & 0x0f;

}

TR0=0;

}

}

}

}

void t0(void) interrupt 1 using 0

{

TH0=STH0;

TL0=STL0;

P1_0=~P1_0;

}

 你自己看下程序吧,我也不愿意注释。 

这个是能发出16个音符声音的

来自:求助得到的回答

热心网友 时间:2023-10-09 12:40

/*
21个按键,对应高中低音1234567
三个LED表示音高
7个LED表示音符
按下一个按键,发出对应的声音,对应的音高,音符的LED识点亮 */

ProteUS仿真工程,可运行!
推荐:03_钢琴LED.rar( http://ishare.iask.sina.com.cn/f/12212199.html )

热心网友 时间:2023-10-09 12:40

你在百度文库那里搜有很多的资料啊!不懂你的具体要求是什么。。

热心网友 时间:2023-10-09 12:41

你上杜洋工作室 这个个网站上去看看 他上面有教程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...赵高指鹿为马、燕昭王以千金买千里骨马、田忌赛马的故事!_百度... 什么是草花? 草花是怎么用的? Rio和锐澳是一家吗 锐澳公司介绍 暧昧期间出去吃饭应该谁买单啊? 一般女方出走几天男方能起诉离婚 女生戴什么水晶手链好1992年出生的 送女生手链时怎么说才浪漫(蓝水晶),就比如像钻石是女人最好的朋友之类... 新民晚报杯足球赛市级总赛事组委会电话 单片机原理图工作原理 单片机最小系统原理图,通俗易懂 单片机原理图设计 怎样画单片机硬件原理图 请以“路”为话题写一篇400字的作文,谢谢 以路为话题的作文,是人生道路,别太深奥 以“路”为话题的作文 以‘路’为话题的作文 作文:以“路”话题写一篇不少于八百字的作文 以“路”为话题写一篇作文 求以&quot;路&quot;为话题的高中作文,写出.审题.立意.材料都可 脚后跟的大筋疼感觉像风湿吃什么药 左脚脚后面左侧的大筋蹲下时或者伸腿用力拉长脚后跟就疼,站起来就不疼 以路为主题的作文 主要症状表现为脚后跟上方的大筋走路多,站立久了会很痛,而且是咯噔一声剧痛,已有俩个月了这是怎么回事 脚后跟上的大筋疼是怎么回事 以路为话题的高中作文 ,主题突出唱响时代主旋律,急急急 脚后跟上方的大筋巨痛怎么回事? 脚后跟大筋痛? 脚后跟的大筋是连着全身到头的吗? 我的手机不能多点触控怎么办 三星手机 AT89C51单片机 DS18B20设计的原理图和汇编语言的设计程序 用单片机控制直流电机调速的原理,思路,设计图等等 基于51单片机的16x16 led点阵显示屏设计原理与电路图 我手机不能多指触控? 求助单片机设计(要有原理图、流程图、程序,最好也有程序说明) oppo多点触控失灵解决方法 基于单片机的信号灯设计原理图(十字路口)的 手机不能多指触屏 有声小说夜天子在线收听 夜天子方寸无依? 夜天子精校全本 夜天子是什么类型 夜天子txt下载,最新的 《夜天子》主要讲的什么故事? 《夜天子》夏莹莹的身份是什么? 夜天子txt精校版,网盘 月关大神,荣获铜奖的《夜天子》讲了什么历史故事 有没有类似《微光世界》的书?还可以推荐一下其他好的漫画哦 柯艾都有哪些已经出版的图文集?