freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機(jī)的電子琴設(shè)計(jì)畢業(yè)設(shè)計(jì)-全文預(yù)覽

2025-09-23 20:02 上一頁面

下一頁面
  

【正文】 TL0 = TL0code。 Speaker = ~Speaker。 TH0 = TH0code。 Speaker = ~Speaker。amp。 //關(guān)定時(shí)器 0 } /**************************************** 鍵值掃描函數(shù) ****************************************/ void Key_Scan(void) { uint key。 Flag = 0。 if(key == 0xfd) { Keycode = 2。 } } case 0xfb: //Mi { Delayms(10)。 //等待按鍵釋放 break。 while(P1 != 0xFF)。 Flag = 0。 if(key == 0xdf) { Keycode = 6。 } } case 0xbf: //Si { Delayms(10)。 //等待按鍵釋放 break。 Num = 0。 //等待按鍵釋放 break。x0。 } /**************************************** 鍵盤中斷函數(shù) ****************************************/ void Key_inter() interrupt 0 { Key_Scan()。 } 。 TL0 = TL0code。y0。 } } void Delayms(uint z)//延時(shí) ms { uint x,y。 Time++。 if(key == 0x7f) { Keycode = 8。 Flag = 0。 while(P1 != 0xFF)。 //等待按鍵釋放 break。 } } case 0xef: //So { Delayms(10)。 if(key == 0xf7) { Keycode = 4。 Flag = 0。 while(P1 != 0xFF)。 //等待按鍵釋放 break。 switch(key) //鍵值 { case 0xfe: //Do { Delayms(10)。//Do~Si七個(gè)音調(diào)鍵分別顯示 1~7 else if(Keycode == 8) P0 = ~table[Time + 9]。 } default: break。 TR0 = 1。 } case 3: //播放第三首樂曲 { TH0code = Music3_Tab[Num++]。 //開定時(shí)器 0 基于 51 單片機(jī)的電子琴設(shè)計(jì) 23 Num++。 TL0code = Music2_Tab[Num]%256。 //開定時(shí)器 0 if(Num == 15) Num = 0。 TL0code = Music1_Tab[Num++]。 //開定時(shí)器 0 Speaker = ~Speaker。 TL0code = 0X5C。 TR0 = 1。 } case 6: //La 基于 51 單片機(jī)的電子琴設(shè)計(jì) 22 { TH0code = 0XFC。 //置初值 TL0 = TL0code。 break。 TH0 = TH0code。 //開 定時(shí)器 0 Speaker = ~Speaker。 TL0code = 0X5C。 TR0 = 1。 } case 2: //Re { TH0code = 0XFC。 //置初值 TL0 = TL0code。//開總中斷 } /**************************************** 音頻處理函數(shù) ****************************************/ void Sound_Player(void) { if(Flag == 0) //Do~Si七個(gè)音調(diào)鍵 { Flag = 1。//外部中斷 0 允許 TMOD = 0x01。//數(shù)碼管顯示鍵值 } } /**************************************** 初始化函數(shù) ****************************************/ void Init(void) { P0 = 0xff。 uchar code Music3_Tab[]={ //曲譜 3 碼表 0x64,0x42,0x62,0x98,0x74,0x92,0x72,0x68, 0x64,0x22,0x32,0x44,0x32,0x22,0x3c,0x64, 0x42,0x62,0x94,0x04,0x82,0x74,0x94,0x68, 0x64,0x32,0x42,0x54,0x04,0x12,0x2c,0x74, 0x94,0x98,0x84,0x72,0x82,0x98,0x72,0x82, 0x92,0x72,0x72,0x62,0x42,0x22,0x3c,0x64, 0x42,0x62,0x94,0x04,0x82,0x74,0x94,0x68, 0x64,0x32,0x42,0x54,0x04,0x12,0x2c,0x00}。 //揚(yáng)聲器控制引腳 uint Num = 0。//鍵值 uint Time = 0。//鍵值掃描 void Delayms(uint z)。除此之外,對(duì) 51 系單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,諸如 LED 數(shù)碼管、鍵盤等等。其二是 按鍵引入中斷檢測時(shí)遇到的問題,要求 8 個(gè)按鍵任意鍵按都觸發(fā)外部中斷 0,結(jié)果不經(jīng)思索就選用了一塊 8 輸入或門芯片,導(dǎo)致怎么按鍵盤都無法進(jìn)入中斷函數(shù),于是懷疑是程序有錯(cuò),浪費(fèi)了很多時(shí)間,最終發(fā)現(xiàn)是硬件邏輯錯(cuò)誤,應(yīng)該用與門才對(duì)。 本設(shè)計(jì) 基于單片機(jī) AT89C51 的電子琴電路由琴鍵控制電路、數(shù)碼管顯示電路、音頻功放電路、時(shí)鐘 復(fù)位電路和電源電路五部分所構(gòu)成。其二是 按鍵引入中斷檢測時(shí)遇到的問題,要求 8 個(gè)按鍵任意鍵按都觸發(fā)外部中斷 0,結(jié)果不經(jīng)思索就選用了一塊 8 輸入或門芯片,導(dǎo)致怎么按鍵盤都無法進(jìn)入中斷函數(shù),于是懷疑是程序有錯(cuò),浪費(fèi)了很多時(shí)間,最終發(fā)現(xiàn)是硬件邏輯錯(cuò)誤,應(yīng)該用與門才對(duì)。但也一定瑕疵,按鍵按下后,延遲一會(huì)才有聲音。 Keil uVision4 引入了靈活的窗口管理系統(tǒng),能夠拖放到視圖內(nèi)的任何地方,包括支持多顯示器窗口。它是一個(gè)集模擬電路、數(shù)字電路、模 /數(shù)混合電路以及多種微控制器系統(tǒng)為一體的系統(tǒng)設(shè)計(jì)和仿真平臺(tái)。 break。 TH0 = TH0code。如圖 21 所示音頻處理函數(shù)的流程圖。 //等待按鍵釋放 }break。 key = P1。 鍵盤的每一行通過一個(gè)上拉電阻接高電平,當(dāng)按鍵按下時(shí),對(duì)應(yīng)的 I/O 口線被拉低。抖動(dòng)時(shí)間的長短和按鍵的機(jī)械特性有關(guān),一般為 5~10ms。定時(shí)中斷的流程框圖如圖 18 所示,定時(shí)器溢出中斷后,進(jìn)行重裝載初值, 同時(shí)執(zhí)行相應(yīng)的音頻控制操作。//Do~Si七個(gè)音調(diào)鍵分別顯示 1~7 else if(Keycode == 8) P0 = ~table[Time + 9]。若判斷是音調(diào)鍵將會(huì)顯示數(shù)字 1~7其中之一;若判斷是功能鍵將會(huì)顯示字母 A、 b、C 其中之一。//定時(shí)器 0 中斷允許 TR0 = 0。 IT0 = 1。//數(shù)碼管顯示鍵值 } } 初始化函數(shù) 初始化的流程框圖如圖 15 所示。另外,鍵碼的識(shí)別與刷新是通過中斷函數(shù)來完成。而為使編程思路清晰,應(yīng)先繪制程序流程圖。 圖 11 直流電源電路組成結(jié)構(gòu)圖 變壓器 整流電路 濾波電路 穩(wěn)壓電路 ~ 220V 50Hz 圖 12 12V 轉(zhuǎn) 5V 電源電路圖 基于 51 單片機(jī)的電子琴設(shè)計(jì) 10 整體電路 基于單片機(jī) AT89C51 的電子琴電路由琴鍵控制電路、數(shù)碼管顯示電路、音頻功放電路、時(shí)鐘 復(fù)位電路和電源電路五部分所構(gòu)成。 直流電源電路由降壓變壓器、全波整流、濾波、穩(wěn)壓電路構(gòu)成,其組成結(jié)構(gòu)如圖 11 所示。在單片機(jī)系統(tǒng)運(yùn)行過程中,按下復(fù)位鍵,高電平輸入 RST 引腳,單片機(jī)被強(qiáng)制執(zhí)行復(fù)位操作,系統(tǒng)可以退出錯(cuò)誤運(yùn)行狀態(tài),恢復(fù)正常工作。 上電復(fù)位在單片機(jī)系統(tǒng)每次通電時(shí)執(zhí)行。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式做時(shí)鐘電 路。 時(shí)鐘 復(fù)位電路 時(shí)鐘電路 時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。如圖 7 所示為數(shù)碼管顯示電路,采用靜態(tài)驅(qū)動(dòng)方式和共陽極接法,滿足本次設(shè)計(jì)要求。缺點(diǎn)是顯示亮度不如靜態(tài)顯示的亮度高。 LED 數(shù)碼管動(dòng)態(tài)顯示 靜態(tài)顯示方式就是無論在任何時(shí)刻只有一個(gè) LED 數(shù)碼管處于顯示狀態(tài),即單片機(jī)采用“掃描 ”方式控制各個(gè)數(shù)碼管輪流顯示。如果送往各個(gè) LED 數(shù)碼管所顯示字符的段碼一經(jīng)確定,則相應(yīng) I/O 口鎖存器鎖存的段碼輸出將維持不變,直到送入另一個(gè)字符的段碼為止。當(dāng)陽極為高電平時(shí),發(fā)光二極管點(diǎn)亮。它 由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成, 每一段對(duì)應(yīng)一個(gè)發(fā)光二極管。但是從程序編寫的難易程度來看,若使用矩陣鍵盤電路來設(shè)計(jì)會(huì)比獨(dú)立式鍵盤電路難一些,故選擇獨(dú)立式鍵盤電路比較合理。 獨(dú)立式鍵盤電路如圖 3 所示, 8個(gè)獨(dú)立按鍵分別對(duì)應(yīng)一個(gè) I/O 口線,當(dāng)某一按鍵按下時(shí),對(duì)應(yīng)的檢測線就變成了低電平,與其它按鍵相連的檢測線仍為高電平,只需讀入 I/O 輸入線的狀態(tài),判別哪一條 I/O 輸入線為低電平,很容易識(shí)別哪個(gè)鍵被按下。列線的電平如果為低,則行線電平為低;列線的電平如果為高,則行線的電平也為高,這是識(shí)別按鍵是否按下的關(guān)鍵所在。相對(duì)于獨(dú)立式鍵盤而言,軟件上編程會(huì)稍微復(fù)雜些。 琴鍵控制電路 琴鍵控制電路作為人機(jī)聯(lián)系的輸入部分,也是間接控制數(shù)碼顯示和音頻功放的重要組成部分。由于需要顯示的信息不多,顯示電路未采用液晶屏顯示,而是使用數(shù)碼管顯示電路負(fù)責(zé)顯示按下的琴鍵所對(duì)應(yīng)的鍵值,這樣既節(jié)省了成本了,又降低了編程難度 。除此之外還有一些革命性的特點(diǎn):互動(dòng)的電路仿真、仿真處理器及其外圍電路。關(guān)于這三種軟件的簡介如表 1 所示。關(guān)于聲音的處理,使用單片機(jī) C 語言,利用定時(shí)器來控制頻率,而每個(gè)音符的符號(hào)只是存在自定義的表中。這就為電子琴的普及提供了方便。電子琴自動(dòng)伴奏的穩(wěn)定性、準(zhǔn) 確性,以及鮮
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1