久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51單片機(jī)電子琴程序代碼
[打印本頁]
作者:
das
時間:
2015-4-16 03:04
標(biāo)題:
51單片機(jī)電子琴程序代碼
51 電子琴程序代碼 姬家寨電子科技實(shí)驗(yàn)室 程序編程:姬學(xué)瑞 版權(quán)所有,侵權(quán)必究!
#include <REGX51.H>
#define FOSC 12000000
//=================================================================================================
//--- 音階頻率表 ---
unsigned int code JINJIEFREQ[] =
{
262,294,330,349,392,440,494,
523,587,659,699,784,880,988,
1046,1175,1319,1391,1568,1760,1976,
};
//sfr P4 = 0xC0;
//sfr P5 = 0xC8;
//sbit P5_5 = P5^5;
#define SPK P3_7//P5_5
bit RunFlag = 0;
unsigned char STH0,STL0;
//sfr AUXR = 0x8E;
#define T0FENPING 12
//=================================================================================================
//--- 定時器T0溢出中斷服務(wù)程序 ---
void T0_ISR(void) interrupt 1
{
if(1 == RunFlag) //--- 在音階播放標(biāo)志為1情況下 ---
{
TH0 = STH0; //--- 重新裝初值 ---
TL0 = STL0;
SPK = ~SPK; //--- P5.5引腳上的電平翻轉(zhuǎn) ---
}
}
//=================================================================================================
//--- main()主程序 ---
void main(void)
{
unsigned int i;
unsigned char j;
// AUXR |= 0x80; //--- 使能T0的計數(shù)器時鐘分頻值為1 ---
TMOD = 0x01; //--- 配置T0為定時模式,工作于方式2 ---
ET0 = 1; //--- 使能T0中斷 ---
TR0 = 1;
EA = 1; //--- CPU開中斷 ---
while(1)
{
for(j=0;j<7;j++)
{
if(0 == (P1 & (1 << j))) //--- 判斷低音部分是否有鍵按下 ---
{
for(i=0;i<2000;i++); //--- 去按鍵抖動 ---
if(0 == (P1 & (1 << j))) //--- 再判斷低音部分是否真得有鍵按下 ---
{ //--- 根據(jù)表計算低音音階頻率的定時器T0的初值 ---
STH0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j]) / 256;
STL0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j]) % 256;
TH0 = STH0; //--- 裝入TH0,TL0的計數(shù)寄存器 ---
TL0 = STL0;
RunFlag = 1; //--- 置音階播放標(biāo)志為1 ---
}
while(0 == (P1 & (1 << j))); //--- 等待按鍵釋放 ---
RunFlag = 0; //--- 清音階播放標(biāo)志 ---
SPK = 1;
}
if(0 == (P3 & (1 << j))) //--- 判斷中音部分是否有鍵按下 ---
{
for(i=0;i<2000;i++); //--- 去按鍵抖動 ---
if(0 == (P3 & (1 << j))) //--- 再判斷中音部分是否真得有鍵按下 ---
{ //--- 根據(jù)表計算中音音階頻率的定時器T0的初值 ---
STH0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j + 7]) / 256;
STL0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j + 7]) % 256;
TH0 = STH0; //--- 裝入TH0,TL0的計數(shù)寄存器 ---
TL0 = STL0;
RunFlag = 1; //--- 置音階播放標(biāo)志為1 ---
}
while(0 == (P3 & (1 << j))); //--- 等待按鍵釋放 ---
RunFlag = 0; //--- 清音階播放標(biāo)志 ---
SPK = 1;
}
if(0 == (P2 & (1 << j))) //--- 判斷高音部分是否有鍵按下 ---
{
for(i=0;i<2000;i++); //--- 去按鍵抖動 ---
if(0 == (P2 & (1 << j))) //--- 再判斷高音部分是否真得有鍵按下 ---
{ //--- 根據(jù)表計算高音音階頻率的定時器T0的初值 ---
STH0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j + 14]) / 256;
STL0 = (65536 - FOSC / T0FENPING / 2 / JINJIEFREQ[j + 14]) % 256;
TH0 = STH0; //--- 裝入TH0,TL0的計數(shù)寄存器 ---
TL0 = STL0;
RunFlag = 1; //--- 置音階播放標(biāo)志為1 ---
}
while(0 == (P2 & (1 << j))); //--- 等待按鍵釋放 ---
RunFlag = 0; //--- 清音階播放標(biāo)志 ---
SPK = 1;
}
}
}
}
復(fù)制代碼
作者:
913059794
時間:
2015-5-7 15:44
好東西,謝謝
作者:
uva2015
時間:
2015-5-8 17:28
謝謝分享
作者:
萬叢草111
時間:
2015-5-8 19:16
樓主真厲,不錯!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
理论片午午伦夜理片影院
|
免费视频二区
|
中文字幕亚洲一区
|
国产视频一区二区在线观看
|
在线观看国产视频
|
精品自拍视频
|
国产一区二区三区在线
|
国产a一区二区
|
国产免费又黄又爽又刺激蜜月al
|
久久精品二区亚洲w码
|
精品国产一级
|
人干人人
|
免费午夜视频在线观看
|
在线一级片
|
久久综合一区
|
99国产精品99久久久久久粉嫩
|
欧美a区
|
久久国产精品视频
|
久久国产传媒
|
国产精品久久
|
97超碰免费
|
精品国产鲁一鲁一区二区张丽
|
日韩精品在线播放
|
国产在线一
|
亚洲高清av
|
中文字幕男人的天堂
|
欧美一级在线
|
97人澡人人添人人爽欧美
|
免费看91
|
色婷婷激情
|
成人精品一区二区三区中文字幕
|
欧美视频在线观看
|
久久一二
|
五月婷婷导航
|
亚洲一区二区三区四区五区中文
|
国产农村妇女毛片精品久久麻豆
|
欧美 日韩 亚洲91麻豆精品
|
欧美日韩在线视频一区二区
|
九九伊人sl水蜜桃色推荐
|
欧美伦理一区
|
中文字幕一区二区三区四区不卡
|