久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2787|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電子琴制作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:205181 發(fā)表于 2017-5-26 18:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//-------------------------------------------------
//名稱:可演奏的電子琴
//-------------------------------------------------
//說明:矩陣鍵盤模擬演奏電子琴,數(shù)碼管顯示按鍵號
//-------------------------------------------------
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
//共陽數(shù)碼管編碼
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};
//0123456789ABCDEF
uint code  music[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65085,65110,65157,65178};
//音符      頻率HZ 簡譜(T值)
//低 3 M 330  64021
//低 4 FA 349  64103
//低 5 SO 392  64260
//低 6 LA 440  64400
//低 7 SI 494  64524
//中 1 DO 523  64580
//中 2 RE 587  64684
//中 3 M 659  64777
//中 4 FA 698  64820
//中 5 SO 784  64898
//中 6 LA 880  64968
//中 7 SI 988  65030
//高 1 DO 1046 65058
//高 2 RE 1175 65110
//高 3 M 1318 65157
//高 4 FA 1397 65178
sbit BEEP = P2^1;  //蜂鳴器
uchar KeyNO;       //按鍵序號
//-----------------------------------------------------------------------
//延時(shí)
//-------------------------------------------------------------------------
void delayms(unsigned int t)//延時(shí)1ms程序
{
unsigned int i,j;
for(i=0;i<t;i++)//循環(huán)語句
for(j=0;j<120;j++)//循環(huán)語句
;
}
//鍵盤矩陣掃描子程序
void Keys_Scan()
{  uchar Tmp,key;
    //高四位置0,放入四行
P1 = 0x0f; //P1輸出0x0f
delayms(1); //延時(shí)1ms
Tmp = P1 ^ 0x0f;//讀取P1
switch(Tmp)
{
   case 1: key = 0; break;//鍵值為0
  case 2: key = 1; break;//鍵值為1
  case 4: key = 2; break;//鍵值為2
  case 8: key = 3; break;//鍵值為3
  default: return; //無鍵按下
}
P1 = 0xf0;    //P1輸出0xF0
delayms(1);    //延時(shí)1ms
Tmp = P1 >> 4 ^ 0x0f;//讀取P1
switch(Tmp)
{
   case 1: key += 0; break;//鍵值+0
  case 2: key += 4; break;//鍵值+4
  case 4: key += 8; break;//鍵值+8
  case 8: key += 12;break;//鍵值+12
  default: return;//無鍵按下
}
  KeyNO=key;  //獲取鍵值
}
//--------------key---------------------------------------
void Play_Tone() interrupt 1
{
TH0 = music[KeyNO]/256;  //不同的按鍵 產(chǎn)生不同的頻率聲音
TL0 = music[KeyNO]%256;  //不同的按鍵 產(chǎn)生不同的頻率聲音
    BEEP=~BEEP;              //蜂鳴器取反,輸出音樂
}
void main()
{ P0 = 0xBF;              //初始顯示'-'
TMOD=0x01;              //設(shè)置定時(shí)器0 16定時(shí)模式   
IE=0x82;                //開中斷
while(1)
{
   P1=0xF0;               //輸出
   if(P1!=0xF0)           //有鍵按下
   {
     Keys_Scan();     //掃描鍵盤
     P0= tab[KeyNO];   //顯示按鍵
     TR0=1;             //啟動(dòng)定時(shí)器,根據(jù)按鍵發(fā)音
   }
     else
  {
    TR0=0;
  }      //關(guān)定時(shí)器 停止播放
  delayms(2);          //延時(shí)2ms
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频区 | 精品国产欧美一区二区三区成人 | 国产成人精品视频在线观看 | 亚洲成人午夜在线 | 夜夜干夜夜操 | 91资源在线观看 | 日本aaa视频| 国产精品污www一区二区三区 | caoporn国产精品免费公开 | 青草视频在线 | jizz视频| 精品国产18久久久久久二百 | 久久久久久免费免费 | 欧美极品一区二区 | 午夜免费网站 | 九九热在线视频观看这里只有精品 | 日韩欧美亚洲 | 国产在线精品免费 | 亚洲精品白浆高清久久久久久 | 天天干天天干 | 欧美黑人一级爽快片淫片高清 | 精品无码久久久久久国产 | 99亚洲综合| 99精品视频一区二区三区 | 亚洲第一福利视频 | 国产精品揄拍一区二区久久国内亚洲精 | 91视频88av| 欧美女优在线观看 | 久草新在线 | av在线免费观看网址 | 自拍偷拍小视频 | 日韩色图在线观看 | 欧美一区二区免费视频 | 欧美亚洲日本 | 国产精品久久久久久久久久 | 天天操天天射综合网 | 精品国产免费人成在线观看 | 欧美日韩成人在线 | 国产精品精品久久久 | 精品国产综合 | 狠狠的干|