/**************************************************************
程序名稱:模擬電子琴
**************************************************************/
#include #define uchar unsigned char //宏定義 #define led P0 //定義LED等位P0口 #define sw_port P1 //中間變量。。。使按鍵和led對應(yīng) sbit buzzer=P2^7; //揚聲器管腳 sbit key1=P3^2; //播放音樂與彈奏歌曲轉(zhuǎn)換 sbit key3=P3^4; //掉電存儲按鍵 sbit key4=P3^5; //播放掉電存儲的歌曲 sbit keybofang=P3^3; //播放剛才彈奏的歌曲 sbit key7=P3^0; //音調(diào)鍵。。。 和 歌曲鍵 sbit key8=P3^1; //音調(diào)鍵。。。 和 歌曲鍵 sbit key6=P1^7; sbit key5=P1^6; sbit sda=P1^1; //24c02數(shù)據(jù)線 sbit scl=P1^0; //24c02時鐘線 uchar keyd,i,keys,b; //定義變量 uchar tone_H; //定義變量 uchar tone_L; //定義變量 void beat_125(unsigned char); //聲明函數(shù) uchar code beat1[]={16,8,8,8,8,4,4,16,8,4,4,8,4,4,4, //歌曲1節(jié)拍 4,4,4,16,16,8,8,4,4,12,8,16,16,8,4,4,4,4,16}; uchar code song1[]={6,5,3,5,7,6,5,6,3,5,6,5,3, //歌曲1簡譜 2,1,6,5,3,2,2,3,5,5,6,3,2,1,5,3,2,1,6,1,1,15}; uchar code beat2[]={7,7,7, 7,8,9, 1,2,3, 6,2,4, 4,4,4, 12, //歌曲二節(jié)拍 8,2,2, 4,4,4, 8,2,2, 4,4,4, 2,2,4,4, 12,}; uchar code song2[]={1,2,8, 8,5,1, 3,3,3, 5,4,3, //歌曲二簡譜 5,4,3, 2, 2,1,0, 1,2,3, 4,3,2, 3,4,5, 5,4,3, 2,1,15}; uchar code beat4[]={4,4,4, 6,2,4, 4,4,4, 6,2,4, 4,4,4, 12, 8,2,2, 4,4,4, 8,2,2, 4,4,4, 2,2,4,4, 12,}; uchar code song4[]={1,1,1, 3,2,1, 3,3,3, 5,4,3, 5,4,3, 2, 2,1,0, 1,2,3, 4,3,2, 3,4,5, 5,4,3, 2,1, 15}; uchar code tone[]={115,102,91,86,77,68,61,57}; //歌曲音調(diào) unsigned int code tone1[]={1012,956,852,759,716,638,568,506,478,426,379,531,10}; //歌曲音調(diào) uchar song3[43]; //定義空數(shù)組 void play(uchar*,uchar*); //演奏歌曲函數(shù) void delay8um(uchar); //第一8um延時函數(shù) void sound(uchar); //彈奏發(fā)聲函數(shù) /******************************************* 函數(shù)功能:節(jié)拍的延時的基本單位,用于24c08簡單延時 ******************************************/ void delay() //簡單延時函數(shù) {;;} /******************************************* 函數(shù)功能:節(jié)拍的延時的基本單位,延時1ms ******************************************/ void delay1ms(uchar x) //1um延時函數(shù) { uchar j; while(x--) for(j=120;j>0;j--); } /************************************************************** 函數(shù)功能:24c02驅(qū)動程序 用IIC總線進行傳輸 **************************************************************/ void init_c02() //24c02初始化 { sda=1; delay(); scl=1; delay(); } void start_c02() //24c02的啟動信號 { scl=1; delay(); sda=1; delay(); sda=0; delay(); } void stop_c02() //24c02停止信號 { sda=0; delay(); scl=1; delay(); sda=1; delay(); } void response_c02() //24c02的應(yīng)答信號 { uchar i; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay(); } void write_c02byte(uchar date) //對24c02寫一個字節(jié) { uchar i,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; scl=0; delay(); sda=CY; delay(); scl=1; delay(); } scl=0; delay(); sda=1; delay(); } uchar read_c02byte() //對24c02讀一個字節(jié) { uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); k=(k<<1)|sda; scl=0; delay(); } return k; } void write_addc02(uchar address,uchar date) //對24c02寫一個數(shù)據(jù) { start_c02(); write_c02byte(0xa0); response_c02(); write_c02byte(address); response_c02(); write_c02byte(date); response_c02(); stop_c02(); } uchar read_addc02(uchar address) //從24c02讀一個數(shù)據(jù) { uchar date; start_c02(); write_c02byte(0xa0);
上一篇:單片機RFID高頻RC632讀卡程序,14443A,B.15693,都有
下一篇:ESP8266模塊與單片機的通信程序(硬件與軟件詳解)
- 熱門資源推薦
- 熱門放大器推薦
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機的無刷直流電機驅(qū)動器設(shè)計
- 超高速攝影機電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- AD8337-EVALZ-SS,單電源同相評估套件,為 AD8337 VGA 的測試和評估提供平臺
- 使用 ROHM Semiconductor 的 BD9141MUV 的參考設(shè)計
- NCP716MTTBGEVB:LDO 穩(wěn)壓器、WDFN-6 封裝、超低靜態(tài)電流評估板
- 用于服務(wù)器的 3.3V DC 到 DC 單路輸出電源
- LTC2992IMS-1 雙路 12V 大功率監(jiān)視器和一個負電壓監(jiān)視器的典型應(yīng)用
- 具有過流保護功能的 LTC3897IUHF 高效兩相 48V 升壓轉(zhuǎn)換器的典型應(yīng)用電路
- LF85CPT-TR 8.5V 帶開關(guān)的低壓降穩(wěn)壓器的典型應(yīng)用
- 使用 LTC2367HMS-16、16 位、500ksps、偽差分單極 SAR ADC 的典型應(yīng)用
- LTC3838IUHF-1 6.5V 至 34V 輸入、5V/12A 和 3.3V/12A 雙路輸出、300kHz、RSENSE、5V 輸出連接至 EXTVCC、降壓轉(zhuǎn)換器的典型應(yīng)用電路
- 用于醫(yī)療的 4 節(jié)鋰離子/鋰聚合物電池充電器
- 開啟軟件定義汽車全新未來征程,紅帽車用操作系統(tǒng)即將全面上市
- 車廠&零部件廠大咖說:48V先進電源系統(tǒng)創(chuàng)新技術(shù)及產(chǎn)業(yè)化突破
- ROHM開發(fā)出適用于AI服務(wù)器48V電源熱插拔電路的100V功率MOSFET
- 納芯微高壓半橋驅(qū)動NSD2622N:為E-mode GaN量身打造高可靠性、高集成度方案
- 3核A7+單核M0多核異構(gòu),米爾全新低功耗RK3506核心板發(fā)布
- 自動化控制中智能技術(shù)的應(yīng)用研究
- OEM機器制造商利用仿真軟件提高效率
- 基于機器視覺的帶鋼焊縫定位
- 米爾RK3576核心板適配多種系統(tǒng),解鎖多樣化應(yīng)用
- 實時控制和通信領(lǐng)域的IT/OT融合如何推動工業(yè)自動化
- 邀請好友加入19國賽交流群,瓜分千元現(xiàn)金大禮!
- 微波單片集成電路簡介
- 是德科技白皮書下載:攻克當前面臨的毫米波測試難關(guān)
- TI帶你一起解剖共享單車智能鎖!看視頻漲知識贏好禮嘍!
- 看展闖關(guān)贏好禮|MPS 芯云展廳與您不見不散!
- 4月TI兩場EP直播,都挺好:超聲氣體流量計量創(chuàng)新方案+SimpleLink平臺小鮮肉CC13X2/CC26X2專場
- 拆招有禮:洞悉電子產(chǎn)品中的大數(shù)據(jù),招招解決測量難題!Keysight DAQ970系列活動
- 是德科技有獎直播:灣區(qū)圓桌派-穿越頻譜壁壘:毫米波技術(shù)的創(chuàng)新之路
- 電源技術(shù)專輯第1期:快充參考設(shè)計大集合!
- 華盛頓州立大學(xué)開發(fā)出媲美鋰電的鈉離子電池
- 車載無線充電
- NI 3.65億美元收購OptimalPlus
- Mapbox牽手微軟、英特爾和軟銀ARM 向無人駕駛汽車地圖
- 美大學(xué)研發(fā)超高壓晶體管 可提高電動車的續(xù)航能力和效率
- 打造5G時代高速網(wǎng)絡(luò)體驗,聯(lián)發(fā)科5G多模整合基帶芯片Helio M70
- 醫(yī)療界的福音,英特爾全新人工智能成像解決方案
- 大聯(lián)大友尚推出Realtek車用以太網(wǎng)解決方案
- Mentor CEO:半導(dǎo)體設(shè)計加快的主要原因分析
- Mentor CEO:在西門子的協(xié)助下,Mentor可以更多支持中國2025