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

正文內(nèi)容

基于單片機(jī)的簡(jiǎn)單電子琴畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-17 12:43 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 的按鍵就是閉合的按鍵。對(duì)應(yīng)的程序設(shè)計(jì)為:/* 鍵掃描函數(shù) */uchar getkey(void){ uchar scancode,tmpcode。 if ((P0amp。0xf0)==0xf0) return(0)。 scancode = 0xfe。 while((scancodeamp。0x10)!=0) // 逐行掃描 { P0 = scancode。 // 輸出行掃描碼 if ((P0amp。0xf0)!=0xf0) // 本行有鍵按下 { tmpcode = (P0amp。0xf0)|0x0f。 /* 返回特征字節(jié)碼,為1的位即對(duì)應(yīng)于行和列 */ return((~scancode)+(~tmpcode))。 } else scancode = (scancode1)|0x01。 // 行掃描碼左移一位 }}(1)去抖動(dòng):每個(gè)按鍵在按下或松開(kāi)時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為520mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開(kāi)抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開(kāi)狀態(tài)才能保證識(shí)別正確無(wú)誤。去抖問(wèn)題可通過(guò)軟件延時(shí)或硬件電路解決。對(duì)應(yīng)的程序設(shè)計(jì)為:/* 鍵消抖延時(shí)函數(shù) */void delay(void){ uchar i。 for (i=300。i0。i)。}(2)防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒(méi)有釋放又有新的按鍵按下時(shí)產(chǎn)生的問(wèn)題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。N鍵輪回,是當(dāng)檢測(cè)到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。(3)被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問(wèn)題,一般可通過(guò)軟硬結(jié)合的方法完成。常用的方法有行掃描法和線(xiàn)反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤(pán)逐行掃描,通過(guò)檢測(cè)到的列輸出狀態(tài)來(lái)確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線(xiàn)反轉(zhuǎn)法的基本思想是通過(guò)行列顛倒兩次掃描來(lái)識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出端口。對(duì)應(yīng)的程序設(shè)計(jì)為:/* 外部中斷0 ,這里是彈唱按鍵*/void EX0_INT() interrupt 0{ FY=0。 LED1=1。 LED2=0。 }/* 外部中斷1 ,這里是播放按鍵*/void EX1_INT() interrupt 2{ FY=1。 LED1=0。 LED2=1。 }(4)鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤(pán)編碼表,通過(guò)查表獲得被按鍵的鍵碼。對(duì)應(yīng)的程序設(shè)計(jì)為:/* 音符與計(jì)數(shù)值對(duì)應(yīng)表 */uint code tab[]={ 63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283 ,65085 }。音樂(lè)發(fā)聲原理:一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)的半周期時(shí)間,然后重復(fù)計(jì)時(shí)再反相。利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fi247。2247。fr式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下: T=65536-N=65536-fi247。2247。fr例如:設(shè)K=65536,fi=1MHz,求低音DO(262Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。 T=65536-N=65536-fi247。2247。fr=65536-1000000247。2247。fr =65536-500000/fr低音DO的T=65536-500000/262=63628中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1046=65058 [6]我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù)。單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表31所示:表31 音符頻率表音符頻率(HZ)簡(jiǎn)譜碼(T值)音符頻率(HZ)簡(jiǎn)譜碼(T值)低 1 DO26263628中 5 SO78464898低 2 RE29463835中 6 LA88064968低 3 M33064021中 7 SI98865030低 4 FA 34964103高 1 DO104665058低 5 SO39264260高 2 RE117565110低 6 LA44064400高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580高 5 SO156865217中 2 RE58764684高 6 LA176065252中 3 M65964777高 7 SI196765283中 4 FA69864820 1 DO110965085音樂(lè)的音拍,一個(gè)節(jié)拍為單位(C調(diào)),如下表32所示。表32 曲調(diào)值表曲調(diào)值曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成的。其中T0用來(lái)產(chǎn)生音符頻率,T1用來(lái)產(chǎn)生音拍。[7] T0中斷入口置TH0,TL0的初值中斷返回圖312音樂(lè)播放流程圖T0初始化讀取鍵值根據(jù)鍵值查表按位取值是否結(jié)束恢復(fù)初始條件延時(shí)再循環(huán)Y音符值送入T0讀取節(jié)拍數(shù)延時(shí)啟動(dòng)T0計(jì)數(shù)T0停止計(jì)數(shù)位值加1N節(jié)拍時(shí)間到到N圖312放歌子程序流程圖4實(shí)現(xiàn)聯(lián)調(diào) Proteus 簡(jiǎn)介Proteus(海神)的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫(kù)齊全,使用方便,是不可多得的專(zhuān)業(yè)的單片機(jī)軟件仿真系統(tǒng)?! ≡撥浖奶攸c(diǎn): ?、?全部滿(mǎn)足我們提出的單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類(lèi)產(chǎn)品中具有明顯的優(yōu)勢(shì)?! 、诰哂心M電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。 ?、?目前支持的單片機(jī)類(lèi)型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片?! 、?支持大量的存儲(chǔ)器和外圍芯片??傊撥浖且豢罴瘑纹瑱C(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真5AVR、PIC。 keil 簡(jiǎn)介單片機(jī)開(kāi)發(fā)中除必要的硬件外,同樣離不開(kāi)軟件,匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼, Keil軟件是目前最流行開(kāi)發(fā)MCS51系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠(chǎng)商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil軟件需要16MB或更多RAM、20M以上空閑的硬盤(pán)空間、WIN9NT、WIN2000、WINXP等操作系統(tǒng)。應(yīng)用Keil軟件進(jìn)行單片機(jī)軟件調(diào)試有以下步驟:1. 建立一個(gè)工程項(xiàng)目。選擇芯片,確定選項(xiàng)。2. 建立C源文件。3. 用項(xiàng)目管理器生成各種應(yīng)用文件。4. 檢查并修改原文件中的錯(cuò)誤。5. 編程操作。使用步驟:
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1