書名: C51單片機(jī)編程與應(yīng)用作者名: 孔維功主編本章字?jǐn)?shù): 409字更新時(shí)間: 2018-12-29 14:25:44
項(xiàng)目1 認(rèn)識(shí)單片機(jī)及其開發(fā)環(huán)境
1.1 項(xiàng)目提出
1.任務(wù)
利用單片機(jī)系統(tǒng)播放一段音樂。
2.要求
(1)按照所給電路圖連接單片機(jī)系統(tǒng)。
(2)將所給單片機(jī)程序調(diào)試、編譯下載至單片機(jī)中,運(yùn)行單片機(jī)系統(tǒng)。
3.播放音樂的單片機(jī)電路圖

用單片機(jī)I/O口P1.7擴(kuò)展蜂鳴器演奏一首曲子。
4.音樂程序
/* *********************************** 這是一首 2002年第一場(chǎng)雪的曲子 * ***********************************/ #include<reg51.h> /*8051單片機(jī)資源說明*/ sbit SPK=P1^7; //音樂輸出口 void Delayms(unsigned char ms); //節(jié)拍延時(shí) unsigned int data j; unsigned char code song[636]={ //歌曲數(shù)組,格式為:頻率常數(shù),節(jié)拍常數(shù) 0xFF,0xFF,4,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x5B,4, 0xFD,0x08,2,0xFC,0xAB,2, 0xFC,0x0B,2,0xFC,0x0B,2, 0xFF,0xFF,2,0xFC,0x0B,2, 0xFC,0xAB,2,0xFC,0xAB,2, 0xFC,0xAB,2,0xFC,0xAB,2, 0xFC,0xAB,4,0xFC,0xAB,2, 0xFC,0xAB,2, 0xFB,0x8F,2,0xFC,0x0B,2, 0xFC,0x0B,4,0xFF,0xFF,8, 0xFF,0xFF,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,4,0xFD,0x08,2, 0xFD,0x08,2, 0xFD,0x5B,4,0xFD,0x08,2, 0xFC,0xAB,4,0xFD,0x08,6, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFC,0xAB,4,0xFC,0xAB,2, 0xFC,0xAB,2,0xFC,0xAB,2, 0xFC,0x0B,2,0xFC,0x0B,4, 0xFF,0xFF,4,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2, 0xFD,0x5B,4,0xFD,0x08,2, 0xFC,0xAB,4,0xFD,0x08,6, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFC,0xAB,4,0xFC,0xAB,2, 0xFC,0xAB,2,0xFC,0xAB,2, 0xFC,0x0B,2,0xFC,0x0B,4, 0xFF,0xFF,4,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2, 0xFD,0x5B,4,0xFD,0x08,2, 0xFD,0x5B,2,0xFC,0xAB,2, 0xFC,0x0B,2,0xFC,0x0B,4, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x03,2, 0xFB,0x8F,4,0xFB,0x8F,2, 0xFB,0x03,2, 0xFC,0x0B,4,0xFB,0x8F,2, 0xFC,0x0B,2,0xFB,0x03,2, 0xFA,0x14,2,0xFA,0x14,4, 0xFF,0xFF,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x5B,4,0xFD,0x08,2, 0xFD,0x5B,2,0xFC,0xAB,2, 0xFC,0x0B,2,0xFC,0x0B,4, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xfc,0xab,4,0xfc,0xab,2, 0xfc,0xab,2,0xfb,0x8f,2, 0xfc,0x0b,2,0xFC,0x0B,4, 0xFF,0xFF,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,4, 0xFD,0x08,2, 0xfD,0x5b,4,0xfD,0x08,2, 0xfc,0xab,4,0xfc,0x0b,6, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x03,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x03,2, 0xFC,0x0B,4,0xFB,0x8F,2, 0xFC,0x0B,2,0xFB,0x03,2, 0xFA,0x14,2,0xFA,0x14,4, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFB,0x03,2,0xFB,0x03,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFA,0x14,1,0xF9,0x5B,1, 0xF8,0x2A,2,0xF8,0x2A,4, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFB,0x8F,2,0xFC,0x08,2, 0xFC,0x08,2,0xFC,0x08,10, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFB,0x03,2,0xFB,0x03,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFA,0x14,1,0xF9,0x5B,1, 0xF8,0x2A,2,0xF8,0x2A,4, 0xFF,0xFF,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x8F,2,0xFB,0x8F,2, 0xFB,0x03,2,0xFA,0x14,2, 0xFC,0xAB,2,0xFD,0x08,2, 0xFD,0x08,2,0xFD,0x08,2, 0xFF,0xFF,4,0xFF,0xFF,4}; void main() { TMOD=0x01; IE=0x82; while(1) { j=0; while (j<636) { TR0=1; if ((song[j]==0xff)&&(song[j+1]==0xff)) TR0=0; //休止符用0xff,0xff表示出現(xiàn)休止符時(shí)CT0禁止,不發(fā)聲 Delayms(song[j+2]); //每一音符唱多長(zhǎng) j=j+3; } } } /* 音調(diào)程序*/ void timer0()interrupt 1 using 1 //每一音符唱多高 { TH0=song[j]; TL0=song[j+1]; SPK = !SPK; } /* 節(jié)拍程序*/ void Delayms(unsigned char ms) //基本延時(shí)子程序(1/16拍的時(shí)間) { unsigned int i; while(ms--) {for(i=0;i<10300;i++); //節(jié)拍快慢控制 } TR0=0; }
推薦閱讀
- 高效能辦公必修課:Word圖文處理
- 腦動(dòng)力:PHP函數(shù)速查效率手冊(cè)
- Visual C# 2008開發(fā)技術(shù)實(shí)例詳解
- MicroPython Projects
- Hands-On Linux for Architects
- Apache Superset Quick Start Guide
- 生物3D打印:從醫(yī)療輔具制造到細(xì)胞打印
- Mastering OpenStack(Second Edition)
- Hands-On SAS for Data Analysis
- 簡(jiǎn)明學(xué)中文版Flash動(dòng)畫制作
- Raspberry Pi 3 Projects for Java Programmers
- 工業(yè)機(jī)器人基礎(chǔ)
- 數(shù)據(jù)結(jié)構(gòu)與實(shí)訓(xùn)
- 服務(wù)器配置與應(yīng)用(Windows Server 2008 R2)
- Cassandra Design Patterns