/**************************************************************
程序名稱:模擬電子琴
**************************************************************/
#include #define uchar unsigned char //宏定義 #define led P0 //定義LED等位P0口 #define sw_port P1 //中間變量。。。使按鍵和led對應 sbit buzzer=P2^7; //揚聲器管腳 sbit key1=P3^2; //播放音樂與彈奏歌曲轉換 sbit key3=P3^4; //掉電存儲按鍵 sbit key4=P3^5; //播放掉電存儲的歌曲 sbit keybofang=P3^3; //播放剛才彈奏的歌曲 sbit key7=P3^0; //音調鍵。。。 和 歌曲鍵 sbit key8=P3^1; //音調鍵。。。 和 歌曲鍵 sbit key6=P1^7; sbit key5=P1^6; sbit sda=P1^1; //24c02數據線 sbit scl=P1^0; //24c02時鐘線 uchar keyd,i,keys,b; //定義變量 uchar tone_H; //定義變量 uchar tone_L; //定義變量 void beat_125(unsigned char); //聲明函數 uchar code beat1[]={16,8,8,8,8,4,4,16,8,4,4,8,4,4,4, //歌曲1節拍 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, //歌曲二節拍 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}; //歌曲音調 unsigned int code tone1[]={1012,956,852,759,716,638,568,506,478,426,379,531,10}; //歌曲音調 uchar song3[43]; //定義空數組 void play(uchar*,uchar*); //演奏歌曲函數 void delay8um(uchar); //第一8um延時函數 void sound(uchar); //彈奏發聲函數 /******************************************* 函數功能:節拍的延時的基本單位,用于24c08簡單延時 ******************************************/ void delay() //簡單延時函數 {;;} /******************************************* 函數功能:節拍的延時的基本單位,延時1ms ******************************************/ void delay1ms(uchar x) //1um延時函數 { uchar j; while(x--) for(j=120;j>0;j--); } /************************************************************** 函數功能:24c02驅動程序 用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的應答信號 { uchar i; scl=1; delay(); while((sda==1)&&(i<250))i++; scl=0; delay(); } void write_c02byte(uchar date) //對24c02寫一個字節 { 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讀一個字節 { 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寫一個數據 { 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讀一個數據 { uchar date; start_c02(); write_c02byte(0xa0);
上一篇:單片機RFID高頻RC632讀卡程序,14443A,B.15693,都有
下一篇:ESP8266模塊與單片機的通信程序(硬件與軟件詳解)
推薦閱讀
史海拾趣
隨著電子行業的快速發展,Atlantic Microwave Ltd公司意識到,只有不斷創新才能在激烈的市場競爭中立于不敗之地。公司投入大量研發資金,吸引了一批優秀的科研人才,專注于微波技術的研發與創新。經過數年的努力,公司成功推出了一款具有顛覆性的微波產品,憑借其卓越的性能和穩定性,迅速獲得了市場的認可,為公司帶來了可觀的收益。
隨著戰后的經濟復蘇和科技的快速發展,GI開始積極尋求業務多元化和國際化的發展道路。公司不僅繼續深耕電子技術領域,還逐漸涉足通信、計算機等多個領域,推出了包括通信設備、計算機硬件在內的多款新產品。同時,GI也積極開拓海外市場,通過設立分支機構、與當地企業合作等方式,成功將產品銷往全球多個國家和地區。這一階段的成功,使GI成為了名副其實的跨國電子巨頭。
隨著第二次世界大戰的爆發,全球對國防電子產品的需求激增。GI憑借其在電子技術領域的深厚積累,迅速調整戰略方向,積極投身于國防電子產品的研發與生產。公司開發的潛水艇探測設備和其他關鍵國防電子產品在戰爭中發揮了重要作用,贏得了軍方的高度認可。這一階段的成功不僅為GI帶來了豐厚的利潤,也極大地提升了公司在電子行業中的知名度和地位。
在20世紀中期,GI作為一家新興的電子設備制造商,以其對新興技術的敏銳洞察力和創新精神而嶄露頭角。公司創始人意識到半導體技術的巨大潛力,決定投入大量資源進行研發。通過不懈努力,GI成功推出了多款基于半導體技術的創新產品,如早期的晶體管收音機和電視機,這些產品不僅在當時市場上引起了轟動,也為公司后續的快速發展奠定了堅實基礎。這一階段的成功,標志著GI在電子行業技術創新的道路上邁出了堅實的一步。
隨著技術的不斷成熟,H&D Wireless開始積極拓展市場。公司憑借其創新的物聯網技術和解決方案,成功吸引了多個行業巨頭的關注。2017年,H&D Wireless與全球知名汽車制造商Scania簽署了為期12個月的物聯網服務協議,為其Smart Factory提供Raven IoT Sensor Box827解決方案。這一合作不僅提升了Scania工廠的生產效率,還進一步驗證了H&D Wireless在物聯網領域的實力。
在發展過程中,Coleman Cable積極尋求與行業內外的合作伙伴建立穩固的合作關系。通過與知名電子制造商建立供應鏈合作關系,Coleman Cable的電纜產品得以廣泛應用于各種電子設備中。同時,公司還與科研機構、高校等建立產學研合作關系,共同研發新技術、新產品,推動公司技術的不斷創新和升級。
在圖中R1與R5相等,是為了在3引腳處取得1/2Vin嗎? IC1A為電壓跟隨器也就是在VHALF處輸出1/2Vin 的正半周期,負半周呢?是在IC1B的6引腳處輸入了嗎? 還有R2的作用是什么,為什么要是R3,R4的一半,IC1A的負反饋的作用是什么?IC1A的輸出從第5引腳 ...… 查看全部問答∨ |
網監控通常涉及諸多復雜環節,設備改造、網絡規劃,安保整合、業務系統整合等。作為一個龐大的系統工程,實現高效的投資回報,合理規劃、循序漸進很有必要。中國建設銀行云南省分行安全保衛部安全技術防范管理科經理謝濤結合自身經驗表示,“在項目 ...… 查看全部問答∨ |
dwRet=RasDial(NULL,NULL,&RasDialParams,0xFFFFFFFF,hWnd, &m_hRasConn); // 執行正常,不多說了 dwRet=RasDial(NULL,NULL,&RasDialParams,0,RasDialFunc,&m_hRasConn); static void WINAPI RasDialFunc(UINT unMsg,RASCO ...… 查看全部問答∨ |
|
目前只有份TM-U220的指令集,程序也是按這個指令集寫的,現在用戶想確認是否支持TM-U295打印機,可網上找了半天都照不到TM-U295是用的什么指令系統,EPSON網站上的用戶手冊上也沒說明. 目前關鍵點是用了一個TM-U220的 DLE EOT(即時狀態傳送)指令,如果D ...… 查看全部問答∨ |
|
這個技術文檔提供用軟件的方式模擬LCD的時序,范例中用MSP430G2333的范例實現了一個LCD的驅動,并且完成了數字鐘的功能。文檔可以作為G2系列MSP430驅動LCD的一個很好的設計參考。… 查看全部問答∨ |